@codiac.io/codiac-cli 1.3.188 → 1.3.190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +9728 -2022
  2. package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +2 -0
  3. package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
  4. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +2 -0
  5. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
  6. package/dist/apis/codiac-relay/gen/client.d.ts +11 -1
  7. package/dist/apis/codiac-relay/gen/client.js +30 -0
  8. package/dist/apis/codiac-relay/gen/client.js.map +1 -1
  9. package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +20 -0
  10. package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
  11. package/dist/apis/codiac-relay/i-client.d.ts +10 -0
  12. package/dist/apis/codiac-relay-nats/gen/client.d.ts +6 -0
  13. package/dist/apis/codiac-relay-nats/gen/client.js +36 -0
  14. package/dist/apis/codiac-relay-nats/gen/client.js.map +1 -1
  15. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +29 -0
  16. package/dist/commands/cabinet/create.js +16 -12
  17. package/dist/commands/cabinet/create.js.map +1 -1
  18. package/dist/commands/cabinet/define.d.ts +42 -0
  19. package/dist/commands/cabinet/define.js +149 -0
  20. package/dist/commands/cabinet/define.js.map +1 -0
  21. package/dist/commands/cabinet/destroy.d.ts +39 -0
  22. package/dist/commands/cabinet/destroy.js +101 -0
  23. package/dist/commands/cabinet/destroy.js.map +1 -0
  24. package/dist/commands/cabinet/detach.d.ts +39 -0
  25. package/dist/commands/cabinet/detach.js +102 -0
  26. package/dist/commands/cabinet/detach.js.map +1 -0
  27. package/dist/commands/cabinet/forget.d.ts +39 -0
  28. package/dist/commands/cabinet/forget.js +101 -0
  29. package/dist/commands/cabinet/forget.js.map +1 -0
  30. package/dist/commands/noc/cluster/forget.d.ts +8 -2
  31. package/dist/commands/noc/cluster/forget.js +43 -25
  32. package/dist/commands/noc/cluster/forget.js.map +1 -1
  33. package/dist/commands/snapshot/tag.d.ts +42 -0
  34. package/dist/commands/snapshot/tag.js +169 -0
  35. package/dist/commands/snapshot/tag.js.map +1 -0
  36. package/dist/commands/snapshot/tags.d.ts +1 -0
  37. package/dist/commands/snapshot/tags.js +1 -0
  38. package/dist/commands/snapshot/tags.js.map +1 -1
  39. package/dist/commands/snapshot/untag.d.ts +43 -0
  40. package/dist/commands/snapshot/untag.js +194 -0
  41. package/dist/commands/snapshot/untag.js.map +1 -0
  42. package/dist/relay/relay-container.js +1 -1
  43. package/oclif.manifest.json +753 -1
  44. package/package.json +1 -1
