UNPKG

@zombienet/orchestrator

Version:

ZombieNet aim to be a testing framework for substrate based blockchains, providing a simple cli tool that allow users to spawn and test ephemeral Substrate based networks

81 lines (80 loc) 3.68 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.genBootnodeDef = genBootnodeDef; exports.genNodeDef = genNodeDef; exports.genChaosDef = genChaosDef; exports.genServiceDef = genServiceDef; exports.replaceNetworkRef = replaceNetworkRef; exports.createTempNodeDef = createTempNodeDef; const utils_1 = require("@zombienet/utils"); const configGenerator_1 = require("../../configGenerator"); const constants_1 = require("../../constants"); const sharedTypes_1 = require("../../sharedTypes"); const resources_1 = require("./resources"); function genBootnodeDef(namespace, nodeSetup) { return __awaiter(this, void 0, void 0, function* () { const bootNodeResource = new resources_1.BootNodeResource(namespace, nodeSetup); return bootNodeResource.generateSpec(); }); } function genNodeDef(namespace_1, nodeSetup_1) { return __awaiter(this, arguments, void 0, function* (namespace, nodeSetup, inCI = false) { const nodeResource = new resources_1.NodeResource(namespace, nodeSetup); return nodeResource.generateSpec(inCI); }); } function genChaosDef(name, namespace, delay) { const resource = new resources_1.ChaosResource(name, namespace, delay); return resource.generateSpec(); } function genServiceDef(podSpec) { const resource = new resources_1.ServiceResource(podSpec); return resource.generateSpec(); } function replaceNetworkRef(podDef, network) { // replace command if needed in containers for (const container of podDef.spec.containers) { if (Array.isArray(container.command)) { const finalCommand = container.command.map((item) => network.replaceWithNetworInfo(item)); container.command = finalCommand; } else { container.command = network.replaceWithNetworInfo(container.command); } } } function createTempNodeDef(name_1, image_1, chain_1, fullCommand_1) { return __awaiter(this, arguments, void 0, function* (name, image, chain, fullCommand, useCommandSuffix = true) { const nodeName = (0, configGenerator_1.getUniqueName)("temp"); const node = { name: nodeName, key: (0, utils_1.getSha256)(nodeName), image, fullCommand: fullCommand + (useCommandSuffix ? ` && ${constants_1.TMP_DONE} && ${constants_1.WAIT_UNTIL_SCRIPT_SUFIX}` : ""), // leave the pod running until we finish transfer files chain, validator: false, invulnerable: false, bootnodes: [], args: [], env: [], telemetryUrl: "", overrides: [], zombieRole: sharedTypes_1.ZombieRole.Temp, p2pPort: yield (0, utils_1.getRandomPort)(), wsPort: yield (0, utils_1.getRandomPort)(), rpcPort: yield (0, utils_1.getRandomPort)(), prometheusPort: yield (0, utils_1.getRandomPort)(), }; return node; }); }