UNPKG

@pubgcorp/pk-template

Version:
95 lines 9.1 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.applyPkIoVirtualObject = void 0; const common_1 = require("../../../common"); const build_1 = require("../../../pk-deploy/build"); const lazy_1 = require("../../../lazy"); class PkIoWaitObjectApplier { constructor(kube, object) { this.kube = kube; this.object = object; } apply() { return __awaiter(this, void 0, void 0, function* () { const wo = this.object; if (wo.spec.conditions) { for (const target of wo.spec.conditions) { yield this.waitTarget(target); } } }); } waitTarget(condition) { return __awaiter(this, void 0, void 0, function* () { while (true) { const tobj = yield this.kube.getObject(condition.target.kind, condition.target.name, condition.target.namespace); if (tobj === null) continue; const nodes = this.searchJsonPath(tobj, condition.path); switch (condition.type) { case 'is': if (nodes.length === 1 && nodes[0].value === condition.value) { this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: condition '${condition.path} ${condition.type} ${condition.value}' is met.`); return true; } this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: want ${condition.path} is ${condition.value}, but ${nodes[0].value}`); break; case 'is not': if (nodes.length === 1 && nodes[0].value !== condition.value) { this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: condition '${condition.path} ${condition.type} ${condition.value}' is met.`); return true; } this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: want ${condition.path} is not ${condition.value}, but ${nodes[0].value}`); break; case 'exist': if (nodes.length) { this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: condition '${condition.path} ${condition.type} ${condition.value}' is met.`); return true; } this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: want ${condition.path} exists, but not exists`); break; case 'exist': if (nodes.length === 0) { this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: condition '${condition.path} ${condition.type} ${condition.value}' is met.`); return true; } this.kube.progress.info(` ${build_1.pkIoApiVersion} Wait: want ${condition.path} not exists, but exists`); break; default: throw new Error(`unknown ${build_1.pkIoApiVersion} Wait target condition type ${condition.type}`); } yield (0, common_1.delay)(1000); } }); } searchJsonPath(obj, path) { try { const jsonpath = (0, lazy_1.getJsonPath)(); const nodes = jsonpath.nodes(obj, path); return nodes; } catch (e) { throw new Error(`jsonpath (${path}) error - ${e.message}`); } } } const applyPkIoVirtualObject = (kube, object) => __awaiter(void 0, void 0, void 0, function* () { if (object.apiVersion === build_1.pkIoApiVersion) { switch (object.kind) { case 'Wait': return new PkIoWaitObjectApplier(kube, object).apply(); } } throw new Error(`unknown ${build_1.pkIoApiVersion}/${object.kind} object`); }); exports.applyPkIoVirtualObject = applyPkIoVirtualObject; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbE9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9way9jb21tYW5kcy9kZXBsb3ltZW50L3ZpcnR1YWxPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNENBQWlEO0FBQ2pELG9EQUEwRDtBQUUxRCx3Q0FBNEM7QUFxQjVDLE1BQU0scUJBQXFCO0lBQ3pCLFlBQW9CLElBQWUsRUFBVSxNQUFtQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUNoRSxDQUFDO0lBRUssS0FBSzs7WUFDVCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBcUIsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN0QixLQUFLLE1BQU0sTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUN2QyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQy9CO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7SUFFYSxVQUFVLENBQUMsU0FBK0I7O1lBQ3RELE9BQU8sSUFBSSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakgsSUFBSSxJQUFJLEtBQUssSUFBSTtvQkFBRSxTQUFTO2dCQUU1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hELFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDdEIsS0FBSyxJQUFJO3dCQUNQLElBQUks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