fix(vm): hide cores per socket selector when no container (#2221)

This commit is contained in:
badrAZ 2018-01-18 15:35:03 +01:00 committed by Julien Fontanet
parent 4d69866532
commit 1a2f553094
2 changed files with 45 additions and 33 deletions

View File

@ -868,6 +868,7 @@ const messages = {
vmChooseCoresPerSocket: 'Default behavior',
vmCoresPerSocket:
'{nSockets, number} socket{nSockets, plural, one {} other {s}} with {nCores, number} core{nCores, plural, one {} other {s}} per socket',
vmCoresPerSocketNone: 'None',
vmCoresPerSocketIncorrectValue: 'Incorrect cores per socket value',
vmCoresPerSocketIncorrectValueSolution:
'Please change the selected value to fix it.',

View File

@ -178,7 +178,7 @@ class CoresPerSocket extends Component {
_getCoresPerSocketPossibilities = createSelector(
() => {
const { container } = this.props
if (container !== undefined) {
if (container != null) {
return container.cpus.cores
}
},
@ -198,44 +198,55 @@ class CoresPerSocket extends Component {
editVm(this.props.vm, { coresPerSocket: getEventValue(event) || null })
render () {
const vm = this.props.vm
const { container, vm } = this.props
const selectedCoresPerSocket = vm.coresPerSocket
const options = this._getCoresPerSocketPossibilities()
return (
<form className='form-inline'>
<select
className='form-control'
onChange={this._onChange}
value={selectedCoresPerSocket || ''}
>
{_({ key: 'none' }, 'vmChooseCoresPerSocket', message => (
<option value=''>{message}</option>
))}
{this._selectedValueIsNotInOptions() &&
_(
{ key: 'incorrect' },
'vmCoresPerSocketIncorrectValue',
message => (
<option value={selectedCoresPerSocket}> {message}</option>
)
{container != null ? (
<span>
<select
className='form-control'
onChange={this._onChange}
value={selectedCoresPerSocket || ''}
>
{_({ key: 'none' }, 'vmChooseCoresPerSocket', message => (
<option value=''>{message}</option>
))}
{this._selectedValueIsNotInOptions() &&
_(
{ key: 'incorrect' },
'vmCoresPerSocketIncorrectValue',
message => (
<option value={selectedCoresPerSocket}> {message}</option>
)
)}
{map(options, coresPerSocket =>
_(
{ key: coresPerSocket },
'vmCoresPerSocket',
{
nSockets: vm.CPUs.number / coresPerSocket,
nCores: coresPerSocket,
},
message => <option value={coresPerSocket}>{message}</option>
)
)}
</select>{' '}
{this._selectedValueIsNotInOptions() && (
<Tooltip content={_('vmCoresPerSocketIncorrectValueSolution')}>
<Icon icon='error' size='lg' />
</Tooltip>
)}
{map(options, coresPerSocket =>
_(
{ key: coresPerSocket },
'vmCoresPerSocket',
{
nSockets: vm.CPUs.number / coresPerSocket,
nCores: coresPerSocket,
},
message => <option value={coresPerSocket}>{message}</option>
)
)}
</select>{' '}
{this._selectedValueIsNotInOptions() && (
<Tooltip content={_('vmCoresPerSocketIncorrectValueSolution')}>
<Icon icon='error' size='lg' />
</Tooltip>
</span>
) : selectedCoresPerSocket != null ? (
_('vmCoresPerSocket', {
nSockets: vm.CPUs.number / selectedCoresPerSocket,
nCores: selectedCoresPerSocket,
})
) : (
_('vmCoresPerSocketNone')
)}
</form>
)