in src/publishers/zipDeploy.ts [137:172]
private static async checkAppSettingPropagatedToKudu(context: IActionContext, key: string, expectedValue: string) {
let isSuccess: boolean = false;
let retryCount: number = 20;
const retryInterval: number = 5000;
while (retryCount > 0) {
await Sleeper.timeout(retryInterval);
try {
if (context.authenticationType === AuthenticationType.Rbac) {
const settings: any = await context.appService.getApplicationSettings();
if (settings && settings.properties[key] && settings.properties[key] === expectedValue) {
isSuccess = true;
break;
}
}
else{
const settings: any = await context.kuduService.getAppSettings();
if (settings && settings[key] && settings[key] === expectedValue) {
isSuccess = true;
break;
}
}
} catch (expt) {
Logger.Warn(`Failed to check app setting propagation for ${key}, remaining retry ${retryCount-1}`);
}
Logger.Info(`App setting ${key} has not been propagated to Kudu container yet, remaining retry ${retryCount-1}`)
retryCount--;
}
if (isSuccess) {
Logger.Info(`App setting ${key} propagated to Kudu container`);
} else {
Logger.Warn(`App setting ${key} fails to propagate to Kudu container`);
}
}