Skip to content

Commit

Permalink
chore: changed raw string zombie role to enum
Browse files Browse the repository at this point in the history
  • Loading branch information
l0r1s committed Apr 18, 2023
1 parent f910ce0 commit 6ee79fc
Show file tree
Hide file tree
Showing 17 changed files with 64 additions and 52 deletions.
6 changes: 3 additions & 3 deletions javascript/packages/orchestrator/src/cmdGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
RPC_HTTP_PORT,
RPC_WS_PORT,
} from "./constants";
import { Node } from "./types";
import { Node, ZombieRole } from "./types";

const debug = require("debug")("zombie::cmdGenerator");

Expand Down Expand Up @@ -268,12 +268,12 @@ export async function genCmd(
if (prometheus && !args.includes("--prometheus-external"))
args.push("--prometheus-external");

if (jaegerUrl && zombieRole === "node")
if (jaegerUrl && zombieRole === ZombieRole.Node)
args.push(...["--jaeger-agent", jaegerUrl]);

if (validator && !args.includes("--validator")) args.push("--validator");

if (zombieRole === "collator" && parachainId) {
if (zombieRole === ZombieRole.Collator && parachainId) {
const parachainIdArgIndex = args.findIndex((arg) =>
arg.includes("--parachain-id"),
);
Expand Down
7 changes: 4 additions & 3 deletions javascript/packages/orchestrator/src/configGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import {
Override,
Parachain,
ParachainConfig,
ZombieRole,
envVars,
} from "./types";

Expand Down Expand Up @@ -439,7 +440,7 @@ export async function generateBootnodeSpec(
telemetryUrl: "",
prometheus: true, // --prometheus-external
overrides: [],
zombieRole: "bootnode",
zombieRole: ZombieRole.BootNode,
imagePullPolicy: config.settings.image_pull_policy || "Always",
...ports,
externalPorts,
Expand Down Expand Up @@ -531,7 +532,7 @@ async function getCollatorNodeFromConfig(
telemetryUrl: "",
prometheus: prometheusExternal(networkSpec),
overrides: [],
zombieRole: cumulusBased ? "cumulus-collator" : "collator",
zombieRole: cumulusBased ? ZombieRole.CumulusCollator : ZombieRole.Collator,
parachainId: para_id,
dbSnapshot: collatorConfig.db_snapshot,
imagePullPolicy: networkSpec.settings.image_pull_policy || "Always",
Expand Down Expand Up @@ -610,7 +611,7 @@ async function getNodeFromConfig(
overrides: [...globalOverrides, ...nodeOverrides],
addToBootnodes: node.add_to_bootnodes ? true : false,
resources: node.resources || networkSpec.relaychain.defaultResources,
zombieRole: "node",
zombieRole: ZombieRole.Node,
imagePullPolicy: networkSpec.settings.image_pull_policy || "Always",
...ports,
externalPorts,
Expand Down
6 changes: 3 additions & 3 deletions javascript/packages/orchestrator/src/paras.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
import { decorate } from "./paras-decorators";
import { Providers } from "./providers";
import { getClient } from "./providers/client";
import { Node, Parachain, fileMap } from "./types";
import { Node, Parachain, ZombieRole, fileMap } from "./types";

const debug = require("debug")("zombie::paras");

Expand Down Expand Up @@ -230,7 +230,7 @@ export async function generateParachainFiles(
client.remoteDir as string,
);
// cumulus
if (parachain.collators[0].zombieRole === "cumulus-collator") {
if (parachain.collators[0].zombieRole === ZombieRole.CumulusCollator) {
const chainSpecPathInNode =
client.providerName === "native"
? chainSpecFullPath
Expand Down Expand Up @@ -262,7 +262,7 @@ export async function generateParachainFiles(
env: [],
telemetryUrl: "",
overrides: [],
zombieRole: "temp",
zombieRole: ZombieRole.Temp,
p2pPort: await getRandomPort(),
wsPort: await getRandomPort(),
rpcPort: await getRandomPort(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { getRandomPort, getSha256 } from "@zombienet/utils";
import { getUniqueName } from "../../configGenerator";
import { TMP_DONE, WAIT_UNTIL_SCRIPT_SUFIX } from "../../constants";
import { Network } from "../../network";
import { Node } from "../../types";
import { Node, ZombieRole } from "../../types";
import { BootNodeResource, NodeResource } from "./resources";

export async function genBootnodeDef(
Expand Down Expand Up @@ -56,7 +56,7 @@ export async function createTempNodeDef(
env: [],
telemetryUrl: "",
overrides: [],
zombieRole: "temp",
zombieRole: ZombieRole.Temp,
p2pPort: await getRandomPort(),
wsPort: await getRandomPort(),
rpcPort: await getRandomPort(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../../types";
import { Node, ZombieRole } from "../../../types";
import { NodeResource } from "./nodeResource";
import { Container, PodSpec, Volume } from "./types";

Expand All @@ -20,7 +20,7 @@ export class BootNodeResource extends NodeResource {
labels: {
"app.kubernetes.io/name": this.namespace,
"app.kubernetes.io/instance": "bootnode",
"zombie-role": "bootnode",
"zombie-role": ZombieRole.BootNode,
app: "zombienet",
"zombie-ns": this.namespace,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
TRANSFER_CONTAINER_NAME,
TRANSFER_CONTAINER_WAIT_LOG,
} from "../../../constants";
import { Node } from "../../../types";
import { Node, ZombieRole } from "../../../types";
import {
Container,
ContainerPort,
Expand Down Expand Up @@ -62,7 +62,7 @@ export class NodeResource {
}

private generateContainerCommand(): Promise<string[]> {
if (this.nodeSetupConfig.zombieRole === "cumulus-collator") {
if (this.nodeSetupConfig.zombieRole === ZombieRole.CumulusCollator) {
return genCumulusCollatorCmd(this.nodeSetupConfig);
}

Expand Down Expand Up @@ -104,8 +104,10 @@ export class NodeResource {

private shouldAddJaegerContainer() {
const { zombieRole, jaegerUrl } = this.nodeSetupConfig;
const isNodeOrCumulusCollator =
zombieRole === "node" || zombieRole === "cumulus-collator";
const isNodeOrCumulusCollator = [
ZombieRole.Node,
ZombieRole.CumulusCollator,
].includes(zombieRole);
const isJaegerUrlDefined = jaegerUrl && jaegerUrl === "localhost:6831";

return isNodeOrCumulusCollator && isJaegerUrlDefined;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { envVars, Resources } from "../../../types";
import { envVars, Resources, ZombieRoleLabel } from "../../../types";

type ContainerResource = Resources["resources"];

Expand Down Expand Up @@ -36,7 +36,7 @@ export interface PodSpec {
metadata: {
name: string;
labels: {
"zombie-role": string;
"zombie-role": ZombieRoleLabel;
app: string;
"app.kubernetes.io/name": string;
"app.kubernetes.io/instance": string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { getRandomPort } from "@zombienet/utils";
import { getUniqueName } from "../../configGenerator";
import { Network } from "../../network";
import { Node } from "../../types";
import { Node, ZombieRole } from "../../types";
import { getClient } from "../client";
import { BootNodeResource, NodeResource } from "./resources";

Expand Down Expand Up @@ -56,7 +56,7 @@ export async function createTempNodeDef(
env: [],
telemetryUrl: "",
overrides: [],
zombieRole: "temp",
zombieRole: ZombieRole.Temp,
p2pPort: await getRandomPort(),
wsPort: await getRandomPort(),
rpcPort: await getRandomPort(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
LOCALHOST,
P2P_PORT,
} from "../../constants";
import { fileMap } from "../../types";
import { ZombieRole, fileMap } from "../../types";
import {
Client,
RunCommandOptions,
Expand Down Expand Up @@ -350,7 +350,7 @@ export class NativeClient extends Client {
const localFilePath = `${this.tmpDir}/${name}.yaml`;
await fs.promises.writeFile(localFilePath, docInYaml);

if (resourseDef.metadata.labels["zombie-role"] === "temp") {
if (resourseDef.metadata.labels["zombie-role"] === ZombieRole.Temp) {
await this.runCommand(resourseDef.spec.command);
} else {
if (resourseDef.spec.command[0] === "bash")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { makeDir } from "@zombienet/utils";
import { genCmd } from "../../../cmdGenerator";
import { ZombieRole, ZombieRoleLabel } from "../../../types";
import { NodeResource } from "./nodeResource";
import { NodeSpec, Port, ProcessEnvironment, ZombieRole } from "./types";
import { NodeSpec, Port, ProcessEnvironment } from "./types";

export class BootNodeResource extends NodeResource {
protected async createDirectories() {
Expand All @@ -19,14 +20,14 @@ export class BootNodeResource extends NodeResource {
return genCmd(this.nodeSetupConfig, this.configPath, this.dataPath, false);
}

protected getZombieRole(): ZombieRole {
return "bootnode";
protected getZombieRoleLabel(): ZombieRoleLabel {
return ZombieRole.BootNode;
}

protected generateNodeSpec(
ports: Port[],
command: string[],
zombieRole: ZombieRole,
zombieRole: ZombieRoleLabel,
env: ProcessEnvironment,
): NodeSpec {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,9 @@ import {
RPC_HTTP_PORT,
RPC_WS_PORT,
} from "../../../constants";
import { Node, envVars } from "../../../types";
import { Node, ZombieRole, ZombieRoleLabel, envVars } from "../../../types";
import { Client } from "../../client";
import {
NodeSpec,
Port,
PortProperty,
ProcessEnvironment,
ZombieRole,
} from "./types";
import { NodeSpec, Port, PortProperty, ProcessEnvironment } from "./types";

export class NodeResource {
protected readonly configPath: string;
Expand All @@ -36,9 +30,14 @@ export class NodeResource {
await this.createDirectories();
const ports = await this.generatePorts();
const command = await this.generateCommand();
const zombieRole = this.getZombieRole();
const zombieRoleLabel = this.getZombieRoleLabel();
const env = this.getEnv();
const nodeManifest = this.generateNodeSpec(ports, command, zombieRole, env);
const nodeManifest = this.generateNodeSpec(
ports,
command,
zombieRoleLabel,
env,
);

return nodeManifest;
}
Expand Down Expand Up @@ -93,7 +92,7 @@ export class NodeResource {
}

protected generateCommand() {
if (this.nodeSetupConfig.zombieRole === "cumulus-collator") {
if (this.nodeSetupConfig.zombieRole === ZombieRole.CumulusCollator) {
return genCumulusCollatorCmd(
this.nodeSetupConfig,
this.configPath,
Expand All @@ -106,7 +105,7 @@ export class NodeResource {
return genCmd(this.nodeSetupConfig, this.configPath, this.dataPath, false);
}

protected getZombieRole(): ZombieRole {
protected getZombieRoleLabel(): ZombieRoleLabel {
const { zombieRole, validator } = this.nodeSetupConfig;

if (zombieRole) return zombieRole;
Expand All @@ -126,7 +125,7 @@ export class NodeResource {
protected generateNodeSpec(
ports: Port[],
command: string[],
zombieRole: ZombieRole,
zombieRole: ZombieRoleLabel,
env: ProcessEnvironment,
): NodeSpec {
return {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { Node } from "../../../types";
import { Node, ZombieRoleLabel } from "../../../types";

export interface ProcessEnvironment {
[key: string]: string;
}

export type PortProperty = keyof NonNullable<Node["externalPorts"]>;

export type ZombieRole = Node["zombieRole"] | "authority" | "full-node";

export interface Port {
containerPort: number;
Expand All @@ -20,7 +19,7 @@ export interface NodeSpec {
name: string;
namespace: string;
labels: {
"zombie-role": ZombieRole;
"zombie-role": ZombieRoleLabel;
app: "zombienet";
"zombie-ns": string;
name: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { getRandomPort } from "@zombienet/utils";
import { getUniqueName } from "../../configGenerator";
import { Network } from "../../network";
import { Node } from "../../types";
import { Node, ZombieRole } from "../../types";
import { getClient } from "../client";
import {
BootNodeResource,
Expand Down Expand Up @@ -109,7 +109,7 @@ export async function createTempNodeDef(
env: [],
telemetryUrl: "",
overrides: [],
zombieRole: "temp",
zombieRole: ZombieRole.Temp,
p2pPort: await getRandomPort(),
wsPort: await getRandomPort(),
rpcPort: await getRandomPort(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Node } from "../../../types";
import { Node, ZombieRole } from "../../../types";
import { Client } from "../../client";
import { NodeResource } from "./nodeResource";
import { Container, PodSpec, Volume } from "./types";
Expand All @@ -19,7 +19,7 @@ export class BootNodeResource extends NodeResource {
name: "bootnode",
namespace: this.namespace,
labels: {
"zombie-role": "bootnode",
"zombie-role": ZombieRole.BootNode,
app: "zombienet",
"zombie-ns": this.namespace,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
RPC_HTTP_PORT,
RPC_WS_PORT,
} from "../../../constants";
import { Node } from "../../../types";
import { Node, ZombieRole } from "../../../types";
import { Client } from "../../client";
import {
Container,
Expand Down Expand Up @@ -133,7 +133,7 @@ export class NodeResource {
}

private generateContainerCommand(): Promise<string[]> {
if (this.nodeSetupConfig.zombieRole === "cumulus-collator") {
if (this.nodeSetupConfig.zombieRole === ZombieRole.CumulusCollator) {
return genCumulusCollatorCmd(this.nodeSetupConfig);
}

Expand Down
4 changes: 2 additions & 2 deletions javascript/packages/orchestrator/src/spawner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { Network, Scope } from "./network";
import { NetworkNode } from "./networkNode";
import { getProvider } from "./providers";
import { Client } from "./providers/client";
import { Node, NodeMultiAddress, Parachain, fileMap } from "./types";
import { Node, NodeMultiAddress, Parachain, ZombieRole, fileMap } from "./types";
const debug = require("debug")("zombie::spawner");

export const spawnNode = async (
Expand All @@ -45,7 +45,7 @@ export const spawnNode = async (

let parachainSpecId;
// for relay chain we can have more than one bootnode.
if (node.zombieRole === "node" || node.zombieRole === "collator")
if ([ZombieRole.Node, ZombieRole.Collator].includes(node.zombieRole))
node.bootnodes = node.bootnodes.concat(bootnodes);

if (opts.jaegerUrl) node.jaegerUrl = opts.jaegerUrl;
Expand Down
Loading

0 comments on commit 6ee79fc

Please sign in to comment.