diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js index 5bb1eb207bc..dfdf56ac1d8 100644 --- a/ui/src/config/section/compute.js +++ b/ui/src/config/section/compute.js @@ -38,6 +38,10 @@ export default { 'account', 'zonename' ], related: [{ + name: 'volume', + title: 'Volumes', + param: 'virtualmachineid' + }, { name: 'vmsnapshot', title: 'VM Snapshots', param: 'virtualmachineid' @@ -234,6 +238,11 @@ export default { permission: ['listSSHKeyPairs'], columns: ['name', 'fingerprint', 'account', 'domain'], details: ['name', 'fingerprint', 'account', 'domain'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'keypair' + }], actions: [ { api: 'createSSHKeyPair', @@ -265,6 +274,11 @@ export default { permission: ['listAffinityGroups'], columns: ['name', 'type', 'description', 'account', 'domain'], details: ['name', 'id', 'description', 'type', 'account', 'domain'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'affinitygroupid' + }], actions: [ { api: 'createAffinityGroup', diff --git a/ui/src/config/section/iam.js b/ui/src/config/section/iam.js index 868783aff04..07946ea1b01 100644 --- a/ui/src/config/section/iam.js +++ b/ui/src/config/section/iam.js @@ -157,6 +157,11 @@ export default { resourceType: 'Domain', columns: ['name', 'state', 'path', 'parentdomainname', 'level'], details: ['name', 'id', 'path', 'parentdomainname', 'level', 'networkdomain', 'iptotal', 'vmtotal', 'volumetotal', 'vmlimit', 'iplimit', 'volumelimit', 'snapshotlimit', 'templatelimit', 'vpclimit', 'cpulimit', 'memorylimit', 'networklimit', 'primarystoragelimit', 'secondarystoragelimit'], + related: [{ + name: 'account', + title: 'Accounts', + param: 'domainid' + }], actions: [ { api: 'createDomain', diff --git a/ui/src/config/section/image.js b/ui/src/config/section/image.js index 1190800f750..f6e164c5068 100644 --- a/ui/src/config/section/image.js +++ b/ui/src/config/section/image.js @@ -29,6 +29,11 @@ export default { resourceType: 'Template', columns: ['name', 'ostypename', 'status', 'hypervisor', 'account', 'domain'], details: ['name', 'id', 'displaytext', 'checksum', 'hypervisor', 'format', 'ostypename', 'size', 'isready', 'passwordenabled', 'directdownload', 'isextractable', 'isdynamicallyscalable', 'ispublic', 'isfeatured', 'crosszones', 'type', 'account', 'domain', 'created'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'templateid' + }], tabs: [{ name: 'details', component: () => import('@/components/view/DetailsTab.vue') @@ -102,6 +107,11 @@ export default { resourceType: 'ISO', columns: ['name', 'ostypename', 'account', 'domain'], details: ['name', 'id', 'displaytext', 'checksum', 'ostypename', 'size', 'bootable', 'isready', 'directdownload', 'isextractable', 'ispublic', 'isfeatured', 'crosszones', 'account', 'domain', 'created'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'isoid' + }], actions: [ { api: 'registerIso', diff --git a/ui/src/config/section/infra/clusters.js b/ui/src/config/section/infra/clusters.js index 231803c2678..79ad842c77c 100644 --- a/ui/src/config/section/infra/clusters.js +++ b/ui/src/config/section/infra/clusters.js @@ -22,6 +22,11 @@ export default { permission: ['listClustersMetrics', 'listClusters'], columns: ['name', 'state', 'clustertype', 'hypervisortype', 'hosts', 'cpuused', 'cpumaxdeviation', 'cpuallocated', 'cputotal', 'memoryused', 'memorymaxdeviation', 'memoryallocated', 'memorytotal', 'podname', 'zonename'], details: ['name', 'id', 'allocationstate', 'clustertype', 'hypervisortype', 'podname', 'zonename'], + related: [{ + name: 'host', + title: 'Hosts', + param: 'clusterid' + }], actions: [ { api: 'addCluster', diff --git a/ui/src/config/section/infra/hosts.js b/ui/src/config/section/infra/hosts.js index a54e9f68641..5c631779f4a 100644 --- a/ui/src/config/section/infra/hosts.js +++ b/ui/src/config/section/infra/hosts.js @@ -24,6 +24,11 @@ export default { params: { type: 'routing' }, 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'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'hostid' + }], actions: [ { api: 'addHost', diff --git a/ui/src/config/section/infra/pods.js b/ui/src/config/section/infra/pods.js index 5df31a8ac13..04aa26e68d5 100644 --- a/ui/src/config/section/infra/pods.js +++ b/ui/src/config/section/infra/pods.js @@ -22,6 +22,15 @@ export default { permission: ['listPods'], columns: ['name', 'allocationstate', 'gateway', 'netmask', 'zonename'], details: ['name', 'id', 'allocationstate', 'netmask', 'gateway', 'zonename'], + related: [{ + name: 'cluster', + title: 'Clusters', + param: 'podid' + }, { + name: 'host', + title: 'Hosts', + param: 'podid' + }], actions: [ { api: 'createPod', diff --git a/ui/src/config/section/infra/primaryStorages.js b/ui/src/config/section/infra/primaryStorages.js index 0ebc1db298b..bab4a9176f2 100644 --- a/ui/src/config/section/infra/primaryStorages.js +++ b/ui/src/config/section/infra/primaryStorages.js @@ -22,6 +22,11 @@ export default { permission: ['listStoragePoolsMetrics', 'listStoragePools'], 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'], + related: [{ + name: 'volume', + title: 'Volumes', + param: 'storageid' + }], actions: [ { api: 'createStoragePool', diff --git a/ui/src/config/section/infra/zones.js b/ui/src/config/section/infra/zones.js index ad2bda0ecd8..cf403927316 100644 --- a/ui/src/config/section/infra/zones.js +++ b/ui/src/config/section/infra/zones.js @@ -22,6 +22,27 @@ export default { permission: ['listZonesMetrics', 'listZones'], 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: 'pod', + title: 'Pods', + param: 'zoneid' + }, { + name: 'cluster', + title: 'Clusters', + param: 'zoneid' + }, { + name: 'host', + title: 'Hosts', + param: 'zoneid' + }, { + name: 'storagepool', + title: 'Primate Storage', + param: 'zoneid' + }, { + name: 'imagestore', + title: 'Secondary Storage', + param: 'zoneid' + }], actions: [ { api: 'createZone', diff --git a/ui/src/config/section/monitor.js b/ui/src/config/section/monitor.js index ea436eed02e..aa6419c0c4c 100644 --- a/ui/src/config/section/monitor.js +++ b/ui/src/config/section/monitor.js @@ -28,6 +28,11 @@ 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', diff --git a/ui/src/config/section/network.js b/ui/src/config/section/network.js index 99fa485dd51..dda00a01c06 100644 --- a/ui/src/config/section/network.js +++ b/ui/src/config/section/network.js @@ -31,7 +31,11 @@ export default { related: [{ name: 'publicip', title: 'IP Addresses', - param: 'associatedNetworkId' + param: 'associatednetworkid' + }, { + name: 'vm', + title: 'Instances', + param: 'networkid' }], tabs: [{ name: 'details', @@ -80,6 +84,11 @@ export default { resourceType: 'Vpc', columns: ['name', 'state', 'displaytext', 'cidr', 'account', 'zonename'], details: ['name', 'id', 'displaytext', 'cidr', 'networkdomain', 'ispersistent', 'redundantvpcrouter', 'restartrequired', 'zonename', 'account', 'domain'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'vpcid' + }], tabs: [{ name: 'configure', component: () => import('@/views/network/VpcConfigure.vue') diff --git a/ui/src/config/section/offering.js b/ui/src/config/section/offering.js index 4951b01a795..5c17dc35711 100644 --- a/ui/src/config/section/offering.js +++ b/ui/src/config/section/offering.js @@ -28,6 +28,11 @@ export default { permission: ['listServiceOfferings'], columns: ['name', 'displaytext', 'cpunumber', 'cpuspeed', 'memory', 'tags', 'domain', 'zone'], details: ['name', 'id', 'displaytext', 'offerha', 'provisioningtype', 'storagetype', 'iscustomized', 'limitcpuuse', 'cpunumber', 'cpuspeed', 'memory', 'tags', 'domain', 'zone', 'created'], + related: [{ + name: 'vm', + title: 'Instances', + param: 'serviceofferingid' + }], actions: [{ api: 'createServiceOffering', icon: 'plus', @@ -88,6 +93,11 @@ export default { permission: ['listDiskOfferings'], columns: ['name', 'displaytext', 'disksize', 'tags', 'domain', 'zone'], details: ['name', 'id', 'displaytext', 'disksize', 'provisioningtype', 'storagetype', 'iscustomized', 'tags', 'domain', 'zone', 'created'], + related: [{ + name: 'volume', + title: 'Volumes', + param: 'diskofferingid' + }], actions: [{ api: 'createDiskOffering', icon: 'plus', @@ -145,6 +155,11 @@ export default { resourceType: 'VpcOffering', columns: ['name', 'state', 'displaytext', 'domain', 'zone'], details: ['name', 'id', 'displaytext', 'distributedvpcrouter', 'service', 'tags', 'domain', 'zone', 'created'], + related: [{ + name: 'vpc', + title: 'VPCs', + param: 'vpcofferingid' + }], actions: [{ api: 'createVPCOffering', icon: 'plus', diff --git a/ui/src/config/section/storage.js b/ui/src/config/section/storage.js index cdc25ffef39..dccb7828e72 100644 --- a/ui/src/config/section/storage.js +++ b/ui/src/config/section/storage.js @@ -28,6 +28,11 @@ export default { resourceType: 'Volume', columns: ['name', 'state', 'type', 'vmname', 'size', 'physicalsize', 'utilization', 'diskkbsread', 'diskkbswrite', 'diskiopstotal', 'storage', 'account', 'zonename'], details: ['name', 'id', 'type', 'deviceid', 'sizegb', 'physicalsize', 'provisioningtype', 'utilization', 'diskkbsread', 'diskkbswrite', 'diskioread', 'diskiowrite', 'diskiopstotal', 'path'], + related: [{ + name: 'snapshot', + title: 'Snapshots', + param: 'volumeid' + }], actions: [ { api: 'createVolume', diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue index ae8ca6f90c0..76f822652ec 100644 --- a/ui/src/views/AutogenView.vue +++ b/ui/src/views/AutogenView.vue @@ -385,6 +385,9 @@ export default { this.items[idx][key] = func(this.items[idx]) } } + if (this.$route.path.startsWith('/ssh')) { + this.items[idx].id = this.items[idx].name + } } if (this.items.length > 0) { this.resource = this.items[0]