diff --git a/extensions/arc/notebooks/arcDeployment/deploy.arc.data.controller.ipynb b/extensions/arc/notebooks/arcDeployment/deploy.arc.data.controller.ipynb index b2c81eb43a..0043173cc5 100644 --- a/extensions/arc/notebooks/arcDeployment/deploy.arc.data.controller.ipynb +++ b/extensions/arc/notebooks/arcDeployment/deploy.arc.data.controller.ipynb @@ -158,7 +158,7 @@ "metadata": {}, "outputs": [], "source": [ - "is_indirect = arc_data_controller_connectivity_mode == 'Indirect'\n", + "is_indirect = arc_data_controller_connectivity_mode == 'indirect'\n", "\n", "if not is_indirect:\n", "\trun_command('az login')" diff --git a/extensions/arc/package.json b/extensions/arc/package.json index 4fbcda307f..1202e168b5 100644 --- a/extensions/arc/package.json +++ b/extensions/arc/package.json @@ -177,10 +177,16 @@ "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "options": { "values": [ - "Indirect", - "Direct" + { + "name": "indirect", + "displayName": "%arc.data.controller.indirect.display.name%" + }, + { + "name": "direct", + "displayName": "%arc.data.controller.direct.display.name%" + } ], - "defaultValue": "Indirect", + "defaultValue": "indirect", "optionsType": "radio" } }, @@ -193,7 +199,7 @@ "configFileVariableName": "AZDATA_NB_VAR_ARC_CONFIG_FILE", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Indirect" + "value": "indirect" } }, { @@ -210,6 +216,10 @@ }, "defaultValue": "azure-arc-aks-default-storage", "optionsType": "dropdown" + }, + "enabled": { + "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", + "value": "indirect" } } ] @@ -252,7 +262,11 @@ "uksouth", "westeurope", "westus2" - ] + ], + "enabled": { + "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", + "value": "indirect" + } } ] } @@ -269,25 +283,6 @@ "label": "%arc.data.controller.details.description%", "labelWidth": "600px" }, - { - "type": "text", - "label": "%arc.data.controller.namespace%", - "validations": [ - { - "type": "regex_match", - "regex": "^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$", - "description": "%arc.data.controller.namespace.validation.description%" - } - ], - "defaultValue": "", - "required": true, - "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE", - "enabled": { - "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Indirect" - }, - "description": "%arc.data.controller.namespace.description%" - }, { "type": "text", "label": "%arc.data.controller.name%", @@ -332,9 +327,28 @@ "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CLUSTER_NAME", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Direct" + "value": "direct" } }, + { + "type": "text", + "label": "%arc.data.controller.namespace%", + "validations": [ + { + "type": "regex_match", + "regex": "^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$", + "description": "%arc.data.controller.namespace.validation.description%" + } + ], + "defaultValue": "", + "required": true, + "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE", + "enabled": { + "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", + "value": "indirect" + }, + "description": "%arc.data.controller.namespace.description%" + }, { "type": "text", "label": "%arc.data.controller.custom.location%", @@ -343,7 +357,7 @@ "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CUSTOM_LOCATION", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Direct" + "value": "direct" } }, { @@ -354,7 +368,7 @@ "defaultValue": false, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Direct" + "value": "direct" } }, { @@ -365,7 +379,7 @@ "defaultValue": false, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", - "value": "Direct" + "value": "direct" } }, { diff --git a/extensions/arc/package.nls.json b/extensions/arc/package.nls.json index 96c7d409ad..7a7f666e4e 100644 --- a/extensions/arc/package.nls.json +++ b/extensions/arc/package.nls.json @@ -29,6 +29,8 @@ "arc.data.controller.project.details.description": "Select the subscription to manage deployed resources and costs. Use resource groups like folders to organize and manage all your resources.", "arc.data.controller.details.title": "Data controller details", "arc.data.controller.details.description": "For indirect mode, provide a namespace, name and storage class for your Azure Arc data controller. This name will be used to identify your Arc instance for remote management and monitoring. For direct mode you do not need to provide a namespace, but please provide the custom location name.", + "arc.data.controller.indirect.display.name": "Indirect", + "arc.data.controller.direct.display.name": "Direct", "arc.data.controller.connectivity.mode": "Connectivity mode", "arc.data.controller.namespace": "Data controller namespace", "arc.data.controller.namespace.description": "Data controller namespace. Indirect mode only.", diff --git a/extensions/arc/src/models/controllerModel.ts b/extensions/arc/src/models/controllerModel.ts index 7d9b460a60..c96b536f1d 100644 --- a/extensions/arc/src/models/controllerModel.ts +++ b/extensions/arc/src/models/controllerModel.ts @@ -70,7 +70,7 @@ export class ControllerModel { public async refresh(showErrors: boolean = true, namespace: string): Promise { await this.refreshController(showErrors, namespace); - if (this._controllerConfig?.spec.settings.azure.connectionMode === ConnectionMode.direct) { + if (this._controllerConfig?.spec.settings.azure.connectionMode.toLowerCase() === ConnectionMode.direct) { await this.refreshDirectMode(this._controllerConfig?.spec.settings.azure.resourceGroup, namespace); } else { await this.refreshIndirectMode(namespace); diff --git a/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts b/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts index db2c54290a..b2ab576ad9 100644 --- a/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts +++ b/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts @@ -7,7 +7,7 @@ import { ResourceType } from 'arc'; import * as azdata from 'azdata'; import * as azurecore from 'azurecore'; import * as vscode from 'vscode'; -import { getConnectionModeDisplayText, getResourceTypeIcon, resourceTypeToDisplayName } from '../../../common/utils'; +import { getResourceTypeIcon, resourceTypeToDisplayName } from '../../../common/utils'; import { cssStyles, IconPathHelper, controllerTroubleshootDocsUrl, iconSize } from '../../../constants'; import * as loc from '../../../localizedConstants'; import { ControllerModel } from '../../../models/controllerModel'; @@ -218,7 +218,7 @@ export class ControllerDashboardOverviewPage extends DashboardPage { this.controllerProperties.resourceGroupName = config?.spec.settings.azure.resourceGroup || this.controllerProperties.resourceGroupName; this.controllerProperties.location = this._azurecoreApi.getRegionDisplayName(config?.spec.settings.azure.location) || this.controllerProperties.location; this.controllerProperties.subscriptionId = config?.spec.settings.azure.subscription || this.controllerProperties.subscriptionId; - this.controllerProperties.connectionMode = getConnectionModeDisplayText(config?.spec.settings.azure.connectionMode) || this.controllerProperties.connectionMode; + this.controllerProperties.connectionMode = config?.spec.settings.azure.connectionMode.toLowerCase() || this.controllerProperties.connectionMode.toLowerCase(); this.controllerProperties.instanceNamespace = config?.metadata.namespace || this.controllerProperties.instanceNamespace; this.controllerProperties.status = config?.status.state || this.controllerProperties.status; this.refreshDisplayedProperties(); diff --git a/extensions/arc/src/ui/dashboards/miaa/miaaUpgradeManagementPage.ts b/extensions/arc/src/ui/dashboards/miaa/miaaUpgradeManagementPage.ts index 8fcfa8a98d..ecf931281b 100644 --- a/extensions/arc/src/ui/dashboards/miaa/miaaUpgradeManagementPage.ts +++ b/extensions/arc/src/ui/dashboards/miaa/miaaUpgradeManagementPage.ts @@ -160,7 +160,7 @@ export class MiaaUpgradeManagementPage extends DashboardPage { private async getMiaaVersion(): Promise { try { let miaaShowResult; - if (this._controllerModel.info.connectionMode === ConnectionMode.direct || this._controllerModel.controllerConfig?.spec.settings.azure.connectionMode === ConnectionMode.direct) { + if (this._controllerModel.info.connectionMode === ConnectionMode.direct || this._controllerModel.controllerConfig?.spec.settings.azure.connectionMode.toLowerCase() === ConnectionMode.direct) { miaaShowResult = await this._azApi.az.sql.miarc.show( this._miaaModel.info.name, { diff --git a/extensions/arc/src/ui/dialogs/connectControllerDialog.ts b/extensions/arc/src/ui/dialogs/connectControllerDialog.ts index 7a3e01ba46..f8c81b4fd2 100644 --- a/extensions/arc/src/ui/dialogs/connectControllerDialog.ts +++ b/extensions/arc/src/ui/dialogs/connectControllerDialog.ts @@ -201,10 +201,10 @@ export class ConnectToControllerDialog extends ControllerDialogBase { // default info.name to the name of the controller instance if the user did not specify their own and to a pre-canned default if for some weird reason controller endpoint returned instanceName is also not a valid value controllerModel.info.name = controllerModel.info.name || controllerModel.controllerConfig?.metadata.name || loc.defaultControllerName; controllerModel.info.resourceGroup = controllerModel.controllerConfig?.spec.settings.azure.resourceGroup; - controllerModel.info.connectionMode = controllerModel.controllerConfig?.spec.settings.azure.connectionMode; + controllerModel.info.connectionMode = controllerModel.controllerConfig?.spec.settings.azure.connectionMode.toLowerCase(); controllerModel.info.location = controllerModel.controllerConfig?.spec.settings.azure.location; - if (controllerModel.info.connectionMode.toLowerCase() === ConnectionMode.direct.toLowerCase()) { + if (controllerModel.info.connectionMode === ConnectionMode.direct) { const rawCustomLocation = controllerModel.controllerConfig?.metadata.annotations['management.azure.com/customLocation']; const exp = /custom[lL]ocations\/([\S]*)/; controllerModel.info.customLocation = exp.exec(rawCustomLocation)?.pop();