Skip to content

Commit 0b62812

Browse files
vishesh92Dajeong-Park
authored andcommitted
Support ConfigDrive with VPC (apache#10495)
1 parent 6dc784a commit 0b62812

File tree

1 file changed

+20
-97
lines changed

1 file changed

+20
-97
lines changed

ui/src/views/offering/AddVpcOffering.vue

Lines changed: 20 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -69,26 +69,14 @@
6969
</a-form-item>
7070
<a-row :gutter="12">
7171
<a-col :md="12" :lg="12">
72-
<a-form-item name="provider" ref="provider">
72+
<a-form-item name="fornsx" ref="fornsx">
7373
<template #label>
74-
<tooltip-label :title="$t('label.provider')" :tooltip="apiParams.provider.description"/>
74+
<tooltip-label :title="$t('label.nsx')" :tooltip="apiParams.fornsx.description"/>
7575
</template>
76-
<a-select
77-
v-model:value="form.provider"
78-
v-focus="true"
79-
@change="val => handleProviderChange(val)"
80-
showSearch
81-
optionFilterProp="label"
82-
:filterOption="(input, option) => {
83-
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
84-
}"
85-
:placeholder="apiParams.provider.description" >
86-
<a-select-option :value="'NSX'" :label="$t('label.nsx')"> {{ $t('label.nsx') }} </a-select-option>
87-
<a-select-option :value="'Netris'" :label="$t('label.netris')"> {{ $t('label.netris') }} </a-select-option>
88-
</a-select>
76+
<a-switch v-model:checked="form.fornsx" @change="val => { handleForNsxChange(val) }" />
8977
</a-form-item>
9078
</a-col>
91-
<a-col :md="12" :lg="12" v-if="form.provider === 'NSX'">
79+
<a-col :md="12" :lg="12" v-if="forNsx">
9280
<a-form-item name="nsxsupportlb" ref="nsxsupportlb">
9381
<template #label>
9482
<tooltip-label :title="$t('label.nsx.supports.lb')" :tooltip="apiParams.nsxsupportlb.description"/>
@@ -97,7 +85,7 @@
9785
</a-form-item>
9886
</a-col>
9987
</a-row>
100-
<a-row :gutter="12" v-if="routingMode === 'dynamic' && form.provider === 'NSX'">
88+
<a-row :gutter="12" v-if="routingMode === 'dynamic' && forNsx">
10189
<a-col :md="12" :lg="12">
10290
<a-form-item name="specifyasnumber" ref="specifyasnumber">
10391
<template #label>
@@ -151,8 +139,8 @@
151139
<CheckBoxSelectPair
152140
:resourceKey="item.name"
153141
:checkBoxLabel="item.description"
154-
:forExternalNetProvider="form.provider === 'NSX' || form.provider === 'Netris'"
155-
:defaultCheckBoxValue="form.provider === 'NSX' || form.provider === 'Netris'"
142+
:forNsx="forNsx"
143+
:defaultCheckBoxValue="forNsx"
156144
:selectOptions="item.provider"
157145
@handle-checkselectpair-change="handleSupportedServiceChange"/>
158146
</a-list-item>
@@ -179,7 +167,6 @@
179167
<tooltip-label :title="$t('label.serviceofferingid')" :tooltip="apiParams.serviceofferingid.description"/>
180168
</template>
181169
<a-select
182-
:getPopupContainer="(trigger) => trigger.parentNode"
183170
showSearch
184171
optionFilterProp="label"
185172
v-model:value="form.serviceofferingid"
@@ -202,7 +189,6 @@
202189
</template>
203190
<a-select
204191
mode="multiple"
205-
:getPopupContainer="(trigger) => trigger.parentNode"
206192
v-model:value="form.domainid"
207193
showSearch
208194
optionFilterProp="label"
@@ -227,7 +213,6 @@
227213
<a-select
228214
id="zone-selection"
229215
mode="multiple"
230-
:getPopupContainer="(trigger) => trigger.parentNode"
231216
v-model:value="form.zoneid"
232217
showSearch
233218
optionFilterProp="label"
@@ -262,7 +247,7 @@
262247

