config: fix all actions in infra

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2019-10-15 18:40:47 +05:30
parent b903d20d84
commit 1feed9b3c8
8 changed files with 340 additions and 436 deletions

View File

@ -2,8 +2,8 @@ export default {
name: 'cluster', name: 'cluster',
title: 'Clusters', title: 'Clusters',
icon: 'cluster', icon: 'cluster',
permission: [ 'listClusters', 'listClustersMetrics' ], permission: [ 'listClustersMetrics', 'listClusters' ],
columns: [ 'name', 'allocationstate', 'clustertype', 'hypervisortype', 'podname', 'zonename' ], columns: [ 'name', 'state', 'clustertype', 'hypervisortype', 'hosts', 'cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal', 'podname', 'zonename' ],
details: [ 'name', 'id', 'allocationstate', 'clustertype', 'hypervisortype', 'podname', 'zonename' ], details: [ 'name', 'id', 'allocationstate', 'clustertype', 'hypervisortype', 'podname', 'zonename' ],
actions: [ actions: [
{ {
@ -11,122 +11,110 @@ export default {
icon: 'plus', icon: 'plus',
label: 'label.add.cluster', label: 'label.add.cluster',
listView: true, listView: true,
args: [ args: ['zoneid', 'hypervisor', 'podid', 'clustername']
'zoneId', 'hypervisor', 'clustertype', 'podId', 'clustername'
]
}, },
{ {
api: 'updateCluster', api: 'updateCluster',
icon: 'enable', icon: 'pause-circle',
label: 'label.action.enable.cluster', label: 'label.action.enable.cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Disabled' }, args: ['id'],
args: [ defaultArgs: { allocationstate: 'Disabled' },
'id' show: (record) => { return record.allocationstate === 'Enabled' }
],
defaultArgs: { allocationstate: 'Enabled' }
}, },
{ {
api: 'updateCluster', api: 'updateCluster',
icon: 'disable', icon: 'play-circle',
label: 'label.action.disable.cluster', label: 'label.action.disable.cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Enabled' }, args: [ 'id' ],
args: [ defaultArgs: { allocationstate: 'Enabled' },
'id' show: (record) => { return record.allocationstate === 'Disabled' }
],
defaultArgs: { allocationstate: 'Disabled' }
}, },
{ {
api: 'dedicateCluster', api: 'dedicateCluster',
icon: 'dedicate', icon: 'user-add',
label: 'label.dedicate.cluster', label: 'label.dedicate.cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid === null }, args: ['clusterid', 'domainid', 'account'],
args: [ show: (record) => { return !record.domainid }
'clusterId', 'domainId', 'account'
]
}, },
{ {
api: 'releaseDedicatedCluster', api: 'releaseDedicatedCluster',
icon: 'release', icon: 'user-delete',
label: 'label.release.dedicated.cluster', label: 'label.release.dedicated.cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid !== null }, args: ['clusterid'],
args: [ show: (record) => { return record.domainid }
'clusterid'
]
}, },
{ {
api: 'updateCluster', api: 'updateCluster',
icon: 'managed', icon: 'plus-square',
label: 'label.add.zone', label: 'Manage Cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Enabled' && record.state !== 'Disabled' }, args: ['id'],
args: [ defaultArgs: { managedstate: 'Managed' },
'id' show: (record) => { return record.clustertype === 'CloudManaged' && ['PrepareUnmanaged', 'Unmanaged'].includes(record.state) }
],
defaultArgs: { managedstate: 'Managed' }
}, },
{ {
api: 'updateCluster', api: 'updateCluster',
icon: 'unmanaged', icon: 'minus-square',
label: 'label.add.zone', label: 'Unmanage Cluster',
dataView: true, dataView: true,
hidden: (record) => { return record.state === 'Enabled' || record.state === 'Disabled' }, args: ['id'],
args: [ defaultArgs: { managedstate: 'Unmanaged' },
'id' show: (record) => { return record.clustertype === 'CloudManaged' && record.state === 'Enabled' }
],
defaultArgs: { managedstate: 'Unmanaged' }
},
{
api: 'disableOutOfBandManagementForCluster',
icon: 'disableband',
label: 'label.outofbandmanagement.disable',
dataView: true,
hidden: (record) => { return !(record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled && record.resourcedetails.outOfBandManagementEnabled === 'false') },
args: [
'clusterid'
]
}, },
{ {
api: 'enableOutOfBandManagementForCluster', api: 'enableOutOfBandManagementForCluster',
icon: 'enableband', icon: 'plus-circle',
label: 'label.outofbandmanagement.enable', label: 'label.outofbandmanagement.enable',
dataView: true, dataView: true,
hidden: (record) => { return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled && record.resourcedetails.outOfBandManagementEnabled === 'false' }, args: ['clusterid'],
args: [ show: (record) => {
'clusterid' return !record.resourcedetails || !record.resourcedetails.outOfBandManagementEnabled ||
] record.resourcedetails.outOfBandManagementEnabled === 'false'
}
}, },
{ {
api: 'disableHAForCluster', api: 'disableOutOfBandManagementForCluster',
icon: 'disableha', icon: 'minus-circle',
label: 'label.ha.disable', label: 'label.outofbandmanagement.disable',
dataView: true, dataView: true,
hidden: (record) => { return !(record.resourcedetails && record.resourcedetails.resourceHAEnabled && record.resourcedetails.resourceHAEnabled === 'false') }, args: ['clusterid'],
args: [ show: (record) => {
'clusterid' return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled &&
] record.resourcedetails.outOfBandManagementEnabled === 'true'
}
}, },
{ {
api: 'enableHAForCluster', api: 'enableHAForCluster',
icon: 'enableha', icon: 'eye',
label: 'label.ha.enable', label: 'label.ha.enable',
dataView: true, dataView: true,
hidden: (record) => { return record.resourcedetails && record.resourcedetails.resourceHAEnabled && record.resourcedetails.resourceHAEnabled === 'false' }, args: ['clusterid'],
args: [ show: (record) => {
'clusterid' return !record.resourcedetails || !record.resourcedetails.resourceHAEnabled ||
] record.resourcedetails.resourceHAEnabled === 'false'
}
},
{
api: 'disableHAForCluster',
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
args: ['clusterid'],
show: (record) => {
return record.resourcedetails && record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
}
}, },
{ {
api: 'deleteCluster', api: 'deleteCluster',
icon: 'delete', icon: 'delete',
label: 'label.action.delete.cluster', label: 'label.action.delete.cluster',
dataView: true, dataView: true,
args: [ args: ['id']
'id'
]
} }
] ]
} }

