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 341e6e6 config: implement API arg remappings
341e6e6 is described below
commit 341e6e6c1e58ca12e8dd71fb4ce85763d2831eb5
Author: Rohit Yadav <[email protected]>
AuthorDate: Mon Nov 25 17:46:54 2019 +0530
config: implement API arg remappings
Signed-off-by: Rohit Yadav <[email protected]>
---
src/components/view/InfoCard.vue | 2 +-
src/config/router.js | 3 +
src/config/section/compute.js | 57 +++++++++------
src/config/section/event.js | 21 ++++--
src/config/section/iam.js | 48 ++++++++++---
src/config/section/infra.js | 18 ++++-
src/config/section/infra/clusters.js | 54 +++++++++++----
src/config/section/infra/hosts.js | 80 +++++++++++++++++++---
.../section/{event.js => infra/phynetworks.js} | 35 +++-------
src/config/section/infra/pods.js | 14 +++-
src/config/section/infra/routers.js | 17 ++++-
src/config/section/infra/systemVms.js | 24 +++++--
src/config/section/infra/zones.js | 71 ++++++++++++++++---
src/config/section/network.js | 56 +++++++++++++--
src/config/section/offering.js | 48 +++++++++++++
src/config/section/project.js | 7 +-
src/config/section/storage.js | 25 +++++--
src/views/AutogenView.vue | 2 +
18 files changed, 460 insertions(+), 122 deletions(-)
diff --git a/src/components/view/InfoCard.vue b/src/components/view/InfoCard.vue
index 6d7438a..a739c9b 100644
--- a/src/components/view/InfoCard.vue
+++ b/src/components/view/InfoCard.vue
@@ -308,7 +308,7 @@
<div class="account-center-tags" v-if="$route.meta.related">
<span v-for="item in $route.meta.related" :key="item.path">
- <router-link :to="{ path: '/' + item.name + '?' + item.param + '=' +
resource.id }">
+ <router-link :to="{ path: '/' + item.name + '?' + item.param + '=' +
(item.param === 'account' ? resource.name + '&domainid=' + resource.domainid :
resource.id) }">
<a-button style="margin-right: 10px">
View {{ $t(item.title) }}
</a-button>
diff --git a/src/config/router.js b/src/config/router.js
index 77f11ef..c580de3 100644
--- a/src/config/router.js
+++ b/src/config/router.js
@@ -55,6 +55,7 @@ export function generateRouterMap (section) {
keepAlive: true,
icon: child.icon,
docHelp: child.docHelp,
+ hidden: child.hidden,
permission: child.permission,
resourceType: child.resourceType,
params: child.params ? child.params : {},
@@ -73,6 +74,7 @@ export function generateRouterMap (section) {
name: child.name,
keepAlive: true,
icon: child.icon,
+ hidden: child.hidden,
permission: child.permission,
resourceType: child.resourceType,
params: child.params ? child.params : {},
@@ -119,6 +121,7 @@ export function generateRouterMap (section) {
keepAlive: true,
icon: section.icon,
docHelp: section.docHelp,
+ hidden: section.hidden,
permission: section.permission,
resourceType: section.resourceType,
params: section.params ? section.params : {},
diff --git a/src/config/section/compute.js b/src/config/section/compute.js
index b518400..627500b 100644
--- a/src/config/section/compute.js
+++ b/src/config/section/compute.js
@@ -155,27 +155,6 @@ export default {
}
},
{
- api: 'migrateVirtualMachine',
- icon: 'drag',
- label: 'label.migrate.instance.to.host',
- dataView: true,
- show: (record) => { return ['Running'].includes(record.state) }
- },
- {
- api: 'migrateVirtualMachineWithVolume',
- icon: 'export',
- label: 'Migrate VM with Volume(s)',
- dataView: true,
- show: (record) => { return ['Running'].includes(record.state) }
- },
- {
- api: 'migrateVirtualMachine',
- icon: 'drag',
- label: 'label.migrate.instance.to.ps',
- dataView: true,
- show: (record) => { return ['Stopped'].includes(record.state) }
- },
- {
api: 'updateVMAffinityGroup',
icon: 'swap',
label: 'label.change.affinity',
@@ -200,6 +179,42 @@ export default {
show: (record) => { return ['Stopped'].includes(record.state) }
},
{
+ api: 'migrateVirtualMachine',
+ icon: 'drag',
+ label: 'label.migrate.instance.to.host',
+ dataView: true,
+ show: (record) => { return ['Running'].includes(record.state) },
+ args: ['hostid', 'virtualmachineid'],
+ mapping: {
+ virtualmachineid: {
+ value: (record) => { return record.id }
+ }
+ }
+ },
+ {
+ api: 'migrateVirtualMachineWithVolume',
+ icon: 'export',
+ label: 'Migrate VM with Volume(s)',
+ dataView: true,
+ show: (record) => { return ['Running'].includes(record.state) }
+ },
+ {
+ api: 'migrateVirtualMachine',
+ icon: 'drag',
+ label: 'label.migrate.instance.to.ps',
+ dataView: true,
+ show: (record) => { return ['Stopped'].includes(record.state) },
+ args: ['storageid', 'virtualmachineid'],
+ mapping: {
+ storageid: {
+ api: 'listStoragePools'
+ },
+ virtualmachineid: {
+ value: (record) => { return record.id }
+ }
+ }
+ },
+ {
api: 'resetPasswordForVirtualMachine',
icon: 'key',
label: 'Reset Instance Password',
diff --git a/src/config/section/event.js b/src/config/section/event.js
index 0e15e2b..0a501a1 100644
--- a/src/config/section/event.js
+++ b/src/config/section/event.js
@@ -22,25 +22,32 @@ export default {
permission: ['listEvents'],
columns: ['username', 'description', 'state', 'level', 'type', 'account',
'domain', 'created'],
details: ['username', 'id', 'description', 'state', 'level', 'type',
'account', 'domain', 'created'],
- related: [{
- name: 'event',
- title: 'Event Timeline',
- param: 'startid'
- }],
actions: [
{
api: 'archiveEvents',
icon: 'book',
label: 'Archive Event',
+ listView: true,
dataView: true,
- args: ['ids']
+ args: ['ids'],
+ mapping: {
+ ids: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'deleteEvents',
icon: 'delete',
label: 'Delete Event',
+ listView: true,
dataView: true,
- args: ['ids']
+ args: ['ids'],
+ mapping: {
+ ids: {
+ value: (record) => { return record.id }
+ }
+ }
}
]
}
diff --git a/src/config/section/iam.js b/src/config/section/iam.js
index aaca2bb..d910392 100644
--- a/src/config/section/iam.js
+++ b/src/config/section/iam.js
@@ -85,6 +85,11 @@ export default {
permission: ['listAccounts'],
columns: ['name', 'state', 'firstname', 'lastname', 'rolename',
'roletype', 'domain'],
details: ['name', 'id', 'rolename', 'roletype', 'domain',
'networkdomain', 'iptotal', 'vmtotal', 'volumetotal', 'receivedbytes',
'sentbytes', 'vmlimit', 'iplimit', 'volumelimit', 'snapshotlimit',
'templatelimit', 'vpclimit', 'cpulimit', 'memorylimit', 'networklimit',
'primarystoragelimit', 'secondarystoragelimit'],
+ related: [{
+ name: 'accountuser',
+ title: 'Users',
+ param: 'account'
+ }],
actions: [
{
api: 'createAccount',
@@ -105,7 +110,15 @@ export default {
icon: 'sync',
label: 'Update Resource Count',
dataView: true,
- args: ['account', 'domainid']
+ args: ['account', 'domainid'],
+ mapping: {
+ account: {
+ value: (record) => { return record.account }
+ },
+ domainid: {
+ value: (record) => { return record.domainid }
+ }
+ }
},
{
api: 'enableAccount',
@@ -121,7 +134,12 @@ export default {
label: 'Disable Account',
dataView: true,
show: (record) => { return record.state === 'enabled' },
- params: { lock: 'false' }
+ args: ['lock'],
+ mapping: {
+ lock: {
+ value: (record) => { return false }
+ }
+ }
},
{
api: 'disableAccount',
@@ -129,17 +147,19 @@ export default {
label: 'Lock account',
dataView: true,
show: (record) => { return record.state === 'enabled' },
- args: ['lock']
+ args: ['lock'],
+ mapping: {
+ lock: {
+ value: (record) => { return true }
+ }
+ }
},
{
api: 'deleteAccount',
icon: 'delete',
label: 'Delete account',
dataView: true,
- hidden: (record) => { return record.name === 'admin' },
- args: [
- 'id'
- ]
+ hidden: (record) => { return record.name === 'admin' }
}
]
},
@@ -206,14 +226,24 @@ export default {
icon: 'plus',
label: 'Create Role',
listView: true,
- args: ['name', 'description', 'type']
+ args: ['name', 'description', 'type'],
+ mapping: {
+ type: {
+ options: ['Admin', 'DomainAdmin', 'User']
+ }
+ }
},
{
api: 'updateRole',
icon: 'edit',
label: 'Edit Role',
dataView: true,
- args: ['name', 'description', 'type']
+ args: ['name', 'description', 'type'],
+ mapping: {
+ type: {
+ options: ['Admin', 'DomainAdmin', 'User']
+ }
+ }
},
{
api: 'deleteRole',
diff --git a/src/config/section/infra.js b/src/config/section/infra.js
index 7ffbdde..e89e67a 100644
--- a/src/config/section/infra.js
+++ b/src/config/section/infra.js
@@ -16,6 +16,7 @@
// under the License.
import zones from '@/config/section/infra/zones'
+import phynetworks from '@/config/section/infra/phynetworks'
import pods from '@/config/section/infra/pods'
import clusters from '@/config/section/infra/clusters'
import hosts from '@/config/section/infra/hosts'
@@ -38,6 +39,7 @@ export default {
component: () => import('@/views/infra/InfraSummary.vue')
},
zones,
+ phynetworks,
pods,
clusters,
hosts,
@@ -48,7 +50,7 @@ export default {
{
name: 'cpusocket',
title: 'CPU Sockets',
- icon: 'api',
+ icon: 'inbox',
permission: ['listHosts'],
params: { type: 'routing' },
columns: ['hypervisor', 'hosts', 'cpusockets']
@@ -73,14 +75,24 @@ export default {
icon: 'book',
label: 'Archive Alert',
dataView: true,
- args: ['ids']
+ args: ['ids'],
+ mapping: {
+ ids: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'deleteAlerts',
icon: 'delete',
label: 'Delete Alert',
dataView: true,
- args: ['ids']
+ args: ['ids'],
+ mapping: {
+ ids: {
+ value: (record) => { return record.id }
+ }
+ }
}
]
}
diff --git a/src/config/section/infra/clusters.js
b/src/config/section/infra/clusters.js
index ae9e8d7..c9eeaae 100644
--- a/src/config/section/infra/clusters.js
+++ b/src/config/section/infra/clusters.js
@@ -37,35 +37,45 @@ export default {
},
{
api: 'updateCluster',
- icon: 'pause-circle',
+ icon: 'play-circle',
label: 'label.action.enable.cluster',
dataView: true,
- defaultArgs: { allocationstate: 'Disabled' },
- show: (record) => { return record.allocationstate === 'Enabled' }
+ defaultArgs: { allocationstate: 'Enabled' },
+ show: (record) => { return record.allocationstate === 'Disabled' }
},
{
api: 'updateCluster',
- icon: 'play-circle',
+ icon: 'pause-circle',
label: 'label.action.disable.cluster',
dataView: true,
- defaultArgs: { allocationstate: 'Enabled' },
- show: (record) => { return record.allocationstate === 'Disabled' }
+ defaultArgs: { allocationstate: 'Disabled' },
+ show: (record) => { return record.allocationstate === 'Enabled' }
},
{
api: 'dedicateCluster',
icon: 'user-add',
label: 'label.dedicate.cluster',
dataView: true,
+ show: (record) => { return !record.domainid },
args: ['clusterid', 'domainid', 'account'],
- show: (record) => { return !record.domainid }
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'releaseDedicatedCluster',
icon: 'user-delete',
label: 'label.release.dedicated.cluster',
dataView: true,
+ show: (record) => { return record.domainid },
args: ['clusterid'],
- show: (record) => { return record.domainid }
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'updateCluster',
@@ -88,10 +98,15 @@ export default {
icon: 'plus-circle',
label: 'label.outofbandmanagement.enable',
dataView: true,
- args: ['clusterid'],
show: (record) => {
return !record.resourcedetails ||
!record.resourcedetails.outOfBandManagementEnabled ||
record.resourcedetails.outOfBandManagementEnabled === 'false'
+ },
+ args: ['clusterid'],
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -99,10 +114,15 @@ export default {
icon: 'minus-circle',
label: 'label.outofbandmanagement.disable',
dataView: true,
- args: ['clusterid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
+ },
+ args: ['clusterid'],
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -110,10 +130,15 @@ export default {
icon: 'eye',
label: 'label.ha.enable',
dataView: true,
- args: ['clusterid'],
show: (record) => {
return !record.resourcedetails ||
!record.resourcedetails.resourceHAEnabled ||
record.resourcedetails.resourceHAEnabled === 'false'
+ },
+ args: ['clusterid'],
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -121,10 +146,15 @@ export default {
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
- args: ['clusterid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
+ },
+ args: ['clusterid'],
+ mapping: {
+ clusterid: {
+ value: (record) => { return record.id }
+ }
}
},
{
diff --git a/src/config/section/infra/hosts.js
b/src/config/section/infra/hosts.js
index 64c1cbc..d19577b 100644
--- a/src/config/section/infra/hosts.js
+++ b/src/config/section/infra/hosts.js
@@ -49,8 +49,13 @@ export default {
icon: 'safety-certificate',
label: 'label.action.secure.host',
dataView: true,
+ show: (record) => { return record.hypervisor === 'KVM' },
args: ['hostid'],
- show: (record) => { return record.hypervisor === 'KVM' }
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'reconnectHost',
@@ -80,16 +85,26 @@ export default {
icon: 'user-add',
label: 'label.dedicate.host',
dataView: true,
+ show: (record) => { return !record.domainid },
args: ['hostid', 'domainid', 'account'],
- show: (record) => { return !record.domainid }
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'releaseDedicatedHost',
icon: 'user-delete',
label: 'label.release.dedicated.host',
dataView: true,
+ show: (record) => { return record.domainid },
args: ['hostid'],
- show: (record) => { return record.domainid }
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'prepareHostForMaintenance',
@@ -110,17 +125,30 @@ export default {
icon: 'setting',
label: 'label.outofbandmanagement.configure',
dataView: true,
- args: ['hostid', 'address', 'port', 'username', 'password', 'driver']
+ args: ['hostid', 'address', 'port', 'username', 'password', 'driver'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ },
+ driver: {
+ options: ['ipmitool', 'nestedcloudstack']
+ }
+ }
},
{
api: 'enableOutOfBandManagementForHost',
icon: 'plus-circle',
label: 'label.outofbandmanagement.enable',
dataView: true,
- args: ['hostid'],
show: (record) => {
return !record.resourcedetails ||
!record.resourcedetails.outOfBandManagementEnabled ||
record.resourcedetails.outOfBandManagementEnabled === 'false'
+ },
+ args: ['hostid'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -128,10 +156,15 @@ export default {
icon: 'minus-circle',
label: 'label.outofbandmanagement.disable',
dataView: true,
- args: ['hostid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
+ },
+ args: ['hostid'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -139,10 +172,15 @@ export default {
icon: 'login',
label: 'label.outofbandmanagement.action.issue',
dataView: true,
- args: ['hostid', 'action'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
+ },
+ args: ['hostid', 'action'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -150,10 +188,15 @@ export default {
icon: 'key',
label: 'label.outofbandmanagement.changepassword',
dataView: true,
- args: ['hostid', 'password'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
+ },
+ args: ['hostid', 'password'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -161,17 +204,27 @@ export default {
icon: 'tool',
label: 'label.ha.configure',
dataView: true,
- args: ['hostid', 'provider']
+ args: ['hostid', 'provider'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'enableHAForHost',
icon: 'eye',
label: 'label.ha.enable',
dataView: true,
- args: ['hostid'],
show: (record) => {
return !record.resourcedetails ||
!record.resourcedetails.resourceHAEnabled ||
record.resourcedetails.resourceHAEnabled === 'false'
+ },
+ args: ['hostid'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -179,10 +232,15 @@ export default {
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
- args: ['hostid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
+ },
+ args: ['hostid'],
+ mapping: {
+ hostid: {
+ value: (record) => { return record.id }
+ }
}
},
{
diff --git a/src/config/section/event.js
b/src/config/section/infra/phynetworks.js
similarity index 55%
copy from src/config/section/event.js
copy to src/config/section/infra/phynetworks.js
index 0e15e2b..aa59add 100644
--- a/src/config/section/event.js
+++ b/src/config/section/infra/phynetworks.js
@@ -16,31 +16,12 @@
// under the License.
export default {
- name: 'event',
- title: 'Events',
- icon: 'schedule',
- permission: ['listEvents'],
- columns: ['username', 'description', 'state', 'level', 'type', 'account',
'domain', 'created'],
- details: ['username', 'id', 'description', 'state', 'level', 'type',
'account', 'domain', 'created'],
- related: [{
- name: 'event',
- title: 'Event Timeline',
- param: 'startid'
- }],
- actions: [
- {
- api: 'archiveEvents',
- icon: 'book',
- label: 'Archive Event',
- dataView: true,
- args: ['ids']
- },
- {
- api: 'deleteEvents',
- icon: 'delete',
- label: 'Delete Event',
- dataView: true,
- args: ['ids']
- }
- ]
+ name: 'physicalnetwork',
+ title: 'Physical Networks',
+ icon: 'api',
+ hidden: true,
+ permission: ['listPhysicalNetworks'],
+ columns: ['name', 'state', 'isolationmethods', 'vlan',
'broadcastdomainrange', 'zoneid'],
+ details: ['name', 'state', 'isolationmethods', 'vlan',
'broadcastdomainrange', 'zoneid'],
+ actions: []
}
diff --git a/src/config/section/infra/pods.js b/src/config/section/infra/pods.js
index 23b80e4..19ef030 100644
--- a/src/config/section/infra/pods.js
+++ b/src/config/section/infra/pods.js
@@ -51,16 +51,26 @@ export default {
icon: 'user-add',
label: 'label.dedicate.pod',
dataView: true,
+ show: (record) => { return !record.domainid },
args: ['podid', 'domainid', 'account'],
- show: (record) => { return !record.domainid }
+ mapping: {
+ podid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'releaseDedicatedPod',
icon: 'user-delete',
label: 'label.release.dedicated.pod',
dataView: true,
+ show: (record) => { return record.domainid },
args: ['podid'],
- show: (record) => { return record.domainid }
+ mapping: {
+ podid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'updatePod',
diff --git a/src/config/section/infra/routers.js
b/src/config/section/infra/routers.js
index f3631bb..4491693 100644
--- a/src/config/section/infra/routers.js
+++ b/src/config/section/infra/routers.js
@@ -66,16 +66,29 @@ export default {
icon: 'drag',
label: 'label.action.migrate.router',
dataView: true,
+ show: (record) => { return record.state === 'Running' },
args: ['virtualmachineid', 'hostid'],
- show: (record) => { return record.state === 'Running' }
+ mapping: {
+ virtualmachineid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'runDiagnostics',
icon: 'reconciliation',
label: 'label.action.run.diagnostics',
dataView: true,
+ show: (record) => { return record.state === 'Running' },
args: ['targetid', 'type', 'ipaddress', 'params'],
- show: (record) => { return record.state === 'Running' }
+ mapping: {
+ targetid: {
+ value: (record) => { return record.id }
+ },
+ type: {
+ options: ['ping', 'traceroute', 'arping']
+ }
+ }
},
{
api: 'destroyRouter',
diff --git a/src/config/section/infra/systemVms.js
b/src/config/section/infra/systemVms.js
index 3c87da0..8c0e93f 100644
--- a/src/config/section/infra/systemVms.js
+++ b/src/config/section/infra/systemVms.js
@@ -35,7 +35,8 @@ export default {
icon: 'stop',
label: 'label.action.stop.systemvm',
dataView: true,
- show: (record) => { return record.state === 'Running' }
+ show: (record) => { return record.state === 'Running' },
+ args: ['forced']
},
{
api: 'rebootSystemVm',
@@ -49,24 +50,37 @@ export default {
icon: 'arrows-alt',
label: 'label.change.service.offering',
dataView: true,
- args: ['serviceofferingid'],
- show: (record) => { return record.hypervisor !== 'KVM' }
+ show: (record) => { return record.hypervisor !== 'KVM' },
+ args: ['serviceofferingid']
},
{
api: 'migrateSystemVm',
icon: 'drag',
label: 'label.action.migrate.systemvm',
dataView: true,
+ show: (record) => { return record.state === 'Running' },
args: ['virtualmachineid', 'hostid'],
- show: (record) => { return record.state === 'Running' }
+ mapping: {
+ virtualmachineid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'runDiagnostics',
icon: 'reconciliation',
label: 'label.action.run.diagnostics',
dataView: true,
+ show: (record) => { return record.state === 'Running' },
args: ['targetid', 'type', 'ipaddress', 'params'],
- show: (record) => { return record.state === 'Running' }
+ mapping: {
+ targetid: {
+ value: (record) => { return record.id }
+ },
+ type: {
+ options: ['ping', 'traceroute', 'arping']
+ }
+ }
},
{
api: 'destroySystemVm',
diff --git a/src/config/section/infra/zones.js
b/src/config/section/infra/zones.js
index 4d8edb0..ee8d3fd 100644
--- a/src/config/section/infra/zones.js
+++ b/src/config/section/infra/zones.js
@@ -23,6 +23,10 @@ export default {
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'],
related: [{
+ name: 'physicalnetwork',
+ title: 'Physical Networks',
+ param: 'zoneid'
+ }, {
name: 'pod',
title: 'Pods',
param: 'zoneid'
@@ -35,6 +39,10 @@ export default {
title: 'Hosts',
param: 'zoneid'
}, {
+ name: 'systemvm',
+ title: 'SystemVMs',
+ param: 'zoneid'
+ }, {
name: 'storagepool',
title: 'Primate Storage',
param: 'zoneid'
@@ -89,26 +97,41 @@ export default {
icon: 'user-add',
label: 'label.dedicate.zone',
dataView: true,
+ show: (record) => { return !record.domainid },
args: ['zoneid', 'domainid', 'account'],
- show: (record) => { return !record.domainid }
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'releaseDedicatedZone',
icon: 'user-delete',
label: 'label.release.dedicated.zone',
dataView: true,
+ show: (record) => { return record.domainid },
args: ['zoneid'],
- show: (record) => { return record.domainid }
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
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'
+ },
+ args: ['zoneid'],
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -116,10 +139,15 @@ export default {
icon: 'minus-circle',
label: 'label.outofbandmanagement.disable',
dataView: true,
- args: ['zoneid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.outOfBandManagementEnabled &&
record.resourcedetails.outOfBandManagementEnabled === 'true'
+ },
+ args: ['zoneid'],
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -127,10 +155,15 @@ export default {
icon: 'eye',
label: 'label.ha.enable',
dataView: true,
- args: ['zoneid'],
show: (record) => {
return !record.resourcedetails ||
!record.resourcedetails.resourceHAEnabled ||
record.resourcedetails.resourceHAEnabled === 'false'
+ },
+ args: ['zoneid'],
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -138,10 +171,15 @@ export default {
icon: 'eye-invisible',
label: 'label.ha.disable',
dataView: true,
- args: ['zoneid'],
show: (record) => {
return record.resourcedetails &&
record.resourcedetails.resourceHAEnabled &&
record.resourcedetails.resourceHAEnabled === 'true'
+ },
+ args: ['zoneid'],
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
}
},
{
@@ -149,24 +187,39 @@ export default {
icon: 'block',
label: 'label.add.vmware.datacenter',
dataView: true,
+ show: (record) => { return !record.vmwaredcid },
args: ['zoneid', 'name', 'vcenter', 'username', 'password'],
- show: (record) => { return !record.vmwaredcid }
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'updateVmwareDc',
icon: 'block',
label: 'label.update.vmware.datacenter',
dataView: true,
+ show: (record) => { return record.vmwaredcid },
args: ['zoneid', 'name', 'vcenter', 'username', 'password',
'isrecursive'],
- show: (record) => { return record.vmwaredcid }
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'removeVmwareDc',
icon: 'minus-square',
label: 'label.remove.vmware.datacenter',
dataView: true,
+ show: (record) => { return record.vmwaredcid },
args: ['zoneid'],
- show: (record) => { return record.vmwaredcid }
+ mapping: {
+ zoneid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'deleteZone',
diff --git a/src/config/section/network.js b/src/config/section/network.js
index 874f394..92e5e40 100644
--- a/src/config/section/network.js
+++ b/src/config/section/network.js
@@ -191,30 +191,59 @@ export default {
icon: 'link',
label: 'Enable Remote Access VPN',
dataView: true,
- args: ['publicipid', 'domainid', 'account']
+ args: ['publicipid', 'domainid', 'account'],
+ mapping: {
+ publicipid: {
+ value: (record) => { return record.id }
+ },
+ domainid: {
+ value: (record) => { return record.domainid }
+ },
+ account: {
+ value: (record) => { return record.account }
+ }
+ }
},
{
api: 'deleteRemoteAccessVpn',
icon: 'disconnect',
label: 'Disable Remove Access VPN',
dataView: true,
- args: ['publicipid', 'domainid']
+ args: ['publicipid', 'domainid'],
+ mapping: {
+ publicipid: {
+ value: (record) => { return record.id }
+ },
+ domainid: {
+ value: (record) => { return record.domainid }
+ }
+ }
},
{
api: 'enableStaticNat',
icon: 'plus-circle',
label: 'Enable Static NAT',
dataView: true,
+ show: (record) => { return !record.virtualmachineid &&
!record.issourcenat },
args: ['ipaddressid', 'virtualmachineid', 'vmguestip'],
- show: (record) => { return !record.virtualmachineid &&
!record.issourcenat }
+ mapping: {
+ ipaddressid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'disableStaticNat',
icon: 'minus-circle',
label: 'Disable Static NAT',
dataView: true,
+ show: (record) => { return record.virtualmachineid },
args: ['ipaddressid'],
- show: (record) => { return record.virtualmachineid }
+ mapping: {
+ ipaddressid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'disassociateIpAddress',
@@ -245,7 +274,18 @@ export default {
icon: 'delete',
label: 'Delete VPN User',
dataView: true,
- args: ['username', 'domainid', 'account']
+ args: ['username', 'domainid', 'account'],
+ mapping: {
+ username: {
+ value: (record) => { return record.username }
+ },
+ domainid: {
+ value: (record) => { return record.domainid }
+ },
+ account: {
+ value: (record) => { return record.account }
+ }
+ }
}
]
},
@@ -264,6 +304,12 @@ export default {
label: 'Add VPN Customer Gateway',
listView: true,
args: ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'ikelifetime',
'esplifetime', 'dpd', 'forceencap', 'ikepolicy', 'esppolicy']
+ },
+ {
+ api: 'deleteVpnCustomerGateway',
+ icon: 'delete',
+ label: 'Delete VPN Customer Gateway',
+ dataView: true
}
]
}
diff --git a/src/config/section/offering.js b/src/config/section/offering.js
index b629530..2483d9c 100644
--- a/src/config/section/offering.js
+++ b/src/config/section/offering.js
@@ -137,6 +137,30 @@ export default {
dataView: true,
args: ['name', 'displaytext', 'availability']
}, {
+ api: 'updateNetworkOffering',
+ icon: 'play-circle',
+ label: 'Enable Offering',
+ dataView: true,
+ show: (record) => { return record.state === 'Disabled' },
+ args: ['state'],
+ mapping: {
+ state: {
+ value: (record) => { return 'Enabled' }
+ }
+ }
+ }, {
+ api: 'updateNetworkOffering',
+ icon: 'pause-circle',
+ label: 'Disable Offering',
+ dataView: true,
+ show: (record) => { return record.state === 'Enabled' },
+ args: ['state'],
+ mapping: {
+ state: {
+ value: (record) => { return 'Disabled' }
+ }
+ }
+ }, {
api: 'deleteNetworkOffering',
icon: 'delete',
label: 'Delete Offering',
@@ -170,6 +194,30 @@ export default {
dataView: true,
args: ['name', 'displaytext']
}, {
+ api: 'updateVPCOffering',
+ icon: 'play-circle',
+ label: 'Enable Offering',
+ dataView: true,
+ show: (record) => { return record.state === 'Disabled' },
+ args: ['state'],
+ mapping: {
+ state: {
+ value: (record) => { return 'Enabled' }
+ }
+ }
+ }, {
+ api: 'updateVPCOffering',
+ icon: 'pause-circle',
+ label: 'Disable Offering',
+ dataView: true,
+ show: (record) => { return record.state === 'Enabled' },
+ args: ['state'],
+ mapping: {
+ state: {
+ value: (record) => { return 'Disabled' }
+ }
+ }
+ }, {
api: 'deleteVPCOffering',
icon: 'delete',
label: 'Delete Offering',
diff --git a/src/config/section/project.js b/src/config/section/project.js
index 1f2b033..fd48292 100644
--- a/src/config/section/project.js
+++ b/src/config/section/project.js
@@ -57,7 +57,12 @@ export default {
icon: 'user-add',
label: 'Add Account to Project',
dataView: true,
- args: ['projectid', 'account', 'email']
+ args: ['projectid', 'account', 'email'],
+ mapping: {
+ projectid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'deleteProject',
diff --git a/src/config/section/storage.js b/src/config/section/storage.js
index 48e2298..649e7be 100644
--- a/src/config/section/storage.js
+++ b/src/config/section/storage.js
@@ -38,16 +38,19 @@ export default {
api: 'createVolume',
icon: 'plus',
label: 'Create Volume',
- type: 'main',
- args: ['name', 'zoneid', 'diskofferingid'],
- listView: true
+ listView: true,
+ args: ['name', 'zoneid', 'diskofferingid']
}, {
api: 'uploadVolume',
icon: 'link',
label: 'Upload Volume From URL',
- type: 'main',
+ listView: true,
args: ['url', 'name', 'zoneid', 'format', 'diskofferingid',
'checksum'],
- listView: true
+ mapping: {
+ format: {
+ options: ['RAW', 'VHD', 'VHDX', 'OVA', 'QCOW2']
+ }
+ }
}, {
api: 'getUploadParamsForVolume',
icon: 'cloud-upload',
@@ -142,9 +145,14 @@ export default {
api: 'createTemplate',
icon: 'picture',
label: 'Create Template from Volume',
- args: ['volumeid', 'name', 'displaytext', 'ostypeid', 'ispublic',
'isfeatured', 'isdynamicallyscalable', 'requireshvm', 'passwordenabled',
'sshkeyenabled'],
dataView: true,
- show: (record) => { return record.type === 'ROOT' }
+ show: (record) => { return record.type === 'ROOT' },
+ args: ['volumeid', 'name', 'displaytext', 'ostypeid', 'ispublic',
'isfeatured', 'isdynamicallyscalable', 'requireshvm', 'passwordenabled',
'sshkeyenabled'],
+ mapping: {
+ volumeid: {
+ value: (record) => { return record.id }
+ }
+ }
},
{
api: 'deleteVolume',
@@ -169,6 +177,7 @@ export default {
icon: 'plus',
label: 'Create volume',
dataView: true,
+ show: (record) => { return record.state === 'BackedUp' },
args: ['snapshotid', 'name'],
mapping: {
snapshotid: {
@@ -181,6 +190,7 @@ export default {
icon: 'picture',
label: 'Create volume',
dataView: true,
+ show: (record) => { return record.state === 'BackedUp' },
args: ['snapshotid', 'name', 'displaytext', 'ostypeid', 'ispublic',
'isfeatured', 'isdynamicallyscalable', 'requireshvm', 'passwordenabled',
'sshkeyenabled'],
mapping: {
snapshotid: {
@@ -216,6 +226,7 @@ export default {
icon: 'sync',
label: 'Revert VM snapshot',
dataView: true,
+ show: (record) => { return record.state === 'Ready' },
args: ['vmsnapshotid'],
mapping: {
vmsnapshotid: {
diff --git a/src/views/AutogenView.vue b/src/views/AutogenView.vue
index 8fd7a3f..977a70c 100644
--- a/src/views/AutogenView.vue
+++ b/src/views/AutogenView.vue
@@ -496,6 +496,8 @@ export default {
params.templatefilter = 'executable'
} else if (possibleApi === 'listIsos') {
params.isofilter = 'executable'
+ } else if (possibleApi === 'listHosts') {
+ params.type = 'routing'
}
api(possibleApi, params).then(json => {
param.loading = false