This is an automated email from the ASF dual-hosted git repository. rohit pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cloudstack-primate.git
The following commit(s) were added to refs/heads/master by this push: new 4b03da7 compute: fix vm actions show conditions (#329) 4b03da7 is described below commit 4b03da7c995824160b765f09bedaa80f8f43521c Author: Abhishek Kumar <abhishek.mr...@gmail.com> AuthorDate: Thu May 7 22:46:53 2020 +0530 compute: fix vm actions show conditions (#329) Fixes #173 Signed-off-by: Abhishek Kumar <abhishek.mr...@gmail.com> --- src/config/section/compute.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/config/section/compute.js b/src/config/section/compute.js index b19d398..25e3c68 100644 --- a/src/config/section/compute.js +++ b/src/config/section/compute.js @@ -76,7 +76,8 @@ export default { icon: 'edit', label: 'Update VM', dataView: true, - args: ['name', 'displayname', 'ostypeid', 'isdynamicallyscalable', 'haenable', 'group'] + args: ['name', 'displayname', 'ostypeid', 'isdynamicallyscalable', 'haenable', 'group'], + show: (record) => { return ['Stopped'].includes(record.state) } }, { api: 'startVirtualMachine', @@ -112,6 +113,7 @@ export default { label: 'label.reinstall.vm', dataView: true, args: ['virtualmachineid', 'templateid'], + show: (record) => { return ['Running', 'Stopped'].includes(record.state) }, mapping: { virtualmachineid: { value: (record) => { return record.id } @@ -196,7 +198,7 @@ export default { label: 'label.action.attach.iso', dataView: true, args: ['id', 'virtualmachineid'], - show: (record) => { return !record.isoid }, + show: (record) => { return ['Running', 'Stopped'].includes(record.state) && !record.isoid }, mapping: { id: { api: 'listIsos' @@ -212,7 +214,7 @@ export default { label: 'label.action.detach.iso', dataView: true, args: ['virtualmachineid'], - show: (record) => { return 'isoid' in record && record.isoid }, + show: (record) => { return ['Running', 'Stopped'].includes(record.state) && 'isoid' in record && record.isoid }, mapping: { virtualmachineid: { value: (record, params) => { return record.id } @@ -248,7 +250,7 @@ export default { icon: 'drag', label: 'label.migrate.instance.to.host', dataView: true, - show: (record) => { return ['Running'].includes(record.state) }, + show: (record, store) => { return ['Running'].includes(record.state) && ['Admin'].includes(store.userInfo.roletype) }, component: () => import('@/views/compute/MigrateWizard'), popup: true, args: ['hostid', 'virtualmachineid'], @@ -263,7 +265,7 @@ export default { icon: 'drag', label: 'label.migrate.instance.to.ps', dataView: true, - show: (record) => { return ['Stopped'].includes(record.state) }, + show: (record, store) => { return ['Stopped'].includes(record.state) && ['Admin'].includes(store.userInfo.roletype) }, args: ['storageid', 'virtualmachineid'], mapping: { storageid: { @@ -279,7 +281,7 @@ export default { icon: 'key', label: 'Reset Instance Password', dataView: true, - show: (record) => { return ['Stopped'].includes(record.state) }, + show: (record) => { return ['Running', 'Stopped'].includes(record.state) }, response: (result) => { return result.virtualmachine && result.virtualmachine.password ? `Password of the VM is ${result.virtualmachine.password}` : null } }, { @@ -288,7 +290,7 @@ export default { label: 'Reset SSH Key', dataView: true, args: ['keypair'], - show: (record) => { return ['Stopped'].includes(record.state) }, + show: (record) => { return ['Running', 'Stopped'].includes(record.state) }, mapping: { keypair: { api: 'listSSHKeyPairs' @@ -315,14 +317,14 @@ export default { icon: 'medicine-box', label: 'label.recover.vm', dataView: true, - show: (record) => { return ['Destroyed'].includes(record.state) } + show: (record, store) => { return ['Destroyed'].includes(record.state) && store.features.allowuserexpungerecovervm } }, { api: 'expungeVirtualMachine', icon: 'delete', label: 'label.action.expunge.instance', dataView: true, - show: (record) => { return ['Destroyed'].includes(record.state) } + show: (record, store) => { return ['Destroyed', 'Expunging'].includes(record.state) && store.features.allowuserexpungerecovervm } }, { api: 'destroyVirtualMachine', @@ -330,7 +332,8 @@ export default { label: 'label.action.destroy.instance', args: ['expunge', 'volumeids'], dataView: true, - groupAction: true + groupAction: true, + show: (record) => { return ['Running', 'Stopped', 'Error'].includes(record.state) } } ] },