Add Backup tab under SQL Miaa dashboard, 'Configure Retention Policy' settings dialog, listing databases with latest PITR timetamp, Pitr dialog to restore (#17269)

* backup page

* config rpo first

* rpo az cli

* working 1

* working 2

* working -3

* working -3

* working 4

* working with button component

* remove Date usage, use string instead

* cleanup

* cleanup 2

* Update localizedConstants.ts

rectify the wording until, figure out a way to fetch earliest backup

* pitr dialog, remove rpo

* pr feedback

* pr feedback

* pr feedback

* pr feedback

* feedback

* remove iso time conversion and show time as-is
This commit is contained in:
Shagun Sharma Tamta
2021-10-14 12:29:53 -07:00
committed by GitHub
parent 74aacda70d
commit f126c998d2
12 changed files with 845 additions and 27 deletions

View File

@@ -132,6 +132,20 @@ export function getAzApi(localAzDiscovered: Promise<IAzTool | undefined>, azTool
validateAz(azToolService.localAz);
return azToolService.localAz!.sql.miarc.edit(name, args, namespace, additionalEnvVars);
}
},
midbarc: {
restore: async (name: string,
args: {
destName?: string,
managedInstance?: string,
time?: string,
noWait?: boolean,
},
namespace: string, additionalEnvVars?: azExt.AdditionalEnvVars) => {
await localAzDiscovered;
validateAz(azToolService.localAz);
return azToolService.localAz!.sql.midbarc.restore(name, args, namespace, additionalEnvVars);
}
}
},
getPath: async () => {

View File

@@ -162,6 +162,7 @@ export class AzTool implements azExt.IAzApi {
memoryLimit?: string,
memoryRequest?: string,
noWait?: boolean,
retentionDays?: string
},
namespace: string,
additionalEnvVars?: azExt.AdditionalEnvVars
@@ -172,11 +173,33 @@ export class AzTool implements azExt.IAzApi {
if (args.memoryLimit) { argsArray.push('--memory-limit', args.memoryLimit); }
if (args.memoryRequest) { argsArray.push('--memory-request', args.memoryRequest); }
if (args.noWait) { argsArray.push('--no-wait'); }
if (args.retentionDays) { argsArray.push('--retention-days', args.retentionDays); }
return this.executeCommand<void>(argsArray, additionalEnvVars);
}
},
midbarc: {
restore: (
name: string,
args: {
destName?: string,
managedInstance?: string,
time?: string,
noWait?: boolean,
},
namespace: string,
additionalEnvVars?: azExt.AdditionalEnvVars
): Promise<azExt.AzOutput<void>> => {
const argsArray = ['sql', 'midb-arc', 'restore', '--name', name, '--k8s-namespace', namespace, '--use-k8s'];
if (args.destName) { argsArray.push('--dest-name', args.destName); }
if (args.managedInstance) { argsArray.push('--managed-instance', args.managedInstance); }
if (args.time) { argsArray.push('--time', args.time); }
if (args.noWait) { argsArray.push('--no-wait'); }
return this.executeCommand<void>(argsArray, additionalEnvVars);
}
}
};
/**
* Gets the output of running '--version' command on the az tool.
* It also updates the cachedVersion property based on the return value from the tool.

View File

@@ -141,6 +141,9 @@ declare module 'az-ext' {
uid: string // "cea737aa-3f82-4f6a-9bed-2b51c2c33dff"
},
spec: {
backup?: {
retentionPeriodInDays: number, // 1
}
scheduling?: {
default?: {
resources?: {
@@ -314,11 +317,25 @@ declare module 'az-ext' {
edit(
name: string,
args: {
coresLimit?: string,
coresRequest?: string,
memoryLimit?: string,
memoryRequest?: string,
noWait?: boolean,
coresLimit?: string, //2
coresRequest?: string, //1
memoryLimit?: string, // 2Gi
memoryRequest?: string, //1Gi
noWait?: boolean, //true
retentionDays?: string, //5
},
namespace?: string,
additionalEnvVars?: AdditionalEnvVars
): Promise<AzOutput<void>>
},
midbarc: {
restore(
name: string,
args: {
destName?: string, //testDb
managedInstance?: string, //sqlmi1
time?: string, //2021-10-12T11:16:30.000Z
noWait?: boolean, //true
},
namespace?: string,
additionalEnvVars?: AdditionalEnvVars