anycloud 0.0.28 → 0.0.30
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/binaries/anycloud-darwin-arm64 +0 -0
- package/binaries/anycloud-darwin-x64 +0 -0
- package/binaries/anycloud-linux-arm64 +0 -0
- package/binaries/anycloud-linux-x64 +0 -0
- package/dist/cli/commands/config/edit.js +3 -3
- package/dist/cli/commands/config/edit.js.map +1 -1
- package/dist/cli/commands/config/new.js +3 -3
- package/dist/cli/commands/config/new.js.map +1 -1
- package/dist/cli/commands/credentials/edit.js +16 -15
- package/dist/cli/commands/credentials/edit.js.map +1 -1
- package/dist/cli/commands/credentials/new.js +8 -7
- package/dist/cli/commands/credentials/new.js.map +1 -1
- package/dist/cli/commands/list.js +12 -14
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/logs.js +39 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/ssh.js +23 -158
- package/dist/cli/commands/ssh.js.map +1 -1
- package/dist/cli/commands/status.js +21 -23
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/terminate.js +16 -16
- package/dist/cli/commands/terminate.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/config.js +3 -34
- package/dist/cli/services/config.js.map +1 -1
- package/dist/cli/services/non-interactive.js +4 -3
- package/dist/cli/services/non-interactive.js.map +1 -1
- package/dist/cli/services/ssh.js +197 -0
- package/dist/cli/services/ssh.js.map +1 -0
- package/dist/shared/cloud-config.js +159 -0
- package/dist/shared/cloud-config.js.map +1 -0
- package/dist/shared/types.js +33 -106
- package/dist/shared/types.js.map +1 -1
- package/dist/shared/utils.js +72 -2
- package/dist/shared/utils.js.map +1 -1
- package/package.json +2 -1
package/dist/cli/commands/ssh.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { spawn } from 'child_process';
|
|
3
|
-
import { writeFileSync, unlinkSync } from 'fs';
|
|
4
|
-
import { tmpdir } from 'os';
|
|
5
|
-
import { join } from 'path';
|
|
6
2
|
import prompts from 'prompts';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { printInfo, printError, createSpinner, selectDeployment, } from '../utils/output.js';
|
|
10
|
-
import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.js';
|
|
11
|
-
import { DeploymentState, isExitedState, isVmAccessible, } from '../../shared/types.js';
|
|
12
|
-
import packageJson from '../../../package.json' with { type: 'json' };
|
|
3
|
+
import { resolveSSHContext, spawnSSH } from '../services/ssh.js';
|
|
4
|
+
import { printInfo, printError } from '../utils/output.js';
|
|
13
5
|
export function createSshCommand() {
|
|
14
6
|
return new Command('ssh')
|
|
15
7
|
.description('🔌 SSH into a deployment container')
|
|
@@ -26,113 +18,17 @@ Use --vm to SSH directly to the VM without entering the container.
|
|
|
26
18
|
`)
|
|
27
19
|
.action(async (id, options) => {
|
|
28
20
|
try {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (!
|
|
35
|
-
|
|
36
|
-
deploymentId = getEnvOptional('ANYCLOUD_DEPLOYMENT_ID');
|
|
37
|
-
if (!deploymentId) {
|
|
38
|
-
printError('Non-interactive mode: Deployment ID required.\n' +
|
|
39
|
-
' Provide ID as argument or set ANYCLOUD_DEPLOYMENT_ID environment variable.');
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
const loadingSpinner = createSpinner('Loading deployments...').start();
|
|
45
|
-
const deployments = await listDeployments({
|
|
46
|
-
accessToken,
|
|
47
|
-
version: packageJson.version,
|
|
48
|
-
});
|
|
49
|
-
loadingSpinner.stop();
|
|
50
|
-
if (deployments.length === 0) {
|
|
51
|
-
printInfo('No deployments found.');
|
|
52
|
-
process.exit(0);
|
|
53
|
-
}
|
|
54
|
-
console.log('');
|
|
55
|
-
const selectedDeployment = await selectDeployment(deployments);
|
|
56
|
-
if (!selectedDeployment) {
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
|
-
// Check if VM is accessible
|
|
60
|
-
if (!isVmAccessible(selectedDeployment.state)) {
|
|
61
|
-
printError(`Deployment is ${selectedDeployment.state}.\n` +
|
|
62
|
-
' Cannot SSH - VM is not accessible.');
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
// Block container SSH during starting (container may not exist yet)
|
|
66
|
-
if (selectedDeployment.state === DeploymentState.Starting &&
|
|
67
|
-
!options?.vm) {
|
|
68
|
-
printError(`Deployment is still starting (container may not be ready).\n` +
|
|
69
|
-
' Use "anycloud ssh --vm" to SSH directly to the VM.\n' +
|
|
70
|
-
' Or wait for the deployment to be running.');
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
deploymentId = selectedDeployment.id;
|
|
74
|
-
isCompletedJob = isExitedState(selectedDeployment.state);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Load credentials and SSH key for this deployment
|
|
78
|
-
let credentials;
|
|
79
|
-
let sshPrivateKey;
|
|
80
|
-
try {
|
|
81
|
-
credentials = await loadDeploymentCredentials(deploymentId);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
printError(`Credentials not found for deployment ${deploymentId}.\n` +
|
|
85
|
-
' This deployment may have been created from a different machine.\n' +
|
|
86
|
-
' Email support@anycloud.sh to reclaim it.');
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
sshPrivateKey = await loadSshKey(deploymentId);
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
printError(`SSH key not found for deployment ${deploymentId}.\n` +
|
|
94
|
-
' This deployment may have been created from a different machine.\n' +
|
|
95
|
-
' Email support@anycloud.sh to reclaim it.');
|
|
96
|
-
process.exit(1);
|
|
97
|
-
}
|
|
98
|
-
// Get VM IPs
|
|
99
|
-
const spinner = createSpinner('Getting VM info...').start();
|
|
100
|
-
const statusRequest = {
|
|
101
|
-
id: deploymentId,
|
|
102
|
-
credentials,
|
|
103
|
-
accessToken,
|
|
104
|
-
version: packageJson.version,
|
|
105
|
-
sshPrivateKey,
|
|
106
|
-
};
|
|
107
|
-
const response = await getDeploymentStatus(statusRequest);
|
|
108
|
-
spinner.stop();
|
|
109
|
-
if (!response.vmStatuses || response.vmStatuses.length === 0) {
|
|
110
|
-
printError('No VMs found for this deployment.');
|
|
111
|
-
process.exit(1);
|
|
112
|
-
}
|
|
113
|
-
// Select VM IP
|
|
114
|
-
let vmIp;
|
|
115
|
-
if (response.vmStatuses.length === 1) {
|
|
116
|
-
vmIp = response.vmStatuses[0].ip;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
// Multiple VMs - prompt for selection
|
|
120
|
-
const vmSelection = await prompts({
|
|
121
|
-
type: 'select',
|
|
122
|
-
name: 'ip',
|
|
123
|
-
message: 'Select VM to connect to:',
|
|
124
|
-
choices: response.vmStatuses.map((vm) => ({
|
|
125
|
-
title: vm.ip,
|
|
126
|
-
value: vm.ip,
|
|
127
|
-
})),
|
|
128
|
-
});
|
|
129
|
-
if (!vmSelection.ip) {
|
|
130
|
-
process.exit(0);
|
|
131
|
-
}
|
|
132
|
-
vmIp = vmSelection.ip;
|
|
21
|
+
const vmOnly = options?.vm ?? false;
|
|
22
|
+
const ctx = await resolveSSHContext({
|
|
23
|
+
id,
|
|
24
|
+
filterStarting: !vmOnly,
|
|
25
|
+
});
|
|
26
|
+
if (!ctx) {
|
|
27
|
+
process.exit(0);
|
|
133
28
|
}
|
|
29
|
+
const { deploymentId, vmIp, sshPrivateKey, isCompletedJob } = ctx;
|
|
134
30
|
// If job completed/errored, container has exited - prompt for snapshot
|
|
135
|
-
if (isCompletedJob && !
|
|
31
|
+
if (isCompletedJob && !vmOnly) {
|
|
136
32
|
const { proceed } = await prompts({
|
|
137
33
|
type: 'confirm',
|
|
138
34
|
name: 'proceed',
|
|
@@ -144,30 +40,12 @@ Use --vm to SSH directly to the VM without entering the container.
|
|
|
144
40
|
process.exit(0);
|
|
145
41
|
}
|
|
146
42
|
}
|
|
147
|
-
// Write SSH key to temp file
|
|
148
|
-
const keyFile = join(tmpdir(), `anycloud-ssh-${deploymentId}-${Date.now()}`);
|
|
149
|
-
writeFileSync(keyFile, sshPrivateKey, { mode: 0o600 });
|
|
150
|
-
const vmOnly = options?.vm ?? false;
|
|
151
43
|
printInfo(vmOnly
|
|
152
44
|
? `Connecting to VM ${vmIp}...`
|
|
153
45
|
: `Connecting to container on ${vmIp}...`);
|
|
154
46
|
console.log('');
|
|
155
|
-
//
|
|
156
|
-
|
|
157
|
-
'-i',
|
|
158
|
-
keyFile,
|
|
159
|
-
'-p',
|
|
160
|
-
'22',
|
|
161
|
-
'-o',
|
|
162
|
-
'StrictHostKeyChecking=no',
|
|
163
|
-
'-o',
|
|
164
|
-
'UserKnownHostsFile=/dev/null',
|
|
165
|
-
'-o',
|
|
166
|
-
'LogLevel=ERROR',
|
|
167
|
-
'-t',
|
|
168
|
-
`root@${vmIp}`,
|
|
169
|
-
];
|
|
170
|
-
// Add docker exec command unless --vm flag is set
|
|
47
|
+
// Build docker command unless --vm flag is set
|
|
48
|
+
let command;
|
|
171
49
|
if (!vmOnly) {
|
|
172
50
|
const snapshotName = `${deploymentId}-snapshot`;
|
|
173
51
|
// Get volume mounts from original container and pass to snapshot
|
|
@@ -176,34 +54,21 @@ Use --vm to SSH directly to the VM without entering the container.
|
|
|
176
54
|
const runSnapshot = `docker run -it --rm $MOUNTS ${snapshotName} bash`;
|
|
177
55
|
if (isCompletedJob) {
|
|
178
56
|
// Container exited - snapshot and run shell with volume mounts
|
|
179
|
-
|
|
57
|
+
command = `${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot}`;
|
|
180
58
|
}
|
|
181
59
|
else {
|
|
182
60
|
// Try exec first, fallback to snapshot if container exited (handles direct ID case)
|
|
183
|
-
|
|
184
|
-
`
|
|
61
|
+
command =
|
|
62
|
+
`docker exec -it ${deploymentId} bash 2>/dev/null || ` +
|
|
63
|
+
`(${getMounts} && docker commit ${deploymentId} ${snapshotName} && ${runSnapshot})`;
|
|
185
64
|
}
|
|
186
65
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
catch {
|
|
194
|
-
// Ignore cleanup errors
|
|
195
|
-
}
|
|
196
|
-
process.exit(code ?? 0);
|
|
197
|
-
});
|
|
198
|
-
sshProcess.on('error', (err) => {
|
|
199
|
-
try {
|
|
200
|
-
unlinkSync(keyFile);
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
// Ignore cleanup errors
|
|
204
|
-
}
|
|
205
|
-
printError(`SSH failed: ${err.message}`);
|
|
206
|
-
process.exit(1);
|
|
66
|
+
spawnSSH({
|
|
67
|
+
deploymentId,
|
|
68
|
+
vmIp,
|
|
69
|
+
sshPrivateKey,
|
|
70
|
+
command,
|
|
71
|
+
interactive: true,
|
|
207
72
|
});
|
|
208
73
|
}
|
|
209
74
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/cli/commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC;SAClE,WAAW,CACV,OAAO,EACP;;;;;;;;CAQL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,OAA0B,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC;YAEpC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC;gBAClC,EAAE;gBACF,cAAc,EAAE,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;YAElE,uEAAuE;YACvE,IAAI,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;oBAChC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EACL,mGAAmG;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,6CAA6C,CAAC,CAAC;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,SAAS,CACP,MAAM;gBACJ,CAAC,CAAC,oBAAoB,IAAI,KAAK;gBAC/B,CAAC,CAAC,8BAA8B,IAAI,KAAK,CAC5C,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,+CAA+C;YAC/C,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,GAAG,YAAY,WAAW,CAAC;gBAChD,iEAAiE;gBACjE,2EAA2E;gBAC3E,MAAM,SAAS,GAAG,+FAA+F,YAAY,eAAe,CAAC;gBAC7I,MAAM,WAAW,GAAG,+BAA+B,YAAY,OAAO,CAAC;gBAEvE,IAAI,cAAc,EAAE,CAAC;oBACnB,+DAA+D;oBAC/D,OAAO,GAAG,GAAG,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,EAAE,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,oFAAoF;oBACpF,OAAO;wBACL,mBAAmB,YAAY,uBAAuB;4BACtD,IAAI,SAAS,qBAAqB,YAAY,IAAI,YAAY,OAAO,WAAW,GAAG,CAAC;gBACxF,CAAC;YACH,CAAC;YAED,QAAQ,CAAC;gBACP,YAAY;gBACZ,IAAI;gBACJ,aAAa;gBACb,OAAO;gBACP,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,sBAAuB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { isNonInteractive, getEnvOptional, } from '../services/non-interactive.j
|
|
|
6
6
|
import { DeploymentState, isTerminalState, } from '../../shared/types.js';
|
|
7
7
|
import packageJson from '../../../package.json' with { type: 'json' };
|
|
8
8
|
// Wrap long lines to terminal width, preserving a prefix on continuation lines
|
|
9
|
-
const wrapLine = (line, prefix) => {
|
|
9
|
+
export const wrapLine = (line, prefix) => {
|
|
10
10
|
const maxWidth = process.stdout.columns || 80;
|
|
11
11
|
const available = maxWidth - prefix.length;
|
|
12
12
|
if (line.length <= available)
|
|
@@ -26,7 +26,7 @@ const wrapLine = (line, prefix) => {
|
|
|
26
26
|
return lines;
|
|
27
27
|
};
|
|
28
28
|
// Format deployment events as human-readable log
|
|
29
|
-
const formatEvents = (events) => {
|
|
29
|
+
export const formatEvents = (events) => {
|
|
30
30
|
if (events.length === 0)
|
|
31
31
|
return 'No events recorded';
|
|
32
32
|
return events
|
|
@@ -36,8 +36,10 @@ const formatEvents = (events) => {
|
|
|
36
36
|
if (e.metadata?.message) {
|
|
37
37
|
message = `: ${e.metadata.message}`;
|
|
38
38
|
}
|
|
39
|
-
// For error
|
|
40
|
-
if (e.state ===
|
|
39
|
+
// For error states (failed/errored), show the error string from metadata
|
|
40
|
+
if ((e.state === DeploymentState.Failed ||
|
|
41
|
+
e.state === DeploymentState.Errored) &&
|
|
42
|
+
e.metadata?.error) {
|
|
41
43
|
const errorStr = typeof e.metadata.error === 'string'
|
|
42
44
|
? e.metadata.error
|
|
43
45
|
: e.metadata.error?.message ||
|
|
@@ -49,20 +51,20 @@ const formatEvents = (events) => {
|
|
|
49
51
|
.join('\n');
|
|
50
52
|
};
|
|
51
53
|
// Format events with error lines using box drawing
|
|
52
|
-
const formatLogs = (events) => {
|
|
54
|
+
export const formatLogs = (events) => {
|
|
53
55
|
const formatted = formatEvents(events);
|
|
54
56
|
return formatted
|
|
55
57
|
.split('\n')
|
|
56
58
|
.map((line) => {
|
|
57
|
-
// Match error lines: [HH:MM:SS]
|
|
58
|
-
const errorMatch = line.match(/^(\[\d{2}:\d{2}:\d{2}\])
|
|
59
|
+
// Match error lines: [HH:MM:SS] failed: message or [HH:MM:SS] errored: message
|
|
60
|
+
const errorMatch = line.match(/^(\[\d{2}:\d{2}:\d{2}\]) (failed|errored): (.*)$/);
|
|
59
61
|
if (errorMatch) {
|
|
60
|
-
const [, timestamp, message] = errorMatch;
|
|
62
|
+
const [, timestamp, state, message] = errorMatch;
|
|
61
63
|
const prefix = ' │ ';
|
|
62
64
|
// Split message on newlines, then wrap each line to terminal width
|
|
63
65
|
const messageLines = message.split('\\n').filter((l) => l.trim());
|
|
64
66
|
const wrappedLines = messageLines.flatMap((l) => wrapLine(l.trim(), prefix).map((wrapped) => `${prefix}${wrapped}`));
|
|
65
|
-
return `${timestamp}
|
|
67
|
+
return `${timestamp} ${state}\n${wrappedLines.join('\n')}`;
|
|
66
68
|
}
|
|
67
69
|
return line;
|
|
68
70
|
})
|
|
@@ -72,16 +74,16 @@ export function createStatusCommand() {
|
|
|
72
74
|
return new Command('status')
|
|
73
75
|
.description('📊 Get deployment status')
|
|
74
76
|
.argument('[id]', 'Deployment ID (optional - will prompt to select if not provided)')
|
|
75
|
-
.option('--
|
|
76
|
-
.option('--
|
|
77
|
+
.option('-n, --limit <number>', 'Number of deployments to show', '20')
|
|
78
|
+
.option('--all', 'Show all deployments')
|
|
77
79
|
.addHelpText('after', `
|
|
78
80
|
Examples:
|
|
79
81
|
$ anycloud status anycloud-123153255
|
|
80
82
|
$ anycloud status
|
|
81
|
-
$ anycloud status
|
|
82
|
-
$ anycloud status --
|
|
83
|
+
$ anycloud status -n 50 # select from last 50 deployments
|
|
84
|
+
$ anycloud status --all # select from all deployments
|
|
83
85
|
|
|
84
|
-
By default, shows
|
|
86
|
+
By default, shows the last 20 deployments.
|
|
85
87
|
|
|
86
88
|
Selection:
|
|
87
89
|
anycloud-123153255 - myapp running ⚡
|
|
@@ -108,12 +110,8 @@ Output:
|
|
|
108
110
|
try {
|
|
109
111
|
let deploymentId = id;
|
|
110
112
|
let selectedDeployment;
|
|
111
|
-
// Determine
|
|
112
|
-
const
|
|
113
|
-
? 'all'
|
|
114
|
-
: options?.active
|
|
115
|
-
? 'active'
|
|
116
|
-
: 'default';
|
|
113
|
+
// Determine limit from flags
|
|
114
|
+
const limit = options?.all ? 0 : parseInt(options?.limit || '20', 10);
|
|
117
115
|
// Get GitHub token
|
|
118
116
|
const accessToken = await getGitHubToken();
|
|
119
117
|
// If no ID provided, fetch and prompt for selection
|
|
@@ -128,12 +126,12 @@ Output:
|
|
|
128
126
|
}
|
|
129
127
|
}
|
|
130
128
|
else {
|
|
131
|
-
// List deployments
|
|
129
|
+
// List deployments
|
|
132
130
|
const loadingSpinner = createSpinner('Loading deployments...').start();
|
|
133
131
|
const deployments = await listDeployments({
|
|
134
132
|
accessToken,
|
|
135
133
|
version: packageJson.version,
|
|
136
|
-
|
|
134
|
+
limit,
|
|
137
135
|
});
|
|
138
136
|
loadingSpinner.stop();
|
|
139
137
|
if (deployments.length === 0) {
|
|
@@ -155,7 +153,7 @@ Output:
|
|
|
155
153
|
const deployments = await listDeployments({
|
|
156
154
|
accessToken,
|
|
157
155
|
version: packageJson.version,
|
|
158
|
-
|
|
156
|
+
limit: 0, // Fetch all to find the specific deployment
|
|
159
157
|
});
|
|
160
158
|
selectedDeployment = deployments.find((d) => d.id === deploymentId);
|
|
161
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,eAAe,EACf,eAAe,GAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,MAAc,EAAY,EAAE;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,17 +40,17 @@ Output:
|
|
|
40
40
|
deploymentIds = envIds.split(',').map((id) => id.trim());
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
|
-
// List all deployments
|
|
43
|
+
// List all deployments, only show those with active VMs
|
|
44
44
|
const loadingSpinner = createSpinner('Loading deployments...').start();
|
|
45
|
-
const
|
|
45
|
+
const allDeployments = await listDeployments({
|
|
46
46
|
accessToken,
|
|
47
47
|
version: packageJson.version,
|
|
48
|
-
|
|
48
|
+
limit: 0,
|
|
49
49
|
});
|
|
50
|
+
const deployments = allDeployments.filter((d) => (d.vmCount ?? 1) > 0);
|
|
50
51
|
loadingSpinner.stop();
|
|
51
52
|
if (deployments.length === 0) {
|
|
52
|
-
printInfo('No
|
|
53
|
-
printInfo('Only active deployments can be terminated. Inactive deployments are already stopped.');
|
|
53
|
+
printInfo('No deployments to terminate.');
|
|
54
54
|
process.exit(0);
|
|
55
55
|
}
|
|
56
56
|
// Prompt for deployment selection (multi-select)
|
|
@@ -74,24 +74,24 @@ Output:
|
|
|
74
74
|
deploymentIds = selection.deployments;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
// When IDs are provided directly, validate they
|
|
77
|
+
// When IDs are provided directly, validate they have active VMs
|
|
78
78
|
if (ids?.length || isNonInteractive()) {
|
|
79
|
-
const
|
|
79
|
+
const allDeployments = await listDeployments({
|
|
80
80
|
accessToken,
|
|
81
81
|
version: packageJson.version,
|
|
82
|
-
|
|
82
|
+
limit: 0,
|
|
83
83
|
});
|
|
84
|
-
const
|
|
85
|
-
// Filter out
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
88
|
-
for (const id of
|
|
89
|
-
printError(`Deployment ${id}
|
|
84
|
+
const terminatableIds = new Set(allDeployments.filter((d) => (d.vmCount ?? 1) > 0).map((d) => d.id));
|
|
85
|
+
// Filter out deployments with no VMs and warn the user
|
|
86
|
+
const noVmIds = deploymentIds.filter((id) => !terminatableIds.has(id));
|
|
87
|
+
if (noVmIds.length > 0) {
|
|
88
|
+
for (const id of noVmIds) {
|
|
89
|
+
printError(`Deployment ${id} has no active VMs.`);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
deploymentIds = deploymentIds.filter((id) =>
|
|
92
|
+
deploymentIds = deploymentIds.filter((id) => terminatableIds.has(id));
|
|
93
93
|
if (deploymentIds.length === 0) {
|
|
94
|
-
printInfo('No
|
|
94
|
+
printInfo('No deployments to terminate.');
|
|
95
95
|
process.exit(0);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;SAC5B,WAAW,CAAC,sCAAsC,CAAC;SACnD,QAAQ,CACP,UAAU,EACV,mEAAmE,CACpE;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,GAAc,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,IAAI,aAAa,GAAa,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAErD,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,qDAAqD;YACrD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,yDAAyD;gBACzD,IAAI,gBAAgB,EAAE,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,UAAU,CACR,iDAAiD;4BAC/C,gHAAgH,CACnH,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,
|
|
1
|
+
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { createTerminateCommand } from './commands/terminate.js';
|
|
|
7
7
|
import { createListCommand } from './commands/list.js';
|
|
8
8
|
import { createUpdateCommand } from './commands/update.js';
|
|
9
9
|
import { createSshCommand } from './commands/ssh.js';
|
|
10
|
+
import { createLogsCommand } from './commands/logs.js';
|
|
10
11
|
import { createCredentialsCommand } from './commands/credentials/index.js';
|
|
11
12
|
import { createConfigCommand } from './commands/config/index.js';
|
|
12
13
|
import { createLoginCommand } from './commands/login.js';
|
|
@@ -57,6 +58,7 @@ program.addCommand(createListCommand());
|
|
|
57
58
|
program.addCommand(createTerminateCommand());
|
|
58
59
|
program.addCommand(createUpdateCommand());
|
|
59
60
|
program.addCommand(createSshCommand());
|
|
61
|
+
program.addCommand(createLogsCommand());
|
|
60
62
|
program.addCommand(createCredentialsCommand());
|
|
61
63
|
program.addCommand(createConfigCommand());
|
|
62
64
|
program.addCommand(_createDaemonCommand()); // Internal use only - hidden from help
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import yaml from 'js-yaml';
|
|
|
4
4
|
import { CONFIG_FILE_YAML, CONFIG_FILE_JSON } from '../config.js';
|
|
5
5
|
import { exitWithError, printInfo } from '../utils/output.js';
|
|
6
6
|
import { loadCredentials, getCredentialsByName } from './credentials.js';
|
|
7
|
-
import {
|
|
7
|
+
import { extractCredentials } from '../../shared/cloud-config.js';
|
|
8
8
|
/** Track which config file format is in use */
|
|
9
9
|
let activeConfigFile = null;
|
|
10
10
|
/**
|
|
@@ -90,14 +90,14 @@ export async function resolveDeploymentProfile(profileName) {
|
|
|
90
90
|
const credentialsMap = await loadCredentials();
|
|
91
91
|
const credentials = getCredentialsByName(credentialsMap, entry.credentialsName);
|
|
92
92
|
// Build CloudConfig by merging profile and credentials
|
|
93
|
-
return
|
|
93
|
+
return buildCloudConfigFromProfile(entry, credentials);
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
* Merge profile entry with credentials to create CloudConfig
|
|
97
97
|
* Uses spread operator to automatically include all profile fields,
|
|
98
98
|
* preventing bugs where new fields are forgotten
|
|
99
99
|
*/
|
|
100
|
-
function
|
|
100
|
+
function buildCloudConfigFromProfile(profile, credentials) {
|
|
101
101
|
// Destructure to exclude credentialsName (not needed in CloudConfig)
|
|
102
102
|
const { credentialsName: _, ...profileFields } = profile;
|
|
103
103
|
return {
|
|
@@ -106,9 +106,6 @@ function buildCloudConfig(profile, credentials) {
|
|
|
106
106
|
...profileFields, // Spread all profile fields (region, vmType, minVmCount, maxVmCount, spot, bucketName, etc.)
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
-
/**
|
|
110
|
-
* Extract credential fields based on cloud provider
|
|
111
|
-
*/
|
|
112
109
|
/**
|
|
113
110
|
* Convert deployment profiles to table entries for display
|
|
114
111
|
* Centralizes the mapping to avoid duplication and missing fields
|
|
@@ -126,32 +123,4 @@ export function profilesToTableEntries(profiles) {
|
|
|
126
123
|
availabilityZone: entry.availabilityZone,
|
|
127
124
|
}));
|
|
128
125
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Extract credential fields based on cloud provider
|
|
131
|
-
*/
|
|
132
|
-
function extractCredentials(credentials) {
|
|
133
|
-
switch (credentials.cloudProvider) {
|
|
134
|
-
case 'AWS': {
|
|
135
|
-
const creds = new AWSCreds();
|
|
136
|
-
creds.accessKeyId = credentials.accessKeyId;
|
|
137
|
-
creds.secretAccessKey = credentials.secretAccessKey;
|
|
138
|
-
return creds;
|
|
139
|
-
}
|
|
140
|
-
case 'GCP': {
|
|
141
|
-
const creds = new GCPCreds();
|
|
142
|
-
creds.projectId = credentials.projectId;
|
|
143
|
-
creds.privateKey = credentials.privateKey;
|
|
144
|
-
creds.clientEmail = credentials.clientEmail;
|
|
145
|
-
return creds;
|
|
146
|
-
}
|
|
147
|
-
case 'Azure': {
|
|
148
|
-
const creds = new AzureCreds();
|
|
149
|
-
creds.applicationId = credentials.applicationId;
|
|
150
|
-
creds.secret = credentials.secret;
|
|
151
|
-
creds.directoryId = credentials.directoryId;
|
|
152
|
-
creds.subscriptionId = credentials.subscriptionId;
|
|
153
|
-
return creds;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
126
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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"}
|