Add Netris Provider to the zone creation wizard

This commit is contained in:
Pearl Dsilva 2024-09-23 12:20:38 -04:00
parent a303c7c91a
commit 7239568afc
3 changed files with 78 additions and 2 deletions

View File

@ -1484,6 +1484,13 @@
"label.nat": "BigSwitch BCF NAT enabled", "label.nat": "BigSwitch BCF NAT enabled",
"label.ncc": "NCC", "label.ncc": "NCC",
"label.netmask": "Netmask", "label.netmask": "Netmask",
"label.netris": "Netris",
"label.netris.provider": "Netris Provider",
"label.netris.provider.name": "Netris provider name",
"label.netris.provider.hostname": "Netris provider hostname",
"label.netris.provider.port": "Netris provider port",
"label.netris.provider.username": "Netris provider username",
"label.netris.provider.password": "Netris provider password",
"label.netscaler": "NetScaler", "label.netscaler": "NetScaler",
"label.netscaler.mpx": "NetScaler MPX LoadBalancer", "label.netscaler.mpx": "NetScaler MPX LoadBalancer",
"label.netscaler.sdx": "NetScaler SDX LoadBalancer", "label.netscaler.sdx": "NetScaler SDX LoadBalancer",
@ -3190,6 +3197,7 @@
"message.import.volume": "Please specify the domain, account or project name. <br>If not set, the volume will be imported for the caller.", "message.import.volume": "Please specify the domain, account or project name. <br>If not set, the volume will be imported for the caller.",
"message.info.cloudian.console": "Cloudian Management Console should open in another window.", "message.info.cloudian.console": "Cloudian Management Console should open in another window.",
"message.installwizard.cloudstack.helptext.website": " * Project website:\t ", "message.installwizard.cloudstack.helptext.website": " * Project website:\t ",
"message.infra.setup.netris.description": "This zone must contain a Netris provider because the isolation method is Netris",
"message.infra.setup.nsx.description": "This zone must contain an NSX provider because the isolation method is NSX", "message.infra.setup.nsx.description": "This zone must contain an NSX provider because the isolation method is NSX",
"message.infra.setup.tungsten.description": "This zone must contain a Tungsten-Fabric provider because the isolation method is TF", "message.infra.setup.tungsten.description": "This zone must contain a Tungsten-Fabric provider because the isolation method is TF",
"message.installwizard.cloudstack.helptext.document": " * Documentation:\t ", "message.installwizard.cloudstack.helptext.document": " * Documentation:\t ",
@ -3207,6 +3215,10 @@
"message.installwizard.tooltip.configureguesttraffic.guestgateway": "The gateway that the guests should use.", "message.installwizard.tooltip.configureguesttraffic.guestgateway": "The gateway that the guests should use.",
"message.installwizard.tooltip.configureguesttraffic.guestnetmask": "The netmask in use on the subnet that the guests should use.", "message.installwizard.tooltip.configureguesttraffic.guestnetmask": "The netmask in use on the subnet that the guests should use.",
"message.installwizard.tooltip.configureguesttraffic.gueststartip": "The range of IP addresses that will be available for allocation to guests in this zone. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.", "message.installwizard.tooltip.configureguesttraffic.gueststartip": "The range of IP addresses that will be available for allocation to guests in this zone. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
"message.installwizard.tooltip.netris.provider.name": "Netris Provider name is required",
"message.installwizard.tooltip.netris.provider.hostname": "Netris Provider hostname / IP address not provided",
"message.installwizard.tooltip.netris.provider.username": "Netris Provider username not provided",
"message.installwizard.tooltip.netris.provider.password": "Netris Provider password not provided",
"message.installwizard.tooltip.nsx.provider.hostname": "NSX Provider hostname / IP address not provided", "message.installwizard.tooltip.nsx.provider.hostname": "NSX Provider hostname / IP address not provided",
"message.installwizard.tooltip.nsx.provider.username": "NSX Provider username not provided", "message.installwizard.tooltip.nsx.provider.username": "NSX Provider username not provided",
"message.installwizard.tooltip.nsx.provider.password": "NSX Provider password not provided", "message.installwizard.tooltip.nsx.provider.password": "NSX Provider password not provided",

View File