263248
<script>
264249
import { ref, reactive, toRaw } from 'vue'
265-
import { getAPI, postAPI } from '@/api'
250+
import { api } from '@/api'
266251
import { isAdmin } from '@/role'
267252
import { mixinForm } from '@/utils/mixin'
268253
import CheckBoxSelectPair from '@/components/CheckBoxSelectPair'
@@ -288,7 +273,6 @@ export default {
288273
zones: [],
289274
zoneLoading: false,
290275
forNsx: false,
291-
provider: '',
292276
loading: false,
293277
supportedServices: [],
294278
supportedServiceLoading: false,
@@ -322,11 +306,6 @@ export default {
322306
description: 'Nsx',
323307
enabled: true
324308
},
325-
Netris: {
326-
name: 'Netris',
327-
description: 'Netris',
328-
enabled: true
329-
},
330309
nsxSupportedServicesMap: {}
331310
}
332311
},
@@ -381,15 +360,15 @@ export default {
381360
fetchIpv6NetworkOfferingConfiguration () {
382361
this.ipv6NetworkOfferingEnabled = false
383362
var params = { name: 'ipv6.offering.enabled' }
384-
getAPI('listConfigurations', params).then(json => {
363+
api('listConfigurations', params).then(json => {
385364
var value = json?.listconfigurationsresponse?.configuration?.[0].value || null
386365
this.ipv6NetworkOfferingEnabled = value === 'true'
387366
})
388367
},
389368
fetchRoutedNetworkConfiguration () {
390369
this.routedNetworkEnabled = false
391370
var params = { name: 'routed.network.vpc.enabled' }
392-
getAPI('listConfigurations', params).then(json => {
371+
api('listConfigurations', params).then(json => {
393372
var value = json?.listconfigurationsresponse?.configuration?.[0].value || null
394373
this.routedNetworkEnabled = value === 'true'
395374
if (!this.routedNetworkEnabled) {
@@ -403,7 +382,7 @@ export default {
403382
params.showicon = true
404383
params.details = 'min'
405384
this.domainLoading = true
406-
getAPI('listDomains', params).then(json => {
385+
api('listDomains', params).then(json => {
407386
const listDomains = json.listdomainsresponse.domain
408387
this.domains = this.domains.concat(listDomains)
409388
}).finally(() => {
@@ -414,7 +393,7 @@ export default {
414393
const params = {}
415394
params.showicon = true
416395
this.zoneLoading = true
417-
getAPI('listZones', params).then(json => {
396+
api('listZones', params).then(json => {
418397
const listZones = json.listzonesresponse.zone
419398
this.zones = this.zones.concat(listZones)
420399
}).finally(() => {
@@ -423,7 +402,7 @@ export default {
423402
},
424403
fetchSupportedServiceData () {
425404
var services = []
426-
if (this.provider === 'NSX') {
405+
if (this.forNsx) {
427406
services.push({
428407
name: 'Dhcp',
429408
enabled: true,
@@ -466,49 +445,6 @@ export default {
466445
enabled: true,
467446
provider: [{ name: 'VpcVirtualRouter' }]
468447
})
469-
} else if (this.provider === 'Netris') {
470-
services.push({
471-
name: 'Dhcp',
472-
enabled: true,
473-
provider: [
474-
{ name: 'VpcVirtualRouter' }
475-
]
476-
})
477-
services.push({
478-
name: 'Dns',
479-
enabled: true,
480-
provider: [{ name: 'VpcVirtualRouter' }]
481-
})
482-
services.push({
483-
name: 'Lb',
484-
enabled: true,
485-
provider: [{ name: 'Netris' }]
486-
})
487-
services.push({
488-
name: 'StaticNat',
489-
enabled: true,
490-
provider: [{ name: 'Netris' }]
491-
})
492-
services.push({
493-
name: 'SourceNat',
494-
enabled: true,
495-
provider: [{ name: 'Netris' }]
496-
})
497-
services.push({
498-
name: 'NetworkACL',
499-
enabled: true,
500-
provider: [{ name: 'Netris' }]
501-
})
502-
services.push({
503-
name: 'PortForwarding',
504-
enabled: true,
505-
provider: [{ name: 'Netris' }]
506-
})
507-
services.push({
508-
name: 'UserData',
509-
enabled: true,
510-
provider: [{ name: 'VpcVirtualRouter' }]
511-
})
512448
} else {
513449
services.push({
514450
name: 'Dhcp',
@@ -592,13 +528,6 @@ export default {
592528
services = services.filter(service => {
593529
return !['SourceNat', 'StaticNat', 'Lb', 'PortForwarding', 'Vpn'].includes(service.name)
594530
})
595-
if (['NSX', 'Netris'].includes(this.provider)) {
596-
services.push({
597-
name: 'Gateway',
598-
enabled: true,
599-
provider: [{ name: this.provider }]
600-
})
601-
}
602531
}
603532
for (var i in services) {
604533
services[i].description = services[i].name
@@ -609,16 +538,15 @@ export default {
609538
self.supportedServiceLoading = false
610539
}, 50)
611540
},
612-
async handleProviderChange (value) {
613-
this.provider = value
614-
if (this.provider === 'NSX') {
541+
async handleForNsxChange (forNsx) {
542+
this.forNsx = forNsx
543+
if (forNsx) {
615544
this.form.nsxsupportlb = true
616545
this.handleNsxLbService(true)
617546
}
618547
this.fetchSupportedServiceData()
619548
},
620549
handleNsxLbService (supportLb) {
621-
console.log(supportLb)
622550
if (!supportLb) {
623551
this.supportedServices = this.supportedServices.filter(svc => svc.name !== 'Lb')
624552
}
@@ -663,7 +591,7 @@ export default {
663591
params.issystem = true
664592
params.systemvmtype = 'domainrouter'
665593
this.serviceOfferingLoading = true
666-
getAPI('listServiceOfferings', params).then(json => {
594+
api('listServiceOfferings', params).then(json => {
667595
const listServiceOfferings = json.listserviceofferingsresponse.serviceoffering
668596
this.serviceOfferings = this.serviceOfferings.concat(listServiceOfferings)
669597
}).finally(() => {
@@ -708,15 +636,10 @@ export default {
708636
if (values.internetprotocol) {
709637
params.internetprotocol = values.internetprotocol
710638
}
711-
const forNsx = values.provider === 'NSX'
712-
if (forNsx) {
713-
params.provider = 'NSX'
639+
if (values.fornsx === true) {
640+
params.fornsx = true
714641
params.nsxsupportlb = values.nsxsupportlb
715642
}
716-
const forNetris = values.provider === 'Netris'
717-
if (forNetris) {
718-
params.provider = 'Netris'
719-
}
720643
params.networkmode = values.networkmode
721644
if (!values.forVpc) {
722645
params.specifyasnumber = values.specifyasnumber
@@ -767,7 +690,7 @@ export default {
767690
if (values.enable) {
768691
params.enable = values.enable
769692
}
770-
postAPI('createVPCOffering', params).then(json => {
693+
api('createVPCOffering', params).then(json => {
771694
this.$message.success(`${this.$t('message.create.vpc.offering')}: ` + values.name)
772695
this.$emit('refresh-data')
773696
this.closeAction()

0 commit comments

Comments
 (0)