зеркало из https://github.com/Azure/autorest.az.git
Action.py template based refactor (#804)
* action.py-template-based-refactor * add unit test * reserve work * reserve work * update getaction data * reserve work * reserve work * fix some issues * logic fixing and test * fix scenario test * template improve * add back commands py unittest * fix positional action and dictionary type * add unit test * fix test * try-fix-windows-issue
This commit is contained in:
Родитель
a630f855c3
Коммит
1c7662d1e4
|
@ -15,13 +15,21 @@ export async function processRequest(host: Host): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const folder = AzConfiguration.getValue(CodeGenConstants.azOutputFolder);
|
const folder = AzConfiguration.getValue(CodeGenConstants.azOutputFolder);
|
||||||
const azextFolder = AzConfiguration.getValue(CodeGenConstants.azextFolder);
|
const azextFolder = AzConfiguration.getValue(CodeGenConstants.azextFolder);
|
||||||
const fileName = path.join(
|
const azLinter = new AzLinter();
|
||||||
|
let fileName = path.join(
|
||||||
folder,
|
folder,
|
||||||
azextFolder,
|
azextFolder,
|
||||||
PathConstants.generatedFolder,
|
PathConstants.generatedFolder,
|
||||||
PathConstants.commandsFile,
|
PathConstants.commandsFile,
|
||||||
);
|
);
|
||||||
const azLinter = new AzLinter();
|
await azLinter.process(fileName);
|
||||||
|
|
||||||
|
fileName = path.join(
|
||||||
|
folder,
|
||||||
|
azextFolder,
|
||||||
|
PathConstants.generatedFolder,
|
||||||
|
PathConstants.actionFile,
|
||||||
|
);
|
||||||
await azLinter.process(fileName);
|
await azLinter.process(fileName);
|
||||||
|
|
||||||
if (NeedPreparers().size > 0) {
|
if (NeedPreparers().size > 0) {
|
||||||
|
|
|
@ -111,7 +111,7 @@ export interface CodeModelAz {
|
||||||
Extension_ClientAuthenticationPolicy: string;
|
Extension_ClientAuthenticationPolicy: string;
|
||||||
Extension_Mode: string;
|
Extension_Mode: string;
|
||||||
ResourceType: string | undefined;
|
ResourceType: string | undefined;
|
||||||
isComplexSchema(type: string): boolean;
|
isComplexSchema(type: string, param: any): boolean;
|
||||||
|
|
||||||
SelectFirstCommandGroup(needRefer?: boolean): boolean;
|
SelectFirstCommandGroup(needRefer?: boolean): boolean;
|
||||||
SelectNextCommandGroup(needRefer?: boolean): boolean;
|
SelectNextCommandGroup(needRefer?: boolean): boolean;
|
||||||
|
@ -225,7 +225,7 @@ export interface CodeModelAz {
|
||||||
Parameter_IsList(Parameter): boolean;
|
Parameter_IsList(Parameter): boolean;
|
||||||
Parameter_IsListOfSimple(Parameter): boolean;
|
Parameter_IsListOfSimple(Parameter): boolean;
|
||||||
Parameter_IsPolyOfSimple(Parameter): boolean;
|
Parameter_IsPolyOfSimple(Parameter): boolean;
|
||||||
Schema_ActionName(Schema): string;
|
MethodParameter_ActionName: string;
|
||||||
Parameter_SetAzNameMapsTo(string, Parameter): void;
|
Parameter_SetAzNameMapsTo(string, Parameter): void;
|
||||||
Parameter_InGlobal(Parameter): boolean;
|
Parameter_InGlobal(Parameter): boolean;
|
||||||
Parameter_IsHidden(Parameter): boolean;
|
Parameter_IsHidden(Parameter): boolean;
|
||||||
|
@ -290,5 +290,6 @@ export interface CodeModelAz {
|
||||||
inputProperties: Map<CodeModelTypes, RenderInput>,
|
inputProperties: Map<CodeModelTypes, RenderInput>,
|
||||||
dependencies: DataGraph,
|
dependencies: DataGraph,
|
||||||
);
|
);
|
||||||
|
GetActionData(): any[];
|
||||||
GetTestUniqueResource: boolean;
|
GetTestUniqueResource: boolean;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
substack: Array<[Parameter[], number]>;
|
substack: Array<[Parameter[], number]>;
|
||||||
currentSubOptionIndex: number;
|
currentSubOptionIndex: number;
|
||||||
paramActionNameReference: Map<Schema, string>;
|
paramActionNameReference: Map<Schema, string>;
|
||||||
|
allActions: Map<Parameter, string>;
|
||||||
private _testScenario: any;
|
private _testScenario: any;
|
||||||
private _defaultTestScenario: any[];
|
private _defaultTestScenario: any[];
|
||||||
private _configuredScenario: boolean;
|
private _configuredScenario: boolean;
|
||||||
|
@ -476,6 +477,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
|
|
||||||
private setParamAzUniqueNames() {
|
private setParamAzUniqueNames() {
|
||||||
this.paramActionNameReference = new Map<Schema, string>();
|
this.paramActionNameReference = new Map<Schema, string>();
|
||||||
|
this.allActions = new Map<Parameter, string>();
|
||||||
const nameActionReference: Map<string, ActionParam> = new Map<string, ActionParam>();
|
const nameActionReference: Map<string, ActionParam> = new Map<string, ActionParam>();
|
||||||
const pythonReserveWord = ['all', 'id', 'format', 'type', 'filter'];
|
const pythonReserveWord = ['all', 'id', 'format', 'type', 'filter'];
|
||||||
if (this.SelectFirstCommandGroup()) {
|
if (this.SelectFirstCommandGroup()) {
|
||||||
|
@ -693,10 +695,15 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
preAction.action.schema,
|
preAction.action.schema,
|
||||||
preActionUniqueName,
|
preActionUniqueName,
|
||||||
);
|
);
|
||||||
|
this.allActions.set(
|
||||||
|
preAction.action,
|
||||||
|
preActionUniqueName,
|
||||||
|
);
|
||||||
this.paramActionNameReference.set(
|
this.paramActionNameReference.set(
|
||||||
param.schema,
|
param.schema,
|
||||||
actionUniqueName,
|
actionUniqueName,
|
||||||
);
|
);
|
||||||
|
this.allActions.set(param, actionUniqueName);
|
||||||
nameActionReference.set(
|
nameActionReference.set(
|
||||||
preActionUniqueName,
|
preActionUniqueName,
|
||||||
preAction,
|
preAction,
|
||||||
|
@ -712,6 +719,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
param.schema,
|
param.schema,
|
||||||
actionName,
|
actionName,
|
||||||
);
|
);
|
||||||
|
this.allActions.set(param, actionName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (this.SelectNextMethodParameter());
|
} while (this.SelectNextMethodParameter());
|
||||||
|
@ -753,6 +761,87 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GetActionData() {
|
||||||
|
const actions = [];
|
||||||
|
SchemaType.Array;
|
||||||
|
this.allActions.forEach((actionName: string, param: Parameter) => {
|
||||||
|
if (actionName === 'AddEventGridDataConnection') {
|
||||||
|
param;
|
||||||
|
}
|
||||||
|
const action = {
|
||||||
|
actionName: actionName,
|
||||||
|
actionType: 'KeyValue',
|
||||||
|
};
|
||||||
|
action.actionType = this.Parameter_IsPositional(param)
|
||||||
|
? 'Positional'
|
||||||
|
: action.actionType;
|
||||||
|
action.actionType = this.Parameter_IsShorthandSyntax(param)
|
||||||
|
? 'ShortHandSyntax'
|
||||||
|
: action.actionType;
|
||||||
|
action['mapsTo'] = this.Parameter_MapsTo(param);
|
||||||
|
action['type'] = this.Schema_Type(param.schema);
|
||||||
|
action['nameAz'] = this.Parameter_NameAz(param);
|
||||||
|
if (action['type'] === SchemaType.Array) {
|
||||||
|
action['baseClass'] = '_AppendAction';
|
||||||
|
} else {
|
||||||
|
action['baseClass'] = 'Action';
|
||||||
|
}
|
||||||
|
action['subProperties'] = [];
|
||||||
|
action['subPropertiesMapsTo'] = [];
|
||||||
|
action['subPropertiesNamePython'] = [];
|
||||||
|
action['subPropertiesNameAz'] = [];
|
||||||
|
action['constants'] = {};
|
||||||
|
const baseParam = param['polyBaseParam'];
|
||||||
|
const keyToMatch = baseParam?.schema?.discriminator?.property?.language.python?.name;
|
||||||
|
const valueToMatch = param.schema?.['discriminatorValue'];
|
||||||
|
const allSubParameters = [];
|
||||||
|
if (this.EnterSubMethodParameters(param) && this.SelectFirstMethodParameter(true)) {
|
||||||
|
do {
|
||||||
|
const tmpParam = this.SubMethodParameter;
|
||||||
|
allSubParameters.push(tmpParam);
|
||||||
|
const pythonName = this.Parameter_NamePython(tmpParam);
|
||||||
|
const mapsTo = this.Parameter_MapsTo(tmpParam);
|
||||||
|
const nameAz = this.Parameter_NameAz(tmpParam);
|
||||||
|
const subType = this.Parameter_Type(tmpParam);
|
||||||
|
if (
|
||||||
|
this.Parameter_Type(tmpParam) === SchemaType.Constant &&
|
||||||
|
!isNullOrUndefined(tmpParam.schema['value']?.['value'])
|
||||||
|
) {
|
||||||
|
action['constants'][
|
||||||
|
`'${pythonName}'`
|
||||||
|
] = `'${tmpParam.schema['value']['value']}'`;
|
||||||
|
} else if (tmpParam['readOnly']) {
|
||||||
|
continue;
|
||||||
|
} else if (
|
||||||
|
keyToMatch === pythonName &&
|
||||||
|
!isNullOrUndefined(keyToMatch) &&
|
||||||
|
!isNullOrUndefined(valueToMatch) &&
|
||||||
|
tmpParam['isDiscriminator']
|
||||||
|
) {
|
||||||
|
action['constants'][`'${keyToMatch}'`] = `'${valueToMatch}'`;
|
||||||
|
} else {
|
||||||
|
action['subProperties'].push({
|
||||||
|
namePython: pythonName,
|
||||||
|
nameAz: nameAz,
|
||||||
|
type: subType,
|
||||||
|
});
|
||||||
|
action['subPropertiesMapsTo'].push(mapsTo);
|
||||||
|
action['subPropertiesNamePython'].push(pythonName);
|
||||||
|
action['subPropertiesNameAz'].push(nameAz);
|
||||||
|
}
|
||||||
|
} while (this.SelectNextMethodParameter(true));
|
||||||
|
if (action['actionType'] === 'Positional') {
|
||||||
|
const keys = this.Parameter_PositionalKeys(param, allSubParameters);
|
||||||
|
action['subPropertiesNamePython'] = keys;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SchemaType.Dictionary;
|
||||||
|
actions.push(action);
|
||||||
|
this.ExitSubMethodParameters();
|
||||||
|
});
|
||||||
|
return actions;
|
||||||
|
}
|
||||||
//= ================================================================================================================
|
//= ================================================================================================================
|
||||||
// Extension level information
|
// Extension level information
|
||||||
// autorest.az will have support for multiple extensions from single swagger file.
|
// autorest.az will have support for multiple extensions from single swagger file.
|
||||||
|
@ -1660,11 +1749,12 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
param.language['az'].mapsto = newName;
|
param.language['az'].mapsto = newName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Schema_ActionName(schema: Schema = this.MethodParameter.schema) {
|
public get MethodParameter_ActionName() {
|
||||||
|
const schema = this.MethodParameter.schema;
|
||||||
if (this.paramActionNameReference.has(schema)) {
|
if (this.paramActionNameReference.has(schema)) {
|
||||||
return this.paramActionNameReference.get(schema);
|
return this.paramActionNameReference.get(schema);
|
||||||
}
|
}
|
||||||
return null;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get MethodParameter_Name(): string {
|
public get MethodParameter_Name(): string {
|
||||||
|
@ -1763,13 +1853,13 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
return this.Parameter_IsShorthandSyntax(this.MethodParameter);
|
return this.Parameter_IsShorthandSyntax(this.MethodParameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public isComplexSchema(type: string): boolean {
|
public isComplexSchema(type: string, param: any): boolean {
|
||||||
if (
|
if (
|
||||||
type === SchemaType.Array ||
|
type === SchemaType.Array ||
|
||||||
type === SchemaType.Object ||
|
type === SchemaType.Object ||
|
||||||
type === SchemaType.Dictionary ||
|
type === SchemaType.Dictionary ||
|
||||||
type === SchemaType.Any ||
|
type === SchemaType.Any ||
|
||||||
this.MethodParameter.language['cli'].json === true
|
param?.language?.['cli']?.json === true
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1862,22 +1952,22 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
} else if (p['schema'].type === SchemaType.Array) {
|
} else if (p['schema'].type === SchemaType.Array) {
|
||||||
if (this.isComplexSchema(p['schema']?.elementType?.type)) {
|
if (this.isComplexSchema(p['schema']?.elementType?.type, p['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (const mp of values(p['schema']?.elementType?.properties)) {
|
for (const mp of values(p['schema']?.elementType?.properties)) {
|
||||||
if (this.isComplexSchema(mp['schema'].type)) {
|
if (this.isComplexSchema(mp['schema'].type, mp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const parent of values(p['schema']?.elementType?.parents?.all)) {
|
for (const parent of values(p['schema']?.elementType?.parents?.all)) {
|
||||||
for (const pp of values(parent['properties'])) {
|
for (const pp of values(parent['properties'])) {
|
||||||
if (this.isComplexSchema(pp['schema'].type)) {
|
if (this.isComplexSchema(pp['schema'].type, pp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.isComplexSchema(p['schema'].type)) {
|
} else if (this.isComplexSchema(p['schema'].type, p['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1902,18 +1992,18 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
return false;
|
return false;
|
||||||
} else if (p['schema'].type === SchemaType.Array) {
|
} else if (p['schema'].type === SchemaType.Array) {
|
||||||
for (const mp of values(p['schema']?.elementType?.properties)) {
|
for (const mp of values(p['schema']?.elementType?.properties)) {
|
||||||
if (this.isComplexSchema(mp['schema'].type)) {
|
if (this.isComplexSchema(mp['schema'].type, mp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const parent of values(p['schema']?.elementType?.parents?.all)) {
|
for (const parent of values(p['schema']?.elementType?.parents?.all)) {
|
||||||
for (const pp of values(parent['properties'])) {
|
for (const pp of values(parent['properties'])) {
|
||||||
if (this.isComplexSchema(pp['schema'].type)) {
|
if (this.isComplexSchema(pp['schema'].type, pp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.isComplexSchema(p['schema'].type)) {
|
} else if (this.isComplexSchema(p['schema'].type, p['schema'])) {
|
||||||
// objects.objects
|
// objects.objects
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1935,7 +2025,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
if (mp['readOnly']) {
|
if (mp['readOnly']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (this.isComplexSchema(mp['schema'].type)) {
|
if (this.isComplexSchema(mp['schema'].type, mp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1944,12 +2034,12 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
if (pp['readOnly']) {
|
if (pp['readOnly']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (this.isComplexSchema(pp['schema'].type)) {
|
if (this.isComplexSchema(pp['schema'].type, pp['schema'])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (this.isComplexSchema(p.type)) {
|
} else if (this.isComplexSchema(p.type, p)) {
|
||||||
// dicts.objects or dicts.dictionaries
|
// dicts.objects or dicts.dictionaries
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2006,7 +2096,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
private Parameter_IsSimpleArray(param: Parameter): boolean {
|
private Parameter_IsSimpleArray(param: Parameter): boolean {
|
||||||
if (this.Parameter_Type(param) === SchemaType.Array) {
|
if (this.Parameter_Type(param) === SchemaType.Array) {
|
||||||
const elementType = param.schema['elementType'].type;
|
const elementType = param.schema['elementType'].type;
|
||||||
if (!this.isComplexSchema(elementType)) {
|
if (!this.isComplexSchema(elementType, param.schema)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2018,7 +2108,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isComplexSchema(this.Parameter_Type(param))) {
|
if (this.isComplexSchema(this.Parameter_Type(param), param)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -2110,7 +2200,7 @@ export class CodeModelCliImpl implements CodeModelAz {
|
||||||
if (schema.language['cli'].json === true) {
|
if (schema.language['cli'].json === true) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.isComplexSchema(this.Schema_Type(schema))) {
|
if (this.isComplexSchema(this.Schema_Type(schema), schema)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -12,7 +12,6 @@ import { CliTopInit } from '../renders/CliTopInit';
|
||||||
import { CliMainDocSourceJsonMap } from '../renders/extraMain/CliMainDocSourceJsonMap';
|
import { CliMainDocSourceJsonMap } from '../renders/extraMain/CliMainDocSourceJsonMap';
|
||||||
import { CliMainRequirement } from '../renders/extraMain/CliMainRequirement';
|
import { CliMainRequirement } from '../renders/extraMain/CliMainRequirement';
|
||||||
import { CliMainSetupPy } from '../renders/extraMain/CliMainSetupPy';
|
import { CliMainSetupPy } from '../renders/extraMain/CliMainSetupPy';
|
||||||
import { GenerateAzureCliActions } from '../renders/generated/CliActions';
|
|
||||||
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
||||||
import { CliCommands } from '../renders/generated/CliCommands';
|
import { CliCommands } from '../renders/generated/CliCommands';
|
||||||
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
||||||
|
@ -26,6 +25,7 @@ import { CliTestStep, NeedPreparers } from '../renders/tests/CliTestStep';
|
||||||
import { GenerateMetaFile } from '../renders/CliMeta';
|
import { GenerateMetaFile } from '../renders/CliMeta';
|
||||||
import { CliCmdletTest } from '../renders/tests/CliTestCmdlet';
|
import { CliCmdletTest } from '../renders/tests/CliTestCmdlet';
|
||||||
import { SimpleTemplate } from '../renders/TemplateBase';
|
import { SimpleTemplate } from '../renders/TemplateBase';
|
||||||
|
import { CliActions } from '../renders/generated/CliActions';
|
||||||
|
|
||||||
export class AzCoreFullGenerator extends GeneratorBase {
|
export class AzCoreFullGenerator extends GeneratorBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
|
@ -53,9 +53,6 @@ export class AzCoreFullGenerator extends GeneratorBase {
|
||||||
files[
|
files[
|
||||||
path.join(model.azOutputFolder, 'generated/_validators.py')
|
path.join(model.azOutputFolder, 'generated/_validators.py')
|
||||||
] = GenerateAzureCliValidators(model);
|
] = GenerateAzureCliValidators(model);
|
||||||
files[
|
|
||||||
path.join(model.azOutputFolder, 'generated/action.py')
|
|
||||||
] = GenerateAzureCliActions(model);
|
|
||||||
files[
|
files[
|
||||||
path.join(model.azOutputFolder, 'generated/__init__.py')
|
path.join(model.azOutputFolder, 'generated/__init__.py')
|
||||||
] = GenerateNamespaceInit(model);
|
] = GenerateNamespaceInit(model);
|
||||||
|
@ -74,6 +71,7 @@ export class AzCoreFullGenerator extends GeneratorBase {
|
||||||
files[
|
files[
|
||||||
path.join(model.azOutputFolder, 'manual/__init__.py')
|
path.join(model.azOutputFolder, 'manual/__init__.py')
|
||||||
] = GenerateNamespaceInit(model);
|
] = GenerateNamespaceInit(model);
|
||||||
|
await this.generateFullSingleAndAddtoOutput(new CliActions(model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliCommands(model));
|
await this.generateFullSingleAndAddtoOutput(new CliCommands(model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliTopAction(model));
|
await this.generateFullSingleAndAddtoOutput(new CliTopAction(model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliTopCustom(model));
|
await this.generateFullSingleAndAddtoOutput(new CliTopCustom(model));
|
||||||
|
@ -151,7 +149,7 @@ export class AzCoreFullGenerator extends GeneratorBase {
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.cmdletFolder,
|
PathConstants.cmdletFolder,
|
||||||
PathConstants.conftestFile + '.njx',
|
PathConstants.conftestFile + PathConstants.njxFileExtension,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -16,7 +16,6 @@ import { CliTopHelp } from '../renders/CliTopHelp';
|
||||||
import { CliTopInit } from '../renders/CliTopInit';
|
import { CliTopInit } from '../renders/CliTopInit';
|
||||||
import { CliMainRequirement } from '../renders/extraMain/CliMainRequirement';
|
import { CliMainRequirement } from '../renders/extraMain/CliMainRequirement';
|
||||||
import { CliMainSetupPy } from '../renders/extraMain/CliMainSetupPy';
|
import { CliMainSetupPy } from '../renders/extraMain/CliMainSetupPy';
|
||||||
import { GenerateAzureCliActions } from '../renders/generated/CliActions';
|
|
||||||
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
||||||
import { CliCommands } from '../renders/generated/CliCommands';
|
import { CliCommands } from '../renders/generated/CliCommands';
|
||||||
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
||||||
|
@ -31,6 +30,7 @@ import { GenerateMetaFile } from '../renders/CliMeta';
|
||||||
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
||||||
import { CliCmdletTest } from '../renders/tests/CliTestCmdlet';
|
import { CliCmdletTest } from '../renders/tests/CliTestCmdlet';
|
||||||
import { SimpleTemplate } from '../renders/TemplateBase';
|
import { SimpleTemplate } from '../renders/TemplateBase';
|
||||||
|
import { CliActions } from '../renders/generated/CliActions';
|
||||||
|
|
||||||
export class AzCoreIncrementalGenerator extends GeneratorBase {
|
export class AzCoreIncrementalGenerator extends GeneratorBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
|
@ -59,9 +59,6 @@ export class AzCoreIncrementalGenerator extends GeneratorBase {
|
||||||
this.files[
|
this.files[
|
||||||
path.join(PathConstants.generatedFolder, PathConstants.validatorsFile)
|
path.join(PathConstants.generatedFolder, PathConstants.validatorsFile)
|
||||||
] = GenerateAzureCliValidators(this.model);
|
] = GenerateAzureCliValidators(this.model);
|
||||||
this.files[
|
|
||||||
path.join(PathConstants.generatedFolder, PathConstants.actionFile)
|
|
||||||
] = GenerateAzureCliActions(this.model);
|
|
||||||
this.files[
|
this.files[
|
||||||
path.join(PathConstants.generatedFolder, PathConstants.initFile)
|
path.join(PathConstants.generatedFolder, PathConstants.initFile)
|
||||||
] = GenerateNamespaceInit(this.model);
|
] = GenerateNamespaceInit(this.model);
|
||||||
|
@ -81,6 +78,7 @@ export class AzCoreIncrementalGenerator extends GeneratorBase {
|
||||||
] = GenerateNamespaceInit(this.model);
|
] = GenerateNamespaceInit(this.model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await this.generateIncrementalSingleAndAddtoOutput(new CliActions(this.model));
|
||||||
await this.generateIncrementalSingleAndAddtoOutput(new CliCommands(this.model));
|
await this.generateIncrementalSingleAndAddtoOutput(new CliCommands(this.model));
|
||||||
// Add Import and run method from generated folder (Init)
|
// Add Import and run method from generated folder (Init)
|
||||||
await this.generateIncrementalSingleAndAddtoOutput(new CliTopInit(this.model));
|
await this.generateIncrementalSingleAndAddtoOutput(new CliTopInit(this.model));
|
||||||
|
@ -177,7 +175,7 @@ export class AzCoreIncrementalGenerator extends GeneratorBase {
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.cmdletFolder,
|
PathConstants.cmdletFolder,
|
||||||
PathConstants.conftestFile + '.njx',
|
PathConstants.conftestFile + PathConstants.njxFileExtension,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { CliReport } from '../renders/CliReport';
|
||||||
import { CliTopInit } from '../renders/CliTopInit';
|
import { CliTopInit } from '../renders/CliTopInit';
|
||||||
import { CliTopMetadata } from '../renders/extraExt/CliExtMetadata';
|
import { CliTopMetadata } from '../renders/extraExt/CliExtMetadata';
|
||||||
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
||||||
import { GenerateAzureCliActions } from '../renders/generated/CliActions';
|
import { CliActions } from '../renders/generated/CliActions';
|
||||||
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
||||||
import { CliCommands } from '../renders/generated/CliCommands';
|
import { CliCommands } from '../renders/generated/CliCommands';
|
||||||
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
||||||
|
@ -52,9 +52,6 @@ export class AzExtensionFullGenerator extends GeneratorBase {
|
||||||
this.files[
|
this.files[
|
||||||
path.join(this.azDirectory, 'generated/_validators.py')
|
path.join(this.azDirectory, 'generated/_validators.py')
|
||||||
] = GenerateAzureCliValidators(this.model);
|
] = GenerateAzureCliValidators(this.model);
|
||||||
this.files[path.join(this.azDirectory, 'generated/action.py')] = GenerateAzureCliActions(
|
|
||||||
this.model,
|
|
||||||
);
|
|
||||||
this.files[path.join(this.azDirectory, 'generated/__init__.py')] = GenerateNamespaceInit(
|
this.files[path.join(this.azDirectory, 'generated/__init__.py')] = GenerateNamespaceInit(
|
||||||
this.model,
|
this.model,
|
||||||
);
|
);
|
||||||
|
@ -77,6 +74,7 @@ export class AzExtensionFullGenerator extends GeneratorBase {
|
||||||
] = GenerateNamespaceInit(this.model);
|
] = GenerateNamespaceInit(this.model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await this.generateFullSingleAndAddtoOutput(new CliActions(this.model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliCommands(this.model));
|
await this.generateFullSingleAndAddtoOutput(new CliCommands(this.model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliTopAction(this.model));
|
await this.generateFullSingleAndAddtoOutput(new CliTopAction(this.model));
|
||||||
await this.generateFullSingleAndAddtoOutput(new CliTopCustom(this.model));
|
await this.generateFullSingleAndAddtoOutput(new CliTopCustom(this.model));
|
||||||
|
@ -140,7 +138,7 @@ export class AzExtensionFullGenerator extends GeneratorBase {
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.cmdletFolder,
|
PathConstants.cmdletFolder,
|
||||||
PathConstants.conftestFile + '.njx',
|
PathConstants.conftestFile + PathConstants.njxFileExtension,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -16,7 +16,7 @@ import { CliReport } from '../renders/CliReport';
|
||||||
import { CliTopInit } from '../renders/CliTopInit';
|
import { CliTopInit } from '../renders/CliTopInit';
|
||||||
import { CliTopMetadata } from '../renders/extraExt/CliExtMetadata';
|
import { CliTopMetadata } from '../renders/extraExt/CliExtMetadata';
|
||||||
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
import { CliExtSetupPy } from '../renders/extraExt/CliExtSetupPy';
|
||||||
import { GenerateAzureCliActions } from '../renders/generated/CliActions';
|
import { CliActions } from '../renders/generated/CliActions';
|
||||||
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
import { GenerateAzureCliClientFactory } from '../renders/generated/CliClientFactory';
|
||||||
import { CliCommands } from '../renders/generated/CliCommands';
|
import { CliCommands } from '../renders/generated/CliCommands';
|
||||||
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
import { GenerateAzureCliCustom } from '../renders/generated/CliCustom';
|
||||||
|
@ -54,9 +54,6 @@ export class AzExtensionIncrementalGenerator extends GeneratorBase {
|
||||||
this.files[
|
this.files[
|
||||||
path.join(this.azDirectory, PathConstants.generatedFolder, PathConstants.validatorsFile)
|
path.join(this.azDirectory, PathConstants.generatedFolder, PathConstants.validatorsFile)
|
||||||
] = GenerateAzureCliValidators(this.model);
|
] = GenerateAzureCliValidators(this.model);
|
||||||
this.files[
|
|
||||||
path.join(this.azDirectory, PathConstants.generatedFolder, PathConstants.actionFile)
|
|
||||||
] = GenerateAzureCliActions(this.model);
|
|
||||||
this.files[
|
this.files[
|
||||||
path.join(this.azDirectory, PathConstants.generatedFolder, PathConstants.initFile)
|
path.join(this.azDirectory, PathConstants.generatedFolder, PathConstants.initFile)
|
||||||
] = GenerateNamespaceInit(this.model);
|
] = GenerateNamespaceInit(this.model);
|
||||||
|
@ -78,6 +75,7 @@ export class AzExtensionIncrementalGenerator extends GeneratorBase {
|
||||||
] = GenerateNamespaceInit(this.model);
|
] = GenerateNamespaceInit(this.model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await this.generateIncrementalSingleAndAddtoOutput(new CliActions(this.model));
|
||||||
// Add Import and run method from generated folder (Init)
|
// Add Import and run method from generated folder (Init)
|
||||||
await this.generateIncrementalSingleAndAddtoOutput(new CliTopInit(this.model));
|
await this.generateIncrementalSingleAndAddtoOutput(new CliTopInit(this.model));
|
||||||
|
|
||||||
|
@ -160,7 +158,7 @@ export class AzExtensionIncrementalGenerator extends GeneratorBase {
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.cmdletFolder,
|
PathConstants.cmdletFolder,
|
||||||
PathConstants.conftestFile + '.njx',
|
PathConstants.conftestFile + PathConstants.njxFileExtension,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -20,7 +20,10 @@ export class CliReport extends TemplateBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
super(model);
|
super(model);
|
||||||
this.relativePath = path.join(PathConstants.reportFile);
|
this.relativePath = path.join(PathConstants.reportFile);
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'report.md.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.reportFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -12,7 +12,10 @@ export class CliExtHistory extends TemplateBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
super(model);
|
super(model);
|
||||||
this.relativePath = PathConstants.historyRstFile;
|
this.relativePath = PathConstants.historyRstFile;
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'HISTORY.rst.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.historyRstFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -15,7 +15,8 @@ export class CliTopMetadata extends TemplateBase {
|
||||||
this.relativePath = path.join(model.AzextFolder, PathConstants.metadataFile);
|
this.relativePath = path.join(model.AzextFolder, PathConstants.metadataFile);
|
||||||
this.tmplPath = path.join(
|
this.tmplPath = path.join(
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
'azext/azext_metadata.json.njx',
|
'azext',
|
||||||
|
PathConstants.metadataFile + PathConstants.njxFileExtension,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,10 @@ export class CliExtSetupCfg extends TemplateBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
super(model);
|
super(model);
|
||||||
this.relativePath = PathConstants.setupCfgFile;
|
this.relativePath = PathConstants.setupCfgFile;
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'setup.cfg.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.setupCfgFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -16,7 +16,10 @@ export class CliExtSetupPy extends TemplateBase {
|
||||||
constructor(model: CodeModelAz) {
|
constructor(model: CodeModelAz) {
|
||||||
super(model);
|
super(model);
|
||||||
this.relativePath = PathConstants.setupPyFile;
|
this.relativePath = PathConstants.setupPyFile;
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'setup.py.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.setupPyFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -7,528 +7,41 @@ import { Parameter, SchemaType } from '@azure-tools/codemodel';
|
||||||
import { ToPythonString, ToMultiLine, isNullOrUndefined } from '../../../utils/helper';
|
import { ToPythonString, ToMultiLine, isNullOrUndefined } from '../../../utils/helper';
|
||||||
import { CodeModelAz } from '../../CodeModelAz';
|
import { CodeModelAz } from '../../CodeModelAz';
|
||||||
import { HeaderGenerator } from '../Header';
|
import { HeaderGenerator } from '../Header';
|
||||||
|
import { TemplateBase } from '../TemplateBase';
|
||||||
|
import * as path from 'path';
|
||||||
|
import { PathConstants } from '../../../utils/models';
|
||||||
|
|
||||||
let allActions: Map<string, boolean>;
|
let allActions: Map<string, boolean>;
|
||||||
|
|
||||||
export function GenerateAzureCliActions(model: CodeModelAz): string[] {
|
export class CliActions extends TemplateBase {
|
||||||
allActions = new Map<string, boolean>();
|
constructor(model: CodeModelAz) {
|
||||||
const header: HeaderGenerator = new HeaderGenerator();
|
super(model);
|
||||||
|
this.relativePath = path.join(
|
||||||
header.disableProtectedAccess = true;
|
model.AzextFolder,
|
||||||
let output: string[] = [];
|
PathConstants.generatedFolder,
|
||||||
let outputCode: string[] = [];
|
PathConstants.actionFile,
|
||||||
|
|
||||||
if (model.SelectFirstCommandGroup()) {
|
|
||||||
do {
|
|
||||||
if (model.SelectFirstCommand()) {
|
|
||||||
do {
|
|
||||||
if (model.SelectFirstMethod()) {
|
|
||||||
do {
|
|
||||||
let baseParam = null;
|
|
||||||
if (model.SelectFirstMethodParameter()) {
|
|
||||||
do {
|
|
||||||
if (
|
|
||||||
baseParam &&
|
|
||||||
model.MethodParameter['polyBaseParam'] === baseParam
|
|
||||||
) {
|
|
||||||
const keyToMatch =
|
|
||||||
baseParam.schema?.discriminator?.property?.language
|
|
||||||
.python?.name;
|
|
||||||
const valueToMatch =
|
|
||||||
model.MethodParameter.schema?.['discriminatorValue'];
|
|
||||||
const subActionName = model.Schema_ActionName(
|
|
||||||
model.MethodParameter.schema,
|
|
||||||
);
|
|
||||||
if (
|
|
||||||
isNullOrUndefined(subActionName) ||
|
|
||||||
allActions.has(subActionName)
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (model.MethodParameter_IsPositional) {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetPositionalAction(
|
|
||||||
model,
|
|
||||||
subActionName,
|
|
||||||
model.MethodParameter,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else if (model.MethodParameter_IsShorthandSyntax) {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetShorthandSyntaxAction(
|
|
||||||
model,
|
|
||||||
subActionName,
|
|
||||||
model.MethodParameter,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetAction(
|
|
||||||
model,
|
|
||||||
subActionName,
|
|
||||||
model.MethodParameter,
|
|
||||||
keyToMatch,
|
|
||||||
valueToMatch,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const actionName = model.Schema_ActionName(
|
|
||||||
model.MethodParameter.schema,
|
|
||||||
);
|
|
||||||
if (isNullOrUndefined(actionName)) {
|
|
||||||
if (model.Parameter_IsPolyOfSimple(model.MethodParameter)) {
|
|
||||||
baseParam = model.MethodParameter;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (allActions.has(actionName)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (model.MethodParameter_IsPositional) {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetPositionalAction(
|
|
||||||
model,
|
|
||||||
actionName,
|
|
||||||
model.MethodParameter,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else if (model.MethodParameter_IsShorthandSyntax) {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetShorthandSyntaxAction(
|
|
||||||
model,
|
|
||||||
actionName,
|
|
||||||
model.MethodParameter,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
outputCode = outputCode.concat(
|
|
||||||
GetAction(model, actionName, model.MethodParameter),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while (model.SelectNextMethodParameter());
|
|
||||||
}
|
|
||||||
} while (model.SelectNextMethod());
|
|
||||||
}
|
|
||||||
} while (model.SelectNextCommand());
|
|
||||||
}
|
|
||||||
} while (model.SelectNextCommandGroup());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (outputCode.length !== 0) {
|
|
||||||
header.addImport('argparse');
|
|
||||||
header.addFromImport('collections', ['defaultdict']);
|
|
||||||
header.addFromImport('knack.util', ['CLIError']);
|
|
||||||
output = header.getLines().concat(outputCode);
|
|
||||||
} else {
|
|
||||||
output = header.getLines();
|
|
||||||
}
|
|
||||||
output.push('');
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetAction(
|
|
||||||
model: CodeModelAz,
|
|
||||||
actionName: string,
|
|
||||||
param: Parameter,
|
|
||||||
keyToMatch: string = null,
|
|
||||||
valueToMatch: string = null,
|
|
||||||
) {
|
|
||||||
const output: string[] = [];
|
|
||||||
allActions.set(actionName, true);
|
|
||||||
|
|
||||||
output.push('');
|
|
||||||
output.push('');
|
|
||||||
let baseAction = 'Action';
|
|
||||||
const paramType = param?.schema?.type;
|
|
||||||
if (paramType === SchemaType.Array) baseAction = '_Append' + baseAction;
|
|
||||||
output.push('class ' + actionName + '(argparse.' + baseAction + '):');
|
|
||||||
output.push(' def __call__(self, parser, namespace, values, option_string=None):');
|
|
||||||
output.push(' action = self.get_action(values, option_string)');
|
|
||||||
if (paramType === SchemaType.Array) {
|
|
||||||
output.push(
|
|
||||||
' super(' +
|
|
||||||
actionName +
|
|
||||||
', self).__call__(parser, namespace, action, option_string)',
|
|
||||||
);
|
);
|
||||||
} else {
|
this.tmplPath = path.join(
|
||||||
output.push(' namespace.' + model.Parameter_MapsTo(param) + ' = action');
|
PathConstants.templateRootFolder,
|
||||||
}
|
PathConstants.generatedFolder,
|
||||||
output.push('');
|
PathConstants.actionFile + PathConstants.njxFileExtension,
|
||||||
output.push(' def get_action(self, values, option_string): # pylint: disable=no-self-use');
|
|
||||||
output.push(' try:');
|
|
||||||
output.push(' properties = defaultdict(list)');
|
|
||||||
output.push(" for (k, v) in (x.split('=', 1) for x in values):");
|
|
||||||
output.push(' properties[k].append(v)');
|
|
||||||
output.push(' properties = dict(properties)');
|
|
||||||
output.push(' except ValueError:');
|
|
||||||
output.push(
|
|
||||||
" raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))",
|
|
||||||
);
|
|
||||||
output.push(' d = {}');
|
|
||||||
|
|
||||||
if (model.EnterSubMethodParameters()) {
|
|
||||||
if (model.SelectFirstMethodParameter(true)) {
|
|
||||||
do {
|
|
||||||
if (model.Parameter_DefaultValue(model.SubMethodParameter) !== undefined) {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = " +
|
|
||||||
ToPythonString(
|
|
||||||
model.Parameter_DefaultValue(model.SubMethodParameter),
|
|
||||||
model.Parameter_Type(model.SubMethodParameter),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} while (model.SelectNextMethodParameter(true));
|
|
||||||
}
|
|
||||||
model.ExitSubMethodParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
output.push(' for k in properties:');
|
|
||||||
output.push(' kl = k.lower()');
|
|
||||||
output.push(' v = properties[k]');
|
|
||||||
let foundProperties = false;
|
|
||||||
const preParamType = paramType;
|
|
||||||
const allPossibleKeys = [];
|
|
||||||
if (model.EnterSubMethodParameters()) {
|
|
||||||
if (model.SelectFirstMethodParameter()) {
|
|
||||||
foundProperties = true;
|
|
||||||
let ifkv = 'if';
|
|
||||||
do {
|
|
||||||
if (model.SubMethodParameter['readOnly']) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (model.SubMethodParameter.schema?.type === SchemaType.Constant) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
!isNullOrUndefined(keyToMatch) &&
|
|
||||||
!isNullOrUndefined(valueToMatch) &&
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) === keyToMatch
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
output.push(
|
|
||||||
' ' +
|
|
||||||
ifkv +
|
|
||||||
" kl == '" +
|
|
||||||
model.Parameter_NameAz(model.SubMethodParameter) +
|
|
||||||
"':",
|
|
||||||
);
|
|
||||||
allPossibleKeys.push(model.Parameter_NameAz(model.SubMethodParameter));
|
|
||||||
if (model.MethodParameter_IsArray) {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = v",
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = v[0]",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
ifkv = 'elif';
|
|
||||||
} while (model.SelectNextMethodParameter());
|
|
||||||
}
|
|
||||||
model.ExitSubMethodParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allPossibleKeys.length > 0) {
|
|
||||||
output.push(' else:');
|
|
||||||
ToMultiLine(
|
|
||||||
" raise CLIError('Unsupported Key {} is provided for parameter " +
|
|
||||||
model.Parameter_MapsTo(param) +
|
|
||||||
'. All possible keys are: ' +
|
|
||||||
allPossibleKeys.join(', ') +
|
|
||||||
"'.format(k))",
|
|
||||||
output,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!foundProperties && preParamType === SchemaType.Dictionary) {
|
|
||||||
output.pop();
|
public async GetRenderData(): Promise<Record<string, unknown>> {
|
||||||
output.pop();
|
const data = { imports: [], pylints: [], actions: [] };
|
||||||
output.push(' v = properties[k]');
|
data.actions = this.model.GetActionData();
|
||||||
output.push(' d[k] = v[0]');
|
data['pylints'].push('# pylint: disable=protected-access', '# pylint: disable=no-self-use');
|
||||||
} else if (!foundProperties && model.MethodParameter_IsArray) {
|
const result = { data: { imports: [], pylints: [] } };
|
||||||
output.pop();
|
result.data = data;
|
||||||
output.pop();
|
return result;
|
||||||
output.push(' v = properties[k]');
|
}
|
||||||
output.push(' d[k] = v');
|
|
||||||
} else if (!isNullOrUndefined(keyToMatch) && !isNullOrUndefined(valueToMatch)) {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
output.push(" d['" + keyToMatch + "'] = '" + valueToMatch + "'");
|
return this.render();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async incrementalGeneration(): Promise<string[]> {
|
||||||
|
return this.render();
|
||||||
}
|
}
|
||||||
output.push(' return d');
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetPositionalAction(
|
|
||||||
model: CodeModelAz,
|
|
||||||
actionName: string,
|
|
||||||
param: Parameter,
|
|
||||||
keyToMatch: string = null,
|
|
||||||
valueToMatch: string = null,
|
|
||||||
) {
|
|
||||||
let output: string[] = [];
|
|
||||||
allActions.set(actionName, true);
|
|
||||||
output.push('');
|
|
||||||
output.push('');
|
|
||||||
const keys = model.MethodParameter_PositionalKeys;
|
|
||||||
let baseAction = 'Action';
|
|
||||||
const paramType = param?.schema?.type;
|
|
||||||
if (paramType === SchemaType.Array) baseAction = '_Append' + baseAction;
|
|
||||||
output.push('class ' + actionName + '(argparse.' + baseAction + '):');
|
|
||||||
output.push(' def __call__(self, parser, namespace, values, option_string=None):');
|
|
||||||
output.push(' action = self.get_action(values, option_string)');
|
|
||||||
if (paramType === SchemaType.Array) {
|
|
||||||
output.push(' for item in action:');
|
|
||||||
output.push(
|
|
||||||
' super(' +
|
|
||||||
actionName +
|
|
||||||
', self).__call__(parser, namespace, item, option_string)',
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
output.push(' namespace.' + model.Parameter_MapsTo(param) + ' = action[0]');
|
|
||||||
}
|
|
||||||
output.push('');
|
|
||||||
output.push(' def get_action(self, values, option_string=None):');
|
|
||||||
if (isNullOrUndefined(keys) || keys.length <= 0) {
|
|
||||||
output.push(' pass');
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
output.push(' try:');
|
|
||||||
output.push(
|
|
||||||
' value_chunk_list = [values[x:x+' +
|
|
||||||
keys.length +
|
|
||||||
'] for x in range(0, len(values), ' +
|
|
||||||
keys.length +
|
|
||||||
')]',
|
|
||||||
);
|
|
||||||
output.push(' value_list = []');
|
|
||||||
output.push(' for chunk in value_chunk_list:');
|
|
||||||
output.push(' ' + keys.join(', ') + (keys.length === 1 ? ',' : '') + ' = chunk');
|
|
||||||
output.push(' value_list.append(');
|
|
||||||
output = output.concat(
|
|
||||||
generateConstructObject(
|
|
||||||
model,
|
|
||||||
' ',
|
|
||||||
keyToMatch,
|
|
||||||
valueToMatch,
|
|
||||||
false,
|
|
||||||
keys,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
output.push(' )');
|
|
||||||
output.push(' return value_list');
|
|
||||||
output.push(' except ValueError:');
|
|
||||||
output.push(
|
|
||||||
" raise CLIError('usage error: {} NAME METRIC OPERATION VALUE'.format(option_string))",
|
|
||||||
);
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetShorthandSyntaxAction(
|
|
||||||
model: CodeModelAz,
|
|
||||||
actionName: string,
|
|
||||||
param: Parameter,
|
|
||||||
keyToMatch: string = null,
|
|
||||||
valueToMatch: string = null,
|
|
||||||
) {
|
|
||||||
const output: string[] = [];
|
|
||||||
allActions.set(actionName, true);
|
|
||||||
|
|
||||||
output.push('');
|
|
||||||
output.push('');
|
|
||||||
let baseAction = 'Action';
|
|
||||||
const paramType = param?.schema?.type;
|
|
||||||
if (paramType === SchemaType.Array) baseAction = '_Append' + baseAction;
|
|
||||||
output.push('class ' + actionName + '(argparse.' + baseAction + '):');
|
|
||||||
output.push(' def __call__(self, parser, namespace, values, option_string=None):');
|
|
||||||
output.push(' action = self.get_action(values, option_string)');
|
|
||||||
if (paramType === SchemaType.Array) {
|
|
||||||
output.push(' for item in action:');
|
|
||||||
output.push(
|
|
||||||
' super(' +
|
|
||||||
actionName +
|
|
||||||
', self).__call__(parser, namespace, item, option_string)',
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
output.push(' namespace.' + model.Parameter_MapsTo(param) + ' = action');
|
|
||||||
}
|
|
||||||
output.push('');
|
|
||||||
output.push(' def get_action(self, values, option_string): # pylint: disable=no-self-use');
|
|
||||||
output.push(' ret = []');
|
|
||||||
output.push(' for item in values:');
|
|
||||||
output.push(' properties = defaultdict(list)');
|
|
||||||
output.push(' try:');
|
|
||||||
output.push(" for (k, v) in (x.split('=', 1) for x in item.split(',')):");
|
|
||||||
output.push(' properties[k].append(v)');
|
|
||||||
output.push(' properties = dict(properties)');
|
|
||||||
output.push(' except ValueError:');
|
|
||||||
output.push(
|
|
||||||
" raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))",
|
|
||||||
);
|
|
||||||
output.push(' d = {}');
|
|
||||||
|
|
||||||
if (model.EnterSubMethodParameters()) {
|
|
||||||
if (model.SelectFirstMethodParameter(true)) {
|
|
||||||
do {
|
|
||||||
if (model.Parameter_DefaultValue(model.SubMethodParameter) !== undefined) {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = " +
|
|
||||||
ToPythonString(
|
|
||||||
model.Parameter_DefaultValue(model.SubMethodParameter),
|
|
||||||
model.Parameter_Type(model.SubMethodParameter),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} while (model.SelectNextMethodParameter(true));
|
|
||||||
}
|
|
||||||
model.ExitSubMethodParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
output.push(' for k in properties:');
|
|
||||||
output.push(' kl = k.lower()');
|
|
||||||
output.push(' v = properties[k]');
|
|
||||||
let foundProperties = false;
|
|
||||||
const preParamType = paramType;
|
|
||||||
const allPossibleKeys = [];
|
|
||||||
if (model.EnterSubMethodParameters()) {
|
|
||||||
if (model.SelectFirstMethodParameter()) {
|
|
||||||
foundProperties = true;
|
|
||||||
let ifkv = 'if';
|
|
||||||
do {
|
|
||||||
if (model.SubMethodParameter['readOnly']) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (model.SubMethodParameter.schema?.type === SchemaType.Constant) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
!isNullOrUndefined(keyToMatch) &&
|
|
||||||
!isNullOrUndefined(valueToMatch) &&
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) === keyToMatch
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
output.push(
|
|
||||||
' ' +
|
|
||||||
ifkv +
|
|
||||||
" kl == '" +
|
|
||||||
model.Parameter_NameAz(model.SubMethodParameter) +
|
|
||||||
"':",
|
|
||||||
);
|
|
||||||
allPossibleKeys.push(model.Parameter_NameAz(model.SubMethodParameter));
|
|
||||||
if (model.MethodParameter_IsArray) {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = v",
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
output.push(
|
|
||||||
" d['" +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
"'] = v[0]",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
ifkv = 'elif';
|
|
||||||
} while (model.SelectNextMethodParameter());
|
|
||||||
}
|
|
||||||
model.ExitSubMethodParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allPossibleKeys.length > 0) {
|
|
||||||
output.push(' else:');
|
|
||||||
ToMultiLine(
|
|
||||||
" raise CLIError('Unsupported Key {} is provided for parameter " +
|
|
||||||
model.Parameter_MapsTo(param) +
|
|
||||||
'. All possible keys are: ' +
|
|
||||||
allPossibleKeys.join(', ') +
|
|
||||||
"'.format(k))",
|
|
||||||
output,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (!foundProperties && preParamType === SchemaType.Dictionary) {
|
|
||||||
output.pop();
|
|
||||||
output.pop();
|
|
||||||
output.push(' v = properties[k]');
|
|
||||||
output.push(' d[k] = v[0]');
|
|
||||||
} else if (!foundProperties && model.MethodParameter_IsArray) {
|
|
||||||
output.pop();
|
|
||||||
output.pop();
|
|
||||||
output.push(' v = properties[k]');
|
|
||||||
output.push(' d[k] = v');
|
|
||||||
} else if (!isNullOrUndefined(keyToMatch) && !isNullOrUndefined(valueToMatch)) {
|
|
||||||
output.push(" d['" + keyToMatch + "'] = '" + valueToMatch + "'");
|
|
||||||
}
|
|
||||||
output.push(' ret.append(d)');
|
|
||||||
if (model.MethodParameter_Type === SchemaType.Array) {
|
|
||||||
output.push(' return ret');
|
|
||||||
} else {
|
|
||||||
output.push(' return ret[0]');
|
|
||||||
}
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateConstructObject(
|
|
||||||
model: CodeModelAz,
|
|
||||||
indent: string,
|
|
||||||
keyToMatch: string,
|
|
||||||
valueToMatch: string,
|
|
||||||
needReturn: boolean,
|
|
||||||
keys: string[],
|
|
||||||
) {
|
|
||||||
const output: string[] = [];
|
|
||||||
output.push(indent + (needReturn ? 'return ' : '') + '{');
|
|
||||||
let hasPair = false;
|
|
||||||
if (keys.length > 0) {
|
|
||||||
for (const key of keys) {
|
|
||||||
hasPair = true;
|
|
||||||
output.push(indent + " '" + key + "': " + key + ',');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (model.EnterSubMethodParameters()) {
|
|
||||||
if (model.SelectFirstMethodParameter(true)) {
|
|
||||||
do {
|
|
||||||
if (model.SubMethodParameter['readOnly']) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (model.SubMethodParameter.schema?.type === SchemaType.Constant) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
!isNullOrUndefined(keyToMatch) &&
|
|
||||||
!isNullOrUndefined(valueToMatch) &&
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) === keyToMatch
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
hasPair = true;
|
|
||||||
output.push(
|
|
||||||
indent +
|
|
||||||
' ' +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
' = ' +
|
|
||||||
model.Parameter_NamePython(model.SubMethodParameter) +
|
|
||||||
',',
|
|
||||||
);
|
|
||||||
} while (model.SelectNextMethodParameter(true));
|
|
||||||
}
|
|
||||||
model.ExitSubMethodParameters();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (hasPair) {
|
|
||||||
output[output.length - 1] = output.last.substring(0, output.last.length - 1);
|
|
||||||
output.push(indent + '}');
|
|
||||||
} else {
|
|
||||||
output.pop();
|
|
||||||
}
|
|
||||||
return output;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,11 @@ export class CliCommands extends TemplateBase {
|
||||||
PathConstants.generatedFolder,
|
PathConstants.generatedFolder,
|
||||||
PathConstants.commandsFile,
|
PathConstants.commandsFile,
|
||||||
);
|
);
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'generated/commands.py.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.generatedFolder,
|
||||||
|
PathConstants.commandsFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
pythonString(str: string): string {
|
pythonString(str: string): string {
|
||||||
|
|
|
@ -279,7 +279,10 @@ function ConstructMethodBodyParameter(model: CodeModelAz, needGeneric = false, r
|
||||||
);
|
);
|
||||||
} else if (!isNullOrUndefined(model.MethodParameter_DefaultValue)) {
|
} else if (!isNullOrUndefined(model.MethodParameter_DefaultValue)) {
|
||||||
if (
|
if (
|
||||||
model.isComplexSchema(model.MethodParameter_Type) &&
|
model.isComplexSchema(
|
||||||
|
model.MethodParameter_Type,
|
||||||
|
model.MethodParameter,
|
||||||
|
) &&
|
||||||
defaultValue !== '{}'
|
defaultValue !== '{}'
|
||||||
) {
|
) {
|
||||||
defaultValue = 'json.loads(' + defaultValue + ')';
|
defaultValue = 'json.loads(' + defaultValue + ')';
|
||||||
|
|
|
@ -272,7 +272,7 @@ function getShorthandSyntaxAction(
|
||||||
}
|
}
|
||||||
|
|
||||||
let options: Parameter[] = [];
|
let options: Parameter[] = [];
|
||||||
if (!isNullOrUndefined(model.Schema_ActionName(model.MethodParameter.schema))) {
|
if (!isNullOrUndefined(model.MethodParameter_ActionName)) {
|
||||||
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
||||||
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
||||||
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
||||||
|
@ -375,7 +375,7 @@ function getPositionalActionHelp(
|
||||||
|
|
||||||
const positionalKeys = model.MethodParameter_PositionalKeys;
|
const positionalKeys = model.MethodParameter_PositionalKeys;
|
||||||
let options: Parameter[] = [];
|
let options: Parameter[] = [];
|
||||||
if (!isNullOrUndefined(model.Schema_ActionName(model.MethodParameter.schema))) {
|
if (!isNullOrUndefined(model.MethodParameter_ActionName)) {
|
||||||
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
||||||
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
||||||
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
||||||
|
@ -472,7 +472,7 @@ function getKeyValueActionHelp(
|
||||||
}
|
}
|
||||||
|
|
||||||
let options: Parameter[] = [];
|
let options: Parameter[] = [];
|
||||||
if (!isNullOrUndefined(model.Schema_ActionName(model.MethodParameter.schema))) {
|
if (!isNullOrUndefined(model.MethodParameter_ActionName)) {
|
||||||
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
if (baseParam && model.MethodParameter['polyBaseParam'] === baseParam) {
|
||||||
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
const keyToMatch = baseParam.schema?.['discriminator']?.property?.language.python?.name;
|
||||||
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
const valueToMatch = model.MethodParameter.schema?.['discriminatorValue'];
|
||||||
|
|
|
@ -303,9 +303,7 @@ function getCommandBody(model: CodeModelAz, needGeneric = false, debug = false)
|
||||||
model.MethodParameter_IsList &&
|
model.MethodParameter_IsList &&
|
||||||
model.MethodParameter_IsListOfSimple
|
model.MethodParameter_IsListOfSimple
|
||||||
) {
|
) {
|
||||||
const actionName: string = model.Schema_ActionName(
|
const actionName: string = model.MethodParameter_ActionName;
|
||||||
model.MethodParameter.schema,
|
|
||||||
);
|
|
||||||
argument += ', action=' + actionName;
|
argument += ', action=' + actionName;
|
||||||
hasActions = true;
|
hasActions = true;
|
||||||
|
|
||||||
|
@ -343,11 +341,7 @@ function getCommandBody(model: CodeModelAz, needGeneric = false, debug = false)
|
||||||
}
|
}
|
||||||
if (model.MethodParameter_IsListOfSimple) {
|
if (model.MethodParameter_IsListOfSimple) {
|
||||||
let options = [];
|
let options = [];
|
||||||
if (
|
if (!isNullOrUndefined(model.MethodParameter_ActionName)) {
|
||||||
!isNullOrUndefined(
|
|
||||||
model.Schema_ActionName(model.MethodParameter.schema),
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
if (
|
if (
|
||||||
baseParam &&
|
baseParam &&
|
||||||
model.MethodParameter['polyBaseParam'] === baseParam
|
model.MethodParameter['polyBaseParam'] === baseParam
|
||||||
|
|
|
@ -34,7 +34,7 @@ export class CliCmdletTest extends TemplateBase {
|
||||||
PathConstants.templateRootFolder,
|
PathConstants.templateRootFolder,
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.cmdletFolder,
|
PathConstants.cmdletFolder,
|
||||||
`${testFileName}.njx`,
|
testFileName + PathConstants.njxFileExtension,
|
||||||
);
|
);
|
||||||
this.className = isNegativeTest ? 'NegativeTest' : 'PositiveTest';
|
this.className = isNegativeTest ? 'NegativeTest' : 'PositiveTest';
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,11 @@ export class CliTestInit extends TemplateBase {
|
||||||
PathConstants.testFolder,
|
PathConstants.testFolder,
|
||||||
PathConstants.initFile,
|
PathConstants.initFile,
|
||||||
);
|
);
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'tests/init.py.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.testFolder,
|
||||||
|
PathConstants.initFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -33,7 +33,12 @@ export class CliTestPrepare extends TemplateBase {
|
||||||
PathConstants.latestFolder,
|
PathConstants.latestFolder,
|
||||||
PathConstants.preparersFile,
|
PathConstants.preparersFile,
|
||||||
);
|
);
|
||||||
this.tmplPath = path.join(PathConstants.templateRootFolder, 'tests/latest/prepares.py.njx');
|
this.tmplPath = path.join(
|
||||||
|
PathConstants.templateRootFolder,
|
||||||
|
PathConstants.testFolder,
|
||||||
|
PathConstants.latestFolder,
|
||||||
|
PathConstants.preparersFile + PathConstants.njxFileExtension,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fullGeneration(): Promise<string[]> {
|
public async fullGeneration(): Promise<string[]> {
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
{% if data.actions.length != 0 %}
|
||||||
{% for pylint in data.pylints %}
|
{% for pylint in data.pylints %}
|
||||||
{{pylint}}
|
{{pylint}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -14,14 +15,21 @@
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
class AddFactoryVstsConfiguration(argparse.Action):
|
{% for action in data.actions %}
|
||||||
|
{% if action.actionType == 'KeyValue' %}
|
||||||
|
class {{action.actionName}}(argparse.{{action.baseClass}}):
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.factory_vsts_configuration = action
|
{% if action.type == 'array' -%}
|
||||||
|
super({{action.actionName}}, self).__call__(parser, namespace, action, option_string)
|
||||||
|
{% else -%}
|
||||||
|
namespace.{{action.mapsTo}} = action
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -31,126 +39,114 @@ class AddFactoryVstsConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
{% if action.type != 'dictionary' or action.subProperties.length > 0 %}
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
{% endif %}
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
if kl == 'project-name':
|
{% if action.type != 'dictionary' or action.subProperties.length > 0 %}
|
||||||
d['project_name'] = v[0]
|
{% for subprop in action.subProperties %}
|
||||||
elif kl == 'tenant-id':
|
{% if loop.first %}if{% else %}elif{% endif %} kl == '{{subprop.nameAz}}':
|
||||||
d['tenant_id'] = v[0]
|
{% if subprop.type == 'array' %}
|
||||||
elif kl == 'account-name':
|
d['{{subprop.namePython}}'] = v
|
||||||
d['account_name'] = v[0]
|
{% else %}
|
||||||
elif kl == 'repository-name':
|
d['{{subprop.namePython}}'] = v[0]
|
||||||
d['repository_name'] = v[0]
|
{% endif %}
|
||||||
elif kl == 'collaboration-branch':
|
{% endfor %}
|
||||||
d['collaboration_branch'] = v[0]
|
{% if action.subProperties.length > 0 %}
|
||||||
elif kl == 'root-folder':
|
else:
|
||||||
d['root_folder'] = v[0]
|
raise CLIError('Unsupported Key {} is provided for parameter {{action.nameAz}}. All possible keys are: {{ action.subPropertiesNameAz | join(', ') }}'.
|
||||||
elif kl == 'last-commit-id':
|
format(k))
|
||||||
d['last_commit_id'] = v[0]
|
{% endif %}
|
||||||
d['type'] = 'FactoryVSTSConfiguration'
|
{% else %}
|
||||||
|
{% if subprop.type == 'array' %}
|
||||||
|
d[k] = v
|
||||||
|
{% else %}
|
||||||
|
d[k] = v[0]
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% for key, value in action.constants %}
|
||||||
|
d[{{key}}] = {{value}}
|
||||||
|
{% endfor %}
|
||||||
return d
|
return d
|
||||||
|
{% elif 'Positional' == action.actionType %}
|
||||||
|
|
||||||
|
class {{action.actionName}}(argparse.{{action.baseClass}}):
|
||||||
class AddFactoryGitHubConfiguration(argparse.Action):
|
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.factory_git_hub_configuration = action
|
{% if action.type == 'array' %}
|
||||||
|
for item in action:
|
||||||
|
super({{action.actionName}}, self).__call__(parser, namespace, item, option_string)
|
||||||
|
{% else %}
|
||||||
|
namespace.{{action.mapsTo}} = action[0]
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string=None):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
value_chunk_list = [values[x:x+{{action.subProperties.length}}] for x in range(0, len(values), {{action.subProperties.length}})]
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
value_list = []
|
||||||
properties[k].append(v)
|
for chunk in value_chunk_list:
|
||||||
properties = dict(properties)
|
{{ action.subPropertiesNamePython | join(', ') }} = chunk
|
||||||
|
value_list.append(
|
||||||
|
{
|
||||||
|
{% for item in action.subPropertiesNamePython %}
|
||||||
|
'{{item}}': {{item}},
|
||||||
|
{% endfor %}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return value_list
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} NAME METRIC OPERATION VALUE'.format(option_string))
|
||||||
d = {}
|
{% elif 'ShortHandSyntax' == action.actionType %}
|
||||||
for k in properties:
|
|
||||||
kl = k.lower()
|
|
||||||
v = properties[k]
|
|
||||||
if kl == 'host-name':
|
|
||||||
d['host_name'] = v[0]
|
|
||||||
elif kl == 'account-name':
|
|
||||||
d['account_name'] = v[0]
|
|
||||||
elif kl == 'repository-name':
|
|
||||||
d['repository_name'] = v[0]
|
|
||||||
elif kl == 'collaboration-branch':
|
|
||||||
d['collaboration_branch'] = v[0]
|
|
||||||
elif kl == 'root-folder':
|
|
||||||
d['root_folder'] = v[0]
|
|
||||||
elif kl == 'last-commit-id':
|
|
||||||
d['last_commit_id'] = v[0]
|
|
||||||
d['type'] = 'FactoryGitHubConfiguration'
|
|
||||||
return d
|
|
||||||
|
|
||||||
|
class {{action.actionName}}(argparse.{{action.baseClass}}):
|
||||||
class AddFolder(argparse.Action):
|
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.folder = action
|
{% if action.type == 'array' %}
|
||||||
|
for item in action:
|
||||||
|
super({{action.actionName}}, self).__call__(parser, namespace, item, option_string)
|
||||||
|
{% else %}
|
||||||
|
namespace.{{action.mapsTo}} = action[0]
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
ret = []
|
||||||
|
for item in values:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
try:
|
||||||
properties[k].append(v)
|
for (k, v) in (x.split('=', 1) for x in item.split(',')):
|
||||||
properties = dict(properties)
|
properties[k].append(v)
|
||||||
except ValueError:
|
properties = dict(properties)
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
except ValueError:
|
||||||
d = {}
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
for k in properties:
|
d = {}
|
||||||
kl = k.lower()
|
for k in properties:
|
||||||
v = properties[k]
|
{% if action.type != 'dictionary' or action.subProperties.length > 0 %}
|
||||||
if kl == 'name':
|
kl = k.lower()
|
||||||
d['name'] = v[0]
|
{% endif %}
|
||||||
return d
|
v = properties[k]
|
||||||
|
{% if action.type != 'dictionary' or action.subProperties.length > 0 %}
|
||||||
|
{% for subprop in action.subProperties %}
|
||||||
|
{% if loop.first %}if{% else %}elif{% endif %} kl == '{{subprop.nameAz}}':
|
||||||
|
{% if subprop.type == 'array' %}
|
||||||
|
d['{{subprop.namePython}}'] = v
|
||||||
|
{% else %}
|
||||||
|
d['{{subprop.namePython}}'] = v[0]
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if action.subProperties.length > 0 %}
|
||||||
|
else:
|
||||||
|
raise CLIError('Unsupported Key {} is provided for parameter {{action.nameAz}}. All possible keys are: {{ action.subPropertiesNameAz | join(', ') }}'.
|
||||||
|
format(k))
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% if subprop.type == 'array' %}
|
||||||
|
d[k] = v
|
||||||
|
{% else %}
|
||||||
|
d[k] = v[0]
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
ret.append(d)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
class AddFilters(argparse._AppendAction):
|
{% endfor %}
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
|
||||||
action = self.get_action(values, option_string)
|
|
||||||
super(AddFilters, self).__call__(parser, namespace, action, option_string)
|
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
|
||||||
try:
|
|
||||||
properties = defaultdict(list)
|
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
|
||||||
properties[k].append(v)
|
|
||||||
properties = dict(properties)
|
|
||||||
except ValueError:
|
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
|
||||||
d = {}
|
|
||||||
for k in properties:
|
|
||||||
kl = k.lower()
|
|
||||||
v = properties[k]
|
|
||||||
if kl == 'operand':
|
|
||||||
d['operand'] = v[0]
|
|
||||||
elif kl == 'operator':
|
|
||||||
d['operator'] = v[0]
|
|
||||||
elif kl == 'values':
|
|
||||||
d['values'] = v
|
|
||||||
return d
|
|
||||||
|
|
||||||
|
|
||||||
class AddOrderBy(argparse._AppendAction):
|
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
|
||||||
action = self.get_action(values, option_string)
|
|
||||||
super(AddOrderBy, self).__call__(parser, namespace, action, option_string)
|
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
|
||||||
try:
|
|
||||||
properties = defaultdict(list)
|
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
|
||||||
properties[k].append(v)
|
|
||||||
properties = dict(properties)
|
|
||||||
except ValueError:
|
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
|
||||||
d = {}
|
|
||||||
for k in properties:
|
|
||||||
kl = k.lower()
|
|
||||||
v = properties[k]
|
|
||||||
if kl == 'order-by':
|
|
||||||
d['order_by'] = v[0]
|
|
||||||
elif kl == 'order':
|
|
||||||
d['order'] = v[0]
|
|
||||||
return d
|
|
||||||
|
|
|
@ -96,6 +96,8 @@ export class PathConstants {
|
||||||
public static incTestScenarioFile(rpName: string): string {
|
public static incTestScenarioFile(rpName: string): string {
|
||||||
return 'test_' + rpName + '_scenario_incrementalGenerated.py';
|
return 'test_' + rpName + '_scenario_incrementalGenerated.py';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static readonly njxFileExtension = '.njx';
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum CodeGenConstants {
|
export enum CodeGenConstants {
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddKeys(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddKeys, self).__call__(parser, namespace, action, option_string)
|
super(AddKeys, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,43 +34,83 @@ class AddKeys(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'alg':
|
if kl == 'alg':
|
||||||
|
|
||||||
d['alg'] = v[0]
|
d['alg'] = v[0]
|
||||||
|
|
||||||
elif kl == 'crv':
|
elif kl == 'crv':
|
||||||
|
|
||||||
d['crv'] = v[0]
|
d['crv'] = v[0]
|
||||||
|
|
||||||
elif kl == 'd':
|
elif kl == 'd':
|
||||||
|
|
||||||
d['d'] = v[0]
|
d['d'] = v[0]
|
||||||
|
|
||||||
elif kl == 'dp':
|
elif kl == 'dp':
|
||||||
|
|
||||||
d['dp'] = v[0]
|
d['dp'] = v[0]
|
||||||
|
|
||||||
elif kl == 'dq':
|
elif kl == 'dq':
|
||||||
|
|
||||||
d['dq'] = v[0]
|
d['dq'] = v[0]
|
||||||
|
|
||||||
elif kl == 'e':
|
elif kl == 'e':
|
||||||
|
|
||||||
d['e'] = v[0]
|
d['e'] = v[0]
|
||||||
|
|
||||||
elif kl == 'k':
|
elif kl == 'k':
|
||||||
|
|
||||||
d['k'] = v[0]
|
d['k'] = v[0]
|
||||||
|
|
||||||
elif kl == 'kid':
|
elif kl == 'kid':
|
||||||
|
|
||||||
d['kid'] = v[0]
|
d['kid'] = v[0]
|
||||||
|
|
||||||
elif kl == 'kty':
|
elif kl == 'kty':
|
||||||
|
|
||||||
d['kty'] = v[0]
|
d['kty'] = v[0]
|
||||||
|
|
||||||
elif kl == 'n':
|
elif kl == 'n':
|
||||||
|
|
||||||
d['n'] = v[0]
|
d['n'] = v[0]
|
||||||
|
|
||||||
elif kl == 'p':
|
elif kl == 'p':
|
||||||
|
|
||||||
d['p'] = v[0]
|
d['p'] = v[0]
|
||||||
|
|
||||||
elif kl == 'q':
|
elif kl == 'q':
|
||||||
|
|
||||||
d['q'] = v[0]
|
d['q'] = v[0]
|
||||||
|
|
||||||
elif kl == 'qi':
|
elif kl == 'qi':
|
||||||
|
|
||||||
d['qi'] = v[0]
|
d['qi'] = v[0]
|
||||||
|
|
||||||
elif kl == 'use':
|
elif kl == 'use':
|
||||||
|
|
||||||
d['use'] = v[0]
|
d['use'] = v[0]
|
||||||
|
|
||||||
elif kl == 'x':
|
elif kl == 'x':
|
||||||
|
|
||||||
d['x'] = v[0]
|
d['x'] = v[0]
|
||||||
|
|
||||||
elif kl == 'x5-c':
|
elif kl == 'x5-c':
|
||||||
|
|
||||||
d['x5_c'] = v
|
d['x5_c'] = v
|
||||||
|
|
||||||
elif kl == 'y':
|
elif kl == 'y':
|
||||||
|
|
||||||
d['y'] = v[0]
|
d['y'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter keys. All possible keys are: alg, crv, d, '
|
raise CLIError(
|
||||||
'dp, dq, e, k, kid, kty, n, p, q, qi, use, x, x5-c, y'.format(k))
|
'Unsupported Key {} is provided for parameter keys. All possible keys are: alg, crv, d, dp, dq, e,'
|
||||||
|
' k, kid, kty, n, p, q, qi, use, x, x5-c, y'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,4 +7,3 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# pylint: disable=protected-access
|
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddSubstatuses(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddSubstatuses, self).__call__(parser, namespace, action, option_string)
|
super(AddSubstatuses, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,21 +34,37 @@ class AddSubstatuses(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'code':
|
if kl == 'code':
|
||||||
|
|
||||||
d['code'] = v[0]
|
d['code'] = v[0]
|
||||||
|
|
||||||
elif kl == 'level':
|
elif kl == 'level':
|
||||||
|
|
||||||
d['level'] = v[0]
|
d['level'] = v[0]
|
||||||
|
|
||||||
elif kl == 'display-status':
|
elif kl == 'display-status':
|
||||||
|
|
||||||
d['display_status'] = v[0]
|
d['display_status'] = v[0]
|
||||||
|
|
||||||
elif kl == 'message':
|
elif kl == 'message':
|
||||||
|
|
||||||
d['message'] = v[0]
|
d['message'] = v[0]
|
||||||
|
|
||||||
elif kl == 'time':
|
elif kl == 'time':
|
||||||
|
|
||||||
d['time'] = v[0]
|
d['time'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter substatuses. All possible keys are: code, '
|
raise CLIError(
|
||||||
'level, display-status, message, time'.format(k))
|
'Unsupported Key {} is provided for parameter substatuses. All possible keys are: code, level,'
|
||||||
|
' display-status, message, time'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +73,7 @@ class AddStatuses(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddStatuses, self).__call__(parser, namespace, action, option_string)
|
super(AddStatuses, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -62,19 +83,35 @@ class AddStatuses(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'code':
|
if kl == 'code':
|
||||||
|
|
||||||
d['code'] = v[0]
|
d['code'] = v[0]
|
||||||
|
|
||||||
elif kl == 'level':
|
elif kl == 'level':
|
||||||
|
|
||||||
d['level'] = v[0]
|
d['level'] = v[0]
|
||||||
|
|
||||||
elif kl == 'display-status':
|
elif kl == 'display-status':
|
||||||
|
|
||||||
d['display_status'] = v[0]
|
d['display_status'] = v[0]
|
||||||
|
|
||||||
elif kl == 'message':
|
elif kl == 'message':
|
||||||
|
|
||||||
d['message'] = v[0]
|
d['message'] = v[0]
|
||||||
|
|
||||||
elif kl == 'time':
|
elif kl == 'time':
|
||||||
|
|
||||||
d['time'] = v[0]
|
d['time'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter statuses. All possible keys are: code, '
|
raise CLIError(
|
||||||
'level, display-status, message, time'.format(k))
|
'Unsupported Key {} is provided for parameter statuses. All possible keys are: code, level,'
|
||||||
|
' display-status, message, time'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -17,11 +22,12 @@ from knack.util import CLIError
|
||||||
class AddFactoryVstsConfiguration(argparse.Action):
|
class AddFactoryVstsConfiguration(argparse.Action):
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
namespace.factory_vsts_configuration = action[0]
|
namespace.factory_vsts_configuration = action[0]
|
||||||
|
|
||||||
def get_action(self, values, option_string=None):
|
def get_action(self, values, option_string=None):
|
||||||
try:
|
try:
|
||||||
value_chunk_list = [values[x:x+7] for x in range(0, len(values), 7)]
|
value_chunk_list = [values[x: x + 7] for x in range(0, len(values), 7)]
|
||||||
value_list = []
|
value_list = []
|
||||||
for chunk in value_chunk_list:
|
for chunk in value_chunk_list:
|
||||||
type, project_name, tenant_id, account_name, repository_name, root_folder, collaboration_branch = chunk
|
type, project_name, tenant_id, account_name, repository_name, root_folder, collaboration_branch = chunk
|
||||||
|
@ -33,7 +39,7 @@ class AddFactoryVstsConfiguration(argparse.Action):
|
||||||
'account_name': account_name,
|
'account_name': account_name,
|
||||||
'repository_name': repository_name,
|
'repository_name': repository_name,
|
||||||
'root_folder': root_folder,
|
'root_folder': root_folder,
|
||||||
'collaboration_branch': collaboration_branch
|
'collaboration_branch': collaboration_branch,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return value_list
|
return value_list
|
||||||
|
@ -46,7 +52,7 @@ class AddFactoryGitHubConfiguration(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.factory_git_hub_configuration = action
|
namespace.factory_git_hub_configuration = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -56,43 +62,63 @@ class AddFactoryGitHubConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'host-name':
|
if kl == 'host-name':
|
||||||
|
|
||||||
d['host_name'] = v[0]
|
d['host_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'account-name':
|
elif kl == 'account-name':
|
||||||
|
|
||||||
d['account_name'] = v[0]
|
d['account_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'repository-name':
|
elif kl == 'repository-name':
|
||||||
|
|
||||||
d['repository_name'] = v[0]
|
d['repository_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'collaboration-branch':
|
elif kl == 'collaboration-branch':
|
||||||
|
|
||||||
d['collaboration_branch'] = v[0]
|
d['collaboration_branch'] = v[0]
|
||||||
|
|
||||||
elif kl == 'root-folder':
|
elif kl == 'root-folder':
|
||||||
|
|
||||||
d['root_folder'] = v[0]
|
d['root_folder'] = v[0]
|
||||||
|
|
||||||
elif kl == 'last-commit-id':
|
elif kl == 'last-commit-id':
|
||||||
|
|
||||||
d['last_commit_id'] = v[0]
|
d['last_commit_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter factory_git_hub_configuration. All '
|
raise CLIError(
|
||||||
'possible keys are: host-name, account-name, repository-name, collaboration-branch, '
|
'Unsupported Key {} is provided for parameter factory-git-hub-configuration. All possible keys are:'
|
||||||
'root-folder, last-commit-id'.format(k))
|
' host-name, account-name, repository-name, collaboration-branch, root-folder, last-commit-id'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['type'] = 'FactoryGitHubConfiguration'
|
d['type'] = 'FactoryGitHubConfiguration'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
class AddFakeIdentity(argparse.Action):
|
class AddFakeIdentity(argparse.Action):
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
namespace.fake_identity = action[0]
|
namespace.fake_identity = action[0]
|
||||||
|
|
||||||
def get_action(self, values, option_string=None):
|
def get_action(self, values, option_string=None):
|
||||||
try:
|
try:
|
||||||
value_chunk_list = [values[x:x+2] for x in range(0, len(values), 2)]
|
value_chunk_list = [values[x: x + 2] for x in range(0, len(values), 2)]
|
||||||
value_list = []
|
value_list = []
|
||||||
for chunk in value_chunk_list:
|
for chunk in value_chunk_list:
|
||||||
name, zones_inside = chunk
|
name, zones_inside = chunk
|
||||||
value_list.append(
|
value_list.append(
|
||||||
{
|
{
|
||||||
'name': name,
|
'name': name,
|
||||||
'zones_inside': zones_inside
|
'zones_inside': zones_inside,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return value_list
|
return value_list
|
||||||
|
@ -105,7 +131,7 @@ class AddReplicaSets(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddReplicaSets, self).__call__(parser, namespace, action, option_string)
|
super(AddReplicaSets, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -115,13 +141,23 @@ class AddReplicaSets(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'location':
|
if kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
elif kl == 'subnet-id':
|
elif kl == 'subnet-id':
|
||||||
|
|
||||||
d['subnet_id'] = v[0]
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter replica_sets. All possible keys are: '
|
raise CLIError(
|
||||||
'location, subnet-id'.format(k))
|
'Unsupported Key {} is provided for parameter replica-sets. All possible keys are: location,'
|
||||||
|
' subnet-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'name':
|
if kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'capacity':
|
elif kl == 'capacity':
|
||||||
|
|
||||||
d['capacity'] = v[0]
|
d['capacity'] = v[0]
|
||||||
|
|
||||||
elif kl == 'tier':
|
elif kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: name, '
|
raise CLIError(
|
||||||
'capacity, tier'.format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: name, capacity, tier'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,13 +75,21 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'value':
|
if kl == 'value':
|
||||||
|
|
||||||
d['value'] = v[0]
|
d['value'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter trusted_external_tenants. All possible '
|
raise CLIError(
|
||||||
'keys are: value'.format(k))
|
'Unsupported Key {} is provided for parameter trusted-external-tenants. All possible keys are:'
|
||||||
|
' value'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +98,7 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.optimized_autoscale = action
|
namespace.optimized_autoscale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -83,19 +108,33 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'version':
|
if kl == 'version':
|
||||||
|
|
||||||
d['version'] = v[0]
|
d['version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'is-enabled':
|
elif kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'minimum':
|
elif kl == 'minimum':
|
||||||
|
|
||||||
d['minimum'] = v[0]
|
d['minimum'] = v[0]
|
||||||
|
|
||||||
elif kl == 'maximum':
|
elif kl == 'maximum':
|
||||||
|
|
||||||
d['maximum'] = v[0]
|
d['maximum'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter optimized_autoscale. All possible keys '
|
raise CLIError(
|
||||||
'are: version, is-enabled, minimum, maximum'.format(k))
|
'Unsupported Key {} is provided for parameter optimized-autoscale. All possible keys are: version,'
|
||||||
|
' is-enabled, minimum, maximum'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,7 +143,7 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.virtual_network_configuration = action
|
namespace.virtual_network_configuration = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -114,18 +153,29 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'subnet-id':
|
if kl == 'subnet-id':
|
||||||
|
|
||||||
d['subnet_id'] = v[0]
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'engine-public-ip-id':
|
elif kl == 'engine-public-ip-id':
|
||||||
|
|
||||||
d['engine_public_ip_id'] = v[0]
|
d['engine_public_ip_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-management-public-ip-id':
|
elif kl == 'data-management-public-ip-id':
|
||||||
|
|
||||||
d['data_management_public_ip_id'] = v[0]
|
d['data_management_public_ip_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter virtual_network_configuration. All '
|
raise CLIError(
|
||||||
'possible keys are: subnet-id, engine-public-ip-id, data-management-public-ip-id'.
|
'Unsupported Key {} is provided for parameter virtual-network-configuration. All possible keys are:'
|
||||||
format(k))
|
' subnet-id, engine-public-ip-id, data-management-public-ip-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,7 +184,7 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.key_vault_properties = action
|
namespace.key_vault_properties = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -144,17 +194,29 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'key-name':
|
if kl == 'key-name':
|
||||||
|
|
||||||
d['key_name'] = v[0]
|
d['key_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-version':
|
elif kl == 'key-version':
|
||||||
|
|
||||||
d['key_version'] = v[0]
|
d['key_version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-vault-uri':
|
elif kl == 'key-vault-uri':
|
||||||
|
|
||||||
d['key_vault_uri'] = v[0]
|
d['key_vault_uri'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter key_vault_properties. All possible keys '
|
raise CLIError(
|
||||||
'are: key-name, key-version, key-vault-uri'.format(k))
|
'Unsupported Key {} is provided for parameter key-vault-properties. All possible keys are:'
|
||||||
|
' key-name, key-version, key-vault-uri'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,7 +225,7 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -173,13 +235,21 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'language-extension-name':
|
if kl == 'language-extension-name':
|
||||||
|
|
||||||
d['language_extension_name'] = v[0]
|
d['language_extension_name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: '
|
raise CLIError(
|
||||||
'language-extension-name'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: language-extension-name'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -188,7 +258,7 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_write_database = action
|
namespace.read_write_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -198,18 +268,31 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'soft-delete-period':
|
if kl == 'soft-delete-period':
|
||||||
|
|
||||||
d['soft_delete_period'] = v[0]
|
d['soft_delete_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'hot-cache-period':
|
elif kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_write_database. All possible keys '
|
raise CLIError(
|
||||||
'are: soft-delete-period, hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-write-database. All possible keys are:'
|
||||||
|
' soft-delete-period, hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadWrite'
|
d['kind'] = 'ReadWrite'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -218,7 +301,7 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_only_following_database = action
|
namespace.read_only_following_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -228,16 +311,27 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'hot-cache-period':
|
if kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_only_following_database. All '
|
raise CLIError(
|
||||||
'possible keys are: hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-only-following-database. All possible keys are:'
|
||||||
|
' hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadOnlyFollowing'
|
d['kind'] = 'ReadOnlyFollowing'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +340,7 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -256,23 +350,41 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'role':
|
if kl == 'role':
|
||||||
|
|
||||||
d['role'] = v[0]
|
d['role'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'type':
|
elif kl == 'type':
|
||||||
|
|
||||||
d['type'] = v[0]
|
d['type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'fqn':
|
elif kl == 'fqn':
|
||||||
|
|
||||||
d['fqn'] = v[0]
|
d['fqn'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email':
|
elif kl == 'email':
|
||||||
|
|
||||||
d['email'] = v[0]
|
d['email'] = v[0]
|
||||||
|
|
||||||
elif kl == 'app-id':
|
elif kl == 'app-id':
|
||||||
|
|
||||||
d['app_id'] = v[0]
|
d['app_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: role, name, '
|
raise CLIError(
|
||||||
'type, fqn, email, app-id'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: role, name, type, fqn,'
|
||||||
|
' email, app-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -281,7 +393,7 @@ class AddEventHubDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.event_hub_data_connection = action
|
namespace.event_hub_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -291,29 +403,52 @@ class AddEventHubDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'event-hub-resource-id':
|
if kl == 'event-hub-resource-id':
|
||||||
|
|
||||||
d['event_hub_resource_id'] = v[0]
|
d['event_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-system-properties':
|
elif kl == 'event-system-properties':
|
||||||
|
|
||||||
d['event_system_properties'] = v
|
d['event_system_properties'] = v
|
||||||
|
|
||||||
elif kl == 'compression':
|
elif kl == 'compression':
|
||||||
|
|
||||||
d['compression'] = v[0]
|
d['compression'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter event_hub_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: event-hub-resource-id, consumer-group, table-name, mapping-rule-name, '
|
'Unsupported Key {} is provided for parameter event-hub-data-connection. All possible keys are:'
|
||||||
'data-format, event-system-properties, compression, location'.format(k))
|
' event-hub-resource-id, consumer-group, table-name, mapping-rule-name, data-format,'
|
||||||
|
' event-system-properties, compression, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'EventHub'
|
d['kind'] = 'EventHub'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -322,7 +457,7 @@ class AddIotHubDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.iot_hub_data_connection = action
|
namespace.iot_hub_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -332,29 +467,52 @@ class AddIotHubDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'iot-hub-resource-id':
|
if kl == 'iot-hub-resource-id':
|
||||||
|
|
||||||
d['iot_hub_resource_id'] = v[0]
|
d['iot_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-system-properties':
|
elif kl == 'event-system-properties':
|
||||||
|
|
||||||
d['event_system_properties'] = v
|
d['event_system_properties'] = v
|
||||||
|
|
||||||
elif kl == 'shared-access-policy-name':
|
elif kl == 'shared-access-policy-name':
|
||||||
|
|
||||||
d['shared_access_policy_name'] = v[0]
|
d['shared_access_policy_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter iot_hub_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: iot-hub-resource-id, consumer-group, table-name, mapping-rule-name, '
|
'Unsupported Key {} is provided for parameter iot-hub-data-connection. All possible keys are:'
|
||||||
'data-format, event-system-properties, shared-access-policy-name, location'.format(k))
|
' iot-hub-resource-id, consumer-group, table-name, mapping-rule-name, data-format,'
|
||||||
|
' event-system-properties, shared-access-policy-name, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'IotHub'
|
d['kind'] = 'IotHub'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -363,7 +521,7 @@ class AddEventGridDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.event_grid_data_connection = action
|
namespace.event_grid_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -373,30 +531,54 @@ class AddEventGridDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'storage-account-resource-id':
|
if kl == 'storage-account-resource-id':
|
||||||
|
|
||||||
d['storage_account_resource_id'] = v[0]
|
d['storage_account_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-hub-resource-id':
|
elif kl == 'event-hub-resource-id':
|
||||||
|
|
||||||
d['event_hub_resource_id'] = v[0]
|
d['event_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'ignore-first-record':
|
elif kl == 'ignore-first-record':
|
||||||
|
|
||||||
d['ignore_first_record'] = v[0]
|
d['ignore_first_record'] = v[0]
|
||||||
|
|
||||||
elif kl == 'blob-storage-event-type':
|
elif kl == 'blob-storage-event-type':
|
||||||
|
|
||||||
d['blob_storage_event_type'] = v[0]
|
d['blob_storage_event_type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter event_grid_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: storage-account-resource-id, event-hub-resource-id, consumer-group, '
|
'Unsupported Key {} is provided for parameter event-grid-data-connection. All possible keys are:'
|
||||||
'table-name, mapping-rule-name, data-format, ignore-first-record, '
|
' storage-account-resource-id, event-hub-resource-id, consumer-group, table-name,'
|
||||||
'blob-storage-event-type, location'.format(k))
|
' mapping-rule-name, data-format, ignore-first-record, blob-storage-event-type, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'EventGrid'
|
d['kind'] = 'EventGrid'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'name':
|
if kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'capacity':
|
elif kl == 'capacity':
|
||||||
|
|
||||||
d['capacity'] = v[0]
|
d['capacity'] = v[0]
|
||||||
|
|
||||||
elif kl == 'tier':
|
elif kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: name, '
|
raise CLIError(
|
||||||
'capacity, tier'.format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: name, capacity, tier'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,13 +75,21 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'value':
|
if kl == 'value':
|
||||||
|
|
||||||
d['value'] = v[0]
|
d['value'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter trusted_external_tenants. All possible '
|
raise CLIError(
|
||||||
'keys are: value'.format(k))
|
'Unsupported Key {} is provided for parameter trusted-external-tenants. All possible keys are:'
|
||||||
|
' value'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,7 +98,7 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.optimized_autoscale = action
|
namespace.optimized_autoscale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -83,19 +108,33 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'version':
|
if kl == 'version':
|
||||||
|
|
||||||
d['version'] = v[0]
|
d['version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'is-enabled':
|
elif kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'minimum':
|
elif kl == 'minimum':
|
||||||
|
|
||||||
d['minimum'] = v[0]
|
d['minimum'] = v[0]
|
||||||
|
|
||||||
elif kl == 'maximum':
|
elif kl == 'maximum':
|
||||||
|
|
||||||
d['maximum'] = v[0]
|
d['maximum'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter optimized_autoscale. All possible keys '
|
raise CLIError(
|
||||||
'are: version, is-enabled, minimum, maximum'.format(k))
|
'Unsupported Key {} is provided for parameter optimized-autoscale. All possible keys are: version,'
|
||||||
|
' is-enabled, minimum, maximum'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,7 +143,7 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.virtual_network_configuration = action
|
namespace.virtual_network_configuration = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -114,18 +153,29 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'subnet-id':
|
if kl == 'subnet-id':
|
||||||
|
|
||||||
d['subnet_id'] = v[0]
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'engine-public-ip-id':
|
elif kl == 'engine-public-ip-id':
|
||||||
|
|
||||||
d['engine_public_ip_id'] = v[0]
|
d['engine_public_ip_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-management-public-ip-id':
|
elif kl == 'data-management-public-ip-id':
|
||||||
|
|
||||||
d['data_management_public_ip_id'] = v[0]
|
d['data_management_public_ip_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter virtual_network_configuration. All '
|
raise CLIError(
|
||||||
'possible keys are: subnet-id, engine-public-ip-id, data-management-public-ip-id'.
|
'Unsupported Key {} is provided for parameter virtual-network-configuration. All possible keys are:'
|
||||||
format(k))
|
' subnet-id, engine-public-ip-id, data-management-public-ip-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,7 +184,7 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.key_vault_properties = action
|
namespace.key_vault_properties = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -144,17 +194,29 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'key-name':
|
if kl == 'key-name':
|
||||||
|
|
||||||
d['key_name'] = v[0]
|
d['key_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-version':
|
elif kl == 'key-version':
|
||||||
|
|
||||||
d['key_version'] = v[0]
|
d['key_version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-vault-uri':
|
elif kl == 'key-vault-uri':
|
||||||
|
|
||||||
d['key_vault_uri'] = v[0]
|
d['key_vault_uri'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter key_vault_properties. All possible keys '
|
raise CLIError(
|
||||||
'are: key-name, key-version, key-vault-uri'.format(k))
|
'Unsupported Key {} is provided for parameter key-vault-properties. All possible keys are:'
|
||||||
|
' key-name, key-version, key-vault-uri'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,7 +225,7 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -173,13 +235,21 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'language-extension-name':
|
if kl == 'language-extension-name':
|
||||||
|
|
||||||
d['language_extension_name'] = v[0]
|
d['language_extension_name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: '
|
raise CLIError(
|
||||||
'language-extension-name'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: language-extension-name'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -188,7 +258,7 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_write_database = action
|
namespace.read_write_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -198,18 +268,31 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'soft-delete-period':
|
if kl == 'soft-delete-period':
|
||||||
|
|
||||||
d['soft_delete_period'] = v[0]
|
d['soft_delete_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'hot-cache-period':
|
elif kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_write_database. All possible keys '
|
raise CLIError(
|
||||||
'are: soft-delete-period, hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-write-database. All possible keys are:'
|
||||||
|
' soft-delete-period, hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadWrite'
|
d['kind'] = 'ReadWrite'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -218,7 +301,7 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_only_following_database = action
|
namespace.read_only_following_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -228,16 +311,27 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'hot-cache-period':
|
if kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_only_following_database. All '
|
raise CLIError(
|
||||||
'possible keys are: hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-only-following-database. All possible keys are:'
|
||||||
|
' hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadOnlyFollowing'
|
d['kind'] = 'ReadOnlyFollowing'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +340,7 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -256,23 +350,41 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'role':
|
if kl == 'role':
|
||||||
|
|
||||||
d['role'] = v[0]
|
d['role'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'type':
|
elif kl == 'type':
|
||||||
|
|
||||||
d['type'] = v[0]
|
d['type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'fqn':
|
elif kl == 'fqn':
|
||||||
|
|
||||||
d['fqn'] = v[0]
|
d['fqn'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email':
|
elif kl == 'email':
|
||||||
|
|
||||||
d['email'] = v[0]
|
d['email'] = v[0]
|
||||||
|
|
||||||
elif kl == 'app-id':
|
elif kl == 'app-id':
|
||||||
|
|
||||||
d['app_id'] = v[0]
|
d['app_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: role, name, '
|
raise CLIError(
|
||||||
'type, fqn, email, app-id'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: role, name, type, fqn,'
|
||||||
|
' email, app-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -281,7 +393,7 @@ class AddEventHubDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.event_hub_data_connection = action
|
namespace.event_hub_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -291,29 +403,52 @@ class AddEventHubDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'event-hub-resource-id':
|
if kl == 'event-hub-resource-id':
|
||||||
|
|
||||||
d['event_hub_resource_id'] = v[0]
|
d['event_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-system-properties':
|
elif kl == 'event-system-properties':
|
||||||
|
|
||||||
d['event_system_properties'] = v
|
d['event_system_properties'] = v
|
||||||
|
|
||||||
elif kl == 'compression':
|
elif kl == 'compression':
|
||||||
|
|
||||||
d['compression'] = v[0]
|
d['compression'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter event_hub_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: event-hub-resource-id, consumer-group, table-name, mapping-rule-name, '
|
'Unsupported Key {} is provided for parameter event-hub-data-connection. All possible keys are:'
|
||||||
'data-format, event-system-properties, compression, location'.format(k))
|
' event-hub-resource-id, consumer-group, table-name, mapping-rule-name, data-format,'
|
||||||
|
' event-system-properties, compression, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'EventHub'
|
d['kind'] = 'EventHub'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -322,7 +457,7 @@ class AddIotHubDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.iot_hub_data_connection = action
|
namespace.iot_hub_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -332,29 +467,52 @@ class AddIotHubDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'iot-hub-resource-id':
|
if kl == 'iot-hub-resource-id':
|
||||||
|
|
||||||
d['iot_hub_resource_id'] = v[0]
|
d['iot_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-system-properties':
|
elif kl == 'event-system-properties':
|
||||||
|
|
||||||
d['event_system_properties'] = v
|
d['event_system_properties'] = v
|
||||||
|
|
||||||
elif kl == 'shared-access-policy-name':
|
elif kl == 'shared-access-policy-name':
|
||||||
|
|
||||||
d['shared_access_policy_name'] = v[0]
|
d['shared_access_policy_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter iot_hub_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: iot-hub-resource-id, consumer-group, table-name, mapping-rule-name, '
|
'Unsupported Key {} is provided for parameter iot-hub-data-connection. All possible keys are:'
|
||||||
'data-format, event-system-properties, shared-access-policy-name, location'.format(k))
|
' iot-hub-resource-id, consumer-group, table-name, mapping-rule-name, data-format,'
|
||||||
|
' event-system-properties, shared-access-policy-name, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'IotHub'
|
d['kind'] = 'IotHub'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -363,7 +521,7 @@ class AddEventGridDataConnection(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.event_grid_data_connection = action
|
namespace.event_grid_data_connection = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -373,30 +531,54 @@ class AddEventGridDataConnection(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'storage-account-resource-id':
|
if kl == 'storage-account-resource-id':
|
||||||
|
|
||||||
d['storage_account_resource_id'] = v[0]
|
d['storage_account_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'event-hub-resource-id':
|
elif kl == 'event-hub-resource-id':
|
||||||
|
|
||||||
d['event_hub_resource_id'] = v[0]
|
d['event_hub_resource_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'consumer-group':
|
elif kl == 'consumer-group':
|
||||||
|
|
||||||
d['consumer_group'] = v[0]
|
d['consumer_group'] = v[0]
|
||||||
|
|
||||||
elif kl == 'table-name':
|
elif kl == 'table-name':
|
||||||
|
|
||||||
d['table_name'] = v[0]
|
d['table_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'mapping-rule-name':
|
elif kl == 'mapping-rule-name':
|
||||||
|
|
||||||
d['mapping_rule_name'] = v[0]
|
d['mapping_rule_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-format':
|
elif kl == 'data-format':
|
||||||
|
|
||||||
d['data_format'] = v[0]
|
d['data_format'] = v[0]
|
||||||
|
|
||||||
elif kl == 'ignore-first-record':
|
elif kl == 'ignore-first-record':
|
||||||
|
|
||||||
d['ignore_first_record'] = v[0]
|
d['ignore_first_record'] = v[0]
|
||||||
|
|
||||||
elif kl == 'blob-storage-event-type':
|
elif kl == 'blob-storage-event-type':
|
||||||
|
|
||||||
d['blob_storage_event_type'] = v[0]
|
d['blob_storage_event_type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter event_grid_data_connection. All possible '
|
raise CLIError(
|
||||||
'keys are: storage-account-resource-id, event-hub-resource-id, consumer-group, '
|
'Unsupported Key {} is provided for parameter event-grid-data-connection. All possible keys are:'
|
||||||
'table-name, mapping-rule-name, data-format, ignore-first-record, '
|
' storage-account-resource-id, event-hub-resource-id, consumer-group, table-name,'
|
||||||
'blob-storage-event-type, location'.format(k))
|
' mapping-rule-name, data-format, ignore-first-record, blob-storage-event-type, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'EventGrid'
|
d['kind'] = 'EventGrid'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,13 +34,21 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'value':
|
if kl == 'value':
|
||||||
|
|
||||||
d['value'] = v[0]
|
d['value'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter trusted_external_tenants. All possible '
|
raise CLIError(
|
||||||
'keys are: value'.format(k))
|
'Unsupported Key {} is provided for parameter trusted-external-tenants. All possible keys are:'
|
||||||
|
' value'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,7 +57,7 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.optimized_autoscale = action
|
namespace.optimized_autoscale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -54,19 +67,33 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'version':
|
if kl == 'version':
|
||||||
|
|
||||||
d['version'] = v[0]
|
d['version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'is-enabled':
|
elif kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'minimum':
|
elif kl == 'minimum':
|
||||||
|
|
||||||
d['minimum'] = v[0]
|
d['minimum'] = v[0]
|
||||||
|
|
||||||
elif kl == 'maximum':
|
elif kl == 'maximum':
|
||||||
|
|
||||||
d['maximum'] = v[0]
|
d['maximum'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter optimized_autoscale. All possible keys '
|
raise CLIError(
|
||||||
'are: version, is-enabled, minimum, maximum'.format(k))
|
'Unsupported Key {} is provided for parameter optimized-autoscale. All possible keys are: version,'
|
||||||
|
' is-enabled, minimum, maximum'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.virtual_network_configuration = action
|
namespace.virtual_network_configuration = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,18 +112,29 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'subnet-id':
|
if kl == 'subnet-id':
|
||||||
|
|
||||||
d['subnet_id'] = v[0]
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'engine-public-ip-id':
|
elif kl == 'engine-public-ip-id':
|
||||||
|
|
||||||
d['engine_public_ip_id'] = v[0]
|
d['engine_public_ip_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-management-public-ip-id':
|
elif kl == 'data-management-public-ip-id':
|
||||||
|
|
||||||
d['data_management_public_ip_id'] = v[0]
|
d['data_management_public_ip_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter virtual_network_configuration. All '
|
raise CLIError(
|
||||||
'possible keys are: subnet-id, engine-public-ip-id, data-management-public-ip-id'.
|
'Unsupported Key {} is provided for parameter virtual-network-configuration. All possible keys are:'
|
||||||
format(k))
|
' subnet-id, engine-public-ip-id, data-management-public-ip-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,7 +143,7 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.key_vault_properties = action
|
namespace.key_vault_properties = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -115,17 +153,29 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'key-name':
|
if kl == 'key-name':
|
||||||
|
|
||||||
d['key_name'] = v[0]
|
d['key_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-version':
|
elif kl == 'key-version':
|
||||||
|
|
||||||
d['key_version'] = v[0]
|
d['key_version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-vault-uri':
|
elif kl == 'key-vault-uri':
|
||||||
|
|
||||||
d['key_vault_uri'] = v[0]
|
d['key_vault_uri'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter key_vault_properties. All possible keys '
|
raise CLIError(
|
||||||
'are: key-name, key-version, key-vault-uri'.format(k))
|
'Unsupported Key {} is provided for parameter key-vault-properties. All possible keys are:'
|
||||||
|
' key-name, key-version, key-vault-uri'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,7 +184,7 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -144,13 +194,21 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'language-extension-name':
|
if kl == 'language-extension-name':
|
||||||
|
|
||||||
d['language_extension_name'] = v[0]
|
d['language_extension_name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: '
|
raise CLIError(
|
||||||
'language-extension-name'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: language-extension-name'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +217,7 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_write_database = action
|
namespace.read_write_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,18 +227,31 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'soft-delete-period':
|
if kl == 'soft-delete-period':
|
||||||
|
|
||||||
d['soft_delete_period'] = v[0]
|
d['soft_delete_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'hot-cache-period':
|
elif kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_write_database. All possible keys '
|
raise CLIError(
|
||||||
'are: soft-delete-period, hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-write-database. All possible keys are:'
|
||||||
|
' soft-delete-period, hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadWrite'
|
d['kind'] = 'ReadWrite'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -189,7 +260,7 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_only_following_database = action
|
namespace.read_only_following_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -199,16 +270,27 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'hot-cache-period':
|
if kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_only_following_database. All '
|
raise CLIError(
|
||||||
'possible keys are: hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-only-following-database. All possible keys are:'
|
||||||
|
' hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadOnlyFollowing'
|
d['kind'] = 'ReadOnlyFollowing'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,7 +299,7 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -227,21 +309,39 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'role':
|
if kl == 'role':
|
||||||
|
|
||||||
d['role'] = v[0]
|
d['role'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'type':
|
elif kl == 'type':
|
||||||
|
|
||||||
d['type'] = v[0]
|
d['type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'fqn':
|
elif kl == 'fqn':
|
||||||
|
|
||||||
d['fqn'] = v[0]
|
d['fqn'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email':
|
elif kl == 'email':
|
||||||
|
|
||||||
d['email'] = v[0]
|
d['email'] = v[0]
|
||||||
|
|
||||||
elif kl == 'app-id':
|
elif kl == 'app-id':
|
||||||
|
|
||||||
d['app_id'] = v[0]
|
d['app_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: role, name, '
|
raise CLIError(
|
||||||
'type, fqn, email, app-id'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: role, name, type, fqn,'
|
||||||
|
' email, app-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
super(AddTrustedExternalTenants, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,13 +34,21 @@ class AddTrustedExternalTenants(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'value':
|
if kl == 'value':
|
||||||
|
|
||||||
d['value'] = v[0]
|
d['value'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter trusted_external_tenants. All possible '
|
raise CLIError(
|
||||||
'keys are: value'.format(k))
|
'Unsupported Key {} is provided for parameter trusted-external-tenants. All possible keys are:'
|
||||||
|
' value'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,7 +57,7 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.optimized_autoscale = action
|
namespace.optimized_autoscale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -54,19 +67,33 @@ class AddOptimizedAutoscale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'version':
|
if kl == 'version':
|
||||||
|
|
||||||
d['version'] = v[0]
|
d['version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'is-enabled':
|
elif kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'minimum':
|
elif kl == 'minimum':
|
||||||
|
|
||||||
d['minimum'] = v[0]
|
d['minimum'] = v[0]
|
||||||
|
|
||||||
elif kl == 'maximum':
|
elif kl == 'maximum':
|
||||||
|
|
||||||
d['maximum'] = v[0]
|
d['maximum'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter optimized_autoscale. All possible keys '
|
raise CLIError(
|
||||||
'are: version, is-enabled, minimum, maximum'.format(k))
|
'Unsupported Key {} is provided for parameter optimized-autoscale. All possible keys are: version,'
|
||||||
|
' is-enabled, minimum, maximum'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.virtual_network_configuration = action
|
namespace.virtual_network_configuration = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,18 +112,29 @@ class AddVirtualNetworkConfiguration(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'subnet-id':
|
if kl == 'subnet-id':
|
||||||
|
|
||||||
d['subnet_id'] = v[0]
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'engine-public-ip-id':
|
elif kl == 'engine-public-ip-id':
|
||||||
|
|
||||||
d['engine_public_ip_id'] = v[0]
|
d['engine_public_ip_id'] = v[0]
|
||||||
|
|
||||||
elif kl == 'data-management-public-ip-id':
|
elif kl == 'data-management-public-ip-id':
|
||||||
|
|
||||||
d['data_management_public_ip_id'] = v[0]
|
d['data_management_public_ip_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter virtual_network_configuration. All '
|
raise CLIError(
|
||||||
'possible keys are: subnet-id, engine-public-ip-id, data-management-public-ip-id'.
|
'Unsupported Key {} is provided for parameter virtual-network-configuration. All possible keys are:'
|
||||||
format(k))
|
' subnet-id, engine-public-ip-id, data-management-public-ip-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,7 +143,7 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.key_vault_properties = action
|
namespace.key_vault_properties = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -115,17 +153,29 @@ class AddKeyVaultProperties(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'key-name':
|
if kl == 'key-name':
|
||||||
|
|
||||||
d['key_name'] = v[0]
|
d['key_name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-version':
|
elif kl == 'key-version':
|
||||||
|
|
||||||
d['key_version'] = v[0]
|
d['key_version'] = v[0]
|
||||||
|
|
||||||
elif kl == 'key-vault-uri':
|
elif kl == 'key-vault-uri':
|
||||||
|
|
||||||
d['key_vault_uri'] = v[0]
|
d['key_vault_uri'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter key_vault_properties. All possible keys '
|
raise CLIError(
|
||||||
'are: key-name, key-version, key-vault-uri'.format(k))
|
'Unsupported Key {} is provided for parameter key-vault-properties. All possible keys are:'
|
||||||
|
' key-name, key-version, key-vault-uri'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,7 +184,7 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
super(AddClustersValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -144,13 +194,21 @@ class AddClustersValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'language-extension-name':
|
if kl == 'language-extension-name':
|
||||||
|
|
||||||
d['language_extension_name'] = v[0]
|
d['language_extension_name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: '
|
raise CLIError(
|
||||||
'language-extension-name'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: language-extension-name'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +217,7 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_write_database = action
|
namespace.read_write_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,18 +227,31 @@ class AddReadWriteDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'soft-delete-period':
|
if kl == 'soft-delete-period':
|
||||||
|
|
||||||
d['soft_delete_period'] = v[0]
|
d['soft_delete_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'hot-cache-period':
|
elif kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_write_database. All possible keys '
|
raise CLIError(
|
||||||
'are: soft-delete-period, hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-write-database. All possible keys are:'
|
||||||
|
' soft-delete-period, hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadWrite'
|
d['kind'] = 'ReadWrite'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -189,7 +260,7 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.read_only_following_database = action
|
namespace.read_only_following_database = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -199,16 +270,27 @@ class AddReadOnlyFollowingDatabase(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'hot-cache-period':
|
if kl == 'hot-cache-period':
|
||||||
|
|
||||||
d['hot_cache_period'] = v[0]
|
d['hot_cache_period'] = v[0]
|
||||||
|
|
||||||
elif kl == 'location':
|
elif kl == 'location':
|
||||||
|
|
||||||
d['location'] = v[0]
|
d['location'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter read_only_following_database. All '
|
raise CLIError(
|
||||||
'possible keys are: hot-cache-period, location'.format(k))
|
'Unsupported Key {} is provided for parameter read-only-following-database. All possible keys are:'
|
||||||
|
' hot-cache-period, location'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
d['kind'] = 'ReadOnlyFollowing'
|
d['kind'] = 'ReadOnlyFollowing'
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -217,7 +299,7 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
super(AddDatabasesValue, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -227,21 +309,39 @@ class AddDatabasesValue(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'role':
|
if kl == 'role':
|
||||||
|
|
||||||
d['role'] = v[0]
|
d['role'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
elif kl == 'type':
|
elif kl == 'type':
|
||||||
|
|
||||||
d['type'] = v[0]
|
d['type'] = v[0]
|
||||||
|
|
||||||
elif kl == 'fqn':
|
elif kl == 'fqn':
|
||||||
|
|
||||||
d['fqn'] = v[0]
|
d['fqn'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email':
|
elif kl == 'email':
|
||||||
|
|
||||||
d['email'] = v[0]
|
d['email'] = v[0]
|
||||||
|
|
||||||
elif kl == 'app-id':
|
elif kl == 'app-id':
|
||||||
|
|
||||||
d['app_id'] = v[0]
|
d['app_id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter value. All possible keys are: role, name, '
|
raise CLIError(
|
||||||
'type, fqn, email, app-id'.format(k))
|
'Unsupported Key {} is provided for parameter value. All possible keys are: role, name, type, fqn,'
|
||||||
|
' email, app-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddSubscriptions(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddSubscriptions, self).__call__(parser, namespace, action, option_string)
|
super(AddSubscriptions, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,13 +34,20 @@ class AddSubscriptions(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter subscriptions. All possible keys are: id'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter subscriptions. All possible keys are: id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,7 +56,7 @@ class AddVirtualNetworks(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddVirtualNetworks, self).__call__(parser, namespace, action, option_string)
|
super(AddVirtualNetworks, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -54,23 +66,31 @@ class AddVirtualNetworks(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter virtual_networks. All possible keys are: '
|
raise CLIError(
|
||||||
'id'.format(k))
|
'Unsupported Key {} is provided for parameter virtual-networks. All possible keys are: id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
class AddSubnets(argparse._AppendAction):
|
class AddSubnets(argparse._AppendAction):
|
||||||
def __call__(self, parser, namespace, values, option_string=None):
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
for item in action:
|
for item in action:
|
||||||
super(AddSubnets, self).__call__(parser, namespace, item, option_string)
|
super(AddSubnets, self).__call__(parser, namespace, item, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
ret = []
|
ret = []
|
||||||
for item in values:
|
for item in values:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
|
@ -82,13 +102,20 @@ class AddSubnets(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter subnets. All possible keys are: id'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter subnets. All possible keys are: id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
ret.append(d)
|
ret.append(d)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
@ -98,7 +125,7 @@ class AddHub(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.hub = action
|
namespace.hub = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -108,12 +135,21 @@ class AddHub(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter hub. All possible keys are: id'.format(k))
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter hub-and-spoke-topology_hub. All possible keys are: id'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,7 +158,7 @@ class AddSpokes(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddSpokes, self).__call__(parser, namespace, action, option_string)
|
super(AddSpokes, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -132,12 +168,21 @@ class AddSpokes(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter spokes. All possible keys are: id'.format(k))
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter hub-and-spoke-topology_spokes. All possible keys'
|
||||||
|
' are: id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,7 +191,7 @@ class AddMesh(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddMesh, self).__call__(parser, namespace, action, option_string)
|
super(AddMesh, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -156,10 +201,19 @@ class AddMesh(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'id':
|
if kl == 'id':
|
||||||
|
|
||||||
d['id'] = v[0]
|
d['id'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter mesh. All possible keys are: id'.format(k))
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter hub-and-spoke-topology_mesh. All possible keys'
|
||||||
|
' are: id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,4 +7,3 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# pylint: disable=protected-access
|
|
||||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddAutoScale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_scale = action
|
namespace.auto_scale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddAutoScale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'min-node-count':
|
if kl == 'min-node-count':
|
||||||
|
|
||||||
d['min_node_count'] = v[0]
|
d['min_node_count'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'max-node-count':
|
elif kl == 'max-node-count':
|
||||||
|
|
||||||
d['max_node_count'] = v[0]
|
d['max_node_count'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_scale. All possible keys are: '
|
raise CLIError(
|
||||||
'min-node-count, enabled, max-node-count'.format(k))
|
'Unsupported Key {} is provided for parameter auto-scale. All possible keys are: min-node-count,'
|
||||||
|
' enabled, max-node-count'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddAutoPause(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_pause = action
|
namespace.auto_pause = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,15 +75,25 @@ class AddAutoPause(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'delay-in-minutes':
|
if kl == 'delay-in-minutes':
|
||||||
|
|
||||||
d['delay_in_minutes'] = v[0]
|
d['delay_in_minutes'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_pause. All possible keys are: '
|
raise CLIError(
|
||||||
'delay-in-minutes, enabled'.format(k))
|
'Unsupported Key {} is provided for parameter auto-pause. All possible keys are: delay-in-minutes,'
|
||||||
|
' enabled'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.library_requirements = action
|
namespace.library_requirements = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,15 +112,25 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'content':
|
if kl == 'content':
|
||||||
|
|
||||||
d['content'] = v[0]
|
d['content'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filename':
|
elif kl == 'filename':
|
||||||
|
|
||||||
d['filename'] = v[0]
|
d['filename'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter library_requirements. All possible keys '
|
raise CLIError(
|
||||||
'are: content, filename'.format(k))
|
'Unsupported Key {} is provided for parameter library-requirements. All possible keys are: content,'
|
||||||
|
' filename'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +139,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -112,15 +149,24 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'tier':
|
if kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +175,7 @@ class AddRecurringScans(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.recurring_scans = action
|
namespace.recurring_scans = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -138,19 +184,30 @@ class AddRecurringScans(argparse.Action):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
d['email_subscription_admins'] = True
|
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'is-enabled':
|
if kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email-subscription-admins':
|
elif kl == 'email-subscription-admins':
|
||||||
|
|
||||||
d['email_subscription_admins'] = v[0]
|
d['email_subscription_admins'] = v[0]
|
||||||
|
|
||||||
elif kl == 'emails':
|
elif kl == 'emails':
|
||||||
|
|
||||||
d['emails'] = v
|
d['emails'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter recurring_scans. All possible keys are: '
|
raise CLIError(
|
||||||
'is-enabled, email-subscription-admins, emails'.format(k))
|
'Unsupported Key {} is provided for parameter recurring-scans. All possible keys are: is-enabled,'
|
||||||
|
' email-subscription-admins, emails'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +216,7 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,13 +226,21 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'result':
|
if kl == 'result':
|
||||||
|
|
||||||
d['result'] = v
|
d['result'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter baseline_results. All possible keys are: '
|
raise CLIError(
|
||||||
'result'.format(k))
|
'Unsupported Key {} is provided for parameter baseline-results. All possible keys are: result'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,7 +249,7 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.default_data_lake_storage = action
|
namespace.default_data_lake_storage = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -194,15 +259,25 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'account-url':
|
if kl == 'account-url':
|
||||||
|
|
||||||
d['account_url'] = v[0]
|
d['account_url'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filesystem':
|
elif kl == 'filesystem':
|
||||||
|
|
||||||
d['filesystem'] = v[0]
|
d['filesystem'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter default_data_lake_storage. All possible '
|
raise CLIError(
|
||||||
'keys are: account-url, filesystem'.format(k))
|
'Unsupported Key {} is provided for parameter default-data-lake-storage. All possible keys are:'
|
||||||
|
' account-url, filesystem'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +286,7 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.connectivity_endpoints = action
|
namespace.connectivity_endpoints = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -221,6 +296,9 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
d[k] = v[0]
|
d[k] = v[0]
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddAutoScale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_scale = action
|
namespace.auto_scale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddAutoScale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'min-node-count':
|
if kl == 'min-node-count':
|
||||||
|
|
||||||
d['min_node_count'] = v[0]
|
d['min_node_count'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'max-node-count':
|
elif kl == 'max-node-count':
|
||||||
|
|
||||||
d['max_node_count'] = v[0]
|
d['max_node_count'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_scale. All possible keys are: '
|
raise CLIError(
|
||||||
'min-node-count, enabled, max-node-count'.format(k))
|
'Unsupported Key {} is provided for parameter auto-scale. All possible keys are: min-node-count,'
|
||||||
|
' enabled, max-node-count'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddAutoPause(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_pause = action
|
namespace.auto_pause = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,15 +75,25 @@ class AddAutoPause(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'delay-in-minutes':
|
if kl == 'delay-in-minutes':
|
||||||
|
|
||||||
d['delay_in_minutes'] = v[0]
|
d['delay_in_minutes'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_pause. All possible keys are: '
|
raise CLIError(
|
||||||
'delay-in-minutes, enabled'.format(k))
|
'Unsupported Key {} is provided for parameter auto-pause. All possible keys are: delay-in-minutes,'
|
||||||
|
' enabled'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.library_requirements = action
|
namespace.library_requirements = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,15 +112,25 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'content':
|
if kl == 'content':
|
||||||
|
|
||||||
d['content'] = v[0]
|
d['content'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filename':
|
elif kl == 'filename':
|
||||||
|
|
||||||
d['filename'] = v[0]
|
d['filename'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter library_requirements. All possible keys '
|
raise CLIError(
|
||||||
'are: content, filename'.format(k))
|
'Unsupported Key {} is provided for parameter library-requirements. All possible keys are: content,'
|
||||||
|
' filename'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +139,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -112,15 +149,24 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'tier':
|
if kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +175,7 @@ class AddRecurringScans(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.recurring_scans = action
|
namespace.recurring_scans = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -138,19 +184,30 @@ class AddRecurringScans(argparse.Action):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
d['email_subscription_admins'] = True
|
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'is-enabled':
|
if kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email-subscription-admins':
|
elif kl == 'email-subscription-admins':
|
||||||
|
|
||||||
d['email_subscription_admins'] = v[0]
|
d['email_subscription_admins'] = v[0]
|
||||||
|
|
||||||
elif kl == 'emails':
|
elif kl == 'emails':
|
||||||
|
|
||||||
d['emails'] = v
|
d['emails'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter recurring_scans. All possible keys are: '
|
raise CLIError(
|
||||||
'is-enabled, email-subscription-admins, emails'.format(k))
|
'Unsupported Key {} is provided for parameter recurring-scans. All possible keys are: is-enabled,'
|
||||||
|
' email-subscription-admins, emails'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +216,7 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,13 +226,21 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'result':
|
if kl == 'result':
|
||||||
|
|
||||||
d['result'] = v
|
d['result'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter baseline_results. All possible keys are: '
|
raise CLIError(
|
||||||
'result'.format(k))
|
'Unsupported Key {} is provided for parameter baseline-results. All possible keys are: result'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,7 +249,7 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.default_data_lake_storage = action
|
namespace.default_data_lake_storage = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -194,15 +259,25 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'account-url':
|
if kl == 'account-url':
|
||||||
|
|
||||||
d['account_url'] = v[0]
|
d['account_url'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filesystem':
|
elif kl == 'filesystem':
|
||||||
|
|
||||||
d['filesystem'] = v[0]
|
d['filesystem'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter default_data_lake_storage. All possible '
|
raise CLIError(
|
||||||
'keys are: account-url, filesystem'.format(k))
|
'Unsupported Key {} is provided for parameter default-data-lake-storage. All possible keys are:'
|
||||||
|
' account-url, filesystem'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +286,7 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.connectivity_endpoints = action
|
namespace.connectivity_endpoints = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -221,6 +296,9 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
d[k] = v[0]
|
d[k] = v[0]
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddAutoScale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_scale = action
|
namespace.auto_scale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddAutoScale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'min-node-count':
|
if kl == 'min-node-count':
|
||||||
|
|
||||||
d['min_node_count'] = v[0]
|
d['min_node_count'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'max-node-count':
|
elif kl == 'max-node-count':
|
||||||
|
|
||||||
d['max_node_count'] = v[0]
|
d['max_node_count'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_scale. All possible keys are: '
|
raise CLIError(
|
||||||
'min-node-count, enabled, max-node-count'.format(k))
|
'Unsupported Key {} is provided for parameter auto-scale. All possible keys are: min-node-count,'
|
||||||
|
' enabled, max-node-count'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddAutoPause(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_pause = action
|
namespace.auto_pause = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,15 +75,25 @@ class AddAutoPause(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'delay-in-minutes':
|
if kl == 'delay-in-minutes':
|
||||||
|
|
||||||
d['delay_in_minutes'] = v[0]
|
d['delay_in_minutes'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_pause. All possible keys are: '
|
raise CLIError(
|
||||||
'delay-in-minutes, enabled'.format(k))
|
'Unsupported Key {} is provided for parameter auto-pause. All possible keys are: delay-in-minutes,'
|
||||||
|
' enabled'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.library_requirements = action
|
namespace.library_requirements = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,15 +112,25 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'content':
|
if kl == 'content':
|
||||||
|
|
||||||
d['content'] = v[0]
|
d['content'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filename':
|
elif kl == 'filename':
|
||||||
|
|
||||||
d['filename'] = v[0]
|
d['filename'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter library_requirements. All possible keys '
|
raise CLIError(
|
||||||
'are: content, filename'.format(k))
|
'Unsupported Key {} is provided for parameter library-requirements. All possible keys are: content,'
|
||||||
|
' filename'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +139,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -112,15 +149,24 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'tier':
|
if kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +175,7 @@ class AddRecurringScans(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.recurring_scans = action
|
namespace.recurring_scans = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -138,19 +184,30 @@ class AddRecurringScans(argparse.Action):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
d['email_subscription_admins'] = True
|
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'is-enabled':
|
if kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email-subscription-admins':
|
elif kl == 'email-subscription-admins':
|
||||||
|
|
||||||
d['email_subscription_admins'] = v[0]
|
d['email_subscription_admins'] = v[0]
|
||||||
|
|
||||||
elif kl == 'emails':
|
elif kl == 'emails':
|
||||||
|
|
||||||
d['emails'] = v
|
d['emails'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter recurring_scans. All possible keys are: '
|
raise CLIError(
|
||||||
'is-enabled, email-subscription-admins, emails'.format(k))
|
'Unsupported Key {} is provided for parameter recurring-scans. All possible keys are: is-enabled,'
|
||||||
|
' email-subscription-admins, emails'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +216,7 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,13 +226,21 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'result':
|
if kl == 'result':
|
||||||
|
|
||||||
d['result'] = v
|
d['result'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter baseline_results. All possible keys are: '
|
raise CLIError(
|
||||||
'result'.format(k))
|
'Unsupported Key {} is provided for parameter baseline-results. All possible keys are: result'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,7 +249,7 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.default_data_lake_storage = action
|
namespace.default_data_lake_storage = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -194,15 +259,25 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'account-url':
|
if kl == 'account-url':
|
||||||
|
|
||||||
d['account_url'] = v[0]
|
d['account_url'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filesystem':
|
elif kl == 'filesystem':
|
||||||
|
|
||||||
d['filesystem'] = v[0]
|
d['filesystem'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter default_data_lake_storage. All possible '
|
raise CLIError(
|
||||||
'keys are: account-url, filesystem'.format(k))
|
'Unsupported Key {} is provided for parameter default-data-lake-storage. All possible keys are:'
|
||||||
|
' account-url, filesystem'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +286,7 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.connectivity_endpoints = action
|
namespace.connectivity_endpoints = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -221,6 +296,9 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
d[k] = v[0]
|
d[k] = v[0]
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -7,8 +7,13 @@
|
||||||
# Changes may cause incorrect behavior and will be lost if the code is
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
# regenerated.
|
# regenerated.
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from knack.util import CLIError
|
from knack.util import CLIError
|
||||||
|
@ -19,7 +24,7 @@ class AddAutoScale(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_scale = action
|
namespace.auto_scale = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -29,17 +34,29 @@ class AddAutoScale(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'min-node-count':
|
if kl == 'min-node-count':
|
||||||
|
|
||||||
d['min_node_count'] = v[0]
|
d['min_node_count'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'max-node-count':
|
elif kl == 'max-node-count':
|
||||||
|
|
||||||
d['max_node_count'] = v[0]
|
d['max_node_count'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_scale. All possible keys are: '
|
raise CLIError(
|
||||||
'min-node-count, enabled, max-node-count'.format(k))
|
'Unsupported Key {} is provided for parameter auto-scale. All possible keys are: min-node-count,'
|
||||||
|
' enabled, max-node-count'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +65,7 @@ class AddAutoPause(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.auto_pause = action
|
namespace.auto_pause = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -58,15 +75,25 @@ class AddAutoPause(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'delay-in-minutes':
|
if kl == 'delay-in-minutes':
|
||||||
|
|
||||||
d['delay_in_minutes'] = v[0]
|
d['delay_in_minutes'] = v[0]
|
||||||
|
|
||||||
elif kl == 'enabled':
|
elif kl == 'enabled':
|
||||||
|
|
||||||
d['enabled'] = v[0]
|
d['enabled'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter auto_pause. All possible keys are: '
|
raise CLIError(
|
||||||
'delay-in-minutes, enabled'.format(k))
|
'Unsupported Key {} is provided for parameter auto-pause. All possible keys are: delay-in-minutes,'
|
||||||
|
' enabled'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,7 +102,7 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.library_requirements = action
|
namespace.library_requirements = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -85,15 +112,25 @@ class AddLibraryRequirements(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'content':
|
if kl == 'content':
|
||||||
|
|
||||||
d['content'] = v[0]
|
d['content'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filename':
|
elif kl == 'filename':
|
||||||
|
|
||||||
d['filename'] = v[0]
|
d['filename'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter library_requirements. All possible keys '
|
raise CLIError(
|
||||||
'are: content, filename'.format(k))
|
'Unsupported Key {} is provided for parameter library-requirements. All possible keys are: content,'
|
||||||
|
' filename'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +139,7 @@ class AddSku(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.sku = action
|
namespace.sku = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -112,15 +149,24 @@ class AddSku(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'tier':
|
if kl == 'tier':
|
||||||
|
|
||||||
d['tier'] = v[0]
|
d['tier'] = v[0]
|
||||||
|
|
||||||
elif kl == 'name':
|
elif kl == 'name':
|
||||||
|
|
||||||
d['name'] = v[0]
|
d['name'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.
|
raise CLIError(
|
||||||
format(k))
|
'Unsupported Key {} is provided for parameter sku. All possible keys are: tier, name'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +175,7 @@ class AddRecurringScans(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.recurring_scans = action
|
namespace.recurring_scans = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -138,19 +184,30 @@ class AddRecurringScans(argparse.Action):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
d['email_subscription_admins'] = True
|
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'is-enabled':
|
if kl == 'is-enabled':
|
||||||
|
|
||||||
d['is_enabled'] = v[0]
|
d['is_enabled'] = v[0]
|
||||||
|
|
||||||
elif kl == 'email-subscription-admins':
|
elif kl == 'email-subscription-admins':
|
||||||
|
|
||||||
d['email_subscription_admins'] = v[0]
|
d['email_subscription_admins'] = v[0]
|
||||||
|
|
||||||
elif kl == 'emails':
|
elif kl == 'emails':
|
||||||
|
|
||||||
d['emails'] = v
|
d['emails'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter recurring_scans. All possible keys are: '
|
raise CLIError(
|
||||||
'is-enabled, email-subscription-admins, emails'.format(k))
|
'Unsupported Key {} is provided for parameter recurring-scans. All possible keys are: is-enabled,'
|
||||||
|
' email-subscription-admins, emails'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,7 +216,7 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
super(AddBaselineResults, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -169,13 +226,21 @@ class AddBaselineResults(argparse._AppendAction):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'result':
|
if kl == 'result':
|
||||||
|
|
||||||
d['result'] = v
|
d['result'] = v
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter baseline_results. All possible keys are: '
|
raise CLIError(
|
||||||
'result'.format(k))
|
'Unsupported Key {} is provided for parameter baseline-results. All possible keys are: result'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,7 +249,7 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.default_data_lake_storage = action
|
namespace.default_data_lake_storage = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -194,15 +259,25 @@ class AddDefaultDataLakeStorage(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
kl = k.lower()
|
kl = k.lower()
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
if kl == 'account-url':
|
if kl == 'account-url':
|
||||||
|
|
||||||
d['account_url'] = v[0]
|
d['account_url'] = v[0]
|
||||||
|
|
||||||
elif kl == 'filesystem':
|
elif kl == 'filesystem':
|
||||||
|
|
||||||
d['filesystem'] = v[0]
|
d['filesystem'] = v[0]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise CLIError('Unsupported Key {} is provided for parameter default_data_lake_storage. All possible '
|
raise CLIError(
|
||||||
'keys are: account-url, filesystem'.format(k))
|
'Unsupported Key {} is provided for parameter default-data-lake-storage. All possible keys are:'
|
||||||
|
' account-url, filesystem'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +286,7 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
action = self.get_action(values, option_string)
|
action = self.get_action(values, option_string)
|
||||||
namespace.connectivity_endpoints = action
|
namespace.connectivity_endpoints = action
|
||||||
|
|
||||||
def get_action(self, values, option_string): # pylint: disable=no-self-use
|
def get_action(self, values, option_string):
|
||||||
try:
|
try:
|
||||||
properties = defaultdict(list)
|
properties = defaultdict(list)
|
||||||
for (k, v) in (x.split('=', 1) for x in values):
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
@ -221,6 +296,9 @@ class AddConnectivityEndpoints(argparse.Action):
|
||||||
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
d = {}
|
d = {}
|
||||||
for k in properties:
|
for k in properties:
|
||||||
|
|
||||||
v = properties[k]
|
v = properties[k]
|
||||||
|
|
||||||
d[k] = v[0]
|
d[k] = v[0]
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
|
@ -0,0 +1,219 @@
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"imports": [],
|
||||||
|
"pylints": [
|
||||||
|
"# pylint: disable=protected-access",
|
||||||
|
"# pylint: disable=no-self-use"
|
||||||
|
],
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"actionName": "AddFactoryVstsConfiguration",
|
||||||
|
"actionType": "Positional",
|
||||||
|
"mapsTo": "factory_vsts_configuration",
|
||||||
|
"type": "object",
|
||||||
|
"nameAz": "factory-vsts-configuration",
|
||||||
|
"baseClass": "Action",
|
||||||
|
"subProperties": [
|
||||||
|
{
|
||||||
|
"namePython": "project_name",
|
||||||
|
"nameAz": "project-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "tenant_id",
|
||||||
|
"nameAz": "tenant-id",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "account_name",
|
||||||
|
"nameAz": "account-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "repository_name",
|
||||||
|
"nameAz": "repository-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "collaboration_branch",
|
||||||
|
"nameAz": "collaboration-branch",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "root_folder",
|
||||||
|
"nameAz": "root-folder",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "last_commit_id",
|
||||||
|
"nameAz": "last-commit-id",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subPropertiesMapsTo": [
|
||||||
|
"project_name",
|
||||||
|
"tenant_id",
|
||||||
|
"account_name",
|
||||||
|
"repository_name",
|
||||||
|
"collaboration_branch",
|
||||||
|
"root_folder",
|
||||||
|
"last_commit_id"
|
||||||
|
],
|
||||||
|
"subPropertiesNamePython": [
|
||||||
|
"type",
|
||||||
|
"project_name",
|
||||||
|
"tenant_id",
|
||||||
|
"account_name",
|
||||||
|
"repository_name",
|
||||||
|
"root_folder",
|
||||||
|
"collaboration_branch"
|
||||||
|
],
|
||||||
|
"subPropertiesNameAz": [
|
||||||
|
"project-name",
|
||||||
|
"tenant-id",
|
||||||
|
"account-name",
|
||||||
|
"repository-name",
|
||||||
|
"collaboration-branch",
|
||||||
|
"root-folder",
|
||||||
|
"last-commit-id"
|
||||||
|
],
|
||||||
|
"constants": {
|
||||||
|
"'type'": "'FactoryVSTSConfiguration'"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actionName": "AddFactoryGitHubConfiguration",
|
||||||
|
"actionType": "KeyValue",
|
||||||
|
"mapsTo": "factory_git_hub_configuration",
|
||||||
|
"type": "object",
|
||||||
|
"nameAz": "factory-git-hub-configuration",
|
||||||
|
"baseClass": "Action",
|
||||||
|
"subProperties": [
|
||||||
|
{
|
||||||
|
"namePython": "host_name",
|
||||||
|
"nameAz": "host-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "account_name",
|
||||||
|
"nameAz": "account-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "repository_name",
|
||||||
|
"nameAz": "repository-name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "collaboration_branch",
|
||||||
|
"nameAz": "collaboration-branch",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "root_folder",
|
||||||
|
"nameAz": "root-folder",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "last_commit_id",
|
||||||
|
"nameAz": "last-commit-id",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subPropertiesMapsTo": [
|
||||||
|
"host_name",
|
||||||
|
"account_name",
|
||||||
|
"repository_name",
|
||||||
|
"collaboration_branch",
|
||||||
|
"root_folder",
|
||||||
|
"last_commit_id"
|
||||||
|
],
|
||||||
|
"subPropertiesNamePython": [
|
||||||
|
"host_name",
|
||||||
|
"account_name",
|
||||||
|
"repository_name",
|
||||||
|
"collaboration_branch",
|
||||||
|
"root_folder",
|
||||||
|
"last_commit_id"
|
||||||
|
],
|
||||||
|
"subPropertiesNameAz": [
|
||||||
|
"host-name",
|
||||||
|
"account-name",
|
||||||
|
"repository-name",
|
||||||
|
"collaboration-branch",
|
||||||
|
"root-folder",
|
||||||
|
"last-commit-id"
|
||||||
|
],
|
||||||
|
"constants": {
|
||||||
|
"'type'": "'FactoryGitHubConfiguration'"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actionName": "AddFakeIdentity",
|
||||||
|
"actionType": "Positional",
|
||||||
|
"mapsTo": "fake_identity",
|
||||||
|
"type": "object",
|
||||||
|
"nameAz": "fake-identity",
|
||||||
|
"baseClass": "Action",
|
||||||
|
"subProperties": [
|
||||||
|
{
|
||||||
|
"namePython": "name",
|
||||||
|
"nameAz": "name",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "zones_inside",
|
||||||
|
"nameAz": "zones-inside",
|
||||||
|
"type": "array"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subPropertiesMapsTo": [
|
||||||
|
"name",
|
||||||
|
"zones_inside"
|
||||||
|
],
|
||||||
|
"subPropertiesNamePython": [
|
||||||
|
"name",
|
||||||
|
"zones_inside"
|
||||||
|
],
|
||||||
|
"subPropertiesNameAz": [
|
||||||
|
"name",
|
||||||
|
"zones-inside"
|
||||||
|
],
|
||||||
|
"constants": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actionName": "AddReplicaSets",
|
||||||
|
"actionType": "KeyValue",
|
||||||
|
"mapsTo": "replica_sets",
|
||||||
|
"type": "array",
|
||||||
|
"nameAz": "replica-sets",
|
||||||
|
"baseClass": "_AppendAction",
|
||||||
|
"subProperties": [
|
||||||
|
{
|
||||||
|
"namePython": "location",
|
||||||
|
"nameAz": "location",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"namePython": "subnet_id",
|
||||||
|
"nameAz": "subnet-id",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subPropertiesMapsTo": [
|
||||||
|
"location",
|
||||||
|
"subnet_id"
|
||||||
|
],
|
||||||
|
"subPropertiesNamePython": [
|
||||||
|
"location",
|
||||||
|
"subnet_id"
|
||||||
|
],
|
||||||
|
"subPropertiesNameAz": [
|
||||||
|
"location",
|
||||||
|
"subnet-id"
|
||||||
|
],
|
||||||
|
"constants": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,163 @@
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
# Licensed under the MIT License. See License.txt in the project root for
|
||||||
|
# license information.
|
||||||
|
#
|
||||||
|
# Code generated by Microsoft (R) AutoRest Code Generator.
|
||||||
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
|
# regenerated.
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from collections import defaultdict
|
||||||
|
from knack.util import CLIError
|
||||||
|
|
||||||
|
|
||||||
|
class AddFactoryVstsConfiguration(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
|
namespace.factory_vsts_configuration = action[0]
|
||||||
|
|
||||||
|
def get_action(self, values, option_string=None):
|
||||||
|
try:
|
||||||
|
value_chunk_list = [values[x: x + 7] for x in range(0, len(values), 7)]
|
||||||
|
value_list = []
|
||||||
|
for chunk in value_chunk_list:
|
||||||
|
type, project_name, tenant_id, account_name, repository_name, root_folder, collaboration_branch = chunk
|
||||||
|
value_list.append(
|
||||||
|
{
|
||||||
|
'type': type,
|
||||||
|
'project_name': project_name,
|
||||||
|
'tenant_id': tenant_id,
|
||||||
|
'account_name': account_name,
|
||||||
|
'repository_name': repository_name,
|
||||||
|
'root_folder': root_folder,
|
||||||
|
'collaboration_branch': collaboration_branch,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return value_list
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} NAME METRIC OPERATION VALUE'.format(option_string))
|
||||||
|
|
||||||
|
|
||||||
|
class AddFactoryGitHubConfiguration(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
namespace.factory_git_hub_configuration = action
|
||||||
|
|
||||||
|
def get_action(self, values, option_string):
|
||||||
|
try:
|
||||||
|
properties = defaultdict(list)
|
||||||
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
properties[k].append(v)
|
||||||
|
properties = dict(properties)
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
|
d = {}
|
||||||
|
for k in properties:
|
||||||
|
|
||||||
|
kl = k.lower()
|
||||||
|
|
||||||
|
v = properties[k]
|
||||||
|
|
||||||
|
if kl == 'host-name':
|
||||||
|
|
||||||
|
d['host_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'account-name':
|
||||||
|
|
||||||
|
d['account_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'repository-name':
|
||||||
|
|
||||||
|
d['repository_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'collaboration-branch':
|
||||||
|
|
||||||
|
d['collaboration_branch'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'root-folder':
|
||||||
|
|
||||||
|
d['root_folder'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'last-commit-id':
|
||||||
|
|
||||||
|
d['last_commit_id'] = v[0]
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter factory-git-hub-configuration. All possible keys are:'
|
||||||
|
' host-name, account-name, repository-name, collaboration-branch, root-folder, last-commit-id'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
|
d['type'] = 'FactoryGitHubConfiguration'
|
||||||
|
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
class AddFakeIdentity(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
|
namespace.fake_identity = action[0]
|
||||||
|
|
||||||
|
def get_action(self, values, option_string=None):
|
||||||
|
try:
|
||||||
|
value_chunk_list = [values[x: x + 2] for x in range(0, len(values), 2)]
|
||||||
|
value_list = []
|
||||||
|
for chunk in value_chunk_list:
|
||||||
|
name, zones_inside = chunk
|
||||||
|
value_list.append(
|
||||||
|
{
|
||||||
|
'name': name,
|
||||||
|
'zones_inside': zones_inside,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return value_list
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} NAME METRIC OPERATION VALUE'.format(option_string))
|
||||||
|
|
||||||
|
|
||||||
|
class AddReplicaSets(argparse._AppendAction):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
super(AddReplicaSets, self).__call__(parser, namespace, action, option_string)
|
||||||
|
|
||||||
|
def get_action(self, values, option_string):
|
||||||
|
try:
|
||||||
|
properties = defaultdict(list)
|
||||||
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
properties[k].append(v)
|
||||||
|
properties = dict(properties)
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
|
d = {}
|
||||||
|
for k in properties:
|
||||||
|
|
||||||
|
kl = k.lower()
|
||||||
|
|
||||||
|
v = properties[k]
|
||||||
|
|
||||||
|
if kl == 'location':
|
||||||
|
|
||||||
|
d['location'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'subnet-id':
|
||||||
|
|
||||||
|
d['subnet_id'] = v[0]
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter replica-sets. All possible keys are: location,'
|
||||||
|
' subnet-id'.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
|
return d
|
|
@ -0,0 +1,75 @@
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
# Licensed under the MIT License. See License.txt in the project root for
|
||||||
|
# license information.
|
||||||
|
#
|
||||||
|
# Code generated by Microsoft (R) AutoRest Code Generator.
|
||||||
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
|
# regenerated.
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from collections import defaultdict
|
||||||
|
from knack.util import CLIError
|
||||||
|
|
||||||
|
|
||||||
|
class AddFactoryGitHubConfiguration(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
namespace.factory_git_hub_configuration = action
|
||||||
|
|
||||||
|
def get_action(self, values, option_string):
|
||||||
|
try:
|
||||||
|
properties = defaultdict(list)
|
||||||
|
for (k, v) in (x.split('=', 1) for x in values):
|
||||||
|
properties[k].append(v)
|
||||||
|
properties = dict(properties)
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
|
d = {}
|
||||||
|
for k in properties:
|
||||||
|
|
||||||
|
kl = k.lower()
|
||||||
|
|
||||||
|
v = properties[k]
|
||||||
|
|
||||||
|
if kl == 'host-name':
|
||||||
|
|
||||||
|
d['host_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'account-name':
|
||||||
|
|
||||||
|
d['account_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'repository-name':
|
||||||
|
|
||||||
|
d['repository_name'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'collaboration-branch':
|
||||||
|
|
||||||
|
d['collaboration_branch'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'root-folder':
|
||||||
|
|
||||||
|
d['root_folder'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'last-commit-id':
|
||||||
|
|
||||||
|
d['last_commit_id'] = v[0]
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter factory-git-hub-configuration. All possible keys are:'
|
||||||
|
' host-name, account-name, repository-name, collaboration-branch, root-folder, last-commit-id'
|
||||||
|
.format(k)
|
||||||
|
)
|
||||||
|
|
||||||
|
d['type'] = 'FactoryGitHubConfiguration'
|
||||||
|
|
||||||
|
return d
|
|
@ -0,0 +1,46 @@
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
# Licensed under the MIT License. See License.txt in the project root for
|
||||||
|
# license information.
|
||||||
|
#
|
||||||
|
# Code generated by Microsoft (R) AutoRest Code Generator.
|
||||||
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
|
# regenerated.
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from knack.util import CLIError
|
||||||
|
|
||||||
|
|
||||||
|
class AddFactoryVstsConfiguration(argparse.Action):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
|
namespace.factory_vsts_configuration = action[0]
|
||||||
|
|
||||||
|
def get_action(self, values, option_string=None):
|
||||||
|
try:
|
||||||
|
value_chunk_list = [values[x: x + 7] for x in range(0, len(values), 7)]
|
||||||
|
value_list = []
|
||||||
|
for chunk in value_chunk_list:
|
||||||
|
type, project_name, tenant_id, account_name, repository_name, root_folder, collaboration_branch = chunk
|
||||||
|
value_list.append(
|
||||||
|
{
|
||||||
|
'type': type,
|
||||||
|
'project_name': project_name,
|
||||||
|
'tenant_id': tenant_id,
|
||||||
|
'account_name': account_name,
|
||||||
|
'repository_name': repository_name,
|
||||||
|
'root_folder': root_folder,
|
||||||
|
'collaboration_branch': collaboration_branch,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return value_list
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} NAME METRIC OPERATION VALUE'.format(option_string))
|
|
@ -0,0 +1,62 @@
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
# Licensed under the MIT License. See License.txt in the project root for
|
||||||
|
# license information.
|
||||||
|
#
|
||||||
|
# Code generated by Microsoft (R) AutoRest Code Generator.
|
||||||
|
# Changes may cause incorrect behavior and will be lost if the code is
|
||||||
|
# regenerated.
|
||||||
|
# --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
|
||||||
|
# pylint: disable=no-self-use
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
from collections import defaultdict
|
||||||
|
from knack.util import CLIError
|
||||||
|
|
||||||
|
|
||||||
|
class AddSubnets(argparse._AppendAction):
|
||||||
|
def __call__(self, parser, namespace, values, option_string=None):
|
||||||
|
action = self.get_action(values, option_string)
|
||||||
|
|
||||||
|
for item in action:
|
||||||
|
super(AddSubnets, self).__call__(parser, namespace, item, option_string)
|
||||||
|
|
||||||
|
def get_action(self, values, option_string):
|
||||||
|
ret = []
|
||||||
|
for item in values:
|
||||||
|
properties = defaultdict(list)
|
||||||
|
try:
|
||||||
|
for (k, v) in (x.split('=', 1) for x in item.split(',')):
|
||||||
|
properties[k].append(v)
|
||||||
|
properties = dict(properties)
|
||||||
|
except ValueError:
|
||||||
|
raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string))
|
||||||
|
d = {}
|
||||||
|
for k in properties:
|
||||||
|
|
||||||
|
kl = k.lower()
|
||||||
|
|
||||||
|
v = properties[k]
|
||||||
|
|
||||||
|
if kl == 'id':
|
||||||
|
|
||||||
|
d['id'] = v[0]
|
||||||
|
|
||||||
|
elif kl == 'name':
|
||||||
|
|
||||||
|
d['name'] = v[0]
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise CLIError(
|
||||||
|
'Unsupported Key {} is provided for parameter subnets. All possible keys are: id, name'.format(
|
||||||
|
k
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
ret.append(d)
|
||||||
|
return ret
|
|
@ -0,0 +1,270 @@
|
||||||
|
/* ---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*-------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
import * as assert from 'assert';
|
||||||
|
import * as nunjucks from 'nunjucks';
|
||||||
|
import * as path from 'path';
|
||||||
|
import * as sourceMapSupport from 'source-map-support';
|
||||||
|
import { readFile, writeFile, rmFile } from '@azure-tools/async-io';
|
||||||
|
import { AzLinter } from '../../src/azlinter';
|
||||||
|
sourceMapSupport.install();
|
||||||
|
|
||||||
|
describe('renderActionPYTest', () => {
|
||||||
|
it('single positional action test', async () => {
|
||||||
|
const tmplPath = path.join(`${__dirname}`, '../../src/templates/generated/action.py.njx');
|
||||||
|
nunjucks.configure({ autoescape: false });
|
||||||
|
let result = nunjucks.render(tmplPath, {
|
||||||
|
data: {
|
||||||
|
pylints: ['# pylint: disable=protected-access', '# pylint: disable=no-self-use'],
|
||||||
|
actions: [
|
||||||
|
{
|
||||||
|
actionName: 'AddFactoryVstsConfiguration',
|
||||||
|
actionType: 'Positional',
|
||||||
|
mapsTo: 'factory_vsts_configuration',
|
||||||
|
type: 'object',
|
||||||
|
nameAz: 'factory-vsts-configuration',
|
||||||
|
baseClass: 'Action',
|
||||||
|
subProperties: [
|
||||||
|
{
|
||||||
|
namePython: 'type',
|
||||||
|
nameAz: 'type',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'project_name',
|
||||||
|
nameAz: 'project-name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'tenant_id',
|
||||||
|
nameAz: 'tenant-id',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'account_name',
|
||||||
|
nameAz: 'account-name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'repository_name',
|
||||||
|
nameAz: 'repository-name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'root_folder',
|
||||||
|
nameAz: 'root-folder',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
namePython: 'collaboration_branch',
|
||||||
|
nameAz: 'collaboration-branch',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
subPropertiesMapsTo: [
|
||||||
|
'type',
|
||||||
|
'project_name',
|
||||||
|
'tenant_id',
|
||||||
|
'account_name',
|
||||||
|
'repository_name',
|
||||||
|
'root_folder',
|
||||||
|
'collaboration_branch',
|
||||||
|
],
|
||||||
|
subPropertiesNamePython: [
|
||||||
|
'type',
|
||||||
|
'project_name',
|
||||||
|
'tenant_id',
|
||||||
|
'account_name',
|
||||||
|
'repository_name',
|
||||||
|
'root_folder',
|
||||||
|
'collaboration_branch',
|
||||||
|
],
|
||||||
|
subPropertiesNameAz: [
|
||||||
|
'type',
|
||||||
|
'project-name',
|
||||||
|
'tenant-id',
|
||||||
|
'account-name',
|
||||||
|
'repository-name',
|
||||||
|
'root-folder',
|
||||||
|
'collaboration-branch',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const oriFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/ori_positional_action.py',
|
||||||
|
);
|
||||||
|
await writeFile(oriFile, result);
|
||||||
|
const azLinter = new AzLinter();
|
||||||
|
await azLinter.process(oriFile);
|
||||||
|
result = await readFile(oriFile);
|
||||||
|
const expectedFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/positional_action.py',
|
||||||
|
);
|
||||||
|
const expected = await readFile(expectedFile);
|
||||||
|
assert.deepStrictEqual(
|
||||||
|
result,
|
||||||
|
expected,
|
||||||
|
'render positional action in action.py is incorrect',
|
||||||
|
);
|
||||||
|
await rmFile(oriFile);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('single key value action test', async () => {
|
||||||
|
const tmplPath = path.join(`${__dirname}`, '../../src/templates/generated/action.py.njx');
|
||||||
|
nunjucks.configure({ autoescape: false });
|
||||||
|
let result = nunjucks.render(tmplPath, {
|
||||||
|
data: {
|
||||||
|
pylints: ['# pylint: disable=protected-access', '# pylint: disable=no-self-use'],
|
||||||
|
actions: [
|
||||||
|
{
|
||||||
|
actionName: 'AddFactoryGitHubConfiguration',
|
||||||
|
actionType: 'KeyValue',
|
||||||
|
mapsTo: 'factory_git_hub_configuration',
|
||||||
|
type: 'object',
|
||||||
|
nameAz: 'factory-git-hub-configuration',
|
||||||
|
baseClass: 'Action',
|
||||||
|
subProperties: [
|
||||||
|
{
|
||||||
|
nameAz: 'host-name',
|
||||||
|
namePython: 'host_name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'account-name',
|
||||||
|
namePython: 'account_name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'repository-name',
|
||||||
|
namePython: 'repository_name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'collaboration-branch',
|
||||||
|
namePython: 'collaboration_branch',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'root-folder',
|
||||||
|
namePython: 'root_folder',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'last-commit-id',
|
||||||
|
namePython: 'last_commit_id',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
subPropertiesMapsTo: [
|
||||||
|
'host_name',
|
||||||
|
'account_name',
|
||||||
|
'repository_name',
|
||||||
|
'collaboration_branch',
|
||||||
|
'root_folder',
|
||||||
|
'last_commit_id',
|
||||||
|
],
|
||||||
|
subPropertiesNamePython: [
|
||||||
|
'host_name',
|
||||||
|
'account_name',
|
||||||
|
'repository_name',
|
||||||
|
'collaboration_branch',
|
||||||
|
'root_folder',
|
||||||
|
'last_commit_id',
|
||||||
|
],
|
||||||
|
subPropertiesNameAz: [
|
||||||
|
'host-name',
|
||||||
|
'account-name',
|
||||||
|
'repository-name',
|
||||||
|
'collaboration-branch',
|
||||||
|
'root-folder',
|
||||||
|
'last-commit-id',
|
||||||
|
],
|
||||||
|
constants: {
|
||||||
|
"'type'": "'FactoryGitHubConfiguration'",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const oriFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/ori_key_value_action.py',
|
||||||
|
);
|
||||||
|
await writeFile(oriFile, result);
|
||||||
|
const azLinter = new AzLinter();
|
||||||
|
await azLinter.process(oriFile);
|
||||||
|
result = await readFile(oriFile);
|
||||||
|
const expectedFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/key_value_action.py',
|
||||||
|
);
|
||||||
|
const expected = await readFile(expectedFile);
|
||||||
|
assert.deepStrictEqual(
|
||||||
|
result,
|
||||||
|
expected,
|
||||||
|
'render key value action in action.py is incorrect',
|
||||||
|
);
|
||||||
|
await rmFile(oriFile);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('single shorthand syntax action test', async () => {
|
||||||
|
const tmplPath = path.join(`${__dirname}`, '../../src/templates/generated/action.py.njx');
|
||||||
|
nunjucks.configure({ autoescape: false });
|
||||||
|
let result = nunjucks.render(tmplPath, {
|
||||||
|
data: {
|
||||||
|
pylints: ['# pylint: disable=protected-access', '# pylint: disable=no-self-use'],
|
||||||
|
actions: [
|
||||||
|
{
|
||||||
|
actionName: 'AddSubnets',
|
||||||
|
actionType: 'ShortHandSyntax',
|
||||||
|
mapsTo: 'subnets',
|
||||||
|
type: 'array',
|
||||||
|
nameAz: 'subnets',
|
||||||
|
baseClass: '_AppendAction',
|
||||||
|
subProperties: [
|
||||||
|
{
|
||||||
|
nameAz: 'id',
|
||||||
|
namePython: 'id',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
nameAz: 'name',
|
||||||
|
namePython: 'name',
|
||||||
|
type: 'string',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
subPropertiesMapsTo: ['id', 'name'],
|
||||||
|
subPropertiesNamePython: ['id', 'name'],
|
||||||
|
subPropertiesNameAz: ['id', 'name'],
|
||||||
|
constants: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const oriFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/ori_short_hand_syntax_action.py',
|
||||||
|
);
|
||||||
|
await writeFile(oriFile, result);
|
||||||
|
const azLinter = new AzLinter();
|
||||||
|
await azLinter.process(oriFile);
|
||||||
|
result = await readFile(oriFile);
|
||||||
|
const expectedFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/short_hand_syntax_action.py',
|
||||||
|
);
|
||||||
|
const expected = await readFile(expectedFile);
|
||||||
|
assert.deepStrictEqual(
|
||||||
|
result,
|
||||||
|
expected,
|
||||||
|
'render shorthand syntax action in action.py is incorrect',
|
||||||
|
);
|
||||||
|
await rmFile(oriFile);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,110 @@
|
||||||
|
/* ---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
|
*-------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
import * as assert from 'assert';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as nunjucks from 'nunjucks';
|
||||||
|
import * as path from 'path';
|
||||||
|
import * as sourceMapSupport from 'source-map-support';
|
||||||
|
import { readFile, rmFile, writeFile } from '@azure-tools/async-io';
|
||||||
|
import { CodeModel } from '@azure-tools/codemodel';
|
||||||
|
import { AzConfiguration, CodeGenConstants, ExtensionMode } from '../../src/utils/models';
|
||||||
|
import { CliActions } from '../../src/generate/renders/generated/CliActions';
|
||||||
|
import { AzLinter } from '../../src/azlinter';
|
||||||
|
import { Entry } from '../../src/entry';
|
||||||
|
import { CodeModelCliImpl } from '../../src/generate/CodeModelAzImpl';
|
||||||
|
import { createTestSession } from '../utils/test-helper';
|
||||||
|
|
||||||
|
sourceMapSupport.install();
|
||||||
|
|
||||||
|
const resources = path.join(`${__dirname}`, '/../../test/unittest/');
|
||||||
|
|
||||||
|
const fileName = 'datafactory-az-modifier-after.yaml';
|
||||||
|
|
||||||
|
describe('getActionsRender', () => {
|
||||||
|
let model: CodeModelCliImpl;
|
||||||
|
async function init(extensionName: string, fileName: string): Promise<void> {
|
||||||
|
const cfg = {
|
||||||
|
az: {
|
||||||
|
extensions: extensionName,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
if (!fs.existsSync(path.join(resources, 'input', fileName))) {
|
||||||
|
throw Error;
|
||||||
|
}
|
||||||
|
const session = await createTestSession<CodeModel>(cfg, path.join(resources, 'input'), [
|
||||||
|
fileName,
|
||||||
|
]);
|
||||||
|
|
||||||
|
const entry = new Entry(session);
|
||||||
|
await entry.init();
|
||||||
|
|
||||||
|
const codeModel = new CodeModelCliImpl(session);
|
||||||
|
codeModel.GenerateTestInit();
|
||||||
|
|
||||||
|
model = codeModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getActionsRenderData() {
|
||||||
|
await init('datafactory', fileName);
|
||||||
|
AzConfiguration.setValue(CodeGenConstants.extensionMode, ExtensionMode.Experimental);
|
||||||
|
AzConfiguration.setValue(CodeGenConstants.azextFolder, 'azext_datafactory_preview');
|
||||||
|
AzConfiguration.setValue(
|
||||||
|
CodeGenConstants.pythonNamespace,
|
||||||
|
'azext_datafactory_preview.vendored_sdks.azure_mgmt_datafactory',
|
||||||
|
);
|
||||||
|
const cliActionRender = new CliActions(model);
|
||||||
|
const data = await cliActionRender.GetRenderData();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function render(tmplPath: string, data: any) {
|
||||||
|
nunjucks.configure({ autoescape: false });
|
||||||
|
const result = nunjucks.render(tmplPath, data);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
const originalWarn = console.warn.bind(console.warn);
|
||||||
|
beforeAll(() => {
|
||||||
|
console.warn = (msg) => msg.toString().includes('ShowInTest') && originalWarn(msg);
|
||||||
|
});
|
||||||
|
afterAll(() => {
|
||||||
|
console.warn = originalWarn;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getActionRenderDataTest1', async () => {
|
||||||
|
const expected = JSON.parse(
|
||||||
|
await readFile(path.join(resources, 'expected', 'data/actions.json')),
|
||||||
|
);
|
||||||
|
let data = await getActionsRenderData();
|
||||||
|
data = JSON.parse(JSON.stringify(data));
|
||||||
|
assert.deepStrictEqual(
|
||||||
|
data,
|
||||||
|
expected,
|
||||||
|
'Getting render data error from extension to methodParameter ',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getActionRenderDataTest2', async () => {
|
||||||
|
const tmplPath = path.join(`${__dirname}`, '../../src/templates/generated/action.py.njx');
|
||||||
|
const data = await getActionsRenderData();
|
||||||
|
let result = render(tmplPath, data);
|
||||||
|
const oriFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/ori_action.py',
|
||||||
|
);
|
||||||
|
await writeFile(oriFile, result);
|
||||||
|
const azLinter = new AzLinter();
|
||||||
|
await azLinter.process(oriFile);
|
||||||
|
result = await readFile(oriFile);
|
||||||
|
const expectedFile = path.join(
|
||||||
|
`${__dirname}`,
|
||||||
|
'../../test/unittest/expected/generated/action.py',
|
||||||
|
);
|
||||||
|
const expected = await readFile(expectedFile);
|
||||||
|
assert.deepStrictEqual(result, expected, 'render logic for action.py is incorrect');
|
||||||
|
await rmFile(oriFile);
|
||||||
|
});
|
||||||
|
});
|
Загрузка…
Ссылка в новой задаче