View File

@ -2,10 +2,10 @@ export default {
name: 'host', name: 'host',
title: 'Hosts', title: 'Hosts',
icon: 'desktop', icon: 'desktop',
permission: [ 'listHosts', 'listHostsMetrics' ], permission: [ 'listHostsMetrics', 'listHosts' ],
resourceType: 'Host', resourceType: 'Host',
params: { 'type': 'routing' }, params: { 'type': 'routing' },
columns: [ 'name', 'state', 'resourcestate', 'ipaddress', 'hypervisor', 'hypervisorversion', 'clustername', 'zonename' ], columns: [ 'name', 'state', 'resourcestate', 'powerstate', 'ipaddress', 'hypervisor', 'instances', 'cpunumber', 'cputotalghz', 'cpuusedghz', 'cpuallocatedghz', 'memorytotalgb', 'memoryusedgb', 'memoryallocatedgb', 'networkread', 'networkwrite', 'clustername', 'zonename' ],
details: [ 'name', 'id', 'resourcestate', 'ipaddress', 'hypervisor', 'hypervisorversion', 'version', 'type', 'oscategoryname', 'hosttags', 'clustername', 'podname', 'zonename', 'created' ], details: [ 'name', 'id', 'resourcestate', 'ipaddress', 'hypervisor', 'hypervisorversion', 'version', 'type', 'oscategoryname', 'hosttags', 'clustername', 'podname', 'zonename', 'created' ],
actions: [ actions: [
{ {
@ -13,180 +13,168 @@ export default {
icon: 'plus', icon: 'plus',
label: 'label.add.host', label: 'label.add.host',
listView: true, listView: true,
args: [ args: ['zoneid', 'podid', 'clusterid', 'hypervisor', 'username', 'password', 'url', 'hosttags']
'zoneid', 'podid', 'clusterid', 'hypervisor', 'hosttags', 'username', 'password', 'url'
]
}, },
{ {
api: 'updateHost', api: 'updateHost',
icon: 'edit', icon: 'edit',
label: 'label.edit', label: 'label.edit',
dataView: true, dataView: true,
args: [ args: ['id', 'hosttags', 'oscategoryid']
'id', 'hosttags', 'annotation'
]
},
{
api: 'dedicateHost',
icon: 'dedicate',
label: 'label.dedicate.host',
dataView: true,
hidden: (record) => { return record.domainid === null },
args: [
'hostId', 'domainId', 'account'
]
},
{
api: 'releaseDedicatedHost',
icon: 'release',
label: 'label.release.dedicated.host',
dataView: true,
hidden: (record) => { return record.domainid !== null },
args: [
'hostid'
]
}, },
{ {
api: 'provisionCertificate', api: 'provisionCertificate',
icon: 'kvmcertificate', icon: 'safety-certificate',
label: 'label.action.secure.host', label: 'label.action.secure.host',
dataView: true, dataView: true,
hidden: (record) => { return record.hypervisor === 'KVM' }, args: ['hostid'],
args: [ show: (record) => { return record.hypervisor === 'KVM' }
'hostid'
]
},
{
api: 'prepareHostForMaintenance',
icon: 'enablemaintenance',
label: 'label.action.enable.maintenance.mode',
dataView: true,
hidden: (record) => { return record.resourcestate === 'Enabled' },
args: [
'id'
]
},
{
api: 'cancelHostMaintenance',
icon: 'cancelmaintenance',
label: 'label.action.cancel.maintenance.mode',
dataView: true,
hidden: (record) => { return record.resourcestate === 'Maintenance' || record.resourcestate === 'ErrorInMaintenance' || record.resourcestate === 'PrepareForMaintenance' },
args: [
'id'
]
}, },
{ {
api: 'reconnectHost', api: 'reconnectHost',
icon: 'reconnect', icon: 'forward',
label: 'label.action.force.reconnect', label: 'label.action.force.reconnect',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Disconnected' }, args: ['id'],
args: [ show: (record) => { return ['Disconnected', 'Up'].includes(record.state) }
'id'
]
}, },
{ {
api: 'updateHost', api: 'updateHost',
icon: 'enable', icon: 'pause-circle',
label: 'label.enable.host', label: 'Disable Host',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Enabled' },
args: ['id'], args: ['id'],
defaultArgs: { allocationstate: 'Disabled' } defaultArgs: { allocationstate: 'Disable' },
show: (record) => { return record.resourcestate === 'Enabled' }
}, },
{ {
api: 'updateHost', api: 'updateHost',
icon: 'disable', icon: 'play-circle',
label: 'label.disable.host', label: 'Enable Host',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Disabled' },
args: [ 'id' ], args: [ 'id' ],
defaultArgs: { allocationstate: 'Enabled' } defaultArgs: { allocationstate: 'Enable' },
show: (record) => { return record.resourcestate === 'Disabled' }
}, },
{ {
api: 'configureHAForHost', api: 'dedicateHost',
icon: 'configureha', icon: 'user-add',
label: 'label.ha.configure', label: 'label.dedicate.host',
dataView: true, dataView: true,
args: [ args: ['hostid', 'domainid', 'account'],
'provider', 'tags', 'hostid' show: (record) => { return !record.domainid }
]
}, },
{ {
api: 'enableHAForHost', api: 'releaseDedicatedHost',
icon: 'enableha', icon: 'user-delete',
label: 'label.ha.enable', label: 'label.release.dedicated.host',
dataView: true, dataView: true,
hidden: (record) => { return !(record.hostha && record.hostha.haenable) }, args: ['hostid'],
args: [ show: (record) => { return record.domainid }
'hostid'
]
}, },
{ {
api: 'disableHAForHost', api: 'prepareHostForMaintenance',
icon: 'disableha', icon: 'plus-square',
label: 'label.ha.disable', label: 'label.action.enable.maintenance.mode',
dataView: true, dataView: true,
hidden: (record) => { return record.hostha && record.hostha.haenable }, args: ['id'],
args: [ show: (record) => { return record.resourcestate === 'Enabled' }
'hostid' },
] {
api: 'cancelHostMaintenance',
icon: 'minus-square',
label: 'label.action.cancel.maintenance.mode',
dataView: true,
args: ['id'],
show: (record) => { return record.resourcestate === 'Maintenance' || record.resourcestate === 'ErrorInMaintenance' || record.resourcestate === 'PrepareForMaintenance' }
}, },
{ {
api: 'configureOutOfBandManagement', api: 'configureOutOfBandManagement',
icon: 'plus', icon: 'setting',
label: 'label.outofbandmanagement.configure', label: 'label.outofbandmanagement.configure',
dataView: true, dataView: true,
args: [ args: ['hostid', 'address', 'port', 'username', 'password', 'driver']
'address', 'port', 'username', 'password', 'driver', 'tags', 'hostid'
]
}, },
{ {
api: 'enableOutOfBandManagementForHost', api: 'enableOutOfBandManagementForHost',
icon: 'enableband', icon: 'plus-circle',
label: 'label.outofbandmanagement.enable', label: 'label.outofbandmanagement.enable',
dataView: true, dataView: true,
args: [ args: ['hostid'],
'hostid' show: (record) => {
] return !record.resourcedetails || !record.resourcedetails.outOfBandManagementEnabled ||
record.resourcedetails.outOfBandManagementEnabled === 'false'
}
}, },
{ {
api: 'disableOutOfBandManagementForHost', api: 'disableOutOfBandManagementForHost',
icon: 'disableband', icon: 'minus-circle',
label: 'label.outofbandmanagement.disable', label: 'label.outofbandmanagement.disable',
dataView: true, dataView: true,
args: [ args: ['hostid'],
'hostid' show: (record) => {
] return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
}
}, },
{ {
api: 'issueOutOfBandManagementPowerAction', api: 'issueOutOfBandManagementPowerAction',
icon: 'issuepowerband', icon: 'login',
label: 'label.outofbandmanagement.action.issue', label: 'label.outofbandmanagement.action.issue',
dataView: true, dataView: true,
args: [ args: ['hostid', 'action'],
'action', 'tags', 'hostid' show: (record) => {
] return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
}
}, },
{ {
api: 'changeOutOfBandManagementPassword', api: 'changeOutOfBandManagementPassword',
icon: 'changebandpassword', icon: 'key',
label: 'label.outofbandmanagement.changepassword', label: 'label.outofbandmanagement.changepassword',
dataView: true, dataView: true,
args: [ args: ['hostid', 'password'],
'password', 'reenterpassword', 'tags', 'hostid' show: (record) => {
] return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
}
},
{
api: 'configureHAForHost',
icon: 'tool',
label: 'label.ha.configure',
dataView: true,
args: ['hostid', 'provider']
},
{
api: 'enableHAForHost',
icon: 'eye',
label: 'label.ha.enable',
dataView: true,
args: ['hostid'],
show: (record) => {
return !record.resourcedetails || !record.resourcedetails.resourceHAEnabled ||
record.resourcedetails.resourceHAEnabled === 'false'
}
},
{
api: 'disableHAForHost',
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
args: ['hostid'],
show: (record) => {
return record.resourcedetails && record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
}
}, },
{ {
api: 'deleteHost', api: 'deleteHost',
icon: 'delete', icon: 'delete',
label: 'label.action.delete.host', label: 'Remove Host',
dataView: true, dataView: true,
hidden: (record) => { return !(record.resourcestate === 'Maintenance' || record.resourcestate !== 'Disabled' || record.state === 'Down' || record.state === 'Alert' || record.state === 'Disconnected') }, args: ['id', 'forced'],
args: [ show: (record) => { return ['Maintenance', 'Disabled', 'Down', 'Alert', 'Disconnected'].includes(record.resourcestate) }
'id', 'forced'
]
} }
] ]
} }

