Add SQL MIAA Upgrade Management tab (#19238)

* Added sql upgrade management page and fixed icon for dc and sql upgrade

* Added logic for figuring out MIAA version, loading proper entries for table.

* Added PR comment changes

Co-authored-by: Candice Ye <canye@microsoft.com>
This commit is contained in:
Candice Ye
2022-05-09 14:35:42 -07:00
committed by GitHub
parent c09ab8d0a9
commit adf6f253f0
13 changed files with 531 additions and 44 deletions

View File

@@ -128,10 +128,20 @@ export function getAzApi(localAzDiscovered: Promise<IAzTool | undefined>, azTool
validateAz(azToolService.localAz);
return azToolService.localAz!.sql.miarc.list(namespace, additionalEnvVars);
},
show: async (name: string, namespace: string, additionalEnvVars?: azExt.AdditionalEnvVars) => {
show: async (
name: string,
args: {
// Direct mode arguments
resourceGroup?: string;
// Indirect mode arguments
namespace?: string;
},
// Additional arguments
additionalEnvVars?: azExt.AdditionalEnvVars
) => {
await localAzDiscovered;
validateAz(azToolService.localAz);
return azToolService.localAz!.sql.miarc.show(name, namespace, additionalEnvVars);
return azToolService.localAz!.sql.miarc.show(name, args, additionalEnvVars);
},
update: async (
name: string,
@@ -155,21 +165,19 @@ export function getAzApi(localAzDiscovered: Promise<IAzTool | undefined>, azTool
return azToolService.localAz!.sql.miarc.update(name, args, resourceGroup, namespace, usek8s, additionalEnvVars);
},
upgrade: async (
desiredVersion: string,
name: string,
args: {
// Direct mode arguments
resourceGroup?: string;
// Indirect mode arguments
namespace?: string;
usek8s?: boolean;
},
// Additional arguments
additionalEnvVars?: azExt.AdditionalEnvVars
) => {
await localAzDiscovered;
validateAz(azToolService.localAz);
return azToolService.localAz!.sql.miarc.upgrade(desiredVersion, name, args, additionalEnvVars);
return azToolService.localAz!.sql.miarc.upgrade(name, args, additionalEnvVars);
}
},
midbarc: {

View File

@@ -181,8 +181,24 @@ export class AzTool implements azExt.IAzApi {
list: (namespace: string, additionalEnvVars?: azExt.AdditionalEnvVars): Promise<azExt.AzOutput<azExt.SqlMiListResult[]>> => {
return this.executeCommand<azExt.SqlMiListResult[]>(['sql', 'mi-arc', 'list', '--k8s-namespace', namespace, '--use-k8s'], additionalEnvVars);
},
show: (name: string, namespace: string, additionalEnvVars?: azExt.AdditionalEnvVars): Promise<azExt.AzOutput<azExt.SqlMiShowResult>> => {
return this.executeCommand<azExt.SqlMiShowResult>(['sql', 'mi-arc', 'show', '-n', name, '--k8s-namespace', namespace, '--use-k8s'], additionalEnvVars);
show: (
name: string,
args: {
// Direct mode arguments
resourceGroup?: string,
// Indirect mode arguments
namespace?: string
// Additional arguments
},
additionalEnvVars?: azExt.AdditionalEnvVars
): Promise<azExt.AzOutput<azExt.SqlMiShowResult>> => {
const argsArray = ['sql', 'mi-arc', 'show', '-n', name];
if (args.resourceGroup) { argsArray.push('--resource-group', args.resourceGroup); }
if (args.namespace) {
argsArray.push('--k8s-namespace', args.namespace);
argsArray.push('--use-k8s');
}
return this.executeCommand<azExt.SqlMiShowResult>(argsArray, additionalEnvVars);
},
update: (
name: string,
@@ -215,22 +231,22 @@ export class AzTool implements azExt.IAzApi {
return this.executeCommand<void>(argsArray, additionalEnvVars);
},
upgrade: (
desiredVersion: string,
name: string,
args: {
// Direct mode arguments
resourceGroup?: string,
// Indirect mode arguments
namespace?: string,
usek8s?: boolean
namespace?: string
// Additional arguments
},
additionalEnvVars?: azExt.AdditionalEnvVars
): Promise<azExt.AzOutput<void>> => {
const argsArray = ['sql', 'mi-arc', 'upgrade', '--desired-version', desiredVersion, '--name', name];
const argsArray = ['sql', 'mi-arc', 'upgrade', '--name', name];
if (args.resourceGroup) { argsArray.push('--resource-group', args.resourceGroup); }
if (args.namespace) { argsArray.push('--k8s-namespace', args.namespace); }
if (args.usek8s) { argsArray.push('--use-k8s'); }
if (args.namespace) {
argsArray.push('--k8s-namespace', args.namespace);
argsArray.push('--use-k8s');
}
return this.executeCommand<void>(argsArray, additionalEnvVars);
}
},

View File

@@ -110,15 +110,18 @@ describe('az', function () {
describe('sql', function (): void {
describe('mi-arc', function (): void {
it('delete', async function (): Promise<void> {
// Assume indirect mode
await azTool.sql.miarc.delete(name, namespace);
verifyExecuteCommandCalledWithArgs(['sql', 'mi-arc', 'delete', name, '--k8s-namespace', namespace, '--use-k8s']);
});
it('list', async function (): Promise<void> {
// Assume indirect mode
await azTool.sql.miarc.list(namespace);
verifyExecuteCommandCalledWithArgs(['sql', 'mi-arc', 'list', '--k8s-namespace', namespace, '--use-k8s']);
});
it('show', async function (): Promise<void> {
await azTool.sql.miarc.show(name, namespace);
// Assume indirect mode
await azTool.sql.miarc.show(name, {resourceGroup: undefined, namespace: namespace});
verifyExecuteCommandCalledWithArgs(['sql', 'mi-arc', 'show', name, '--k8s-namespace', namespace, '--use-k8s']);
});
});

View File

@@ -179,6 +179,7 @@ declare module 'az-ext' {
logSearchDashboard: string, // https://127.0.0.1:30777/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:miaa1'))
metricsDashboard: string, // https://127.0.0.1:30777/grafana/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=miaa1-0
primaryEndpoint?: string // "10.91.86.39:32718"
runningVersion: string // "v1.5.0_2022-04-05"
}
}
@@ -374,7 +375,17 @@ declare module 'az-ext' {
miarc: {
delete(name: string, namespace?: string, additionalEnvVars?: AdditionalEnvVars): Promise<AzOutput<void>>,
list(namespace?: string, additionalEnvVars?: AdditionalEnvVars): Promise<AzOutput<SqlMiListResult[]>>,
show(name: string, namespace?: string, additionalEnvVars?: AdditionalEnvVars): Promise<AzOutput<SqlMiShowResult>>,
show(
name: string,
args: {
// Direct mode arguments
resourceGroup?: string,
// Indirect mode arguments
namespace?: string
},
// Additional arguments
additionalEnvVars?: AdditionalEnvVars
): Promise<AzOutput<SqlMiShowResult>>,
update(
name: string,
args: {
@@ -394,14 +405,12 @@ declare module 'az-ext' {
additionalEnvVars?: AdditionalEnvVars
): Promise<AzOutput<void>>,
upgrade(
desiredVersion: string,
name: string,
args: {
// Direct mode arguments
resourceGroup?: string,
// Indirect mode arguments
namespace?: string,
usek8s?: boolean
namespace?: string
},
// Additional arguments
additionalEnvVars?: AdditionalEnvVars