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

107 lines (106 loc) 4.73 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.genPrometheusDef = genPrometheusDef; exports.genGrafanaDef = genGrafanaDef; exports.getIntrospectorDef = getIntrospectorDef; exports.genTempoDef = genTempoDef; exports.genNodeDef = genNodeDef; exports.replaceNetworkRef = replaceNetworkRef; exports.createTempNodeDef = createTempNodeDef; const utils_1 = require("@zombienet/utils"); const configGenerator_1 = require("../../configGenerator"); const sharedTypes_1 = require("../../sharedTypes"); const client_1 = require("../client"); const resources_1 = require("./resources"); function genBootnodeDef(namespace, nodeSetup) { return __awaiter(this, void 0, void 0, function* () { const client = (0, client_1.getClient)(); const bootNodeResource = new resources_1.BootNodeResource(client, namespace, nodeSetup); const bootNodeResourceSpec = bootNodeResource.generateSpec(); return bootNodeResourceSpec; }); } function genPrometheusDef(namespace) { return __awaiter(this, void 0, void 0, function* () { const client = (0, client_1.getClient)(); const prometheusResource = new resources_1.PrometheusResource(client, namespace); const prometheusResourceSpec = prometheusResource.generateSpec(); return prometheusResourceSpec; }); } function genGrafanaDef(namespace, prometheusIp, tempoIp) { return __awaiter(this, void 0, void 0, function* () { const client = (0, client_1.getClient)(); const grafanaResource = new resources_1.GrafanaResource(client, namespace, prometheusIp, tempoIp); const grafanaResourceSpec = grafanaResource.generateSpec(); return grafanaResourceSpec; }); } function getIntrospectorDef(namespace, wsUri) { return __awaiter(this, void 0, void 0, function* () { const introspectorResource = new resources_1.IntrospectorResource(namespace, wsUri); const introspectorResourceSpec = introspectorResource.generateSpec(); return introspectorResourceSpec; }); } function genTempoDef(namespace) { return __awaiter(this, void 0, void 0, function* () { const client = (0, client_1.getClient)(); const tempoResource = new resources_1.TempoResource(client, namespace); const tempoResourceSpec = tempoResource.generateSpec(); return tempoResourceSpec; }); } function genNodeDef(namespace, nodeSetup) { return __awaiter(this, void 0, void 0, function* () { const client = (0, client_1.getClient)(); const nodeResource = new resources_1.NodeResource(client, namespace, nodeSetup); const nodeResourceSpec = nodeResource.generateSpec(); return nodeResourceSpec; }); } 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, image, chain, fullCommand) { return __awaiter(this, void 0, void 0, function* () { const node = { name: (0, configGenerator_1.getUniqueName)("temp"), image, fullCommand: fullCommand, 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; }); }