View File

@ -11,60 +11,46 @@ export default {
icon: 'plus', icon: 'plus',
label: 'label.add.pod', label: 'label.add.pod',
listView: true, listView: true,
popup: true, args: ['zoneid', 'name', 'gateway', 'netmask', 'startip', 'endip']
args: [
'zoneid', 'name', 'gateway', 'netmask', 'startip', 'endip'
]
}, },
{ {
api: 'updatePod', api: 'updatePod',
icon: 'edit', icon: 'edit',
label: 'label.edit', label: 'label.edit',
dataView: true, dataView: true,
args: [ args: ['id', 'name', 'netmask', 'gateway']
'id', 'name', 'netmask', 'gateway'
]
}, },
{ {
api: 'dedicatePod', api: 'dedicatePod',
icon: 'dedicate', icon: 'user-add',
label: 'label.dedicate.pod', label: 'label.dedicate.pod',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid !== null }, args: ['podid', 'domainid', 'account'],
args: [ show: (record) => { return !record.domainid }
'podId', 'domainid', 'account'
]
}, },
{ {
api: 'releaseDedicatedPod', api: 'releaseDedicatedPod',
icon: 'release', icon: 'user-delete',
label: 'label.release.dedicated.pod', label: 'label.release.dedicated.pod',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid === null }, args: ['podid'],
args: [ show: (record) => { return record.domainid }
'podid'
]
}, },
{ {
api: 'updatePod', api: 'updatePod',
icon: 'enable', icon: 'play-circle',
label: 'label.action.enable.pod', label: 'label.action.enable.pod',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Enabled' }, args: ['id'],
args: [ show: (record) => { return record.allocationstate === 'Disabled' }
'id'
],
defaultArgs: { allocationstate: 'Enabled' }
}, },
{ {
api: 'updatePod', api: 'updatePod',
icon: 'disable', icon: 'pause-circle',
label: 'label.action.disable.pod', label: 'label.action.disable.pod',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Disabled' }, args: ['id'],
args: [ show: (record) => { return record.allocationstate === 'Enabled' },
'id'
],
defaultArgs: { allocationstate: 'Disabled' } defaultArgs: { allocationstate: 'Disabled' }
}, },
{ {
@ -72,9 +58,7 @@ export default {
icon: 'delete', icon: 'delete',
label: 'label.action.delete.pod', label: 'label.action.delete.pod',
dataView: true, dataView: true,
args: [ args: ['id']
'id'
]
} }
] ]
} }

