Skip to content

Commit e09624b

Browse files
author
Pearl Dsilva
committed
Port UI changes from apache/cloudstack-primate#872
1 parent 102e2df commit e09624b

File tree

2 files changed

+55
-2
lines changed

2 files changed

+55
-2
lines changed

ui/public/locales/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1815,6 +1815,8 @@
18151815
"label.root.disk.size": "Root disk size (GB)",
18161816
"label.rootdiskcontrollertype": "Root disk controller",
18171817
"label.rootdiskcontrollertypekvm": "Root disk controller",
1818+
"label.routerip": "IPv4 address for Router in Shared Network",
1819+
"label.routeripv6": "IPv6 address for Router in Shared Network",
18181820
"label.router.health.check.last.updated": "Last updated",
18191821
"label.router.health.check.name": "Check name",
18201822
"label.router.health.check.success": "Success",

ui/src/views/network/CreateSharedNetworkForm.vue

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,17 @@
332332
v-decorator="['endipv4', {}]"
333333
:placeholder="this.$t('label.endipv4')"/>
334334
</a-form-item>
335+
<a-form-item v-if="isVirtualRouterForAtLeastOneService">
336+
<span slot="label">
337+
{{ $t('label.routerip') }}
338+
<a-tooltip :title="apiParams.routerip.description" v-if="'routerip' in apiParams">
339+
<a-icon type="info-circle" style="color: rgba(0,0,0,.45)" />
340+
</a-tooltip>
341+
</span>
342+
<a-input
343+
v-decorator="['routerip', {}]"
344+
:placeholder="this.$t('label.routerip')"/>
345+
</a-form-item>
335346
<a-form-item>
336347
<span slot="label">
337348
{{ $t('label.ip6gateway') }}
@@ -376,6 +387,17 @@
376387
v-decorator="['endipv6', {}]"
377388
:placeholder="this.$t('label.endipv6')"/>
378389
</a-form-item>
390+
<a-form-item v-if="isVirtualRouterForAtLeastOneService">
391+
<span slot="label">
392+
{{ $t('label.routeripv6') }}
393+
<a-tooltip :title="apiParams.routeripv6.description" v-if="'routeripv6' in apiParams">
394+
<a-icon type="info-circle" style="color: rgba(0,0,0,.45)" />
395+
</a-tooltip>
396+
</span>
397+
<a-input
398+
v-decorator="['routeripv6', {}]"
399+
:placeholder="this.$t('label.routeripv6')"/>
400+
</a-form-item>
379401
<a-form-item>
380402
<span slot="label">
381403
{{ $t('label.networkdomain') }}
@@ -457,7 +479,9 @@ export default {
457479
selectedNetworkOffering: {},
458480
projects: [],
459481
projectLoading: false,
460-
selectedProject: {}
482+
selectedProject: {},
483+
isVirtualRouterForAtLeastOneService: false,
484+
selectedServiceProviderMap: {}
461485
}
462486
},
463487
watch: {
@@ -654,6 +678,7 @@ export default {
654678
this.networkOfferings = []
655679
api('listNetworkOfferings', params).then(json => {
656680
this.networkOfferings = json.listnetworkofferingsresponse.networkoffering
681+
this.handleNetworkOfferingChange(this.networkOfferings[0])
657682
}).catch(error => {
658683
this.$notifyError(error)
659684
}).finally(() => {
@@ -662,7 +687,6 @@ export default {
662687
this.form.setFieldsValue({
663688
networkofferingid: 0
664689
})
665-
this.handleNetworkOfferingChange(this.networkOfferings[0])
666690
} else {
667691
this.form.setFieldsValue({
668692
networkofferingid: null
@@ -672,6 +696,27 @@ export default {
672696
},
673697
handleNetworkOfferingChange (networkOffering) {
674698
this.selectedNetworkOffering = networkOffering
699+
if (networkOffering) {
700+
this.networkServiceProviderMap(this.selectedNetworkOffering.id)
701+
}
702+
},
703+
networkServiceProviderMap (id) {
704+
api('listNetworkOfferings', { id: id }).then(json => {
705+
var networkOffering = json.listnetworkofferingsresponse.networkoffering[0]
706+
const services = networkOffering.service
707+
this.selectedServiceProviderMap = {}
708+
for (const svc of services) {
709+
this.selectedServiceProviderMap[svc.name] = svc.provider[0].name
710+
}
711+
var providers = Object.values(this.selectedServiceProviderMap)
712+
this.isVirtualRouterForAtLeastOneService = false
713+
var self = this
714+
providers.forEach(function (prvdr, idx) {
715+
if (prvdr === 'VirtualRouter') {
716+
self.isVirtualRouterForAtLeastOneService = true
717+
}
718+
})
719+
})
675720
},
676721
fetchDomainData () {
677722
const params = {}
@@ -791,6 +836,9 @@ export default {
791836
if (this.isValidTextValueForKey(values, 'ip4gateway')) {
792837
params.ip6gateway = values.ip6gateway
793838
}
839+
if (this.isValidTextValueForKey(values, 'routerip')) {
840+
params.routerip = values.routerip
841+
}
794842
if (this.isValidTextValueForKey(values, 'ip6cidr')) {
795843
params.ip6cidr = values.ip6cidr
796844
}
@@ -800,6 +848,9 @@ export default {
800848
if (this.isValidTextValueForKey(values, 'endipv6')) {
801849
params.endipv6 = values.endipv6
802850
}
851+
if (this.isValidTextValueForKey(values, 'routeripv6')) {
852+
params.routeripv6 = values.routeripv6
853+
}
803854
// IPv6 (end)
804855
805856
if (this.isValidTextValueForKey(values, 'networkdomain')) {

0 commit comments

Comments
 (0)