@@ -16718,3 +16718,32 @@ export type ZombieRefreshResponse = ZombieRefreshResponses[keyof ZombieRefreshRe
16718
16718
  export type ClientOptions = {
16719
16719
  baseUrl: string;
16720
16720
  };
16721
+ export type CabinetRestoreItem = {
16722
+ cabinet: string;
16723
+ environment: string;
16724
+ };
16725
+ export type CabinetDefineRequest = {
16726
+ targetCabinet?: CabinetScope;
16727
+ targetClusterName?: string;
16728
+ };
16729
+ export type CabinetCreateRequest = {
16730
+ targetCabinet?: CabinetScope;
16731
+ targetClusterName?: string;
16732
+ correlationId?: string;
16733
+ socketId?: string;
16734
+ callbackUrl?: string;
16735
+ };
16736
+ export type CabinetDestroyRequest = {
16737
+ target?: CabinetScope;
16738
+ };
16739
+ export type CabinetDetachRequest = {
16740
+ target?: CabinetScope;
16741
+ };
16742
+ export type CabinetForgetRequest = {
16743
+ target?: CabinetScope;
16744
+ };
16745
+ export type CabinetRestoreRequest = {
16746
+ cabinets?: Array<CabinetRestoreItem>;
16747
+ enterprise?: string;
16748
+ skipCabinets?: boolean;
16749
+ };
@@ -130,23 +130,27 @@ class CabinetCreate extends command_base_exec_1.CommandBaseExec {
130
130
  return cmd;
131
131
  }
132
132
  executeTask(candidate) {
133
+ var _a, _b, _c;
133
134
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
134
- this._ui.startSpinner(`Creating new cabinet [${candidate.enterprise}/${candidate.cabinet}]...`);
135
- const req = { targetCabinet: candidate, targetClusterName: candidate.cluster, thisMachine: candidate.thisMachine };
136
- let result = yield this.genRelayClient.Call.postExecuteCabinetMaker(req);
137
- this._ui.stopSpinner(`${result.success ? "Success!" : "Failed."}`);
135
+ const label = `${candidate.enterprise}/${candidate.cabinet}`;
136
+ const result = yield this.watcher.triggerAndWatch((correlationId, socketId) => {
137
+ const req = { targetCabinet: candidate, targetClusterName: candidate.cluster, socketId, correlationId };
138
+ return this.genRelayClient.Call.cabinetCreate(req);
139
+ });
138
140
  if (result.error) {
139
- this.logger.error(`Error creating cabinet: ${result.message || ""}; ${result.error.message}`, result.error);
140
- this._ui.userMessage(`Error creating cabinet: ${result.message || ""}; ${result.error.message}`);
141
+ const msg = `Error creating cabinet [${label}]: ${(_a = result.message) !== null && _a !== void 0 ? _a : ""} ${(_b = result.error.message) !== null && _b !== void 0 ? _b : ""}`.trimEnd();
142
+ this.logger.error(msg, result.error);
143
+ this._ui.userMessage(`${this._styler.colorCritical("ERROR!")} ${msg}`);
141
144
  }
142
145
  else if (!result.success) {
143
- this.logger.notice(`Cabinet creation failed without error. ${result.message}`);
144
- this._ui.userMessage(`Cabinet creation failed without error. ${result.message}`);
146
+ const msg = `Cabinet creation failed for [${label}]: ${(_c = result.message) !== null && _c !== void 0 ? _c : ""}`.trimEnd();
147
+ this.logger.notice(msg, result);
148
+ this._ui.userMessage(`${this._styler.colorCritical("FAILED!")} ${msg}`);
145
149
  }
146
- else if (result.output) {
147
- let cab = result.output;
148
- this.logger.notice(`${this._styler.colorGood("Success!")} Cabinet [${this._styler.hilite(cab.name)}] created for enterprise [${cab.enterpriseCode}]`);
149
- this._ui.userMessage(`${this._styler.colorGood("Success!")} Cabinet [${this._styler.hilite(cab.name)}] created for enterprise [${cab.enterpriseCode}]`);
150
+ else {
151
+ const msg = `${this._styler.colorGood("SUCCESS!")} Cabinet [${this._styler.hilite(label)}] created.`;
152
+ this.logger.notice(msg, result);
153
+ this._ui.userMessage(msg);
150
154
  }
151
155
  });
152
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/cabinet/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/cabinet/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { Command } from '@oclif/core';
2
+ import { CommandBaseExec } from '../../command-base-exec';
3
+ import { AtLeast } from '@codiac.io/codiac-common/contracts';
4
+ import { RootMap } from "../../apis/codiac-api/contracts";
5
+ import { ILocalEntity } from '../../codiac-entities/i-local-entity';
6
+ export type CabinetDefineCandidate = {
7
+ enterprise: string;
8
+ environment: string;
9
+ cabinet: string;
10
+ cluster: string;
11
+ } & Partial<ILocalEntity>;
12
+ export default class CabinetDefine extends CommandBaseExec<CabinetDefineCandidate> {
13
+ static description: string;
14
+ static aliases: string[];
15
+ protected infrxAliases: string[] | undefined;
16
+ static args: {
17
+ cabinet: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
18
+ };
19
+ static examples: Command.Example[];
20
+ static flags: {
21
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
22
+ enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
23
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
24
+ cluster: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
25
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
26
+ echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
27
+ "to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
28
+ "take-defaults": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
29
+ as: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
30
+ remember: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
31
+ rememberAs: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
32
+ unremember: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
33
+ withoutdefaults: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
34
+ verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
35
+ };
36
+ protected bootstrap(): void;
37
+ captureArgs(): Promise<[Partial<CabinetDefineCandidate>, boolean, Partial<CabinetDefineCandidate>]>;
38
+ buildCandidate_silently(partial: CabinetDefineCandidate, rootMap: RootMap): Promise<CabinetDefineCandidate>;
39
+ buildCandidate_interactively(partial: AtLeast<CabinetDefineCandidate, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<CabinetDefineCandidate>;
40
+ buildCommandString(candidate: CabinetDefineCandidate, cmd: string[]): string[];
41
+ executeTask(candidate: CabinetDefineCandidate): Promise<void>;
42
+ }
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const cli_common_1 = require("../../cli-common");
6
+ const command_base_exec_1 = require("../../command-base-exec");
7
+ const cloud_provider_contextualizer_1 = require("../../uilogic/cloud-provider-contextualizer");
8
+ const prettify_1 = require("../../prettify");
9
+ const type_safety_utils_1 = require("../../uilogic/type-safety-utils");
10
+ class CabinetDefine extends command_base_exec_1.CommandBaseExec {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.infrxAliases = undefined;
14
+ }
15
+ bootstrap() {
16
+ super.bootstrap();
17
+ cloud_provider_contextualizer_1.CloudProviderContextualizer.bootstrap(this.ioc);
18
+ }
19
+ captureArgs() {
20
+ var _a;
21
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ const { args, flags } = yield this.parse(CabinetDefine);
23
+ let partial = {};
24
+ let explicit = {};
25
+ if (args.cabinet) {
26
+ partial.cabinet = args.cabinet;
27
+ explicit.cabinet = args.cabinet;
28
+ }
29
+ if (flags.environment) {
30
+ partial.environment = flags.environment;
31
+ explicit.environment = flags.environment;
32
+ }
33
+ if (flags.cluster) {
34
+ partial.cluster = flags.cluster;
35
+ explicit.cluster = flags.cluster;
36
+ }
37
+ if (flags.enterprise) {
38
+ partial.enterprise = flags.enterprise;
39
+ explicit.enterprise = flags.enterprise;
40
+ }
41
+ const takeDefaults = (_a = flags['take-defaults']) !== null && _a !== void 0 ? _a : false;
42
+ return [partial, takeDefaults, explicit];
43
+ });
44
+ }
45
+ buildCandidate_silently(partial, rootMap) {
46
+ var _a, _b;
47
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
48
+ if (!partial.cabinet)
49
+ throw new Error("Cabinet name must be provided.");
50
+ if (!partial.environment)
51
+ throw new Error("Environment must be provided.");
52
+ if (!partial.cluster)
53
+ throw new Error("Cluster must be provided.");
54
+ const cabinetNameRegex = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;
55
+ if (!cabinetNameRegex.test(partial.cabinet))
56
+ throw new Error("Invalid cabinet name. Must be lowercase alphanumeric or '-', start and end with alphanumeric.");
57
+ if (partial.cabinet.length > 63)
58
+ throw new Error("Cabinet name exceeds maximum length of 63 characters.");
59
+ const enterprise = rootMap.enterprises.find(e => e.name === partial.enterprise);
60
+ if (!enterprise)
61
+ throw new Error(`Enterprise [${partial.enterprise}] not found.`);
62
+ const environment = enterprise.environments.find(e => e.name === partial.environment);
63
+ if (!environment)
64
+ throw new Error(`Environment [${partial.environment}] not found in enterprise [${partial.enterprise}].`);
65
+ if (!((_a = environment.clusters) === null || _a === void 0 ? void 0 : _a.find(c => c.name === partial.cluster)))
66
+ throw new Error(`Cluster [${partial.cluster}] not found in environment [${partial.environment}].`);
67
+ if ((_b = environment.cabinets) === null || _b === void 0 ? void 0 : _b.find(c => c.name === partial.cabinet))
68
+ throw new Error(`Cabinet [${partial.cabinet}] already exists in environment [${partial.environment}].`);
69
+ const env = enterprise.environments.find(e => e.name === partial.environment);
70
+ if (type_safety_utils_1.TypeSafetyUtils.toBoolean(env.thisMachine))
71
+ partial.thisMachine = env.thisMachine;
72
+ return partial;
73
+ });
74
+ }
75
+ buildCandidate_interactively(partial, rootMap, takeDefaults) {
76
+ var _a;
77
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
+ let environment;
79
+ let cluster;
80
+ let cabinetName;
81
+ let candidate;
82
+ let confirm;
83
+ do {
84
+ cabinetName = (_a = partial.cabinet) !== null && _a !== void 0 ? _a : (yield this._ui.prompt("cabinetName", "Cabinet name: ", true));
85
+ [environment, cluster] = yield this.rootMapUtils.promptForEnviroCluster(rootMap, partial.enterprise, partial.environment, undefined, undefined);
86
+ const hasLocalClusters = type_safety_utils_1.TypeSafetyUtils.toBoolean(environment.thisMachine);
87
+ if (hasLocalClusters)
88
+ partial.thisMachine = hasLocalClusters;
89
+ candidate = {
90
+ enterprise: partial.enterprise,
91
+ environment: environment.name,
92
+ cabinet: cabinetName,
93
+ cluster: cluster.name,
94
+ thisMachine: partial.thisMachine,
95
+ };
96
+ candidate = yield this.buildCandidate_silently(candidate, rootMap);
97
+ const preview = Object.assign({}, candidate);
98
+ this.dataAuthUtils.removeAcl(preview);
99
+ this._ui.userMessage((0, prettify_1.prettify)(preview));
100
+ this._ui.userMessage("You are about to define this cabinet (no k8s provisioning will occur).");
101
+ confirm = yield this._ui.promptConfirm("confirm", "Continue? (ctrl-C to cancel)", false);
102
+ } while (confirm !== true);
103
+ return candidate;
104
+ });
105
+ }
106
+ buildCommandString(candidate, cmd) {
107
+ cmd.push(candidate.cabinet);
108
+ cmd.push("--enterprise", candidate.enterprise);
109
+ cmd.push("--environment", candidate.environment);
110
+ cmd.push("--cluster", candidate.cluster);
111
+ cmd.push("--silent");
112
+ return cmd;
113
+ }
114
+ executeTask(candidate) {
115
+ var _a, _b, _c, _d;
116
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
117
+ this._ui.startSpinner(`Defining cabinet [${candidate.enterprise}/${candidate.cabinet}]...`);
118
+ const req = { targetCabinet: candidate, targetClusterName: candidate.cluster };
119
+ const result = yield this.genRelayClient.Call.cabinetDefine(req);
120
+ this._ui.stopSpinner(result.success ? "Done." : "Failed.");
121
+ if (result.error) {
122
+ this.logger.error(`Error defining cabinet: ${(_a = result.message) !== null && _a !== void 0 ? _a : ""}; ${result.error.message}`, result.error);
123
+ this._ui.userMessage(`Error defining cabinet: ${(_b = result.message) !== null && _b !== void 0 ? _b : ""}; ${result.error.message}`);
124
+ }
125
+ else if (!result.success) {
126
+ this.logger.notice(`Cabinet definition failed. ${(_c = result.message) !== null && _c !== void 0 ? _c : ""}`);
127
+ this._ui.userMessage(`Cabinet definition failed. ${(_d = result.message) !== null && _d !== void 0 ? _d : ""}`);
128
+ }
129
+ else if (result.output) {
130
+ const cab = result.output;
131
+ this._ui.userMessage(`${this._styler.colorGood("Done!")} Cabinet [${this._styler.hilite(cab.name)}] defined for enterprise [${cab.enterpriseCode}] — run ${this._styler.hilite("cabinet restore")} to provision it.`);
132
+ }
133
+ });
134
+ }
135
+ }
136
+ exports.default = CabinetDefine;
137
+ CabinetDefine.description = 'Records the cabinet metadata without provisioning any k8s infrastructure. Use when the target cluster has no physical instance yet, or to stage a cabinet definition ahead of provisioning.';
138
+ CabinetDefine.aliases = ["cab:define"];
139
+ CabinetDefine.args = {
140
+ cabinet: core_1.Args.string({ required: false, description: 'The name of the cabinet to define.' })
141
+ };
142
+ CabinetDefine.examples = [
143
+ { description: "Define a cabinet interactively.", command: "<%= config.bin %> <%= command.id %>" },
144
+ { description: "Define a cabinet interactively and assemble a non-interactive command string.", command: "<%= config.bin %> <%= command.id %> --echo" },
145
+ { description: "Assemble a non-interactive command string without defining (dry run).", command: "<%= config.bin %> <%= command.id %> --to-script" },
146
+ { description: "Define a cabinet silently (scripted).", command: "<%= config.bin %> <%= command.id %> my-cab --enterprise main --environment dev-environment --cluster my-cluster --silent" },
147
+ ];
148
+ CabinetDefine.flags = Object.assign(Object.assign({}, cli_common_1.commandBase.globalFlags), { help: core_1.Flags.help({ char: 'h' }), enterprise: core_1.Flags.string({ description: '(required only if more than one enterprise exists) The enterprise under which to define the cabinet.' }), environment: core_1.Flags.string({ char: 'e', multiple: false, description: 'The environment this cabinet belongs to.' }), cluster: core_1.Flags.string({ char: 'c', description: 'The cluster to assign this cabinet to. Defaults to the only cluster in the environment when there is exactly one.' }), silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Non-interactive mode; executes without prompts and fails on any missing or invalid arguments.' }), echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command before executing.' }), "to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }), "take-defaults": core_1.Flags.boolean({ exclusive: ["silent"], description: "Accepts default values without confirmation prompts (irrelevant in --silent mode)." }) });
149
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/commands/cabinet/define.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Command } from '@oclif/core';
2
+ import { AtLeast } from '@codiac.io/codiac-common/contracts';
3
+ import { CommandBaseExec } from '../../command-base-exec';
4
+ import { RootMap } from "../../apis/codiac-api/contracts";
5
+ interface ICabinetDestroyCandidate {
6
+ enterprise: string;
7
+ environment: string;
8
+ cabinet: string;
9
+ }
10
+ export default class CabinetDestroy extends CommandBaseExec<ICabinetDestroyCandidate> {
11
+ static description: string;
12
+ static aliases: string[];
13
+ static args: {
14
+ cabinet: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
15
+ };
16
+ static examples: Command.Example[];
17
+ static flags: {
18
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
19
+ enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
20
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
21
+ cabinet: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
22
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
23
+ echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
24
+ "to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
25
+ "take-defaults": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
26
+ as: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
27
+ remember: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
28
+ rememberAs: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
29
+ unremember: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
30
+ withoutdefaults: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
31
+ verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
32
+ };
33
+ captureArgs(): Promise<[Partial<ICabinetDestroyCandidate>, boolean, Partial<ICabinetDestroyCandidate>]>;
34
+ buildCandidate_silently(partial: AtLeast<ICabinetDestroyCandidate, "enterprise">, rootMap: RootMap): Promise<ICabinetDestroyCandidate | undefined>;
35
+ buildCandidate_interactively(partial: AtLeast<ICabinetDestroyCandidate, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<ICabinetDestroyCandidate | undefined>;
36
+ buildCommandString(candidate: ICabinetDestroyCandidate, cmd: string[]): string[];
37
+ executeTask(candidate: ICabinetDestroyCandidate): Promise<void>;
38
+ }
39
+ export {};
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@oclif/core");
5
+ const cli_common_1 = require("../../cli-common");
6
+ const command_base_exec_1 = require("../../command-base-exec");
7
+ class CabinetDestroy extends command_base_exec_1.CommandBaseExec {
8
+ captureArgs() {
9
+ var _a;
10
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
+ const { args, flags } = yield this.parse(CabinetDestroy);
12
+ const partial = {};
13
+ const explicit = {};
14
+ if (args.cabinet) {
15
+ partial.cabinet = args.cabinet;
16
+ explicit.cabinet = args.cabinet;
17
+ }
18
+ if (flags.cabinet) {
19
+ partial.cabinet = flags.cabinet;
20
+ explicit.cabinet = flags.cabinet;
21
+ }
22
+ if (flags.environment) {
23
+ partial.environment = flags.environment;
24
+ explicit.environment = flags.environment;
25
+ }
26
+ if (flags.enterprise) {
27
+ partial.enterprise = flags.enterprise;
28
+ explicit.enterprise = flags.enterprise;
29
+ }
30
+ return [partial, (_a = flags['take-defaults']) !== null && _a !== void 0 ? _a : false, explicit];
31
+ });
32
+ }
33
+ buildCandidate_silently(partial, rootMap) {
34
+ var _a;
35
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
+ if (!partial.cabinet)
37
+ throw new Error("Cabinet name must be provided.");
38
+ if (!partial.environment)
39
+ throw new Error("Environment must be provided.");
40
+ const ent = rootMap.enterprises.find(e => e.name === partial.enterprise);
41
+ if (!ent)
42
+ throw new Error(`Enterprise [${partial.enterprise}] not found.`);
43
+ const env = ent.environments.find(e => e.name === partial.environment);
44
+ if (!env)
45
+ throw new Error(`Environment [${partial.environment}] not found.`);
46
+ if (!((_a = env.cabinets) === null || _a === void 0 ? void 0 : _a.find(c => c.name === partial.cabinet)))
47
+ throw new Error(`Cabinet [${partial.cabinet}] not found.`);
48
+ return { enterprise: partial.enterprise, environment: partial.environment, cabinet: partial.cabinet };
49
+ });
50
+ }
51
+ buildCandidate_interactively(partial, rootMap, takeDefaults) {
52
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
53
+ const ent = rootMap.enterprises.find(e => e.name === partial.enterprise);
54
+ const [cab] = yield this.rootMapUtils.promptForCabinet(ent.name, rootMap, partial.cabinet, false, undefined);
55
+ this._ui.userMessage(`You are about to destroy the k8s namespace for cabinet [${this._styler.hilite(cab.name)}]. The cabinet definition will be kept.`);
56
+ const confirm = yield this._ui.promptConfirm("confirm", "Continue? (ctrl-C to cancel)", false);
57
+ if (!confirm)
58
+ return undefined;
59
+ return { enterprise: cab.enterprise, environment: cab.environment, cabinet: cab.name };
60
+ });
61
+ }
62
+ buildCommandString(candidate, cmd) {
63
+ cmd.push(candidate.cabinet);
64
+ cmd.push("--enterprise", candidate.enterprise);
65
+ cmd.push("--environment", candidate.environment);
66
+ cmd.push("--silent");
67
+ return cmd;
68
+ }
69
+ executeTask(candidate) {
70
+ var _a, _b, _c;
71
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
72
+ this._ui.startSpinner(`Destroying k8s resources for cabinet [${candidate.enterprise}/${candidate.cabinet}]...`);
73
+ const req = { target: candidate };
74
+ const result = yield this.genRelayClient.Call.cabinetDestroy(req);
75
+ this._ui.stopSpinner(result.success ? "Done." : "Failed.");
76
+ if (result.error) {
77
+ this.logger.error(`Error destroying cabinet: ${(_a = result.message) !== null && _a !== void 0 ? _a : ""}; ${result.error.message}`, result.error);
78
+ this._ui.userMessage(`Error destroying cabinet: ${(_b = result.message) !== null && _b !== void 0 ? _b : ""}; ${result.error.message}`);
79
+ }
80
+ else if (!result.success) {
81
+ this._ui.userMessage(`Cabinet destroy failed. ${(_c = result.message) !== null && _c !== void 0 ? _c : ""}`);
82
+ }
83
+ else {
84
+ this._ui.userMessage(`${this._styler.colorGood("Done!")} Cabinet [${this._styler.hilite(candidate.cabinet)}] k8s namespace destroyed. Run ${this._styler.hilite("cabinet restore")} to provision it again.`);
85
+ }
86
+ });
87
+ }
88
+ }
89
+ exports.default = CabinetDestroy;
90
+ CabinetDestroy.description = 'Tears down the k8s namespace for a cabinet without deleting the cabinet metadata record. The definition is preserved so the cabinet can be restored to the same or a different cluster later.';
91
+ CabinetDestroy.aliases = ["cab:destroy"];
92
+ CabinetDestroy.args = {
93
+ cabinet: core_1.Args.string({ required: false, description: 'The name of the cabinet to destroy.' })
94
+ };
95
+ CabinetDestroy.examples = [
96
+ { description: "Destroy a cabinet interactively.", command: "<%= config.bin %> <%= command.id %>" },
97
+ { description: "Destroy a cabinet silently (scripted).", command: "<%= config.bin %> <%= command.id %> my-cab --enterprise main --environment dev --silent" },
98
+ { description: "Move a running cabinet to a different cluster.", command: "<%= config.bin %> <%= command.id %> my-cab --enterprise main --environment dev --silent && cod cabinet detach my-cab --enterprise main --environment dev --silent && cod cabinet cluster attach my-cab --enterprise main --environment dev --cluster new-cluster --silent && cod cabinet restore --cabinet my-cab --enterprise main --environment dev --silent" },
99
+ ];
100
+ CabinetDestroy.flags = Object.assign(Object.assign({}, cli_common_1.commandBase.globalFlags), { help: core_1.Flags.help({ char: 'h' }), enterprise: core_1.Flags.string({ description: 'The enterprise that owns the cabinet.' }), environment: core_1.Flags.string({ char: 'e', description: 'The environment the cabinet belongs to.' }), cabinet: core_1.Flags.string({ char: 'b', description: 'The name of the cabinet to destroy.' }), silent: core_1.Flags.boolean({ exclusive: ["echo", "to-script"], description: 'Non-interactive mode; fails on any missing or invalid arguments.' }), echo: core_1.Flags.boolean({ exclusive: ["to-script", "silent"], description: 'Renders the equivalent non-interactive command before executing.' }), "to-script": core_1.Flags.boolean({ exclusive: ["echo", "silent"], description: 'Renders the equivalent non-interactive command without executing it.' }), "take-defaults": core_1.Flags.boolean({ exclusive: ["silent"], description: "Accepts default values without confirmation prompts." }) });
101
+ //# sourceMappingURL=destroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../../src/commands/cabinet/destroy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Command } from '@oclif/core';
2
+ import { AtLeast } from '@codiac.io/codiac-common/contracts';
3
+ import { CommandBaseExec } from '../../command-base-exec';
4
+ import { RootMap } from "../../apis/codiac-api/contracts";
5
+ interface ICabinetDetachCandidate {
6
+ enterprise: string;
7
+ environment: string;
8
+ cabinet: string;
9
+ }
10
+ export default class CabinetDetach extends CommandBaseExec<ICabinetDetachCandidate> {
11
+ static description: string;
12
+ static aliases: string[];
13
+ static args: {
14
+ cabinet: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
15
+ };
16
+ static examples: Command.Example[];
17
+ static flags: {
18
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
19
+ enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
20
+ environment: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
21
+ cabinet: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
22
+ silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
23
+ echo: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
24
+ "to-script": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
25
+ "take-defaults": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
26
+ as: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
27
+ remember: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
28
+ rememberAs: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
29
+ unremember: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
30
+ withoutdefaults: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
31
+ verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
32
+ };
33
+ captureArgs(): Promise<[Partial<ICabinetDetachCandidate>, boolean, Partial<ICabinetDetachCandidate>]>;
34
+ buildCandidate_silently(partial: AtLeast<ICabinetDetachCandidate, "enterprise">, rootMap: RootMap): Promise<ICabinetDetachCandidate | undefined>;
35
+ buildCandidate_interactively(partial: AtLeast<ICabinetDetachCandidate, "enterprise">, rootMap: RootMap, takeDefaults: boolean): Promise<ICabinetDetachCandidate | undefined>;
36
+ buildCommandString(candidate: ICabinetDetachCandidate, cmd: string[]): string[];
37
+ executeTask(candidate: ICabinetDetachCandidate): Promise<void>;
38
+ }
39
+ export {};