View File

@ -2,8 +2,8 @@ export default {
name: 'storagepool', name: 'storagepool',
title: 'Primary Storage', title: 'Primary Storage',
icon: 'database', icon: 'database',
permission: [ 'listStoragePools', 'listStoragePoolsMetrics' ], permission: [ 'listStoragePoolsMetrics', 'listStoragePools' ],
columns: [ 'name', 'state', 'ipaddress', 'type', 'path', 'scope', 'clustername', 'zonename' ], columns: [ 'name', 'state', 'ipaddress', 'type', 'path', 'scope', 'disksizeusedgb', 'disksizetotalgb', 'disksizeallocatedgb', 'disksizeunallocatedgb', 'clustername', 'zonename' ],
details: [ 'name', 'id', 'ipaddress', 'type', 'scope', 'path', 'provider', 'hypervisor', 'overprovisionfactor', 'disksizetotal', 'disksizeallocated', 'disksizeused', 'clustername', 'podname', 'zonename', 'created' ], details: [ 'name', 'id', 'ipaddress', 'type', 'scope', 'path', 'provider', 'hypervisor', 'overprovisionfactor', 'disksizetotal', 'disksizeallocated', 'disksizeused', 'clustername', 'podname', 'zonename', 'created' ],
actions: [ actions: [
{ {
@ -11,48 +11,38 @@ export default {
icon: 'plus', icon: 'plus',
label: 'label.add.primary.storage', label: 'label.add.primary.storage',
listView: true, listView: true,
args: [ args: ['scope', 'zoneid', 'podid', 'clusterid', 'name', 'provider', 'managed', 'capacityBytes', 'capacityIops', 'url', 'tags']
'scope', 'zoneid', 'podid', 'clusterid', 'name', 'provider', 'managed', 'capacityBytes', 'capacityIops', 'url', 'tags'
]
}, },
{ {
api: 'updateStoragePool', api: 'updateStoragePool',
icon: 'edit', icon: 'edit',
label: 'label.edit', label: 'label.edit',
dataView: true, dataView: true,
args: [ args: ['id', 'tags', 'capacitybytes', 'capacityiops']
'id', 'tags', 'capacitybytes', 'capacityiops'
]
}, },
{ {
api: 'enableStorageMaintenance', api: 'enableStorageMaintenance',
icon: 'enablemaintenance', icon: 'plus-square',
label: 'label.action.enable.maintenance.mode', label: 'label.action.enable.maintenance.mode',
dataView: true, dataView: true,
hidden: (record) => { return !(record.state === 'Up' || record.state === 'Connecting' || record.state === 'Down' || record.state === 'ErrorInMaintenance') }, args: ['id'],
args: [ show: (record) => { return ['Up', 'Connecting', 'Down', 'ErrorInMaintenance'].includes(record.state) }
'id'
]
}, },
{ {
api: 'cancelStorageMaintenance', api: 'cancelStorageMaintenance',
icon: 'cancelmaintenance', icon: 'minus-square',
label: 'label.action.cancel.maintenance.mode', label: 'label.action.cancel.maintenance.mode',
dataView: true, dataView: true,
hidden: (record) => { return !(record.state === 'ErrorInMaintenance' || record.state === 'PrepareForMaintenance' || record.state === 'Maintenance') }, args: ['id'],
args: [ show: (record) => { return ['Maintenance', 'PrepareForMaintenance', 'ErrorInMaintenance'].includes(record.state) }
'id'
]
}, },
{ {
api: 'deleteStoragePool', api: 'deleteStoragePool',
icon: 'delete', icon: 'delete',
label: 'label.action.delete.primary.storage', label: 'label.action.delete.primary.storage',
dataView: true, dataView: true,
hidden: (record) => { return !(record.state === 'Down' || record.state === 'Alert' || record.state === 'Maintenance' || record.state === 'Disconnected') }, args: ['id', 'forced'],
args: [ show: (record) => { return !(record.state === 'Down' || record.state === 'Alert' || record.state === 'Maintenance' || record.state === 'Disconnected') }
'id', 'forced'
]
} }
] ]
} }

