in tasks/Node/src/tasks/AzureDtlUpdateEnvironment/task.ts [74:121]
parameterOverrides: String(tl.getInput('ParameterOverrides', false)),
subscriptionId: String(tl.getEndpointDataParameter(connectedServiceName, 'SubscriptionId', true)),
templateFile: String(tl.getInput('TemplateFile', true)),
templateId: ''
};
}
return inputData;
}
async function updateEnvironment(clients: TaskClients, inputData: CreateOrUpdateEnvTaskInputData): Promise<void> {
const labName: string = resutil.getLabResourceName(inputData.labId, 'labs');
const labRgName: string = resutil.getLabResourceName(inputData.labId, 'resourcegroups');
const envName: string = resutil.getLabResourceName(inputData.envId, 'environments');
console.log(`Updating Environment '${envName}' in Lab '${labName}' under Resource Group '${labRgName}'.`);
const environments: DevTestLabsModels.EnvironmentsListResponse = await clients.dtl.environments.list(labRgName, labName, '@all');
const env: DevTestLabsModels.DtlEnvironment | undefined = environments && environments.find((env) => env && env.name && equalsIgnoreCase(env.name, envName));
if (!env) {
throw `Lab Environment '${envName}' does not exist.`;
}
if (!env.resourceGroupId) {
throw `Unable to determine property 'resourceGroupId' for Lab Environment '${envName}'.`;
}
const envRgName: string = resutil.getResourceName(env.resourceGroupId, 'resourcegroups');
if (!envRgName) {
throw `Unable to extract the name from Resource Group '${env.resourceGroupId}'.`;
}
const deploymentName: string = deployutil.getDeploymentName();
const deployment: ResourceManagementModels.Deployment = getDeployment(inputData.templateFile, inputData.parametersFile, inputData.parameterOverrides);
console.log('Invoking deployment with the following parameters:');
console.log(` DeploymentName = ${deploymentName}`);
console.log(` ResourceGroupName = ${envRgName}`);
console.log(` TemplateFile = ${inputData.templateFile}`);
const results: ResourceManagementModels.DeploymentsCreateOrUpdateResponse = await clients.arm.deployments.createOrUpdate(envRgName, deploymentName, deployment);
if (results && results.properties) {
const properties: any = results.properties;
if (properties.provisioningState !== 'Succeeded') {