@synteq/cli 0.1.5 → 0.1.6
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.
- package/dist/api/client.d.ts +28 -37
- package/dist/api/client.js +42 -49
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +10 -22
- package/dist/commands/api.js +4 -4
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/catalog.js +1 -1
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/config/set-api-url.js +37 -2
- package/dist/commands/config/set-api-url.js.map +1 -1
- package/dist/commands/gpu/activity.d.ts +1 -0
- package/dist/commands/gpu/activity.js +6 -0
- package/dist/commands/gpu/activity.js.map +1 -1
- package/dist/commands/gpu/bandwidth.d.ts +1 -0
- package/dist/commands/gpu/bandwidth.js +4 -0
- package/dist/commands/gpu/bandwidth.js.map +1 -1
- package/dist/commands/gpu/boot-order.d.ts +1 -0
- package/dist/commands/gpu/boot-order.js +5 -0
- package/dist/commands/gpu/boot-order.js.map +1 -1
- package/dist/commands/gpu/console.d.ts +1 -0
- package/dist/commands/gpu/console.js +5 -0
- package/dist/commands/gpu/console.js.map +1 -1
- package/dist/commands/gpu/details.d.ts +2 -0
- package/dist/commands/gpu/details.js +9 -0
- package/dist/commands/gpu/details.js.map +1 -1
- package/dist/commands/gpu/ip/add.d.ts +1 -0
- package/dist/commands/gpu/ip/add.js +6 -0
- package/dist/commands/gpu/ip/add.js.map +1 -1
- package/dist/commands/gpu/ip/list.d.ts +1 -0
- package/dist/commands/gpu/ip/list.js +4 -0
- package/dist/commands/gpu/ip/list.js.map +1 -1
- package/dist/commands/gpu/order.js +2 -0
- package/dist/commands/gpu/order.js.map +1 -1
- package/dist/commands/gpu/power.d.ts +1 -0
- package/dist/commands/gpu/power.js +6 -0
- package/dist/commands/gpu/power.js.map +1 -1
- package/dist/commands/gpu/reinstall.d.ts +1 -0
- package/dist/commands/gpu/reinstall.js +7 -0
- package/dist/commands/gpu/reinstall.js.map +1 -1
- package/dist/commands/gpu/resize.d.ts +1 -0
- package/dist/commands/gpu/resize.js +6 -0
- package/dist/commands/gpu/resize.js.map +1 -1
- package/dist/commands/gpu/stats.d.ts +1 -0
- package/dist/commands/gpu/stats.js +5 -0
- package/dist/commands/gpu/stats.js.map +1 -1
- package/dist/commands/instant-metal/activity.d.ts +1 -0
- package/dist/commands/instant-metal/activity.js +6 -0
- package/dist/commands/instant-metal/activity.js.map +1 -1
- package/dist/commands/instant-metal/bandwidth.d.ts +1 -0
- package/dist/commands/instant-metal/bandwidth.js +4 -0
- package/dist/commands/instant-metal/bandwidth.js.map +1 -1
- package/dist/commands/instant-metal/boot-order.d.ts +1 -0
- package/dist/commands/instant-metal/boot-order.js +5 -0
- package/dist/commands/instant-metal/boot-order.js.map +1 -1
- package/dist/commands/instant-metal/console.d.ts +1 -0
- package/dist/commands/instant-metal/console.js +5 -0
- package/dist/commands/instant-metal/console.js.map +1 -1
- package/dist/commands/instant-metal/details.d.ts +2 -0
- package/dist/commands/instant-metal/details.js +9 -0
- package/dist/commands/instant-metal/details.js.map +1 -1
- package/dist/commands/instant-metal/ip/add.d.ts +1 -0
- package/dist/commands/instant-metal/ip/add.js +6 -0
- package/dist/commands/instant-metal/ip/add.js.map +1 -1
- package/dist/commands/instant-metal/ip/list.d.ts +1 -0
- package/dist/commands/instant-metal/ip/list.js +4 -0
- package/dist/commands/instant-metal/ip/list.js.map +1 -1
- package/dist/commands/instant-metal/order.js +2 -0
- package/dist/commands/instant-metal/order.js.map +1 -1
- package/dist/commands/instant-metal/power.d.ts +1 -0
- package/dist/commands/instant-metal/power.js +6 -0
- package/dist/commands/instant-metal/power.js.map +1 -1
- package/dist/commands/instant-metal/reinstall.d.ts +1 -0
- package/dist/commands/instant-metal/reinstall.js +7 -0
- package/dist/commands/instant-metal/reinstall.js.map +1 -1
- package/dist/commands/instant-metal/resize.d.ts +1 -0
- package/dist/commands/instant-metal/resize.js +6 -0
- package/dist/commands/instant-metal/resize.js.map +1 -1
- package/dist/commands/instant-metal/stats.d.ts +1 -0
- package/dist/commands/instant-metal/stats.js +5 -0
- package/dist/commands/instant-metal/stats.js.map +1 -1
- package/dist/commands/order/gpu.js +2 -0
- package/dist/commands/order/gpu.js.map +1 -1
- package/dist/commands/order/instant-metal.js +2 -0
- package/dist/commands/order/instant-metal.js.map +1 -1
- package/dist/commands/order/storage.js +1 -1
- package/dist/commands/order/storage.js.map +1 -1
- package/dist/commands/order/vps.js +2 -0
- package/dist/commands/order/vps.js.map +1 -1
- package/dist/commands/os-images.js +1 -1
- package/dist/commands/os-images.js.map +1 -1
- package/dist/commands/resources.js +22 -21
- package/dist/commands/resources.js.map +1 -1
- package/dist/commands/storage/attach.d.ts +1 -1
- package/dist/commands/storage/attach.js +11 -11
- package/dist/commands/storage/attach.js.map +1 -1
- package/dist/commands/storage/detach.js +2 -2
- package/dist/commands/storage/detach.js.map +1 -1
- package/dist/commands/storage/list.js +1 -1
- package/dist/commands/storage/list.js.map +1 -1
- package/dist/commands/storage/order.d.ts +1 -1
- package/dist/commands/storage/order.js +10 -10
- package/dist/commands/storage/order.js.map +1 -1
- package/dist/commands/vds/activity.d.ts +1 -0
- package/dist/commands/vds/activity.js +6 -0
- package/dist/commands/vds/activity.js.map +1 -1
- package/dist/commands/vds/bandwidth.d.ts +1 -0
- package/dist/commands/vds/bandwidth.js +4 -0
- package/dist/commands/vds/bandwidth.js.map +1 -1
- package/dist/commands/vds/boot-order.d.ts +1 -0
- package/dist/commands/vds/boot-order.js +5 -0
- package/dist/commands/vds/boot-order.js.map +1 -1
- package/dist/commands/vds/console.d.ts +1 -0
- package/dist/commands/vds/console.js +5 -0
- package/dist/commands/vds/console.js.map +1 -1
- package/dist/commands/vds/details.d.ts +2 -0
- package/dist/commands/vds/details.js +9 -0
- package/dist/commands/vds/details.js.map +1 -1
- package/dist/commands/vds/ip/add.d.ts +1 -0
- package/dist/commands/vds/ip/add.js +6 -0
- package/dist/commands/vds/ip/add.js.map +1 -1
- package/dist/commands/vds/ip/list.d.ts +1 -0
- package/dist/commands/vds/ip/list.js +4 -0
- package/dist/commands/vds/ip/list.js.map +1 -1
- package/dist/commands/vds/order.d.ts +1 -0
- package/dist/commands/vds/order.js +11 -3
- package/dist/commands/vds/order.js.map +1 -1
- package/dist/commands/vds/power.d.ts +1 -0
- package/dist/commands/vds/power.js +6 -0
- package/dist/commands/vds/power.js.map +1 -1
- package/dist/commands/vds/reinstall.d.ts +1 -0
- package/dist/commands/vds/reinstall.js +7 -0
- package/dist/commands/vds/reinstall.js.map +1 -1
- package/dist/commands/vds/resize.d.ts +1 -0
- package/dist/commands/vds/resize.js +6 -0
- package/dist/commands/vds/resize.js.map +1 -1
- package/dist/commands/vds/stats.d.ts +1 -0
- package/dist/commands/vds/stats.js +5 -0
- package/dist/commands/vds/stats.js.map +1 -1
- package/dist/commands/vps/activity.js +4 -4
- package/dist/commands/vps/activity.js.map +1 -1
- package/dist/commands/vps/bandwidth.js +5 -5
- package/dist/commands/vps/bandwidth.js.map +1 -1
- package/dist/commands/vps/boot-order.js +5 -5
- package/dist/commands/vps/boot-order.js.map +1 -1
- package/dist/commands/vps/console.js +9 -9
- package/dist/commands/vps/console.js.map +1 -1
- package/dist/commands/vps/details.d.ts +4 -0
- package/dist/commands/vps/details.js +20 -9
- package/dist/commands/vps/details.js.map +1 -1
- package/dist/commands/vps/ip/add.js +10 -9
- package/dist/commands/vps/ip/add.js.map +1 -1
- package/dist/commands/vps/ip/list.js +6 -6
- package/dist/commands/vps/ip/list.js.map +1 -1
- package/dist/commands/vps/list.js +4 -4
- package/dist/commands/vps/list.js.map +1 -1
- package/dist/commands/vps/order.d.ts +3 -2
- package/dist/commands/vps/order.js +25 -16
- package/dist/commands/vps/order.js.map +1 -1
- package/dist/commands/vps/power.js +14 -13
- package/dist/commands/vps/power.js.map +1 -1
- package/dist/commands/vps/reinstall.js +14 -14
- package/dist/commands/vps/reinstall.js.map +1 -1
- package/dist/commands/vps/resize.js +10 -9
- package/dist/commands/vps/resize.js.map +1 -1
- package/dist/commands/vps/stats.js +7 -7
- package/dist/commands/vps/stats.js.map +1 -1
- package/dist/help.js +0 -1
- package/dist/help.js.map +1 -1
- package/dist/tui/screens/Dashboard.js +1 -1
- package/dist/tui/screens/Dashboard.js.map +1 -1
- package/dist/tui/screens/Order.js +307 -78
- package/dist/tui/screens/Order.js.map +1 -1
- package/dist/tui/screens/Resources.js +31 -60
- package/dist/tui/screens/Resources.js.map +1 -1
- package/dist/ui/image-resolve.js +1 -1
- package/dist/ui/image-resolve.js.map +1 -1
- package/dist/ui/payment.d.ts +1 -1
- package/dist/ui/resource-detail.d.ts +3 -0
- package/dist/ui/{vps-detail.js → resource-detail.js} +8 -8
- package/dist/ui/resource-detail.js.map +1 -0
- package/dist/ui/resource-resolve.d.ts +4 -0
- package/dist/ui/resource-resolve.js +24 -0
- package/dist/ui/resource-resolve.js.map +1 -0
- package/dist/ui/wait.d.ts +1 -1
- package/dist/ui/wait.js +4 -4
- package/dist/ui/wait.js.map +1 -1
- package/package.json +1 -4
- package/dist/commands/bare-metal/index.d.ts +0 -4
- package/dist/commands/bare-metal/index.js +0 -5
- package/dist/commands/bare-metal/index.js.map +0 -1
- package/dist/commands/bare-metal/list.d.ts +0 -9
- package/dist/commands/bare-metal/list.js +0 -38
- package/dist/commands/bare-metal/list.js.map +0 -1
- package/dist/commands/bare-metal/order.d.ts +0 -6
- package/dist/commands/bare-metal/order.js +0 -27
- package/dist/commands/bare-metal/order.js.map +0 -1
- package/dist/ui/vps-detail.d.ts +0 -3
- package/dist/ui/vps-detail.js.map +0 -1
- package/dist/ui/vps-resolve.d.ts +0 -4
- package/dist/ui/vps-resolve.js +0 -24
- package/dist/ui/vps-resolve.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceIpList from "../../vps/ip/list.js";
|
|
2
2
|
export default class InstantMetalIpList extends ResourceIpList {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
};
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import ResourceIpList from "../../vps/ip/list.js";
|
|
2
2
|
export default class InstantMetalIpList extends ResourceIpList {
|
|
3
3
|
static description = "List an Instant Metal instance's IP addresses and extra-IP add-ons.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> instant-metal ip list 019e...",
|
|
6
|
+
"<%= config.bin %> instant-metal ip list 019e... -o json # {ips, addons, pending_addons}",
|
|
7
|
+
];
|
|
4
8
|
static args = ResourceIpList.args;
|
|
5
9
|
static flags = ResourceIpList.flags;
|
|
6
10
|
static baseFlags = ResourceIpList.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/instant-metal/ip/list.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc;IAC5D,MAAM,CAAC,WAAW,GAAG,qEAAqE,CAAC;IAC3F,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/instant-metal/ip/list.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc;IAC5D,MAAM,CAAC,WAAW,GAAG,qEAAqE,CAAC;IAC3F,MAAM,CAAC,QAAQ,GAAG;QACd,iDAAiD;QACjD,8FAA8F;KAC/F,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
@@ -4,6 +4,8 @@ export default class InstantMetalOrder extends ResourceOrder {
|
|
|
4
4
|
static examples = [
|
|
5
5
|
"<%= config.bin %> instant-metal order # interactive wizard, pre-filtered to Instant Metal",
|
|
6
6
|
"<%= config.bin %> instant-metal order --project <id> --plan <id> --location <id> --image <id> --payment-method <id>",
|
|
7
|
+
"<%= config.bin %> instant-metal order --plan <id> --location <id> --image <id> --payment-method <id> --billing-cycle yearly",
|
|
8
|
+
" # plan must have the yearly cycle enabled",
|
|
7
9
|
];
|
|
8
10
|
async run() {
|
|
9
11
|
this.argv.push("--category", "dedicated");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/order.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,kGAAkG,CAAC;IACxH,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,qHAAqH;
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/order.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,kGAAkG,CAAC;IACxH,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,qHAAqH;QACrH,6HAA6H;QAC7H,wGAAwG;KACzG,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourcePower from "../vps/power.js";
|
|
2
2
|
export default class InstantMetalPower extends ResourcePower {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
action: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import ResourcePower from "../vps/power.js";
|
|
2
2
|
export default class InstantMetalPower extends ResourcePower {
|
|
3
3
|
static description = "Power an Instant Metal instance on/off, reboot, shutdown, or cycle.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> instant-metal power 019e... on",
|
|
6
|
+
"<%= config.bin %> instant-metal power 019e... shutdown --wait # block until stopped; prompts first",
|
|
7
|
+
"<%= config.bin %> instant-metal power 019e... stop --yes # no prompt (required when piped)",
|
|
8
|
+
"<%= config.bin %> instant-metal power 019e... cycle --yes --wait --timeout 300 -o json",
|
|
9
|
+
];
|
|
4
10
|
static args = ResourcePower.args;
|
|
5
11
|
static flags = ResourcePower.flags;
|
|
6
12
|
static baseFlags = ResourcePower.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/power.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,qEAAqE,CAAC;IAC3F,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/power.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,qEAAqE,CAAC;IAC3F,MAAM,CAAC,QAAQ,GAAG;QACd,kDAAkD;QAClD,6GAA6G;QAC7G,0GAA0G;QAC1G,wFAAwF;KACzF,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceReinstall from "../vps/reinstall.js";
|
|
2
2
|
export default class InstantMetalReinstall extends ResourceReinstall {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import ResourceReinstall from "../vps/reinstall.js";
|
|
2
2
|
export default class InstantMetalReinstall extends ResourceReinstall {
|
|
3
3
|
static description = "Reinstall an Instant Metal instance with a new OS image (erases all data).";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> instant-metal reinstall 019e... --image 019f... # confirms, then prompts (masked) for a root password",
|
|
6
|
+
"cat pass.txt | <%= config.bin %> instant-metal reinstall 019e... --image 019f... --password-stdin --yes",
|
|
7
|
+
"<%= config.bin %> instant-metal reinstall 019e... --image 019f... --ssh-key 019g... --wait --yes",
|
|
8
|
+
"<%= config.bin %> instant-metal reinstall 019e... --image 019f... --ssh-public-key 'ssh-ed25519 AAAA... user@host'",
|
|
9
|
+
"<%= config.bin %> instant-metal reinstall 019e... --image 019f... --ssh-key 019g... --ciuser ubuntu",
|
|
10
|
+
];
|
|
4
11
|
static args = ResourceReinstall.args;
|
|
5
12
|
static flags = ResourceReinstall.flags;
|
|
6
13
|
static baseFlags = ResourceReinstall.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reinstall.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/reinstall.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;IAClE,MAAM,CAAC,WAAW,GAAG,4EAA4E,CAAC;IAClG,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"reinstall.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/reinstall.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;IAClE,MAAM,CAAC,WAAW,GAAG,4EAA4E,CAAC;IAClG,MAAM,CAAC,QAAQ,GAAG;QACd,sIAAsI;QACtI,yGAAyG;QACzG,kGAAkG;QAClG,oHAAoH;QACpH,qGAAqG;KACtG,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceResize from "../vps/resize.js";
|
|
2
2
|
export default class InstantMetalResize extends ResourceResize {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
};
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import ResourceResize from "../vps/resize.js";
|
|
2
2
|
export default class InstantMetalResize extends ResourceResize {
|
|
3
3
|
static description = "Resize an Instant Metal instance (change CPU / RAM / disk / bandwidth in place).";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> instant-metal resize 019e... --ram 8 --yes # bump RAM to 8 GB; keep CPU/disk",
|
|
6
|
+
"<%= config.bin %> instant-metal resize 019e... --plan <planId> --payment-method <id> --yes",
|
|
7
|
+
"<%= config.bin %> instant-metal resize 019e... --cpu 4 --ram 8 --disk 120 # TTY: quote + confirm interactively",
|
|
8
|
+
"<%= config.bin %> instant-metal resize 019e... --disk 200 --apply-credits -o json",
|
|
9
|
+
];
|
|
4
10
|
static args = ResourceResize.args;
|
|
5
11
|
static flags = ResourceResize.flags;
|
|
6
12
|
static baseFlags = ResourceResize.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/resize.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc;IAC5D,MAAM,CAAC,WAAW,GAAG,kFAAkF,CAAC;IACxG,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"resize.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/resize.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc;IAC5D,MAAM,CAAC,WAAW,GAAG,kFAAkF,CAAC;IACxG,MAAM,CAAC,QAAQ,GAAG;QACd,mHAAmH;QACnH,4FAA4F;QAC5F,sHAAsH;QACtH,mFAAmF;KACpF,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import ResourceStats from "../vps/stats.js";
|
|
2
2
|
export default class InstantMetalStats extends ResourceStats {
|
|
3
3
|
static description = "Show live CPU / memory / disk / uptime + network I/O for an Instant Metal instance.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> instant-metal stats 019e...",
|
|
6
|
+
"<%= config.bin %> instant-metal stats 019e... --timeframe day # sparklines over the last day",
|
|
7
|
+
"<%= config.bin %> instant-metal stats 019e... -o json # raw RRD array for scripting",
|
|
8
|
+
];
|
|
4
9
|
static args = ResourceStats.args;
|
|
5
10
|
static flags = ResourceStats.flags;
|
|
6
11
|
static baseFlags = ResourceStats.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/stats.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,qFAAqF,CAAC;IAC3G,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/instant-metal/stats.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,WAAW,GAAG,qFAAqF,CAAC;IAC3G,MAAM,CAAC,QAAQ,GAAG;QACd,+CAA+C;QAC/C,iGAAiG;QACjG,gGAAgG;KACjG,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
@@ -4,6 +4,8 @@ export default class OrderGpu extends ResourceOrder {
|
|
|
4
4
|
static examples = [
|
|
5
5
|
"<%= config.bin %> order gpu # interactive wizard, pre-filtered to GPU",
|
|
6
6
|
"<%= config.bin %> order gpu --project <id> --plan <id> --location <id> --image <id> --ssh-key <id> --payment-method <id>",
|
|
7
|
+
"<%= config.bin %> order gpu --plan <id> --location <id> --image <id> --ssh-key <id> --payment-method <id> --billing-cycle quarterly",
|
|
8
|
+
" # plan must have the quarterly cycle enabled",
|
|
7
9
|
];
|
|
8
10
|
async run() {
|
|
9
11
|
this.argv.push("--category", "gpu_cloud");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../../src/commands/order/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAChB,uFAAuF,CAAC;IAC1F,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,0HAA0H;
|
|
1
|
+
{"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../../src/commands/order/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAChB,uFAAuF,CAAC;IAC1F,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,0HAA0H;QAC1H,qIAAqI;QACrI,qHAAqH;KACtH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC"}
|
|
@@ -5,6 +5,8 @@ export default class OrderInstantMetal extends ResourceOrder {
|
|
|
5
5
|
static examples = [
|
|
6
6
|
"<%= config.bin %> order instant-metal # interactive wizard, Instant Metal plans",
|
|
7
7
|
"<%= config.bin %> order instant-metal --project <id> --plan <id> --location <id> --image <id> --ssh-key <id> --payment-method <id>",
|
|
8
|
+
"<%= config.bin %> order instant-metal --plan <id> --location <id> --image <id> --ssh-key <id> --payment-method <id> --billing-cycle yearly",
|
|
9
|
+
" # plan must have the yearly cycle enabled",
|
|
8
10
|
];
|
|
9
11
|
async run() {
|
|
10
12
|
this.argv.push("--category", "dedicated");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instant-metal.js","sourceRoot":"","sources":["../../../src/commands/order/instant-metal.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,GAChB,kFAAkF,CAAC;IACrF,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,oIAAoI;
|
|
1
|
+
{"version":3,"file":"instant-metal.js","sourceRoot":"","sources":["../../../src/commands/order/instant-metal.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAC1D,MAAM,CAAC,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,GAChB,kFAAkF,CAAC;IACrF,MAAM,CAAC,QAAQ,GAAG;QAChB,kHAAkH;QAClH,oIAAoI;QACpI,4IAA4I;QAC5I,kHAAkH;KACnH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC"}
|
|
@@ -5,7 +5,7 @@ export default class OrderStorage extends StorageOrder {
|
|
|
5
5
|
static examples = [
|
|
6
6
|
"<%= config.bin %> order storage # interactive wizard",
|
|
7
7
|
"<%= config.bin %> order storage --name backups --size 500 --location <id> --payment-method <id>",
|
|
8
|
-
"<%= config.bin %> order storage --name scratch --size 2000 --location <id> --attach-
|
|
8
|
+
"<%= config.bin %> order storage --name scratch --size 2000 --location <id> --attach-resource <resource-id> --apply-credits",
|
|
9
9
|
];
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/commands/order/storage.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,MAAM,CAAC,WAAW,GAChB,mEAAmE,CAAC;IACtE,MAAM,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,GAAG;QAChB,6FAA6F;QAC7F,iGAAiG;QACjG,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/commands/order/storage.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,MAAM,CAAC,WAAW,GAChB,mEAAmE,CAAC;IACtE,MAAM,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,GAAG;QAChB,6FAA6F;QAC7F,iGAAiG;QACjG,4HAA4H;KAC7H,CAAC"}
|
|
@@ -5,6 +5,8 @@ export default class OrderVps extends ResourceOrder {
|
|
|
5
5
|
static examples = [
|
|
6
6
|
"<%= config.bin %> order vps # interactive: custom-spec wizard",
|
|
7
7
|
"<%= config.bin %> order vps --cpu 4 --ram 8 --disk 80 --location <id> --image <id> --ssh-key <id> --payment-method <id>",
|
|
8
|
+
"<%= config.bin %> order vps --plan <id> --location <id> --image <id> --ssh-key <id> --payment-method <id> --billing-cycle yearly",
|
|
9
|
+
" # plan must have the yearly cycle enabled",
|
|
8
10
|
];
|
|
9
11
|
async run() {
|
|
10
12
|
this.argv.push("--category", "vps");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vps.js","sourceRoot":"","sources":["../../../src/commands/order/vps.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAChB,4FAA4F,CAAC;IAC/F,MAAM,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,MAAM,CAAC,QAAQ,GAAG;QAChB,0GAA0G;QAC1G,yHAAyH;
|
|
1
|
+
{"version":3,"file":"vps.js","sourceRoot":"","sources":["../../../src/commands/order/vps.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAChB,4FAA4F,CAAC;IAC/F,MAAM,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,MAAM,CAAC,QAAQ,GAAG;QAChB,0GAA0G;QAC1G,yHAAyH;QACzH,kIAAkI;QAClI,kHAAkH;KACnH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC"}
|
|
@@ -19,7 +19,7 @@ export default class OsImages extends BaseCommand {
|
|
|
19
19
|
await this.initClients();
|
|
20
20
|
const { flags } = await this.parse(OsImages);
|
|
21
21
|
try {
|
|
22
|
-
const images = (await this.clients.api.
|
|
22
|
+
const images = (await this.clients.api.orders.catalog()).images;
|
|
23
23
|
this.emit(images, () => {
|
|
24
24
|
if (images.length === 0) {
|
|
25
25
|
this.log("No OS images available.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"os-images.js","sourceRoot":"","sources":["../../src/commands/os-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,GAChB,yFAAyF,CAAC;IAC5F,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,GAAG;QAChB,6BAA6B;QAC7B,mFAAmF;QACnF,qCAAqC;KACtC,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;YACxB,WAAW,EACT,+GAA+G;YACjH,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"os-images.js","sourceRoot":"","sources":["../../src/commands/os-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,GAChB,yFAAyF,CAAC;IAC5F,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,GAAG;QAChB,6BAA6B;QAC7B,mFAAmF;QACnF,qCAAqC;KACtC,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;YACxB,WAAW,EACT,+GAA+G;YACjH,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACrB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,GAAG,CACN,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBAChB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,OAAO;iBACV,CAAC,CACH,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
|
|
@@ -3,19 +3,20 @@ import { BaseCommand } from "../base/command.js";
|
|
|
3
3
|
import { renderTable, shortId } from "../ui/table.js";
|
|
4
4
|
import { ApiError, AuthExpiredError, NetworkError } from "../api/errors.js";
|
|
5
5
|
import { statusColor } from "../ui/glyphs.js";
|
|
6
|
+
const VIRTUALIZED_KINDS = ["vps", "vds", "gpu_cloud", "instant_metal"];
|
|
6
7
|
export default class Resources extends BaseCommand {
|
|
7
8
|
static aliases = ["resource"];
|
|
8
|
-
static description = "List every resource across all kinds (vps,
|
|
9
|
+
static description = "List every resource across all kinds (vps, vds, gpu_cloud, instant_metal, transit, storage).";
|
|
9
10
|
static examples = [
|
|
10
11
|
"<%= config.bin %> resources",
|
|
11
|
-
"<%= config.bin %> resources --kind vps,
|
|
12
|
+
"<%= config.bin %> resources --kind vps,gpu_cloud",
|
|
12
13
|
"<%= config.bin %> resources --project 019e... --kind storage",
|
|
13
14
|
"<%= config.bin %> resources -o json",
|
|
14
15
|
];
|
|
15
16
|
static flags = {
|
|
16
17
|
project: Flags.string({ description: "Scope to a project id." }),
|
|
17
18
|
kind: Flags.string({
|
|
18
|
-
description: "Restrict to one or more kinds: vps,
|
|
19
|
+
description: "Restrict to one or more kinds: vps, vds, gpu_cloud, instant_metal, transit, storage (repeatable or comma-separated).",
|
|
19
20
|
multiple: true,
|
|
20
21
|
}),
|
|
21
22
|
};
|
|
@@ -27,11 +28,15 @@ export default class Resources extends BaseCommand {
|
|
|
27
28
|
.map((s) => s.trim().toLowerCase())
|
|
28
29
|
.filter(Boolean));
|
|
29
30
|
const wants = (k) => requested.size === 0 || requested.has(k);
|
|
31
|
+
// /resources returns every virtualized kind in one call; fetch once if
|
|
32
|
+
// ANY virtualized kind is wanted, then filter per-row by v.kind.
|
|
33
|
+
const wantsAnyVirtualized = VIRTUALIZED_KINDS.some((k) => wants(k));
|
|
30
34
|
const { api } = this.clients;
|
|
31
35
|
const errors = [];
|
|
32
|
-
const [vps,
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const [vps, transit, storage] = await Promise.all([
|
|
37
|
+
wantsAnyVirtualized
|
|
38
|
+
? api.virtualized.list(flags.project).catch((e) => recordErr(e, "virtualized"))
|
|
39
|
+
: [],
|
|
35
40
|
wants("transit") ? api.transit.list(flags.project).catch((e) => recordErr(e, "transit")) : [],
|
|
36
41
|
wants("storage") ? api.storage.list(flags.project).catch((e) => recordErr(e, "storage")) : [],
|
|
37
42
|
]);
|
|
@@ -46,26 +51,22 @@ export default class Resources extends BaseCommand {
|
|
|
46
51
|
return [];
|
|
47
52
|
}
|
|
48
53
|
const rows = [
|
|
49
|
-
...vps
|
|
50
|
-
// Trust the server-stamped kind (vps / vds / gpu_cloud / instant_metal)
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
54
|
+
...vps
|
|
55
|
+
// Trust the server-stamped kind (vps / vds / gpu_cloud / instant_metal)
|
|
56
|
+
// and filter per-row when --kind narrows the virtualized subset. Old
|
|
57
|
+
// code fell back to "vps" when the field was missing, silently
|
|
58
|
+
// relabelling any un-stamped row.
|
|
59
|
+
.filter((v) => v.kind !== undefined &&
|
|
60
|
+
VIRTUALIZED_KINDS.includes(v.kind) &&
|
|
61
|
+
wants(v.kind))
|
|
62
|
+
.map((v) => ({
|
|
63
|
+
kind: v.kind,
|
|
55
64
|
id: v.id,
|
|
56
65
|
name: v.hostname,
|
|
57
66
|
status: v.status,
|
|
58
67
|
location: v.location?.city ?? v.location?.name ?? "",
|
|
59
68
|
project_name: v.project_name ?? "",
|
|
60
69
|
})),
|
|
61
|
-
...metal.map((m) => ({
|
|
62
|
-
kind: "metal",
|
|
63
|
-
id: m.id,
|
|
64
|
-
name: m.hostname ?? m.reference,
|
|
65
|
-
status: m.is_active ? "active" : "inactive",
|
|
66
|
-
location: m.location_city ?? m.location_name ?? "",
|
|
67
|
-
project_name: m.project_name ?? "",
|
|
68
|
-
})),
|
|
69
70
|
...transit.map((t) => ({
|
|
70
71
|
kind: "transit",
|
|
71
72
|
id: t.id,
|
|
@@ -79,7 +80,7 @@ export default class Resources extends BaseCommand {
|
|
|
79
80
|
id: s.id,
|
|
80
81
|
name: s.name,
|
|
81
82
|
status: s.status,
|
|
82
|
-
location: s.
|
|
83
|
+
location: s.attached_resource_hostname ?? "",
|
|
83
84
|
project_name: s.project_name ?? "",
|
|
84
85
|
})),
|
|
85
86
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/commands/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/commands/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export default class StorageAttach extends BaseCommand {
|
|
|
6
6
|
volume: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
7
|
};
|
|
8
8
|
static flags: {
|
|
9
|
-
|
|
9
|
+
resource: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
};
|
|
11
11
|
run(): Promise<void>;
|
|
12
12
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { Args, Flags } from "@oclif/core";
|
|
2
2
|
import { BaseCommand } from "../../base/command.js";
|
|
3
3
|
import { resolveVolume } from "../../ui/volume-resolve.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveResourceRef } from "../../ui/resource-resolve.js";
|
|
5
5
|
export default class StorageAttach extends BaseCommand {
|
|
6
6
|
static description = [
|
|
7
|
-
"Attach a block volume to a VPS.",
|
|
7
|
+
"Attach a block volume to a virtualized resource (VPS, VDS, GPU Cloud, or Instant Metal).",
|
|
8
8
|
"",
|
|
9
9
|
"The volume must be detached and live on the same cluster/location as",
|
|
10
|
-
"the target
|
|
10
|
+
"the target resource. Re-attaching a volume re-binds its existing disk, so",
|
|
11
11
|
"data is preserved across detach/attach cycles.",
|
|
12
12
|
].join("\n");
|
|
13
13
|
static examples = [
|
|
14
|
-
"<%= config.bin %> storage attach backups --
|
|
15
|
-
"<%= config.bin %> storage attach 019e... --
|
|
16
|
-
"<%= config.bin %> storage attach 019e... --
|
|
14
|
+
"<%= config.bin %> storage attach backups --resource web-01 # by volume name + resource hostname",
|
|
15
|
+
"<%= config.bin %> storage attach 019e... --resource 019f...",
|
|
16
|
+
"<%= config.bin %> storage attach 019e... --resource 019f... -o json # emits {status, volume_id, resource_id, disk_slot}",
|
|
17
17
|
];
|
|
18
18
|
static args = {
|
|
19
19
|
volume: Args.string({
|
|
@@ -22,8 +22,8 @@ export default class StorageAttach extends BaseCommand {
|
|
|
22
22
|
}),
|
|
23
23
|
};
|
|
24
24
|
static flags = {
|
|
25
|
-
|
|
26
|
-
description: "Target
|
|
25
|
+
resource: Flags.string({
|
|
26
|
+
description: "Target resource — short id from `vps list` / `vds list` / `gpu list` / `instant-metal list`, full UUID, hostname, or IP. Must be on the volume's cluster.",
|
|
27
27
|
required: true,
|
|
28
28
|
}),
|
|
29
29
|
};
|
|
@@ -32,10 +32,10 @@ export default class StorageAttach extends BaseCommand {
|
|
|
32
32
|
const { args, flags } = await this.parse(StorageAttach);
|
|
33
33
|
try {
|
|
34
34
|
const volume = await resolveVolume(this.clients.api, args.volume);
|
|
35
|
-
const
|
|
36
|
-
const result = await this.clients.api.storage.attach(volume.id,
|
|
35
|
+
const resource = await resolveResourceRef(this.clients.api, flags.resource);
|
|
36
|
+
const result = await this.clients.api.storage.attach(volume.id, resource.id);
|
|
37
37
|
this.emit(result, () => {
|
|
38
|
-
this.log(`Attached ${volume.name} → ${
|
|
38
|
+
this.log(`Attached ${volume.name} → ${resource.hostname}`);
|
|
39
39
|
if (result.disk_slot)
|
|
40
40
|
this.log(`Disk slot: ${result.disk_slot}`);
|
|
41
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/storage/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/storage/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,WAAW,GAAG;QACnB,0FAA0F;QAC1F,EAAE;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,gDAAgD;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,CAAC,QAAQ,GAAG;QAChB,2GAA2G;QAC3G,6DAA6D;QAC7D,0HAA0H;KAC3H,CAAC;IACF,MAAM,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,8EAA8E;YAChF,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,WAAW,EACT,2JAA2J;YAC7J,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,IAAI,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { isInteractive } from "../../ui/wizard.js";
|
|
|
5
5
|
import { resolveVolume } from "../../ui/volume-resolve.js";
|
|
6
6
|
export default class StorageDetach extends BaseCommand {
|
|
7
7
|
static description = [
|
|
8
|
-
"Detach a block volume from its current
|
|
8
|
+
"Detach a block volume from its current resource.",
|
|
9
9
|
"",
|
|
10
10
|
"Disruptive if the guest still has the disk mounted — asks for",
|
|
11
11
|
"confirmation on a TTY (default No). When stdout is piped, pass --yes",
|
|
@@ -38,7 +38,7 @@ export default class StorageDetach extends BaseCommand {
|
|
|
38
38
|
exit: 1,
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
const target = volume.
|
|
41
|
+
const target = volume.attached_resource_hostname ? ` from ${volume.attached_resource_hostname}` : "";
|
|
42
42
|
const outcome = await confirmDestructive({
|
|
43
43
|
message: `Detach ${volume.name} (${volume.size_gb} GB)${target}?`,
|
|
44
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detach.js","sourceRoot":"","sources":["../../../src/commands/storage/detach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,WAAW,GAAG;QACnB,
|
|
1
|
+
{"version":3,"file":"detach.js","sourceRoot":"","sources":["../../../src/commands/storage/detach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAC,WAAW,GAAG;QACnB,kDAAkD;QAClD,EAAE;QACF,+DAA+D;QAC/D,sEAAsE;QACtE,oEAAoE;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,CAAC,QAAQ,GAAG;QAChB,uEAAuE;QACvE,+FAA+F;KAChG,CAAC;IACF,MAAM,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,4DAA4D;YAC9D,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kEAAkE;SAChF,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAElE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,mDAAmD,CAAC,EAAE;wBAClF,IAAI,EAAE,CAAC;qBACR,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;oBACvC,OAAO,EAAE,UAAU,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,OAAO,MAAM,GAAG;iBAClE,CAAC,CAAC;gBACH,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC5B,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;oBAC5C,OAAO;gBACT,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
|
|
@@ -28,7 +28,7 @@ export default class StorageList extends BaseCommand {
|
|
|
28
28
|
v.name,
|
|
29
29
|
formatSize(v.size_gb),
|
|
30
30
|
statusColor(v.status),
|
|
31
|
-
v.
|
|
31
|
+
v.attached_resource_hostname ?? (v.attached_resource_id ? shortId(v.attached_resource_id) : ""),
|
|
32
32
|
v.project_name ?? "",
|
|
33
33
|
])));
|
|
34
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/storage/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACnD,MAAM,CAAC,QAAQ,GAAG;QAChB,gCAAgC;QAChC,kDAAkD;QAClD,wCAAwC;KACzC,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;KACjE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,GAAG,CAAC,EAAU,EAAU,EAAE,CACxC,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;gBACjE,IAAI,CAAC,GAAG,CACN,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,EAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,IAAI;oBACN,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;oBACrB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;oBACrB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/storage/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACnD,MAAM,CAAC,QAAQ,GAAG;QAChB,gCAAgC;QAChC,kDAAkD;QAClD,wCAAwC;KACzC,CAAC;IACF,MAAM,CAAC,KAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;KACjE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,GAAG,CAAC,EAAU,EAAU,EAAE,CACxC,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;gBACjE,IAAI,CAAC,GAAG,CACN,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,EAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,IAAI;oBACN,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;oBACrB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;oBACrB,CAAC,CAAC,0BAA0B,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,CAAC,CAAC,YAAY,IAAI,EAAE;iBACrB,CAAC,CACH,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC"}
|
|
@@ -6,7 +6,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
6
6
|
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
7
|
size: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
location: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
-
"attach-
|
|
9
|
+
"attach-resource": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
"payment-method": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
"apply-credits": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
"no-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -10,7 +10,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
10
10
|
static examples = [
|
|
11
11
|
"<%= config.bin %> storage order # interactive wizard; defaults to active project",
|
|
12
12
|
"<%= config.bin %> storage order --name backups --size 500 --location 019e... --payment-method 019e...",
|
|
13
|
-
"<%= config.bin %> storage order --name scratch --size 2000 --location 019e... --attach-
|
|
13
|
+
"<%= config.bin %> storage order --name scratch --size 2000 --location 019e... --attach-resource 019e... --apply-credits",
|
|
14
14
|
"<%= config.bin %> storage order --no-interactive --name logs --size 100 --location 019e... --apply-credits -o json",
|
|
15
15
|
" # bills active project; pass --project <id> to override",
|
|
16
16
|
];
|
|
@@ -18,7 +18,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
18
18
|
name: Flags.string({ description: "Volume name (1..64 chars)." }),
|
|
19
19
|
size: Flags.integer({ description: "Size in GB (1..10000)." }),
|
|
20
20
|
location: Flags.string({ description: "Location id." }),
|
|
21
|
-
"attach-
|
|
21
|
+
"attach-resource": Flags.string({ description: "Attach to this resource id (VPS/VDS/GPU/Instant Metal) on creation." }),
|
|
22
22
|
"payment-method": Flags.string({ description: "Saved payment method id." }),
|
|
23
23
|
"apply-credits": Flags.boolean({ description: "Apply team credit balance first." }),
|
|
24
24
|
"no-interactive": Flags.boolean({
|
|
@@ -64,7 +64,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
64
64
|
name: flags.name,
|
|
65
65
|
size_gb: flags.size,
|
|
66
66
|
location_id: flags.location,
|
|
67
|
-
attach_resource_id: flags["attach-
|
|
67
|
+
attach_resource_id: flags["attach-resource"],
|
|
68
68
|
payment_method_id: payment.payment_method_id,
|
|
69
69
|
apply_credits: payment.apply_credits || undefined,
|
|
70
70
|
};
|
|
@@ -151,11 +151,11 @@ export default class StorageOrder extends BaseCommand {
|
|
|
151
151
|
disabled: l.in_stock ? undefined : "out of stock",
|
|
152
152
|
})));
|
|
153
153
|
}
|
|
154
|
-
let
|
|
155
|
-
if (!
|
|
154
|
+
let attachResource = flags["attach-resource"];
|
|
155
|
+
if (!attachResource) {
|
|
156
156
|
let candidates = [];
|
|
157
157
|
try {
|
|
158
|
-
const list = await this.clients.api.
|
|
158
|
+
const list = await this.clients.api.virtualized.list(projectId);
|
|
159
159
|
candidates = list
|
|
160
160
|
.filter((v) => !v.location_id || v.location_id === locationId)
|
|
161
161
|
.map((v) => ({ id: v.id, hostname: v.hostname }));
|
|
@@ -168,8 +168,8 @@ export default class StorageOrder extends BaseCommand {
|
|
|
168
168
|
name: `${v.hostname} ${v.id.slice(0, 8)}`,
|
|
169
169
|
})),
|
|
170
170
|
];
|
|
171
|
-
const pick = await pickFromCatalog("Attach to a
|
|
172
|
-
|
|
171
|
+
const pick = await pickFromCatalog("Attach to a resource in this project + location?", choices);
|
|
172
|
+
attachResource = pick === "__none__" ? undefined : pick;
|
|
173
173
|
}
|
|
174
174
|
const priceNum = Number(catalog.price_per_gb);
|
|
175
175
|
const displayUnits = useTb ? size / 1024 : size;
|
|
@@ -201,7 +201,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
201
201
|
"Location",
|
|
202
202
|
catalog.locations.find((l) => l.id === locationId)?.city ?? shortId(locationId),
|
|
203
203
|
],
|
|
204
|
-
["Attach to",
|
|
204
|
+
["Attach to", attachResource ? shortId(attachResource) : "(unattached)"],
|
|
205
205
|
["Payment", payment.summary],
|
|
206
206
|
["Monthly cost", monthly],
|
|
207
207
|
];
|
|
@@ -216,7 +216,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
216
216
|
name,
|
|
217
217
|
size_gb: size,
|
|
218
218
|
location_id: locationId,
|
|
219
|
-
attach_resource_id:
|
|
219
|
+
attach_resource_id: attachResource,
|
|
220
220
|
payment_method_id: payment.payment_method_id,
|
|
221
221
|
apply_credits: payment.apply_credits || undefined,
|
|
222
222
|
},
|