1 import React from 'react';
2 import i18n from 'nfvo-utils/i18n/i18n.js';
3 import ValidationForm from 'nfvo-components/input/validation/ValidationForm.jsx';
4 import ValidationInput from'nfvo-components/input/validation/ValidationInput.jsx';
7 class SoftwareProductComponentComputeView extends React.Component {
10 qdata: React.PropTypes.object,
11 qschema: React.PropTypes.object,
12 isReadOnlyMode: React.PropTypes.bool,
13 minNumberOfVMsSelectedByUser: React.PropTypes.number,
14 onQDataChanged: React.PropTypes.func.isRequired,
15 onSubmit: React.PropTypes.func.isRequired
19 let {qdata, qschema, isReadOnlyMode, minNumberOfVMsSelectedByUser, onQDataChanged, onSubmit} = this.props;
22 <div className='vsp-component-questionnaire-view'>
24 ref='computeValidationForm'
26 onSubmit={() => onSubmit({qdata})}
27 className='component-questionnaire-validation-form'
28 isReadOnlyMode={isReadOnlyMode}
29 onDataChanged={onQDataChanged}
33 <div className='section-title'>{i18n('VM Sizing')}</div>
34 <div className='rows-section'>
35 <div className='row-flex-components input-row'>
36 <div className='single-col'>
39 label={i18n('Number of CPUs')}
40 pointer={'/compute/vmSizing/numOfCPUs'}/>
42 <div className='single-col'>
45 label={i18n('File System Size (GB)')}
46 pointer={'/compute/vmSizing/fileSystemSizeGB'}/>
48 <div className='single-col'>
51 label={i18n('Persistent Storage/Volume Size (GB)')}
52 pointer={'/compute/vmSizing/persistentStorageVolumeSize'}/>
56 label={i18n('I/O Operations (per second)')}
57 pointer={'/compute/vmSizing/IOOperationsPerSec'}/>
60 <div className='section-title'>{i18n('Number of VMs')}</div>
61 <div className='rows-section'>
62 <div className='row-flex-components input-row'>
63 <div className='single-col'>
66 label={i18n('Minimum')}
67 pointer={'/compute/numOfVMs/minimum'}/>
69 <div className='single-col'>
72 label={i18n('Maximum')}
73 pointer={'/compute/numOfVMs/maximum'}
74 validations={{minValue: minNumberOfVMsSelectedByUser}}/>
76 <div className='single-col'>
79 label={i18n('CPU Oversubscription Ratio')}
80 pointer={'/compute/numOfVMs/CpuOverSubscriptionRatio'}/>
84 label={i18n('Memory - RAM')}
85 pointer={'/compute/numOfVMs/MemoryRAM'}/>
89 <div className='section-title'>{i18n('Guest OS')}</div>
90 <div className='rows-section'>
91 <div className='section-field row-flex-components input-row'>
92 <div className='two-col'>
94 label={i18n('Guest OS')}
96 pointer={'/compute/guestOS/name'}/>
98 <div className='empty-two-col'/>
100 <div className='vertical-flex input-row'>
101 <label key='label' className='control-label'>{i18n('OS Bit Size')}</label>
102 <div className='radio-options-content-row input-row'>
105 pointer={'/compute/guestOS/bitSize'}
106 className='radio-field'/>
109 <div className='section-field row-flex-components input-row'>
110 <div className='two-col'>
113 label={i18n('Guest OS Tools:')}
114 pointer={'/compute/guestOS/tools'}/>
116 <div className='empty-two-col'/>
125 return this.refs.computeValidationForm.handleFormSubmit(new Event('dummy'));
129 export default SoftwareProductComponentComputeView;