function runStep()

in rules/preview-rule/IAC_misconfiguration_proactive_plugin/lib/index.js [48:104]


function runStep() {
    var _a, _b;
    return __awaiter(this, void 0, void 0, function* () {
        const params = (0, params_1.getParams)();
        step.info(`PIPELINE_ID=${params.pipelineID}`);
        step.info(`PIPELINE_NAME=${params.pipelineName}`);
        step.info(`BUILD_NUMBER=${params.buildNumber}`);
        step.info(`WORK_SPACE=${params.workSpace}`);
        step.info(`PROJECT_DIR=${params.projectDir}`);
        step.info(`BUILD_JOB_ID=${params.buildJobID}`);
        step.info(`Init cloudconfig proactive...`);
        // console.log('process.env', process.env);
        const stackPath = process_1.default.env["StackPath"];
        step.info(`stackPath=${stackPath}`);
        const regionId = process_1.default.env["RegionId"];
        step.info(`regionId=${regionId}`);
        const enableEvaluate = process_1.default.env["EnableEvaluate"];
        step.info(`enableEvaluate=${enableEvaluate}`);
        const ak = process_1.default.env["AccessKey"];
        const sk = process_1.default.env["AccessSecret"];
        const sourceCode = yield getCodeFileContent(stackPath);
        console.log(`sourceCode=${sourceCode}`);
        let apiConfig = newClientConfig(ak, sk);
        const stackRespone = yield getPreviewStack(apiConfig, sourceCode);
        step.info(`stackProperties response=${stackRespone}`);
        for (const resource of stackRespone) {
            const resourceJson = JSON.stringify(resource);
            step.info(`one begin scan resourceJson =${resourceJson}`);
            let resourceTypeSpec = resource.acsResourceType || '';
            step.info(`one resourceTypeSpec =${resourceTypeSpec}`);
            if (resourceTypeSpec === '') {
                resourceTypeSpec = (0, util_1.getResourceType)(resource.resourceType || '');
                step.info(`one resourceTypeSpec by ros type =${resourceTypeSpec}`);
            }
            const proactiveRules = (0, util_1.getProactiveRules)(resourceTypeSpec);
            step.info(`one proactiveRules =${proactiveRules}`);
            const resourceProperties = resource.properties || '';
            const resourcePropertiesJson = JSON.stringify(resourceProperties);
            step.info(`one resourceProperties =${resourcePropertiesJson}`);
            const result = yield evaluateOneResourcePreRules(apiConfig, resourceTypeSpec, proactiveRules, resourcePropertiesJson);
            step.info(`one evaluatePreRules =${JSON.stringify(result)}`);
            (_b = (_a = result.body) === null || _a === void 0 ? void 0 : _a.resourceEvaluations) === null || _b === void 0 ? void 0 : _b.forEach(element => {
                step.info(`one evaluatePreRules element =${JSON.stringify(element)}`);
                let rules = element.rules || [];
                rules.forEach(rule => {
                    let identifier = rule.identifier;
                    let complianceType = rule.complianceType;
                    let annotation = rule.annotation;
                    if (complianceType === 'NON_COMPLIANT') {
                        step.error(`evaluatePreRules noncompliant; reason:" ${identifier},${JSON.stringify(annotation)} `);
                        return;
                    }
                });
            });
        }
    });
}