From 1c7f6140d561cc12a890c5dd325f750689bade23 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 25 Nov 2020 13:56:42 +0530 Subject: [PATCH] Support for spcifying VR IP in shared networks --- src/locales/en.json | 2 + src/views/network/CreateSharedNetworkForm.vue | 54 ++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/src/locales/en.json b/src/locales/en.json index ca3a56bcd..13b05f4f9 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1806,6 +1806,8 @@ "label.root.disk.size": "Root disk size (GB)", "label.rootdiskcontrollertype": "Root disk controller", "label.rootdiskcontrollertypekvm": "Root disk controller", +"label.routerip": "IPv4 address for Router in Shared Network", +"label.routeripv6": "IPv6 address for Router in Shared Network", "label.router.health.check.last.updated": "Last updated", "label.router.health.check.name": "Check name", "label.router.health.check.success": "Success", diff --git a/src/views/network/CreateSharedNetworkForm.vue b/src/views/network/CreateSharedNetworkForm.vue index 20f5f0238..f46da6ae8 100644 --- a/src/views/network/CreateSharedNetworkForm.vue +++ b/src/views/network/CreateSharedNetworkForm.vue @@ -332,6 +332,17 @@ v-decorator="['endipv4', {}]" :placeholder="this.$t('label.endipv4')"/> + + + {{ $t('label.routerip') }} + + + + + + {{ $t('label.ip6gateway') }} @@ -376,6 +387,17 @@ v-decorator="['endipv6', {}]" :placeholder="this.$t('label.endipv6')"/> + + + {{ $t('label.routeripv6') }} + + + + + + {{ $t('label.networkdomain') }} @@ -457,7 +479,9 @@ export default { selectedNetworkOffering: {}, projects: [], projectLoading: false, - selectedProject: {} + selectedProject: {}, + isVirtualRouterForAtLeastOneService: false, + selectedServiceProviderMap: {} } }, watch: { @@ -664,6 +688,25 @@ export default { }, handleNetworkOfferingChange (networkOffering) { this.selectedNetworkOffering = networkOffering + this.networkServiceProviderMap(this.selectedNetworkOffering.id) + }, + networkServiceProviderMap (id) { + api('listNetworkOfferings', { id: id }).then(json => { + var networkOffering = json.listnetworkofferingsresponse.networkoffering[0] + const services = networkOffering.service + this.selectedServiceProviderMap = {} + for (const svc of services) { + this.selectedServiceProviderMap[svc.name] = svc.provider[0].name + } + var providers = Object.values(this.selectedServiceProviderMap) + this.isVirtualRouterForAtLeastOneService = false + var self = this + providers.forEach(function (prvdr, idx) { + if (prvdr === 'VirtualRouter') { + self.isVirtualRouterForAtLeastOneService = true + } + }) + }) }, fetchDomainData () { const params = {} @@ -783,6 +826,11 @@ export default { if (this.isValidTextValueForKey(values, 'ip4gateway')) { params.ip6gateway = values.ip6gateway } + + if (this.isValidTextValueForKey(values, 'routerip')) { + params.routerip = values.routerip + } + if (this.isValidTextValueForKey(values, 'ip6cidr')) { params.ip6cidr = values.ip6cidr } @@ -792,6 +840,10 @@ export default { if (this.isValidTextValueForKey(values, 'endipv6')) { params.endipv6 = values.endipv6 } + + if (this.isValidTextValueForKey(values, 'routeripv6')) { + params.routeripv6 = values.routeripv6 + } // IPv6 (end) if (this.isValidTextValueForKey(values, 'networkdomain')) {