diff --git a/ui/src/views/network/CreateVlanIpRange.vue b/ui/src/views/network/CreateVlanIpRange.vue
index 80c3b7425e0..60f638ee423 100644
--- a/ui/src/views/network/CreateVlanIpRange.vue
+++ b/ui/src/views/network/CreateVlanIpRange.vue
@@ -23,6 +23,17 @@
:form="form"
@submit="handleSubmit"
layout="vertical">
+
+
+ {{ pod.name }}
+
+
{{ $t('label.gateway') }}
@@ -195,6 +206,8 @@ export default {
data () {
return {
loading: false,
+ zone: {},
+ pods: [],
ipV4Regex: /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i,
ipV6Regex: /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i
}
@@ -206,8 +219,41 @@ export default {
this.apiConfig.params.forEach(param => {
this.apiParams[param.name] = param
})
+ this.fetchData()
},
methods: {
+ async fetchData () {
+ await this.fetchZone()
+ if (this.zone.networktype === 'Basic') {
+ this.fetchPods()
+ }
+ },
+ fetchZone () {
+ return new Promise((resolve, reject) => {
+ this.loading = true
+ api('listZones', { id: this.resource.zoneid }).then(json => {
+ this.zone = json.listzonesresponse.zone[0] || {}
+ resolve(this.zone)
+ }).catch(error => {
+ this.$notifyError(error)
+ reject(error)
+ }).finally(() => {
+ this.loading = false
+ })
+ })
+ },
+ fetchPods () {
+ this.loading = true
+ api('listPods', {
+ zoneid: this.resource.zoneid
+ }).then(response => {
+ this.pods = response.listpodsresponse.pod ? response.listpodsresponse.pod : []
+ }).catch(error => {
+ this.$notifyError(error)
+ }).finally(() => {
+ this.loading = false
+ })
+ },
handleSubmit (e) {
e.preventDefault()
@@ -219,6 +265,9 @@ export default {
const params = {}
params.forVirtualNetwork = false
params.networkid = this.resource.id
+ if (values.podid) {
+ params.podid = values.podid
+ }
params.gateway = values.gateway
params.netmask = values.netmask
params.startip = values.startip