aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/compute/SoftwareProductComponentComputeView.jsx
blob: 3bad147117dd706580e790670d9180ae427b1601 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import React from 'react';
import i18n from 'nfvo-utils/i18n/i18n.js';
import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';


class SoftwareProductComponentComputeView extends React.Component {

	static propTypes = {
		qdata: React.PropTypes.object,
		qschema: React.PropTypes.object,
		isReadOnlyMode: React.PropTypes.bool,
		minNumberOfVMsSelectedByUser: React.PropTypes.number,
		onQDataChanged: React.PropTypes.func.isRequired,
		onSubmit: React.PropTypes.func.isRequired
	};

	render() {
		let {qdata, qschema, isReadOnlyMode, minNumberOfVMsSelectedByUser, onQDataChanged, onSubmit} = this.props;

		return (
			<div className='vsp-component-questionnaire-view'>
				<ValidationForm
					ref='computeValidationForm'
					hasButtons={false}
					onSubmit={() => onSubmit({qdata})}
					className='component-questionnaire-validation-form'
					isReadOnlyMode={isReadOnlyMode}
					onDataChanged={onQDataChanged}
					data={qdata}
					schema={qschema}>

					<div className='section-title'>{i18n('VM Sizing')}</div>
					<div className='rows-section'>
						<div className='row-flex-components input-row'>
							<div className='single-col'>
								<ValidationInput
									type='text'
									label={i18n('Number of CPUs')}
									pointer={'/compute/vmSizing/numOfCPUs'}/>
							</div>
							<div className='single-col'>
								<ValidationInput
									type='text'
									label={i18n('File System Size (GB)')}
									pointer={'/compute/vmSizing/fileSystemSizeGB'}/>
							</div>
							<div className='single-col'>
								<ValidationInput
									type='text'
									label={i18n('Persistent Storage/Volume Size (GB)')}
									pointer={'/compute/vmSizing/persistentStorageVolumeSize'}/>
							</div>
							<ValidationInput
								type='text'
								label={i18n('I/O Operations (per second)')}
								pointer={'/compute/vmSizing/IOOperationsPerSec'}/>
						</div>
					</div>
					<div className='section-title'>{i18n('Number of VMs')}</div>
					<div className='rows-section'>
						<div className='row-flex-components input-row'>
							<div className='single-col'>
								<ValidationInput
									type='text'
									label={i18n('Minimum')}
									pointer={'/compute/numOfVMs/minimum'}/>
							</div>
							<div className='single-col'>
								<ValidationInput
									type='text'
									label={i18n('Maximum')}
									pointer={'/compute/numOfVMs/maximum'}
									validations={{minValue: minNumberOfVMsSelectedByUser}}/>
							</div>
							<div className='single-col'>
								<ValidationInput
									type='select'
									label={i18n('CPU Oversubscription Ratio')}
									pointer={'/compute/numOfVMs/CpuOverSubscriptionRatio'}/>
							</div>
							<ValidationInput
								type='select'
								label={i18n('Memory - RAM')}
								pointer={'/compute/numOfVMs/MemoryRAM'}/>
						</div>
					</div>

					<div className='section-title'>{i18n('Guest OS')}</div>
					<div className='rows-section'>
						<div className='section-field row-flex-components input-row'>
							<div className='two-col'>
								<ValidationInput
									label={i18n('Guest OS')}
									type='text'
									pointer={'/compute/guestOS/name'}/>
							</div>
							<div className='empty-two-col'/>
						</div>
						<div className='vertical-flex input-row'>
							<label key='label' className='control-label'>{i18n('OS Bit Size')}</label>
							<div className='radio-options-content-row input-row'>
								<ValidationInput
									type='radiogroup'
									pointer={'/compute/guestOS/bitSize'}
									className='radio-field'/>
							</div>
						</div>
						<div className='section-field row-flex-components input-row'>
							<div className='two-col'>
								<ValidationInput
									type='textarea'
									label={i18n('Guest OS Tools:')}
									pointer={'/compute/guestOS/tools'}/>
							</div>
							<div className='empty-two-col'/>
						</div>
					</div>
				</ValidationForm>
			</div>
		);
	}

	save(){
		return this.refs.computeValidationForm.handleFormSubmit(new Event('dummy'));
	}
}

export default SoftwareProductComponentComputeView;