diff --git a/extensions/arc/src/ui/dashboards/postgres/postgresBackupPage.ts b/extensions/arc/src/ui/dashboards/postgres/postgresBackupPage.ts deleted file mode 100644 index e0cccd65df..0000000000 --- a/extensions/arc/src/ui/dashboards/postgres/postgresBackupPage.ts +++ /dev/null @@ -1,31 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as loc from '../../../localizedConstants'; -import { IconPathHelper } from '../../../constants'; -import { DashboardPage } from '../../components/dashboardPage'; - -export class PostgresBackupPage extends DashboardPage { - protected get title(): string { - return loc.backup; - } - - protected get id(): string { - return 'postgres-backup'; - } - - protected get icon(): { dark: string; light: string; } { - return IconPathHelper.backup; - } - - protected get container(): azdata.Component { - return this.modelView.modelBuilder.text().withProperties({ value: loc.backup }).component(); - } - - protected get toolbarContainer(): azdata.ToolbarContainer { - return this.modelView.modelBuilder.toolbarContainer().component(); - } -} diff --git a/extensions/arc/src/ui/dashboards/postgres/postgresComputeStoragePage.ts b/extensions/arc/src/ui/dashboards/postgres/postgresComputeStoragePage.ts deleted file mode 100644 index f01148cb3d..0000000000 --- a/extensions/arc/src/ui/dashboards/postgres/postgresComputeStoragePage.ts +++ /dev/null @@ -1,31 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as loc from '../../../localizedConstants'; -import { IconPathHelper } from '../../../constants'; -import { DashboardPage } from '../../components/dashboardPage'; - -export class PostgresComputeStoragePage extends DashboardPage { - protected get title(): string { - return loc.computeAndStorage; - } - - protected get id(): string { - return 'postgres-compute-storage'; - } - - protected get icon(): { dark: string; light: string; } { - return IconPathHelper.computeStorage; - } - - protected get container(): azdata.Component { - return this.modelView.modelBuilder.text().withProperties({ value: loc.computeAndStorage }).component(); - } - - protected get toolbarContainer(): azdata.ToolbarContainer { - return this.modelView.modelBuilder.toolbarContainer().component(); - } -} diff --git a/extensions/arc/src/ui/dashboards/postgres/postgresNetworkingPage.ts b/extensions/arc/src/ui/dashboards/postgres/postgresNetworkingPage.ts deleted file mode 100644 index ae91757a42..0000000000 --- a/extensions/arc/src/ui/dashboards/postgres/postgresNetworkingPage.ts +++ /dev/null @@ -1,31 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as loc from '../../../localizedConstants'; -import { IconPathHelper } from '../../../constants'; -import { DashboardPage } from '../../components/dashboardPage'; - -export class PostgresNetworkingPage extends DashboardPage { - protected get title(): string { - return loc.networking; - } - - protected get id(): string { - return 'postgres-networking'; - } - - protected get icon(): { dark: string; light: string; } { - return IconPathHelper.networking; - } - - protected get container(): azdata.Component { - return this.modelView.modelBuilder.text().withProperties({ value: loc.networking }).component(); - } - - protected get toolbarContainer(): azdata.ToolbarContainer { - return this.modelView.modelBuilder.toolbarContainer().component(); - } -} diff --git a/extensions/arc/src/ui/dashboards/postgres/postgresOverviewPage.ts b/extensions/arc/src/ui/dashboards/postgres/postgresOverviewPage.ts index 1b3c0c6e83..e186a47ab6 100644 --- a/extensions/arc/src/ui/dashboards/postgres/postgresOverviewPage.ts +++ b/extensions/arc/src/ui/dashboards/postgres/postgresOverviewPage.ts @@ -5,12 +5,13 @@ import * as vscode from 'vscode'; import * as azdata from 'azdata'; +import * as azdataExt from 'azdata-ext'; import * as loc from '../../../localizedConstants'; import { IconPathHelper, cssStyles, Endpoints } from '../../../constants'; import { DashboardPage } from '../../components/dashboardPage'; import { ControllerModel } from '../../../models/controllerModel'; import { PostgresModel } from '../../../models/postgresModel'; -import { promptAndConfirmPassword } from '../../../common/utils'; +import { promptAndConfirmPassword, promptForResourceDeletion } from '../../../common/utils'; export class PostgresOverviewPage extends DashboardPage { @@ -22,8 +23,11 @@ export class PostgresOverviewPage extends DashboardPage { private kibanaLink?: azdata.HyperlinkComponent; private grafanaLink?: azdata.HyperlinkComponent; + private readonly _azdataApi: azdataExt.IExtension; + constructor(protected modelView: azdata.ModelView, private _controllerModel: ControllerModel, private _postgresModel: PostgresModel) { super(modelView); + this._azdataApi = vscode.extensions.getExtension(azdataExt.extension.name)?.exports; this.disposables.push( this._controllerModel.onEndpointsUpdated(() => this.eventuallyRunOnInitialized(() => this.handleEndpointsUpdated())), @@ -170,13 +174,11 @@ export class PostgresOverviewPage extends DashboardPage { deleteButton.onDidClick(async () => { deleteButton.enabled = false; try { - /* - if (await promptForResourceDeletion(this._postgresModel.namespace, this._postgresModel.name)) { - await this._postgresModel.delete(); - await this._controllerModel.deleteRegistration(ResourceType.postgresInstances, this._postgresModel.namespace, this._postgresModel.name); - vscode.window.showInformationMessage(loc.resourceDeleted(this._postgresModel.fullName)); + if (await promptForResourceDeletion(this._postgresModel.info.name)) { + await this._azdataApi.azdata.arc.postgres.server.delete(this._postgresModel.info.name); + await this._controllerModel.refreshTreeNode(); + vscode.window.showInformationMessage(loc.resourceDeleted(this._postgresModel.info.name)); } - */ } catch (error) { vscode.window.showErrorMessage(loc.resourceDeletionFailed(this._postgresModel.info.name, error)); } finally { diff --git a/extensions/azdata/src/azdata.ts b/extensions/azdata/src/azdata.ts index 0c17a60a9b..b66b526230 100644 --- a/extensions/azdata/src/azdata.ts +++ b/extensions/azdata/src/azdata.ts @@ -78,6 +78,9 @@ export class AzdataTool implements IAzdataTool { }, postgres: { server: { + delete: async (name: string) => { + return this.executeCommand(['arc', 'postgres', 'server', 'delete', '-n', name]); + }, list: async () => { return this.executeCommand(['arc', 'postgres', 'server', 'list']); }, diff --git a/extensions/azdata/src/extension.ts b/extensions/azdata/src/extension.ts index a16d5a1f3e..6a29f61ffb 100644 --- a/extensions/azdata/src/extension.ts +++ b/extensions/azdata/src/extension.ts @@ -85,6 +85,10 @@ export async function activate(context: vscode.ExtensionContext): Promise { + await throwIfNoAzdataOrEulaNotAccepted(); + return localAzdata!.arc.postgres.server.delete(name); + }, list: async () => { await throwIfNoAzdataOrEulaNotAccepted(); return localAzdata!.arc.postgres.server.list(); diff --git a/extensions/azdata/src/typings/azdata-ext.d.ts b/extensions/azdata/src/typings/azdata-ext.d.ts index c86769fcc4..c25064880e 100644 --- a/extensions/azdata/src/typings/azdata-ext.d.ts +++ b/extensions/azdata/src/typings/azdata-ext.d.ts @@ -228,6 +228,7 @@ declare module 'azdata-ext' { }, postgres: { server: { + delete(name: string): Promise>, list(): Promise>, show(name: string): Promise>, edit(args: {