View File

@ -8,84 +8,68 @@ export default {
actions: [ actions: [
{ {
api: 'startRouter', api: 'startRouter',
icon: 'startvm', icon: 'caret-right',
label: 'label.action.start.router', label: 'label.action.start.router',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Stopped' }, args: ['id'],
args: [ show: (record) => { return record.state === 'Stopped' }
'id'
]
}, },
{ {
api: 'stopRouter', api: 'stopRouter',
icon: 'stopvm', icon: 'stop',
label: 'label.action.stop.router', label: 'label.action.stop.router',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['id', 'forced'],
args: [ show: (record) => { return record.state === 'Running' }
'id', 'forced'
]
},
{
api: 'scaleSystemVm',
icon: 'scalevm',
label: 'label.change.service.offering',
dataView: true,
hidden: (record) => { return !(record.state === 'Stopped' || record.hypervisor === 'VMWare') },
args: [
'id', 'serviceofferingid'
]
}, },
{ {
api: 'rebootRouter', api: 'rebootRouter',
icon: 'rebootvm', icon: 'sync',
label: 'label.action.reboot.router', label: 'label.action.reboot.router',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['id'],
args: [ hidden: (record) => { return record.state === 'Running' }
'id'
]
}, },
{ {
api: 'migrateSystemVm', api: 'scaleSystemVm',
icon: 'migratevm', icon: 'arrows-alt',
label: 'label.action.migrate.router', label: 'label.change.service.offering',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['id', 'serviceofferingid'],
args: [ show: (record) => { return record.state === 'Stopped' || record.hypervisor === 'VMWare' }
'hostid', 'virtualmachineid'
]
}, },
{ {
api: 'upgradeRouterTemplate', api: 'upgradeRouterTemplate',
icon: 'upgraderouter', icon: 'fullscreen',
label: 'label.upgrade.router.newer.template', label: 'label.upgrade.router.newer.template',
dataView: true, dataView: true,
groupAction: true, groupAction: true,
hidden: (record) => { return record.requiresupgrade }, args: ['id'],
args: [ show: (record) => { return record.requiresupgrade }
'id' },
] {
api: 'migrateSystemVm',
icon: 'drag',
label: 'label.action.migrate.router',
dataView: true,
args: ['virtualmachineid', 'hostid'],
show: (record) => { return record.state === 'Running' }
}, },
{ {
api: 'runDiagnostics', api: 'runDiagnostics',
icon: 'diagnostics', icon: 'reconciliation',
label: 'label.action.run.diagnostics', label: 'label.action.run.diagnostics',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['targetid', 'type', 'ipaddress', 'params'],
args: [ show: (record) => { return record.state === 'Running' }
'targetid', 'ipaddress', 'type', 'params'
]
}, },
{ {
api: 'destroyRouter', api: 'destroyRouter',
icon: 'delete', icon: 'delete',
label: 'label.destroy.router', label: 'label.destroy.router',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' && record.state !== 'Stopped' }, args: ['id'],
args: [ show: (record) => { return ['Running', 'Error', 'Stopped'].includes(record.state) }
'id'
]
} }
] ]
} }