@ -88,6 +88,18 @@
:isFixError="isFixError" :isFixError="isFixError"
/> />
<static-inputs-form
v-if="steps && steps[currentStep].formKey === 'netris'"
@nextPressed="nextPressed"
@backPressed="handleBack"
@fieldsChanged="fieldsChanged"
@submitLaunchZone="submitLaunchZone"
:fields="netrisFields"
:prefillContent="prefillContent"
:description="netrisSetupDescription"
:isFixError="isFixError"
/>
<static-inputs-form <static-inputs-form
v-if="steps && steps[currentStep].formKey === 'pod'" v-if="steps && steps[currentStep].formKey === 'pod'"
@nextPressed="nextPressed" @nextPressed="nextPressed"
@ -101,7 +113,6 @@
/> />
<div v-if="guestTrafficRangeMode"> <div v-if="guestTrafficRangeMode">
<div>{{ isNsxZone }}</div>
<static-inputs-form <static-inputs-form
v-if="steps && steps[currentStep].formKey === 'guestTraffic'" v-if="steps && steps[currentStep].formKey === 'guestTraffic'"
@nextPressed="nextPressed" @nextPressed="nextPressed"
@ -214,8 +225,17 @@ export default {
} }
return isNsx return isNsx
}, },
isNetrisZone () {
let isNetris = false
if (!this.prefillContent.physicalNetworks) {
isNetris = false
} else {
const netrisIdx = this.prefillContent.physicalNetworks.findIndex(network => network.isolationMethod === 'NETRIS')
isNetris = netrisIdx > -1
}
return isNetris
},
allSteps () { allSteps () {
console.log(this.isNsxZone)
const steps = [] const steps = []
steps.push({ steps.push({
title: 'label.physical.network', title: 'label.physical.network',
@ -233,6 +253,12 @@ export default {
formKey: 'nsx' formKey: 'nsx'
}) })
} }
if (this.isNetrisZone) {
steps.push({
title: 'label.netris.provider',
formKey: 'netris'
})
}
if (this.havingNetscaler) { if (this.havingNetscaler) {
steps.push({ steps.push({
title: 'label.netScaler', title: 'label.netScaler',
@ -440,6 +466,42 @@ export default {
] ]
return fields return fields
}, },
netrisFields () {
const fields = [
{
title: 'label.netris.provider.name',
key: 'netrisName',
placeHolder: 'message.installwizard.tooltip.netris.provider.name',
required: true
},
{
title: 'label.netris.provider.hostname',
key: 'netrisHostname',
placeHolder: 'message.installwizard.tooltip.netris.provider.hostname',
required: true
},
{
title: 'label.netris.provider.port',
key: 'netrisPort',
placeHolder: 'message.installwizard.tooltip.netris.provider.port',
required: false
},
{
title: 'label.netris.provider.username',
key: 'username',
placeHolder: 'message.installwizard.tooltip.netris.provider.username',
required: true
},
{
title: 'label.netris.provider.password',
key: 'password',
placeHolder: 'message.installwizard.tooltip.netris.provider.password',
required: true,
password: true
}
]
return fields
},
guestTrafficFields () { guestTrafficFields () {
const fields = [ const fields = [
{ {
@ -510,6 +572,7 @@ export default {
podSetupDescription: 'message.add.pod.during.zone.creation', podSetupDescription: 'message.add.pod.during.zone.creation',
tungstenSetupDescription: 'message.infra.setup.tungsten.description', tungstenSetupDescription: 'message.infra.setup.tungsten.description',
nsxSetupDescription: 'message.infra.setup.nsx.description', nsxSetupDescription: 'message.infra.setup.nsx.description',
netrisSetupDescription: 'message.infra.setup.netris.description',
netscalerSetupDescription: 'label.please.specify.netscaler.info', netscalerSetupDescription: 'label.please.specify.netscaler.info',
storageTrafficDescription: 'label.zonewizard.traffictype.storage', storageTrafficDescription: 'label.zonewizard.traffictype.storage',
podFields: [ podFields: [

View File

@ -67,6 +67,7 @@
<a-select-option value="VCS"> VCS </a-select-option> <a-select-option value="VCS"> VCS </a-select-option>
<a-select-option value="TF"> TF </a-select-option> <a-select-option value="TF"> TF </a-select-option>
<a-select-option v-if="hypervisor === 'VMware'" value="NSX"> NSX </a-select-option> <a-select-option v-if="hypervisor === 'VMware'" value="NSX"> NSX </a-select-option>
<a-select-option v-if="hypervisor === 'KVM'" value="Netris"> NETRIS </a-select-option>
<template #suffixIcon> <template #suffixIcon>
<a-tooltip <a-tooltip