private static async checkAppSettingPropagatedToKudu()

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`);
        }
    }