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', vmChooseCoresPerSocket: 'Default behavior',
vmCoresPerSocket: vmCoresPerSocket:
'{nSockets, number} socket{nSockets, plural, one {} other {s}} with {nCores, number} core{nCores, plural, one {} other {s}} per socket', '{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', vmCoresPerSocketIncorrectValue: 'Incorrect cores per socket value',
vmCoresPerSocketIncorrectValueSolution: vmCoresPerSocketIncorrectValueSolution:
'Please change the selected value to fix it.', 'Please change the selected value to fix it.',

View File

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