anycloud 0.0.2 → 0.0.4
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/cli/commands/daemon/index.js +27 -5
- package/dist/cli/commands/daemon/index.js.map +1 -1
- package/dist/cli/commands/job.js +71 -0
- package/dist/cli/commands/job.js.map +1 -0
- package/dist/cli/commands/list.js +10 -9
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/logs.js +6 -5
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/new.js +7 -63
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/terminate.js +50 -5
- package/dist/cli/commands/terminate.js.map +1 -1
- package/dist/cli/commands/upgrade.js +4 -4
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/api-client.js +28 -47
- package/dist/cli/services/api-client.js.map +1 -1
- package/dist/cli/services/non-interactive.js +3 -3
- package/dist/cli/services/non-interactive.js.map +1 -1
- package/dist/daemon/cluster.js +11 -11
- package/dist/daemon/cluster.js.map +1 -1
- package/dist/daemon/docker.js +16 -12
- package/dist/daemon/docker.js.map +1 -1
- package/dist/daemon/server.js +13 -13
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/assets/clouds/azure/regions-per-type.json +21584 -1117
- package/dist/shared/types.js +6 -0
- package/dist/shared/types.js.map +1 -1
- package/package.json +8 -6
- package/dist/cli/commands/daemon/start.js +0 -25
- package/dist/cli/commands/daemon/start.js.map +0 -1
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import {
|
|
2
|
+
import { startServer } from '../../../daemon/server.js';
|
|
3
|
+
import { log } from '../../../daemon/logger.js';
|
|
3
4
|
export function createDaemonCommand() {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
return new Command('daemon')
|
|
6
|
+
.description('Start the AnyCloud daemon (runs on VMs)')
|
|
7
|
+
.argument('<secret>', 'Deployment secret for authentication')
|
|
8
|
+
.argument('<conductor-url>', 'URL of the conductor to connect to')
|
|
9
|
+
.requiredOption('--type <type>', 'Deployment type: app or job')
|
|
10
|
+
.action(async (secret, conductorUrl, options) => {
|
|
11
|
+
try {
|
|
12
|
+
// Validate deployment type
|
|
13
|
+
if (options.type !== 'app' && options.type !== 'job') {
|
|
14
|
+
log.error('Invalid deployment type. Must be either "app" or "job"');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const deploymentType = options.type;
|
|
18
|
+
log.info('Starting AnyCloud Daemon', {
|
|
19
|
+
deploymentType,
|
|
20
|
+
nodeVersion: process.version,
|
|
21
|
+
});
|
|
22
|
+
await startServer(secret, conductorUrl);
|
|
23
|
+
log.info('Daemon started successfully');
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
log.error('Failed to start daemon', error);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
8
30
|
}
|
|
9
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;SAC5D,QAAQ,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SACjE,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CACL,KAAK,EACH,MAAc,EACd,YAAoB,EACpB,OAAyB,EACzB,EAAE;QACF,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,IAA2B,CAAC;YAE3D,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,cAAc;gBACd,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAExC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import prompts from 'prompts';
|
|
3
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
4
|
+
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
5
|
+
import { createDeployment } from '../services/api-client.js';
|
|
6
|
+
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
|
+
import { isNonInteractive, getConfigFromEnv, } from '../services/non-interactive.js';
|
|
8
|
+
export function createJobCommand() {
|
|
9
|
+
return new Command('job')
|
|
10
|
+
.description('Create a new job deployment')
|
|
11
|
+
.argument('<image>', 'Container image (e.g., alpine:latest, ghcr.io/user/job:latest)')
|
|
12
|
+
.option('--config <name>', 'Config name from anycloud.json')
|
|
13
|
+
.requiredOption('--name <name>', 'Job name')
|
|
14
|
+
.action(async (image, options) => {
|
|
15
|
+
try {
|
|
16
|
+
printInfo(`Creating job deployment for image: ${image}`);
|
|
17
|
+
// Determine config name
|
|
18
|
+
let configName = options.config;
|
|
19
|
+
// Check for environment variable in non-interactive mode
|
|
20
|
+
if (!configName && isNonInteractive()) {
|
|
21
|
+
configName = getConfigFromEnv();
|
|
22
|
+
if (!configName) {
|
|
23
|
+
printError('Non-interactive mode: Config name required.\n' +
|
|
24
|
+
' Provide --config flag or set ANYCLOUD_CONFIG environment variable.');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// If --config not provided and not in non-interactive mode, prompt for config selection
|
|
29
|
+
if (!configName) {
|
|
30
|
+
const profiles = await loadDeploymentProfiles();
|
|
31
|
+
const profileNames = Object.keys(profiles);
|
|
32
|
+
if (profileNames.length === 0) {
|
|
33
|
+
printError('No deployment profiles found in anycloud.json');
|
|
34
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const selection = await prompts({
|
|
38
|
+
type: 'select',
|
|
39
|
+
name: 'profile',
|
|
40
|
+
message: 'Select config:',
|
|
41
|
+
choices: profileNames.map((name) => ({
|
|
42
|
+
title: name,
|
|
43
|
+
value: name,
|
|
44
|
+
description: `${profiles[name].length} config(s)`,
|
|
45
|
+
})),
|
|
46
|
+
});
|
|
47
|
+
if (!selection.profile) {
|
|
48
|
+
process.exit(0); // User cancelled
|
|
49
|
+
}
|
|
50
|
+
configName = selection.profile;
|
|
51
|
+
}
|
|
52
|
+
printInfo(`Using config: ${configName}`);
|
|
53
|
+
// Get GitHub token
|
|
54
|
+
const accessToken = await getGitHubToken();
|
|
55
|
+
// Resolve deployment profile and credentials
|
|
56
|
+
const cloudConfigs = await resolveDeploymentProfile(configName);
|
|
57
|
+
// Create deployment with hardcoded 'job' type
|
|
58
|
+
const spinner = createSpinner('Creating job deployment...').start();
|
|
59
|
+
const response = await createDeployment(image, cloudConfigs, accessToken, configName, 'job', options.name);
|
|
60
|
+
spinner.succeed('Job deployment created!');
|
|
61
|
+
console.log('');
|
|
62
|
+
printInfo(`ID: ${response.id}`);
|
|
63
|
+
console.log('');
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
printError(`Failed to create job deployment: ${error.message}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/cli/commands/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { getGitHubToken } from '../services/auth.js';
|
|
3
|
-
import {
|
|
3
|
+
import { listDeployments } from '../services/api-client.js';
|
|
4
4
|
import { resolveAllDeploymentProfiles } from '../services/config.js';
|
|
5
5
|
import { printSuccess, printInfo, printError } from '../utils/output.js';
|
|
6
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
6
7
|
export function createListCommand() {
|
|
7
8
|
return new Command('list')
|
|
8
9
|
.description('List all deployments across all profiles')
|
|
@@ -11,13 +12,13 @@ export function createListCommand() {
|
|
|
11
12
|
// Get GitHub token
|
|
12
13
|
const accessToken = await getGitHubToken();
|
|
13
14
|
// Get all deployment configs with resolved credentials
|
|
14
|
-
const
|
|
15
|
-
if (Object.keys(
|
|
15
|
+
const anycloudConfigs = await resolveAllDeploymentProfiles();
|
|
16
|
+
if (Object.keys(anycloudConfigs).length === 0) {
|
|
16
17
|
printInfo('No deployment profiles found in anycloud.json');
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
|
-
//
|
|
20
|
-
const deployments = await
|
|
20
|
+
// List all deployments
|
|
21
|
+
const deployments = await listDeployments(anycloudConfigs, accessToken, packageJson.version);
|
|
21
22
|
if (deployments.length === 0) {
|
|
22
23
|
printInfo('No deployments found.');
|
|
23
24
|
return;
|
|
@@ -26,12 +27,12 @@ export function createListCommand() {
|
|
|
26
27
|
console.log('');
|
|
27
28
|
// Display deployments in a simple table format
|
|
28
29
|
deployments.forEach((deployment, index) => {
|
|
29
|
-
console.log(`${index + 1}.
|
|
30
|
-
printInfo(` URL: ${deployment.url}`);
|
|
31
|
-
printInfo(`
|
|
30
|
+
console.log(`${index + 1}. ID: ${deployment.id}`);
|
|
31
|
+
// printInfo(` URL: ${deployment.url}`);
|
|
32
|
+
printInfo(` Config Name: ${deployment.configName}`);
|
|
32
33
|
printInfo(` Status: ${deployment.status}`);
|
|
33
34
|
printInfo(` Size: ${deployment.size} VM(s)`);
|
|
34
|
-
printInfo(
|
|
35
|
+
printInfo(`${deployment.cloudConfigs.length} Cloud Config(s)`);
|
|
35
36
|
deployment.cloudConfigs.forEach((config, i) => {
|
|
36
37
|
printInfo(` ${i + 1}. ${config.cloudProvider} - ${config.region || 'default region'} (${config.vmType || 'default VM'})`);
|
|
37
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,uDAAuD;YACvD,MAAM,eAAe,GAAG,MAAM,4BAA4B,EAAE,CAAC;YAE7D,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,SAAS,CAAC,+CAA+C,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,eAAe,EACf,WAAW,EACX,WAAW,CAAC,OAAO,CACpB,CAAC;YAEF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,YAAY,CAAC,SAAS,WAAW,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,+CAA+C;YAC/C,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,oDAAoD;gBACpD,SAAS,CAAC,qBAAqB,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxD,SAAS,CAAC,qBAAqB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpD,SAAS,CAAC,qBAAqB,UAAU,CAAC,IAAI,QAAQ,CAAC,CAAC;gBACxD,SAAS,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC,CAAC;gBAC/D,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,SAAS,CACP,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,MAAM,IAAI,gBAAgB,KAAK,MAAM,CAAC,MAAM,IAAI,YAAY,GAAG,CACpH,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -2,21 +2,22 @@ import { Command } from 'commander';
|
|
|
2
2
|
import { getGitHubToken } from '../services/auth.js';
|
|
3
3
|
import { getDeploymentLogs } from '../services/api-client.js';
|
|
4
4
|
import { printInfo, printError } from '../utils/output.js';
|
|
5
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
5
6
|
export function createLogsCommand() {
|
|
6
7
|
return new Command('logs')
|
|
7
8
|
.description('Get deployment logs')
|
|
8
|
-
.argument('<
|
|
9
|
-
.action(async (
|
|
9
|
+
.argument('<id>', 'Deployment ID')
|
|
10
|
+
.action(async (id) => {
|
|
10
11
|
try {
|
|
11
|
-
printInfo(`Fetching logs for
|
|
12
|
+
printInfo(`Fetching logs for: ${id}`);
|
|
12
13
|
// Get GitHub token
|
|
13
14
|
const accessToken = await getGitHubToken();
|
|
14
15
|
// Get logs
|
|
15
|
-
const response = await getDeploymentLogs(
|
|
16
|
+
const response = await getDeploymentLogs(id, accessToken, packageJson.version);
|
|
16
17
|
console.log('');
|
|
17
18
|
console.log('Logs:');
|
|
18
19
|
console.log('─────────────────────────────────────────────────────');
|
|
19
|
-
console.log(response.
|
|
20
|
+
console.log(response.message);
|
|
20
21
|
console.log('─────────────────────────────────────────────────────');
|
|
21
22
|
console.log('');
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,SAAS,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAEtC,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,WAAW;YACX,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CACtC,EAAE,EACF,WAAW,EACX,WAAW,CAAC,OAAO,CACpB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/commands/new.js
CHANGED
|
@@ -1,71 +1,15 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import
|
|
3
|
-
import { getGitHubToken } from '../services/auth.js';
|
|
4
|
-
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
5
|
-
import { createDeployment } from '../services/api-client.js';
|
|
6
|
-
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
|
-
import { isNonInteractive, getDeployProfileFromEnv, } from '../services/non-interactive.js';
|
|
2
|
+
import { printError } from '../utils/output.js';
|
|
8
3
|
export function createNewCommand() {
|
|
9
4
|
return new Command('new')
|
|
10
|
-
.description('Create a new deployment')
|
|
5
|
+
.description('Create a new app deployment (not yet supported)')
|
|
11
6
|
.argument('<image>', 'Container image (e.g., nginx:alpine, ghcr.io/user/repo:latest)')
|
|
12
7
|
.option('--deploy <profile>', 'Deployment profile name from anycloud.json')
|
|
13
|
-
.option('--name <name>', 'Deployment name'
|
|
14
|
-
.action(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
let deployProfile = options.deploy;
|
|
19
|
-
// Check for environment variable in non-interactive mode
|
|
20
|
-
if (!deployProfile && isNonInteractive()) {
|
|
21
|
-
deployProfile = getDeployProfileFromEnv();
|
|
22
|
-
if (!deployProfile) {
|
|
23
|
-
printError('Non-interactive mode: Deployment profile required.\n' +
|
|
24
|
-
' Provide --deploy flag or set ANYCLOUD_DEPLOY_PROFILE environment variable.');
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// If --deploy not provided and not in non-interactive mode, prompt for profile selection
|
|
29
|
-
if (!deployProfile) {
|
|
30
|
-
const profiles = await loadDeploymentProfiles();
|
|
31
|
-
const profileNames = Object.keys(profiles);
|
|
32
|
-
if (profileNames.length === 0) {
|
|
33
|
-
printError('No deployment profiles found in anycloud.json');
|
|
34
|
-
printInfo('Please create anycloud.json with deployment profiles.');
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
const selection = await prompts({
|
|
38
|
-
type: 'select',
|
|
39
|
-
name: 'profile',
|
|
40
|
-
message: 'Select deployment profile:',
|
|
41
|
-
choices: profileNames.map((name) => ({
|
|
42
|
-
title: name,
|
|
43
|
-
value: name,
|
|
44
|
-
description: `${profiles[name].length} config(s)`,
|
|
45
|
-
})),
|
|
46
|
-
});
|
|
47
|
-
if (!selection.profile) {
|
|
48
|
-
process.exit(0); // User cancelled
|
|
49
|
-
}
|
|
50
|
-
deployProfile = selection.profile;
|
|
51
|
-
}
|
|
52
|
-
printInfo(`Using deployment profile: ${deployProfile}`);
|
|
53
|
-
// Get GitHub token
|
|
54
|
-
const accessToken = await getGitHubToken();
|
|
55
|
-
// Resolve deployment profile and credentials
|
|
56
|
-
const deployConfig = await resolveDeploymentProfile(deployProfile);
|
|
57
|
-
// Create deployment
|
|
58
|
-
const spinner = createSpinner('Creating deployment...').start();
|
|
59
|
-
const response = await createDeployment(image, deployConfig, accessToken, options.name);
|
|
60
|
-
spinner.succeed('Deployment created!');
|
|
61
|
-
console.log('');
|
|
62
|
-
printInfo(`Cluster ID: ${response.clusterId}`);
|
|
63
|
-
console.log('');
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
printError(`Failed to create deployment: ${error.message}`);
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
8
|
+
.option('--name <name>', 'Deployment name')
|
|
9
|
+
.action(() => {
|
|
10
|
+
printError('App deployments are not yet supported.');
|
|
11
|
+
printError('Use "anycloud job" for job deployments.');
|
|
12
|
+
process.exit(1);
|
|
69
13
|
});
|
|
70
14
|
}
|
|
71
15
|
//# sourceMappingURL=new.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;SACtB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,QAAQ,CACP,SAAS,EACT,gEAAgE,CACjE;SACA,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,CAAC;SAC1E,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC1C,MAAM,CAAC,GAAG,EAAE;QACX,UAAU,CAAC,wCAAwC,CAAC,CAAC;QACrD,UAAU,CAAC,yCAAyC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,16 +1,61 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import prompts from 'prompts';
|
|
2
3
|
import { terminateDeployment } from '../services/api-client.js';
|
|
4
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
5
|
+
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
3
6
|
import { printSuccess, printInfo, printError } from '../utils/output.js';
|
|
7
|
+
import { isNonInteractive, getConfigFromEnv, } from '../services/non-interactive.js';
|
|
8
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
4
9
|
export function createTerminateCommand() {
|
|
5
10
|
return new Command('terminate')
|
|
6
11
|
.description('Terminate a deployment')
|
|
7
|
-
.argument('<
|
|
8
|
-
.
|
|
9
|
-
.action(async (
|
|
12
|
+
.argument('<id>', 'Deployment ID')
|
|
13
|
+
.option('--config <name>', 'Config name from anycloud.json')
|
|
14
|
+
.action(async (id, options) => {
|
|
10
15
|
try {
|
|
11
|
-
printInfo(`Terminating
|
|
16
|
+
printInfo(`Terminating: ${id}`);
|
|
17
|
+
// Determine config name
|
|
18
|
+
let configName = options.config;
|
|
19
|
+
// Check for environment variable in non-interactive mode
|
|
20
|
+
if (!configName && isNonInteractive()) {
|
|
21
|
+
configName = getConfigFromEnv();
|
|
22
|
+
if (!configName) {
|
|
23
|
+
printError('Non-interactive mode: Config name required.\n' +
|
|
24
|
+
' Provide --config flag or set ANYCLOUD_CONFIG environment variable.');
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// If --config not provided and not in non-interactive mode, prompt for config selection
|
|
29
|
+
if (!configName) {
|
|
30
|
+
const profiles = await loadDeploymentProfiles();
|
|
31
|
+
const profileNames = Object.keys(profiles);
|
|
32
|
+
if (profileNames.length === 0) {
|
|
33
|
+
printError('No deployment profiles found in anycloud.json');
|
|
34
|
+
printInfo('Please create anycloud.json with deployment profiles.');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const selection = await prompts({
|
|
38
|
+
type: 'select',
|
|
39
|
+
name: 'profile',
|
|
40
|
+
message: 'Select config:',
|
|
41
|
+
choices: profileNames.map((name) => ({
|
|
42
|
+
title: name,
|
|
43
|
+
value: name,
|
|
44
|
+
description: `${profiles[name].length} config(s)`,
|
|
45
|
+
})),
|
|
46
|
+
});
|
|
47
|
+
if (!selection.profile) {
|
|
48
|
+
process.exit(0); // User cancelled
|
|
49
|
+
}
|
|
50
|
+
configName = selection.profile;
|
|
51
|
+
}
|
|
52
|
+
printInfo(`Using config: ${configName}`);
|
|
53
|
+
// Get GitHub token
|
|
54
|
+
const accessToken = await getGitHubToken();
|
|
55
|
+
// Resolve deployment profile and credentials
|
|
56
|
+
const cloudConfigs = await resolveDeploymentProfile(configName);
|
|
12
57
|
// Terminate deployment
|
|
13
|
-
const response = await terminateDeployment(
|
|
58
|
+
const response = await terminateDeployment(id, cloudConfigs, accessToken, configName, packageJson.version);
|
|
14
59
|
printSuccess('Deployment terminated successfully!');
|
|
15
60
|
if (response.message) {
|
|
16
61
|
printInfo(response.message);
|
|
@@ -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,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,15 @@ import { printSuccess, printInfo, printError } from '../utils/output.js';
|
|
|
4
4
|
export function createUpgradeCommand() {
|
|
5
5
|
return new Command('upgrade')
|
|
6
6
|
.description('Upgrade a deployment to a new container image')
|
|
7
|
-
.argument('<
|
|
7
|
+
.argument('<id>', 'Deployment ID')
|
|
8
8
|
.argument('<image>', 'New container image (e.g., nginx:latest, ghcr.io/user/repo:v2)')
|
|
9
9
|
.argument('<conductorToken>', 'Conductor token for the deployment')
|
|
10
|
-
.action(async (
|
|
10
|
+
.action(async (id, image, conductorToken) => {
|
|
11
11
|
try {
|
|
12
|
-
printInfo(`Upgrading
|
|
12
|
+
printInfo(`Upgrading: ${id}`);
|
|
13
13
|
printInfo(`New image: ${image}`);
|
|
14
14
|
// Upgrade deployment
|
|
15
|
-
const response = await upgradeDeployment(
|
|
15
|
+
const response = await upgradeDeployment(id, image, conductorToken);
|
|
16
16
|
printSuccess('Deployment upgraded successfully!');
|
|
17
17
|
if (response.message) {
|
|
18
18
|
printInfo(response.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;SACjC,QAAQ,CACP,SAAS,EACT,gEAAgE,CACjE;SACA,QAAQ,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,KAAa,EAAE,cAAsB,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC9B,SAAS,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC;YAEjC,qBAAqB;YACrB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YAEpE,YAAY,CAAC,mCAAmC,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { createNewCommand } from './commands/new.js';
|
|
4
|
+
import { createJobCommand } from './commands/job.js';
|
|
4
5
|
import { createListCommand } from './commands/list.js';
|
|
5
6
|
import { createLogsCommand } from './commands/logs.js';
|
|
6
7
|
import { createTerminateCommand } from './commands/terminate.js';
|
|
@@ -19,6 +20,7 @@ program
|
|
|
19
20
|
// Register commands
|
|
20
21
|
program.addCommand(createLoginCommand());
|
|
21
22
|
program.addCommand(createNewCommand());
|
|
23
|
+
program.addCommand(createJobCommand());
|
|
22
24
|
program.addCommand(createListCommand());
|
|
23
25
|
program.addCommand(createLogsCommand());
|
|
24
26
|
program.addCommand(createTerminateCommand());
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,0BAA0B;AAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -4,62 +4,43 @@ import { exitWithError } from '../utils/output.js';
|
|
|
4
4
|
* Create a new deployment
|
|
5
5
|
* POST /v1/new
|
|
6
6
|
*/
|
|
7
|
-
export async function createDeployment(image,
|
|
7
|
+
export async function createDeployment(image, cloudConfigs, accessToken, configName, deploymentType, id) {
|
|
8
8
|
const payload = {
|
|
9
9
|
image,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
anycloudConfigs: { [configName]: cloudConfigs },
|
|
11
|
+
configName,
|
|
12
12
|
accessToken,
|
|
13
|
-
|
|
13
|
+
id,
|
|
14
|
+
deploymentType,
|
|
15
|
+
};
|
|
16
|
+
const response = await apiRequest('/v1/new', 'POST', payload);
|
|
17
|
+
return {
|
|
18
|
+
id: response.id,
|
|
19
|
+
message: `Deployment created successfully`,
|
|
14
20
|
};
|
|
15
|
-
const url = `${CONDUCTOR_URL}/v1/new`;
|
|
16
|
-
try {
|
|
17
|
-
const response = await fetch(url, {
|
|
18
|
-
method: 'POST',
|
|
19
|
-
headers: {
|
|
20
|
-
'Content-Type': 'application/json',
|
|
21
|
-
},
|
|
22
|
-
body: JSON.stringify(payload),
|
|
23
|
-
});
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
const errorText = await response.text();
|
|
26
|
-
exitWithError(`API request failed: ${errorText || `HTTP ${response.status}`}`);
|
|
27
|
-
}
|
|
28
|
-
// Server returns plain text clusterId
|
|
29
|
-
const clusterId = await response.text();
|
|
30
|
-
return {
|
|
31
|
-
clusterId,
|
|
32
|
-
message: `Deployment created successfully`,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (error instanceof Error && error.message.includes('fetch')) {
|
|
37
|
-
exitWithError(`Failed to connect to AnyCloud API at ${CONDUCTOR_URL}\n`);
|
|
38
|
-
}
|
|
39
|
-
throw error;
|
|
40
|
-
}
|
|
41
21
|
}
|
|
42
22
|
/**
|
|
43
|
-
*
|
|
44
|
-
* POST /v1/
|
|
23
|
+
* List deployments for a specific deployment config
|
|
24
|
+
* POST /v1/list
|
|
45
25
|
*/
|
|
46
|
-
export async function
|
|
26
|
+
export async function listDeployments(anycloudConfigs, accessToken, daemonVersion, status = true) {
|
|
47
27
|
const payload = {
|
|
48
|
-
|
|
28
|
+
anycloudConfigs,
|
|
49
29
|
accessToken,
|
|
50
30
|
daemonVersion,
|
|
51
31
|
status,
|
|
52
32
|
};
|
|
53
|
-
return await apiRequest('/v1/
|
|
33
|
+
return await apiRequest('/v1/list', 'POST', payload);
|
|
54
34
|
}
|
|
55
35
|
/**
|
|
56
36
|
* Get deployment logs
|
|
57
37
|
* POST /v1/logs
|
|
58
38
|
*/
|
|
59
|
-
export async function getDeploymentLogs(
|
|
39
|
+
export async function getDeploymentLogs(id, accessToken, daemonVersion) {
|
|
60
40
|
const payload = {
|
|
61
|
-
|
|
41
|
+
id,
|
|
62
42
|
accessToken,
|
|
43
|
+
daemonVersion,
|
|
63
44
|
};
|
|
64
45
|
return await apiRequest('/v1/logs', 'POST', payload);
|
|
65
46
|
}
|
|
@@ -67,16 +48,22 @@ export async function getDeploymentLogs(clusterId, accessToken) {
|
|
|
67
48
|
* Terminate a deployment
|
|
68
49
|
* POST /v1/terminate
|
|
69
50
|
*/
|
|
70
|
-
export async function terminateDeployment(
|
|
71
|
-
const payload = {
|
|
51
|
+
export async function terminateDeployment(id, cloudConfigs, accessToken, configName, daemonVersion) {
|
|
52
|
+
const payload = {
|
|
53
|
+
id,
|
|
54
|
+
anycloudConfigs: { [configName]: cloudConfigs },
|
|
55
|
+
configName,
|
|
56
|
+
accessToken,
|
|
57
|
+
daemonVersion,
|
|
58
|
+
};
|
|
72
59
|
return await apiRequest('/v1/terminate', 'POST', payload);
|
|
73
60
|
}
|
|
74
61
|
/**
|
|
75
62
|
* Upgrade a deployment to a new image
|
|
76
63
|
* POST /v1/upgrade
|
|
77
64
|
*/
|
|
78
|
-
export async function upgradeDeployment(
|
|
79
|
-
const payload = {
|
|
65
|
+
export async function upgradeDeployment(id, image, conductorToken) {
|
|
66
|
+
const payload = { id, image, conductorToken };
|
|
80
67
|
return await apiRequest('/v1/upgrade', 'POST', payload);
|
|
81
68
|
}
|
|
82
69
|
/**
|
|
@@ -108,10 +95,4 @@ async function apiRequest(endpoint, method, body) {
|
|
|
108
95
|
throw error;
|
|
109
96
|
}
|
|
110
97
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Generate a unique app ID for new deployments
|
|
113
|
-
*/
|
|
114
|
-
function generateAppId() {
|
|
115
|
-
return `app-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
116
|
-
}
|
|
117
98
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/cli/services/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/cli/services/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,10 +95,10 @@ function getGCPCredentialsFromEnv() {
|
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
* Get
|
|
98
|
+
* Get config name from environment variable
|
|
99
99
|
*/
|
|
100
|
-
export function
|
|
101
|
-
return getEnvOptional('
|
|
100
|
+
export function getConfigFromEnv() {
|
|
101
|
+
return getEnvOptional('ANYCLOUD_CONFIG');
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Get credentials name from environment variable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../src/cli/services/non-interactive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../src/cli/services/non-interactive.ts"],"names":[],"mappings":"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"}
|