From c5d0c6f62303cf73307456e207e66ac9854870b9 Mon Sep 17 00:00:00 2001 From: Arvind Ranasaria Date: Sat, 5 Sep 2020 10:09:15 -0700 Subject: [PATCH] defining arc api (#12153) * defining arcApi * pr feedback * activate arc extension in test * skip failing test temporarily * remove arcService test file --- extensions/arc/src/common/utils.ts | 5 ++- extensions/arc/src/constants.ts | 5 --- extensions/arc/src/extension.ts | 18 ++++++-- extensions/arc/src/models/controllerModel.ts | 19 +-------- extensions/arc/src/models/miaaModel.ts | 9 ++-- extensions/arc/src/models/postgresModel.ts | 3 +- extensions/arc/src/models/resourceModel.ts | 3 +- extensions/arc/src/test/common/utils.test.ts | 11 ++--- .../arc/src/test/mocks/fakeControllerModel.ts | 3 +- .../src/test/models/controllerModel.test.ts | 11 ++--- .../dialogs/connectControllerDialog.test.ts | 7 ++-- .../ui/tree/azureArcTreeDataProvider.test.ts | 3 +- extensions/arc/src/typings/arc.d.ts | 41 +++++++++++++++++++ .../controllerDashboardOverviewPage.ts | 9 ++-- .../miaa/miaaDashboardOverviewPage.ts | 11 ++--- .../src/ui/dialogs/connectControllerDialog.ts | 5 ++- .../src/ui/tree/azureArcTreeDataProvider.ts | 3 +- .../arc/src/ui/tree/controllerTreeNode.ts | 18 ++++---- extensions/arc/src/ui/tree/miaaTreeNode.ts | 6 +-- .../arc/src/ui/tree/postgresTreeNode.ts | 4 +- .../src/services/arcService.ts | 17 ++++++++ .../resource-deployment/src/typings/ref.d.ts | 1 + 22 files changed, 137 insertions(+), 75 deletions(-) create mode 100644 extensions/arc/src/typings/arc.d.ts create mode 100644 extensions/resource-deployment/src/services/arcService.ts diff --git a/extensions/arc/src/common/utils.ts b/extensions/arc/src/common/utils.ts index d8d12de61e..071cb67e65 100644 --- a/extensions/arc/src/common/utils.ts +++ b/extensions/arc/src/common/utils.ts @@ -3,10 +3,11 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as vscode from 'vscode'; +import { ResourceType } from 'arc'; import * as azurecore from 'azurecore'; +import * as vscode from 'vscode'; +import { ConnectionMode, IconPath, IconPathHelper } from '../constants'; import * as loc from '../localizedConstants'; -import { IconPathHelper, IconPath, ResourceType, ConnectionMode } from '../constants'; export class UserCancelledError extends Error { } diff --git a/extensions/arc/src/constants.ts b/extensions/arc/src/constants.ts index 0585f88728..974138eaea 100644 --- a/extensions/arc/src/constants.ts +++ b/extensions/arc/src/constants.ts @@ -118,11 +118,6 @@ export class IconPathHelper { } } -export const enum ResourceType { - dataControllers = 'dataControllers', - postgresInstances = 'postgresInstances', - sqlManagedInstances = 'sqlManagedInstances' -} export const enum Endpoints { mgmtproxy = 'mgmtproxy', diff --git a/extensions/arc/src/extension.ts b/extensions/arc/src/extension.ts index d1cb071d74..2dc0b6d382 100644 --- a/extensions/arc/src/extension.ts +++ b/extensions/arc/src/extension.ts @@ -3,15 +3,16 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import * as arc from 'arc'; import * as vscode from 'vscode'; -import * as loc from './localizedConstants'; import { IconPathHelper, refreshActionId } from './constants'; +import * as loc from './localizedConstants'; +import { ConnectToControllerDialog } from './ui/dialogs/connectControllerDialog'; import { AzureArcTreeDataProvider } from './ui/tree/azureArcTreeDataProvider'; import { ControllerTreeNode } from './ui/tree/controllerTreeNode'; import { TreeNode } from './ui/tree/treeNode'; -import { ConnectToControllerDialog } from './ui/dialogs/connectControllerDialog'; -export async function activate(context: vscode.ExtensionContext): Promise { +export async function activate(context: vscode.ExtensionContext): Promise { IconPathHelper.setExtensionContext(context); await vscode.commands.executeCommand('setContext', 'arc.loaded', false); @@ -54,6 +55,15 @@ export async function activate(context: vscode.ExtensionContext): Promise }); await checkArcDeploymentExtension(); + + return { + getRegisteredDataControllers: async () => { + return (await treeDataProvider.getChildren()) + .filter(node => node instanceof ControllerTreeNode) + .map(node => (node as ControllerTreeNode).model.info); + + } + }; } export function deactivate(): void { @@ -62,7 +72,7 @@ export function deactivate(): void { async function checkArcDeploymentExtension(): Promise { const version = vscode.extensions.getExtension('Microsoft.arcdeployment')?.packageJSON.version; if (version && version !== '0.3.2') { - // If we have an older verison of the deployment extension installed then uninstall it now since it's replaced + // If we have an older version of the deployment extension installed then uninstall it now since it's replaced // by this extension. (the latest version of the Arc Deployment extension will uninstall itself so don't do // anything here if that's already updated) await vscode.commands.executeCommand('workbench.extensions.uninstallExtension', 'Microsoft.arcdeployment'); diff --git a/extensions/arc/src/models/controllerModel.ts b/extensions/arc/src/models/controllerModel.ts index cb93934909..34441f6a1f 100644 --- a/extensions/arc/src/models/controllerModel.ts +++ b/extensions/arc/src/models/controllerModel.ts @@ -3,28 +3,13 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo, ResourceType } from 'arc'; import * as azdataExt from 'azdata-ext'; import * as vscode from 'vscode'; import { parseInstanceName, UserCancelledError } from '../common/utils'; -import { ResourceType } from '../constants'; -import { AzureArcTreeDataProvider } from '../ui/tree/azureArcTreeDataProvider'; import * as loc from '../localizedConstants'; import { ConnectToControllerDialog } from '../ui/dialogs/connectControllerDialog'; - -export type ControllerInfo = { - id: string, - url: string, - name: string, - username: string, - rememberPassword: boolean, - resources: ResourceInfo[] -}; - -export type ResourceInfo = { - name: string, - resourceType: ResourceType | string, - connectionId?: string -}; +import { AzureArcTreeDataProvider } from '../ui/tree/azureArcTreeDataProvider'; export type Registration = { instanceName: string, diff --git a/extensions/arc/src/models/miaaModel.ts b/extensions/arc/src/models/miaaModel.ts index 729ff9bb5b..f4383d0aef 100644 --- a/extensions/arc/src/models/miaaModel.ts +++ b/extensions/arc/src/models/miaaModel.ts @@ -3,15 +3,16 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceInfo } from 'arc'; import * as azdata from 'azdata'; import * as azdataExt from 'azdata-ext'; import * as vscode from 'vscode'; -import { ResourceModel } from './resourceModel'; -import { ResourceInfo, Registration, ControllerModel } from './controllerModel'; -import { AzureArcTreeDataProvider } from '../ui/tree/azureArcTreeDataProvider'; import { Deferred } from '../common/promise'; -import * as loc from '../localizedConstants'; import { UserCancelledError } from '../common/utils'; +import * as loc from '../localizedConstants'; +import { AzureArcTreeDataProvider } from '../ui/tree/azureArcTreeDataProvider'; +import { ControllerModel, Registration } from './controllerModel'; +import { ResourceModel } from './resourceModel'; export type DatabaseModel = { name: string, status: string }; diff --git a/extensions/arc/src/models/postgresModel.ts b/extensions/arc/src/models/postgresModel.ts index bd0852f27d..4c051a629f 100644 --- a/extensions/arc/src/models/postgresModel.ts +++ b/extensions/arc/src/models/postgresModel.ts @@ -3,9 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceInfo } from 'arc'; import * as vscode from 'vscode'; import * as loc from '../localizedConstants'; -import { ResourceInfo, Registration } from './controllerModel'; +import { Registration } from './controllerModel'; import { ResourceModel } from './resourceModel'; export enum PodRole { diff --git a/extensions/arc/src/models/resourceModel.ts b/extensions/arc/src/models/resourceModel.ts index 5dd0222380..9698d0af9e 100644 --- a/extensions/arc/src/models/resourceModel.ts +++ b/extensions/arc/src/models/resourceModel.ts @@ -3,8 +3,9 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceInfo } from 'arc'; import * as vscode from 'vscode'; -import { ResourceInfo, Registration } from './controllerModel'; +import { Registration } from './controllerModel'; export abstract class ResourceModel { diff --git a/extensions/arc/src/test/common/utils.test.ts b/extensions/arc/src/test/common/utils.test.ts index 761942b5b8..fde0f65ac2 100644 --- a/extensions/arc/src/test/common/utils.test.ts +++ b/extensions/arc/src/test/common/utils.test.ts @@ -3,15 +3,16 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as vscode from 'vscode'; -import * as should from 'should'; +import { ResourceType } from 'arc'; import 'mocha'; -import { resourceTypeToDisplayName, parseEndpoint, parseInstanceName, getAzurecoreApi, getResourceTypeIcon, getConnectionModeDisplayText, getDatabaseStateDisplayText, promptForResourceDeletion, promptAndConfirmPassword, getErrorMessage, parseIpAndPort } from '../../common/utils'; - +import * as should from 'should'; +import * as vscode from 'vscode'; +import { getAzurecoreApi, getConnectionModeDisplayText, getDatabaseStateDisplayText, getErrorMessage, getResourceTypeIcon, parseEndpoint, parseInstanceName, parseIpAndPort, promptAndConfirmPassword, promptForResourceDeletion, resourceTypeToDisplayName } from '../../common/utils'; +import { ConnectionMode as ConnectionMode, IconPathHelper } from '../../constants'; import * as loc from '../../localizedConstants'; -import { ResourceType, IconPathHelper, ConnectionMode as ConnectionMode } from '../../constants'; import { MockInputBox } from '../stubs'; + describe('resourceTypeToDisplayName Method Tests', function (): void { it('Display Name should be correct for valid ResourceType', function (): void { should(resourceTypeToDisplayName(ResourceType.dataControllers)).equal(loc.dataControllersType); diff --git a/extensions/arc/src/test/mocks/fakeControllerModel.ts b/extensions/arc/src/test/mocks/fakeControllerModel.ts index ae78022fe9..9c19a0de14 100644 --- a/extensions/arc/src/test/mocks/fakeControllerModel.ts +++ b/extensions/arc/src/test/mocks/fakeControllerModel.ts @@ -3,8 +3,9 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import { v4 as uuid } from 'uuid'; -import { ControllerModel, ControllerInfo } from '../../models/controllerModel'; +import { ControllerModel } from '../../models/controllerModel'; import { AzureArcTreeDataProvider } from '../../ui/tree/azureArcTreeDataProvider'; export class FakeControllerModel extends ControllerModel { diff --git a/extensions/arc/src/test/models/controllerModel.test.ts b/extensions/arc/src/test/models/controllerModel.test.ts index fef79b5408..785ceb194b 100644 --- a/extensions/arc/src/test/models/controllerModel.test.ts +++ b/extensions/arc/src/test/models/controllerModel.test.ts @@ -3,17 +3,18 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import * as azdata from 'azdata'; import * as azdataExt from 'azdata-ext'; +import * as should from 'should'; import * as sinon from 'sinon'; import * as TypeMoq from 'typemoq'; -import * as vscode from 'vscode'; -import * as should from 'should'; import { v4 as uuid } from 'uuid'; -import { ConnectToControllerDialog } from '../../ui/dialogs/connectControllerDialog'; -import { ControllerModel, ControllerInfo } from '../../models/controllerModel'; -import { AzureArcTreeDataProvider } from '../../ui/tree/azureArcTreeDataProvider'; +import * as vscode from 'vscode'; import { UserCancelledError } from '../../common/utils'; +import { ControllerModel } from '../../models/controllerModel'; +import { ConnectToControllerDialog } from '../../ui/dialogs/connectControllerDialog'; +import { AzureArcTreeDataProvider } from '../../ui/tree/azureArcTreeDataProvider'; describe('ControllerModel', function (): void { afterEach(function (): void { diff --git a/extensions/arc/src/test/ui/dialogs/connectControllerDialog.test.ts b/extensions/arc/src/test/ui/dialogs/connectControllerDialog.test.ts index 0a7a2a9ee5..2b8df03beb 100644 --- a/extensions/arc/src/test/ui/dialogs/connectControllerDialog.test.ts +++ b/extensions/arc/src/test/ui/dialogs/connectControllerDialog.test.ts @@ -3,12 +3,13 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import * as should from 'should'; import * as sinon from 'sinon'; -import { ControllerInfo, ControllerModel } from '../../../models/controllerModel'; -import { ConnectToControllerDialog } from '../../../ui/dialogs/connectControllerDialog'; -import * as loc from '../../../localizedConstants'; import { v4 as uuid } from 'uuid'; +import * as loc from '../../../localizedConstants'; +import { ControllerModel } from '../../../models/controllerModel'; +import { ConnectToControllerDialog } from '../../../ui/dialogs/connectControllerDialog'; describe('ConnectControllerDialog', function (): void { afterEach(function (): void { diff --git a/extensions/arc/src/test/ui/tree/azureArcTreeDataProvider.test.ts b/extensions/arc/src/test/ui/tree/azureArcTreeDataProvider.test.ts index 9937122cfc..a6161223f0 100644 --- a/extensions/arc/src/test/ui/tree/azureArcTreeDataProvider.test.ts +++ b/extensions/arc/src/test/ui/tree/azureArcTreeDataProvider.test.ts @@ -3,12 +3,13 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import 'mocha'; import * as should from 'should'; import * as TypeMoq from 'typemoq'; import { v4 as uuid } from 'uuid'; import * as vscode from 'vscode'; -import { ControllerModel, ControllerInfo } from '../../../models/controllerModel'; +import { ControllerModel } from '../../../models/controllerModel'; import { AzureArcTreeDataProvider } from '../../../ui/tree/azureArcTreeDataProvider'; import { ControllerTreeNode } from '../../../ui/tree/controllerTreeNode'; import { FakeControllerModel } from '../../mocks/fakeControllerModel'; diff --git a/extensions/arc/src/typings/arc.d.ts b/extensions/arc/src/typings/arc.d.ts new file mode 100644 index 0000000000..80933cf272 --- /dev/null +++ b/extensions/arc/src/typings/arc.d.ts @@ -0,0 +1,41 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +declare module 'arc' { + import * as vscode from 'vscode'; + + /** + * Covers defining what the arc extension exports to other extensions + * + * IMPORTANT: THIS IS NOT A HARD DEFINITION unlike vscode; therefore no enums or classes should be defined here + * (const enums get evaluated when typescript -> javascript so those are fine) + */ + export const enum extension { + name = 'Microsoft.arc' + } + export const enum ResourceType { + dataControllers = 'dataControllers', + postgresInstances = 'postgresInstances', + sqlManagedInstances = 'sqlManagedInstances' + } + + export type ResourceInfo = { + name: string, + resourceType: ResourceType | string, + connectionId?: string + }; + + export type ControllerInfo = { + id: string, + url: string, + name: string, + username: string, + rememberPassword: boolean, + resources: ResourceInfo[] + }; + + export interface IExtension { + getRegisteredDataControllers(): Promise; + } +} diff --git a/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts b/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts index 939a716797..13d53c3d81 100644 --- a/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts +++ b/extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts @@ -3,14 +3,15 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceType } from 'arc'; import * as azdata from 'azdata'; -import * as vscode from 'vscode'; import * as azurecore from 'azurecore'; +import * as vscode from 'vscode'; +import { getConnectionModeDisplayText, getResourceTypeIcon, parseInstanceName, resourceTypeToDisplayName } from '../../../common/utils'; +import { cssStyles, Endpoints, IconPathHelper, iconSize } from '../../../constants'; import * as loc from '../../../localizedConstants'; -import { DashboardPage } from '../../components/dashboardPage'; -import { IconPathHelper, cssStyles, iconSize, ResourceType, Endpoints } from '../../../constants'; import { ControllerModel } from '../../../models/controllerModel'; -import { resourceTypeToDisplayName, getResourceTypeIcon, parseInstanceName, getConnectionModeDisplayText } from '../../../common/utils'; +import { DashboardPage } from '../../components/dashboardPage'; export class ControllerDashboardOverviewPage extends DashboardPage { diff --git a/extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts b/extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts index 7b9ebfd1c0..3e58fcc7e5 100644 --- a/extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts +++ b/extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts @@ -5,14 +5,15 @@ import * as azdata from 'azdata'; import * as azdataExt from 'azdata-ext'; -import * as vscode from 'vscode'; -import * as loc from '../../../localizedConstants'; import * as azurecore from 'azurecore'; -import { DashboardPage } from '../../components/dashboardPage'; -import { IconPathHelper, cssStyles, Endpoints, ResourceType } from '../../../constants'; -import { ControllerModel } from '../../../models/controllerModel'; +import * as vscode from 'vscode'; import { getDatabaseStateDisplayText, promptForResourceDeletion } from '../../../common/utils'; +import { cssStyles, Endpoints, IconPathHelper } from '../../../constants'; +import * as loc from '../../../localizedConstants'; +import { ControllerModel } from '../../../models/controllerModel'; import { MiaaModel } from '../../../models/miaaModel'; +import { DashboardPage } from '../../components/dashboardPage'; +import { ResourceType } from 'arc'; export class MiaaDashboardOverviewPage extends DashboardPage { diff --git a/extensions/arc/src/ui/dialogs/connectControllerDialog.ts b/extensions/arc/src/ui/dialogs/connectControllerDialog.ts index bc8524c11c..c63137fa8d 100644 --- a/extensions/arc/src/ui/dialogs/connectControllerDialog.ts +++ b/extensions/arc/src/ui/dialogs/connectControllerDialog.ts @@ -3,12 +3,13 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import * as azdata from 'azdata'; -import * as vscode from 'vscode'; import { v4 as uuid } from 'uuid'; +import * as vscode from 'vscode'; import { Deferred } from '../../common/promise'; import * as loc from '../../localizedConstants'; -import { ControllerInfo, ControllerModel } from '../../models/controllerModel'; +import { ControllerModel } from '../../models/controllerModel'; import { InitializingComponent } from '../components/initializingComponent'; import { AzureArcTreeDataProvider } from '../tree/azureArcTreeDataProvider'; diff --git a/extensions/arc/src/ui/tree/azureArcTreeDataProvider.ts b/extensions/arc/src/ui/tree/azureArcTreeDataProvider.ts index 134c75f6ea..cd92471c70 100644 --- a/extensions/arc/src/ui/tree/azureArcTreeDataProvider.ts +++ b/extensions/arc/src/ui/tree/azureArcTreeDataProvider.ts @@ -3,11 +3,12 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ControllerInfo } from 'arc'; import * as azdata from 'azdata'; import * as vscode from 'vscode'; +import { ControllerModel } from '../../models/controllerModel'; import { ControllerTreeNode } from './controllerTreeNode'; import { TreeNode } from './treeNode'; -import { ControllerModel, ControllerInfo } from '../../models/controllerModel'; const mementoToken = 'arcControllers'; diff --git a/extensions/arc/src/ui/tree/controllerTreeNode.ts b/extensions/arc/src/ui/tree/controllerTreeNode.ts index c27a24e6d9..f25f42c1f6 100644 --- a/extensions/arc/src/ui/tree/controllerTreeNode.ts +++ b/extensions/arc/src/ui/tree/controllerTreeNode.ts @@ -3,20 +3,20 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceInfo, ResourceType } from 'arc'; import * as vscode from 'vscode'; -import { TreeNode } from './treeNode'; -import { MiaaTreeNode } from './miaaTreeNode'; -import { ResourceType } from '../../constants'; -import { PostgresTreeNode } from './postgresTreeNode'; -import { ControllerModel, Registration, ResourceInfo } from '../../models/controllerModel'; -import { ControllerDashboard } from '../dashboards/controller/controllerDashboard'; -import { PostgresModel } from '../../models/postgresModel'; import { parseInstanceName, UserCancelledError } from '../../common/utils'; +import * as loc from '../../localizedConstants'; +import { ControllerModel, Registration } from '../../models/controllerModel'; import { MiaaModel } from '../../models/miaaModel'; +import { PostgresModel } from '../../models/postgresModel'; +import { ControllerDashboard } from '../dashboards/controller/controllerDashboard'; +import { AzureArcTreeDataProvider } from './azureArcTreeDataProvider'; +import { MiaaTreeNode } from './miaaTreeNode'; +import { PostgresTreeNode } from './postgresTreeNode'; import { RefreshTreeNode } from './refreshTreeNode'; import { ResourceTreeNode } from './resourceTreeNode'; -import { AzureArcTreeDataProvider } from './azureArcTreeDataProvider'; -import * as loc from '../../localizedConstants'; +import { TreeNode } from './treeNode'; /** * The TreeNode for displaying an Azure Arc Controller diff --git a/extensions/arc/src/ui/tree/miaaTreeNode.ts b/extensions/arc/src/ui/tree/miaaTreeNode.ts index 7fe90b87ad..4e8556874e 100644 --- a/extensions/arc/src/ui/tree/miaaTreeNode.ts +++ b/extensions/arc/src/ui/tree/miaaTreeNode.ts @@ -3,12 +3,12 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceType } from 'arc'; import * as vscode from 'vscode'; -import { ResourceType } from '../../constants'; -import { TreeNode } from './treeNode'; -import { MiaaModel } from '../../models/miaaModel'; import { ControllerModel } from '../../models/controllerModel'; +import { MiaaModel } from '../../models/miaaModel'; import { MiaaDashboard } from '../dashboards/miaa/miaaDashboard'; +import { TreeNode } from './treeNode'; /** * The TreeNode for displaying a SQL Managed Instance on Azure Arc diff --git a/extensions/arc/src/ui/tree/postgresTreeNode.ts b/extensions/arc/src/ui/tree/postgresTreeNode.ts index 56851a955d..42c8885c06 100644 --- a/extensions/arc/src/ui/tree/postgresTreeNode.ts +++ b/extensions/arc/src/ui/tree/postgresTreeNode.ts @@ -3,10 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ResourceType } from 'arc'; import * as vscode from 'vscode'; -import { ResourceType } from '../../constants'; -import { PostgresModel } from '../../models/postgresModel'; import { ControllerModel } from '../../models/controllerModel'; +import { PostgresModel } from '../../models/postgresModel'; import { PostgresDashboard } from '../dashboards/postgres/postgresDashboard'; import { ResourceTreeNode } from './resourceTreeNode'; diff --git a/extensions/resource-deployment/src/services/arcService.ts b/extensions/resource-deployment/src/services/arcService.ts new file mode 100644 index 0000000000..7f912bb260 --- /dev/null +++ b/extensions/resource-deployment/src/services/arcService.ts @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +import * as arc from 'arc'; +import * as vscode from 'vscode'; + +export class ArcService { + private _arcApi: arc.IExtension; + constructor() { + this._arcApi = vscode.extensions.getExtension(arc.extension.name)?.exports; + } + + public async getRegisteredDataControllers(): Promise { + return await this._arcApi.getRegisteredDataControllers(); + } +} diff --git a/extensions/resource-deployment/src/typings/ref.d.ts b/extensions/resource-deployment/src/typings/ref.d.ts index 0e316762ac..8146e7bfb3 100644 --- a/extensions/resource-deployment/src/typings/ref.d.ts +++ b/extensions/resource-deployment/src/typings/ref.d.ts @@ -6,6 +6,7 @@ /// /// /// +/// /// /// ///