View File

@ -11,18 +11,14 @@ export default {
icon: 'plus', icon: 'plus',
label: 'label.add.secondary.storage', label: 'label.add.secondary.storage',
listView: true, listView: true,
args: [ args: ['name', 'provider', 'zoneid', 'url', 'details']
'name', 'provider', 'zoneid', 'url'
]
}, },
{ {
api: 'deleteImageStore', api: 'deleteImageStore',
icon: 'delete', icon: 'delete',
label: 'label.action.delete.primary.storage', label: 'label.action.delete.secondary.storage',
dataView: true, dataView: true,
args: [ args: ['id']
'id'
]
} }
] ]
} }

View File

@ -8,73 +8,59 @@ export default {
actions: [ actions: [
{ {
api: 'startSystemVm', api: 'startSystemVm',
icon: 'startvm', icon: 'caret-right',
label: 'label.action.start.systemvm', label: 'label.action.start.systemvm',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Stopped' }, args: ['id'],
args: [ show: (record) => { return record.state === 'Stopped' }
'id'
]
}, },
{ {
api: 'stopSystemVm', api: 'stopSystemVm',
icon: 'stopvm', icon: 'stop',
label: 'label.action.stop.systemvm', label: 'label.action.stop.systemvm',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['id'],
args: [ show: (record) => { return record.state === 'Running' }
'id'
]
}, },
{ {
api: 'rebootSystemVm', api: 'rebootSystemVm',
icon: 'rebootvm', icon: 'sync',
label: 'label.action.reboot.systemvm', label: 'label.action.reboot.systemvm',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['id'],
args: [ show: (record) => { return record.state === 'Running' }
'id'
]
}, },
{ {
api: 'scaleSystemVm', api: 'scaleSystemVm',
icon: 'scalevm', icon: 'arrows-alt',
label: 'label.change.service.offering', label: 'label.change.service.offering',
dataView: true, dataView: true,
hidden: (record) => { return !(record.state === 'Stopped' || record.hypervisor === 'VMWare') }, args: ['id', 'serviceofferingid'],
args: [ show: (record) => { return record.hypervisor === 'VMWare' || record.state === 'Stopped' }
'id', 'serviceofferingid'
]
}, },
{ {
api: 'migrateSystemVm', api: 'migrateSystemVm',
icon: 'migratevm', icon: 'drag',
label: 'label.action.migrate.systemvm', label: 'label.action.migrate.systemvm',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['virtualmachineid', 'hostid'],
args: [ show: (record) => { return record.state === 'Running' }
'hostid', 'virtualmachineid'
]
}, },
{ {
api: 'runDiagnostics', api: 'runDiagnostics',
icon: 'diagnostics', icon: 'reconciliation',
label: 'label.action.run.diagnostics', label: 'label.action.run.diagnostics',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' }, args: ['targetid', 'type', 'ipaddress', 'params'],
args: [ show: (record) => { return record.state === 'Running' }
'targetid', 'ipaddress', 'type', 'params'
]
}, },
{ {
api: 'destroySystemVm', api: 'destroySystemVm',
icon: 'delete', icon: 'delete',
label: 'label.action.destroy.systemvm', label: 'label.action.destroy.systemvm',
dataView: true, dataView: true,
hidden: (record) => { return record.state !== 'Running' && record.state !== 'Error' && record.state !== 'Stopped' }, args: ['id'],
args: [ show: (record) => { return ['Running', 'Error', 'Stopped'].includes(record.state) }
'id'
]
} }
] ]
} }

View File

@ -2,8 +2,8 @@ export default {
name: 'zone', name: 'zone',
title: 'Zones', title: 'Zones',
icon: 'global', icon: 'global',
permission: [ 'listZones', 'listZonesMetrics' ], permission: [ 'listZonesMetrics', 'listZones' ],
columns: [ 'name', 'allocationstate', 'networktype', 'guestcidraddress' ], columns: [ 'name', 'state', 'networktype', 'clusters', 'cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal' ],
details: [ 'name', 'id', 'allocationstate', 'networktype', 'guestcidraddress', 'localstorageenabled', 'securitygroupsenabled', 'dns1', 'dns2', 'internaldns1', 'internaldns2' ], details: [ 'name', 'id', 'allocationstate', 'networktype', 'guestcidraddress', 'localstorageenabled', 'securitygroupsenabled', 'dns1', 'dns2', 'internaldns1', 'internaldns2' ],
actions: [ actions: [
{ {
@ -16,140 +16,128 @@ export default {
}, },
{ {
api: 'updateZone', api: 'updateZone',
icon: 'enable', icon: 'edit',
label: 'label.action.disable.zone', label: 'Edit Zone',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Enabled' }, args: ['id', 'name', 'dns1', 'dns2', 'ip6dns1', 'ip6dns2', 'internaldns1', 'internaldns2', 'guestcidraddress', 'domain', 'localstorageenabled'],
args: [ 'id' ], show: (record) => { return record.networktype === 'Advanced' }
defaultArgs: { allocationstate: 'Disabled' }
}, },
{ {
api: 'updateZone', api: 'updateZone',
icon: 'disable', icon: 'edit',
label: 'Edit Zone',
dataView: true,
args: ['id', 'name', 'dns1', 'dns2', 'ip6dns1', 'ip6dns2', 'internaldns1', 'internaldns2', 'domain', 'localstorageenabled'],
show: (record) => { return record.networktype === 'Basic' }
},
{
api: 'updateZone',
icon: 'pause-circle',
label: 'label.action.disable.zone',
dataView: true,
args: ['id'],
defaultArgs: { allocationstate: 'Disabled' },
show: (record) => { return record.allocationstate === 'Enabled' }
},
{
api: 'updateZone',
icon: 'play-circle',
label: 'label.action.enable.zone', label: 'label.action.enable.zone',
dataView: true, dataView: true,
hidden: (record) => { return record.allocationstate === 'Disabled' },
args: [ 'id' ], args: [ 'id' ],
defaultArgs: { allocationstate: 'Enabled' } defaultArgs: { allocationstate: 'Enabled' },
show: (record) => { return record.allocationstate === 'Disabled' }
}, },
{ {
api: 'dedicateZone', api: 'dedicateZone',
icon: 'dedicate', icon: 'user-add',
label: 'label.dedicate.zone', label: 'label.dedicate.zone',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid !== null }, args: ['zoneid', 'domainid', 'account'],
args: [ show: (record) => { return !record.domainid }
'zoneId', 'domainid', 'account'
]
}, },
{ {
api: 'releaseDedicatedZone', api: 'releaseDedicatedZone',
icon: 'release', icon: 'user-delete',
label: 'label.release.dedicated.zone', label: 'label.release.dedicated.zone',
dataView: true, dataView: true,
hidden: (record) => { return record.domainid !== null }, args: ['zoneid'],
args: [ show: (record) => { return record.domainid }
'zoneid' },
] {
api: 'enableOutOfBandManagementForZone',
icon: 'plus-circle',
label: 'label.outofbandmanagement.enable',
dataView: true,
args: ['zoneid'],
show: (record) => {
return !record.resourcedetails || !record.resourcedetails.outOfBandManagementEnabled ||
record.resourcedetails.outOfBandManagementEnabled === 'false'
}
},
{
api: 'disableOutOfBandManagementForZone',
icon: 'minus-circle',
label: 'label.outofbandmanagement.disable',
dataView: true,
args: ['zoneid'],
show: (record) => {
return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
}
},
{
api: 'enableHAForZone',
icon: 'eye',
label: 'label.ha.enable',
dataView: true,
args: ['zoneid'],
show: (record) => {
return !record.resourcedetails || !record.resourcedetails.resourceHAEnabled ||
record.resourcedetails.resourceHAEnabled === 'false'
}
},
{
api: 'disableHAForZone',
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
args: ['zoneid'],
show: (record) => {
return record.resourcedetails && record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
}
},
{
api: 'addVmwareDc',
icon: 'block',
label: 'label.add.vmware.datacenter',
dataView: true,
args: ['zoneid', 'name', 'vcenter', 'username', 'password'],
show: (record) => { return !record.vmwaredcid }
},
{
api: 'updateVmwareDc',
icon: 'block',
label: 'label.update.vmware.datacenter',
dataView: true,
args: ['zoneid', 'name', 'vcenter', 'username', 'password', 'isrecursive'],
show: (record) => { return record.vmwaredcid }
},
{
api: 'removeVmwareDc',
icon: 'minus-square',
label: 'label.remove.vmware.datacenter',
dataView: true,
args: ['zoneid'],
show: (record) => { return record.vmwaredcid }
}, },
{ {
api: 'deleteZone', api: 'deleteZone',
icon: 'delete', icon: 'delete',
label: 'label.action.delete.zone', label: 'label.action.delete.zone',
dataView: true, dataView: true,
args: [ args: ['id']
'id'
]
},
{
api: 'updateZone',
icon: 'disable',
label: 'label.edit',
dataView: true,
hidden: (record) => { return record.networktype === 'Advanced' },
args: [
'id', 'name', 'dns1', 'dns2', 'ip6dns1', 'ip6dns2', 'guestcidraddress', 'internaldns1', 'internaldns2', 'domain', 'localstorageenabled'
]
},
{
api: 'updateZone',
icon: 'disable',
label: 'label.edit',
dataView: true,
hidden: (record) => { return record.networktype === 'Basic' },
args: [
'id', 'name', 'dns1', 'dns2', 'ip6dns1', 'ip6dns2', 'internaldns1', 'internaldns2', 'domain', 'localstorageenabled'
]
},
{
api: 'disableOutOfBandManagementForZone',
icon: 'disableband',
label: 'label.outofbandmanagement.disable',
dataView: true,
hidden: (record) => { return !(record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled && record.resourcedetails.outOfBandManagementEnabled === 'false') },
args: [
'zoneid'
]
},
{
api: 'enableOutOfBandManagementForZone',
icon: 'enableband',
label: 'label.outofbandmanagement.enable',
dataView: true,
hidden: (record) => { return record.resourcedetails && record.resourcedetails.outOfBandManagementEnabled && record.resourcedetails.outOfBandManagementEnabled === 'false' },
args: [
'zoneid'
]
},
{
api: 'disableHAForZone',
icon: 'disableha',
label: 'label.ha.disable',
dataView: true,
hidden: (record) => { return !(record.resourcedetails && record.resourcedetails.resourceHAEnabled && record.resourcedetails.resourceHAEnabled === 'false') },
args: [
'zoneid'
]
},
{
api: 'enableHAForZone',
icon: 'enableha',
label: 'label.ha.enable',
dataView: true,
hidden: (record) => { return record.resourcedetails && record.resourcedetails.resourceHAEnabled && record.resourcedetails.resourceHAEnabled === 'false' },
args: [
'zoneid'
]
},
{
api: 'addVmwareDc',
icon: 'addvmwdc',
label: 'label.add.vmware.datacenter',
dataView: true,
hidden: (record) => { return record.vmwaredcId === null },
args: [
'zoneid', 'name', 'vcenter', 'username', 'password'
]
},
{
api: 'updateVmwareDc',
icon: 'addvmwdc',
label: 'label.update.vmware.datacenter',
dataView: true,
hidden: (record) => { return record.vmwaredcId !== null },
args: [
'zoneid', 'name', 'vcenter', 'username', 'password'
]
},
{
api: 'removeVmwareDc',
icon: 'addvmwdc',
label: 'label.remove.vmware.datacenter',
dataView: true,
hidden: (record) => { return record.vmwaredcId !== null },
args: [
'zoneid'
]
} }
] ]
} }