@edgible-team/cli 1.2.13 → 1.2.17
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/README.md +5 -3
- package/dist/client/api-client.d.ts +13 -1
- package/dist/client/api-client.d.ts.map +1 -1
- package/dist/client/api-client.js +19 -0
- package/dist/commands/agent/install.d.ts +2 -1
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +24 -7
- package/dist/commands/agent/start.d.ts +5 -1
- package/dist/commands/agent/start.d.ts.map +1 -1
- package/dist/commands/agent/start.js +19 -280
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +14 -7
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +3 -2
- package/dist/commands/ai/setup.d.ts +1 -1
- package/dist/commands/ai/setup.d.ts.map +1 -1
- package/dist/commands/ai.js +1 -1
- package/dist/commands/application/create-docker-compose.d.ts +3 -1
- package/dist/commands/application/create-docker-compose.d.ts.map +1 -1
- package/dist/commands/application/create-docker-compose.js +25 -69
- package/dist/commands/application/create-existing.d.ts +2 -2
- package/dist/commands/application/create-existing.d.ts.map +1 -1
- package/dist/commands/application/create-existing.js +27 -132
- package/dist/commands/application/create-managed-process.d.ts +3 -1
- package/dist/commands/application/create-managed-process.d.ts.map +1 -1
- package/dist/commands/application/create-managed-process.js +31 -75
- package/dist/commands/application/delete.d.ts +2 -1
- package/dist/commands/application/delete.d.ts.map +1 -1
- package/dist/commands/application/delete.js +19 -5
- package/dist/commands/application/update.d.ts +3 -0
- package/dist/commands/application/update.d.ts.map +1 -1
- package/dist/commands/application/update.js +45 -1
- package/dist/commands/application.d.ts.map +1 -1
- package/dist/commands/application.js +33 -19
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +44 -0
- package/dist/commands/debug.js +1 -1
- package/dist/commands/device/application-health.d.ts +7 -0
- package/dist/commands/device/application-health.d.ts.map +1 -0
- package/dist/commands/device/application-health.js +103 -0
- package/dist/commands/device/delete.d.ts +7 -0
- package/dist/commands/device/delete.d.ts.map +1 -0
- package/dist/commands/device/delete.js +69 -0
- package/dist/commands/device/health.d.ts +7 -0
- package/dist/commands/device/health.d.ts.map +1 -0
- package/dist/commands/device/health.js +78 -0
- package/dist/commands/device/list.d.ts +5 -0
- package/dist/commands/device/list.d.ts.map +1 -0
- package/dist/commands/device/list.js +46 -0
- package/dist/commands/device/telemetry.d.ts +8 -0
- package/dist/commands/device/telemetry.d.ts.map +1 -0
- package/dist/commands/device/telemetry.js +59 -0
- package/dist/commands/device.d.ts +6 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +86 -0
- package/dist/commands/stack/deploy.d.ts +8 -0
- package/dist/commands/stack/deploy.d.ts.map +1 -0
- package/dist/commands/stack/deploy.js +61 -0
- package/dist/commands/stack/diff.d.ts +7 -0
- package/dist/commands/stack/diff.d.ts.map +1 -0
- package/dist/commands/stack/diff.js +66 -0
- package/dist/commands/stack/status.d.ts +9 -0
- package/dist/commands/stack/status.d.ts.map +1 -0
- package/dist/commands/stack/status.js +55 -0
- package/dist/commands/stack/teardown.d.ts +8 -0
- package/dist/commands/stack/teardown.d.ts.map +1 -0
- package/dist/commands/stack/teardown.js +107 -0
- package/dist/commands/stack/validate.d.ts +7 -0
- package/dist/commands/stack/validate.d.ts.map +1 -0
- package/dist/commands/stack/validate.js +44 -0
- package/dist/commands/stack.d.ts +10 -0
- package/dist/commands/stack.d.ts.map +1 -0
- package/dist/commands/stack.js +117 -0
- package/dist/commands/utils/auth-prompt.d.ts +25 -0
- package/dist/commands/utils/auth-prompt.d.ts.map +1 -0
- package/dist/commands/utils/auth-prompt.js +115 -0
- package/dist/commands/utils/device-prompt.d.ts +18 -0
- package/dist/commands/utils/device-prompt.d.ts.map +1 -0
- package/dist/commands/utils/device-prompt.js +58 -0
- package/dist/commands/utils/output-formatter.d.ts +13 -0
- package/dist/commands/utils/output-formatter.d.ts.map +1 -1
- package/dist/commands/utils/output-formatter.js +21 -0
- package/dist/index.js +4 -0
- package/dist/services/LocalAgentManager.d.ts +2 -1
- package/dist/services/LocalAgentManager.d.ts.map +1 -1
- package/dist/services/LocalAgentManager.js +6 -4
- package/dist/services/application/ApplicationService.d.ts +19 -0
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +14 -1
- package/dist/services/device/DeviceService.d.ts +62 -0
- package/dist/services/device/DeviceService.d.ts.map +1 -0
- package/dist/services/device/DeviceService.js +235 -0
- package/dist/services/edgible.d.ts +3 -1
- package/dist/services/edgible.d.ts.map +1 -1
- package/dist/services/edgible.js +5 -4
- package/dist/services/instances.d.ts +27 -1
- package/dist/services/instances.d.ts.map +1 -1
- package/dist/services/instances.js +53 -4
- package/dist/services/stack/DependencyGraphManager.d.ts +69 -0
- package/dist/services/stack/DependencyGraphManager.d.ts.map +1 -0
- package/dist/services/stack/DependencyGraphManager.js +204 -0
- package/dist/services/stack/DeviceResolver.d.ts +63 -0
- package/dist/services/stack/DeviceResolver.d.ts.map +1 -0
- package/dist/services/stack/DeviceResolver.js +147 -0
- package/dist/services/stack/GatewayResolver.d.ts +84 -0
- package/dist/services/stack/GatewayResolver.d.ts.map +1 -0
- package/dist/services/stack/GatewayResolver.js +179 -0
- package/dist/services/stack/StackParser.d.ts +38 -0
- package/dist/services/stack/StackParser.d.ts.map +1 -0
- package/dist/services/stack/StackParser.js +234 -0
- package/dist/services/stack/StackService.d.ts +76 -0
- package/dist/services/stack/StackService.d.ts.map +1 -0
- package/dist/services/stack/StackService.js +476 -0
- package/dist/types/AgentConfig.d.ts +26 -0
- package/dist/types/AgentConfig.d.ts.map +1 -1
- package/dist/types/ApiRequests.d.ts +5 -1
- package/dist/types/ApiRequests.d.ts.map +1 -1
- package/dist/types/ApiResponses.d.ts +5 -0
- package/dist/types/ApiResponses.d.ts.map +1 -1
- package/dist/types/JobTypes.d.ts +103 -0
- package/dist/types/JobTypes.d.ts.map +1 -0
- package/dist/types/JobTypes.js +80 -0
- package/dist/types/WebSocketMessages.d.ts +89 -0
- package/dist/types/WebSocketMessages.d.ts.map +1 -0
- package/dist/types/WebSocketMessages.js +5 -0
- package/dist/types/backendJobs.d.ts +102 -0
- package/dist/types/backendJobs.d.ts.map +1 -0
- package/dist/types/backendJobs.js +5 -0
- package/dist/types/models/ApplicationData.d.ts +1 -1
- package/dist/types/models/ApplicationData.d.ts.map +1 -1
- package/dist/types/models/DeviceData.d.ts +4 -0
- package/dist/types/models/DeviceData.d.ts.map +1 -1
- package/dist/types/stack.d.ts +191 -0
- package/dist/types/stack.d.ts.map +1 -0
- package/dist/types/stack.js +5 -0
- package/dist/types/validation/schemas.d.ts +20 -20
- package/dist/types/validation/schemas.js +1 -1
- package/dist/utils/stack-errors.d.ts +103 -0
- package/dist/utils/stack-errors.d.ts.map +1 -0
- package/dist/utils/stack-errors.js +158 -0
- package/dist/utils/stack-file.d.ts +11 -0
- package/dist/utils/stack-file.d.ts.map +1 -0
- package/dist/utils/stack-file.js +66 -0
- package/dist/validation/stack-schemas.d.ts +535 -0
- package/dist/validation/stack-schemas.d.ts.map +1 -0
- package/dist/validation/stack-schemas.js +178 -0
- package/package.json +4 -2
- package/dist/commands/agent/agent-handlers.d.ts +0 -45
- package/dist/commands/agent/agent-handlers.d.ts.map +0 -1
- package/dist/commands/agent/agent-handlers.js +0 -1159
- package/dist/commands/application/api-keys.d.ts +0 -3
- package/dist/commands/application/api-keys.d.ts.map +0 -1
- package/dist/commands/application/api-keys.js +0 -227
- package/dist/commands/application/create-compose.d.ts +0 -3
- package/dist/commands/application/create-compose.d.ts.map +0 -1
- package/dist/commands/application/create-compose.js +0 -381
- package/dist/commands/application/create-interactive.d.ts +0 -3
- package/dist/commands/application/create-interactive.d.ts.map +0 -1
- package/dist/commands/application/create-interactive.js +0 -326
- package/dist/commands/application/create-workload.d.ts +0 -5
- package/dist/commands/application/create-workload.d.ts.map +0 -1
- package/dist/commands/application/create-workload.js +0 -48
- package/dist/commands/application/short-codes.d.ts +0 -3
- package/dist/commands/application/short-codes.d.ts.map +0 -1
- package/dist/commands/application/short-codes.js +0 -226
- package/dist/commands/application/toggle.d.ts +0 -2
- package/dist/commands/application/toggle.d.ts.map +0 -1
- package/dist/commands/application/toggle.js +0 -78
- package/dist/commands/examples/migrated-command-example.d.ts +0 -31
- package/dist/commands/examples/migrated-command-example.d.ts.map +0 -1
- package/dist/commands/examples/migrated-command-example.js +0 -180
- package/dist/commands/managedGateway/create.d.ts +0 -6
- package/dist/commands/managedGateway/create.d.ts.map +0 -1
- package/dist/commands/managedGateway/create.js +0 -50
- package/dist/commands/managedGateway/delete.d.ts +0 -5
- package/dist/commands/managedGateway/delete.d.ts.map +0 -1
- package/dist/commands/managedGateway/delete.js +0 -57
- package/dist/commands/managedGateway/get.d.ts +0 -4
- package/dist/commands/managedGateway/get.d.ts.map +0 -1
- package/dist/commands/managedGateway/get.js +0 -71
- package/dist/commands/managedGateway/haproxy-stats.d.ts +0 -6
- package/dist/commands/managedGateway/haproxy-stats.d.ts.map +0 -1
- package/dist/commands/managedGateway/haproxy-stats.js +0 -131
- package/dist/commands/managedGateway/list.d.ts +0 -4
- package/dist/commands/managedGateway/list.d.ts.map +0 -1
- package/dist/commands/managedGateway/list.js +0 -50
- package/dist/commands/managedGateway/logs.d.ts +0 -10
- package/dist/commands/managedGateway/logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/logs.js +0 -100
- package/dist/commands/managedGateway/reboot.d.ts +0 -5
- package/dist/commands/managedGateway/reboot.d.ts.map +0 -1
- package/dist/commands/managedGateway/reboot.js +0 -95
- package/dist/commands/managedGateway/resync.d.ts +0 -10
- package/dist/commands/managedGateway/resync.d.ts.map +0 -1
- package/dist/commands/managedGateway/resync.js +0 -69
- package/dist/commands/managedGateway/ssh.d.ts +0 -4
- package/dist/commands/managedGateway/ssh.d.ts.map +0 -1
- package/dist/commands/managedGateway/ssh.js +0 -130
- package/dist/commands/managedGateway/wipe-logs.d.ts +0 -4
- package/dist/commands/managedGateway/wipe-logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/wipe-logs.js +0 -67
- package/dist/commands/managedGateway/wireguard.d.ts +0 -4
- package/dist/commands/managedGateway/wireguard.d.ts.map +0 -1
- package/dist/commands/managedGateway/wireguard.js +0 -68
- package/dist/di/bindings.d.ts +0 -15
- package/dist/di/bindings.d.ts.map +0 -1
- package/dist/di/bindings.js +0 -99
- package/dist/di/container.d.ts +0 -44
- package/dist/di/container.d.ts.map +0 -1
- package/dist/di/container.js +0 -88
- package/dist/di/types.d.ts +0 -23
- package/dist/di/types.d.ts.map +0 -1
- package/dist/di/types.js +0 -32
- package/dist/repositories/config-repository.d.ts +0 -46
- package/dist/repositories/config-repository.d.ts.map +0 -1
- package/dist/repositories/config-repository.js +0 -62
- package/dist/repositories/gateway-repository.d.ts +0 -37
- package/dist/repositories/gateway-repository.d.ts.map +0 -1
- package/dist/repositories/gateway-repository.js +0 -35
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleApplicationToggle = handleApplicationToggle;
|
|
7
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const command_wrapper_1 = require("../base/command-wrapper");
|
|
10
|
-
const instances_1 = require("../../services/instances");
|
|
11
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
12
|
-
async function handleApplicationToggle(appId) {
|
|
13
|
-
(0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
14
|
-
(0, config_validator_1.validateConfig)(instances_1.configManager, {
|
|
15
|
-
requireAuth: true,
|
|
16
|
-
requireOrganization: true,
|
|
17
|
-
});
|
|
18
|
-
let appId = options.appId;
|
|
19
|
-
if (!appId) {
|
|
20
|
-
const applications = await instances_1.applicationService.getApplications();
|
|
21
|
-
if (applications.length === 0) {
|
|
22
|
-
console.log(chalk_1.default.yellow('⚠ No applications configured'));
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const { selectedAppId } = await inquirer_1.default.prompt([
|
|
26
|
-
{
|
|
27
|
-
type: 'list',
|
|
28
|
-
name: 'selectedAppId',
|
|
29
|
-
message: 'Select application:',
|
|
30
|
-
choices: applications.map((app) => ({
|
|
31
|
-
name: `${app.name} (${app.id})`,
|
|
32
|
-
value: app.id,
|
|
33
|
-
})),
|
|
34
|
-
},
|
|
35
|
-
]);
|
|
36
|
-
appId = selectedAppId;
|
|
37
|
-
}
|
|
38
|
-
if (!appId) {
|
|
39
|
-
throw new Error('Application ID is required');
|
|
40
|
-
}
|
|
41
|
-
let codeId = options.codeId;
|
|
42
|
-
if (!codeId) {
|
|
43
|
-
const codes = await instances_1.applicationService.listShortCodes(appId);
|
|
44
|
-
if (codes.length === 0) {
|
|
45
|
-
console.log(chalk_1.default.yellow('⚠ No short codes configured'));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const { selectedCodeId } = await inquirer_1.default.prompt([
|
|
49
|
-
{
|
|
50
|
-
type: 'list',
|
|
51
|
-
name: 'selectedCodeId',
|
|
52
|
-
message: 'Select short code to toggle:',
|
|
53
|
-
choices: codes.map((code) => ({
|
|
54
|
-
name: `${code.name} (${code.code}) - ${code.enabled ? 'Enabled' : 'Disabled'}`,
|
|
55
|
-
value: code.id,
|
|
56
|
-
})),
|
|
57
|
-
},
|
|
58
|
-
]);
|
|
59
|
-
codeId = selectedCodeId;
|
|
60
|
-
}
|
|
61
|
-
if (!codeId || !appId) {
|
|
62
|
-
throw new Error('Application ID and Code ID are required');
|
|
63
|
-
}
|
|
64
|
-
// Get current status
|
|
65
|
-
const codes = await instances_1.applicationService.listShortCodes(appId);
|
|
66
|
-
const code = codes.find((c) => c.id === codeId);
|
|
67
|
-
if (!code) {
|
|
68
|
-
throw new Error('Short code not found');
|
|
69
|
-
}
|
|
70
|
-
await instances_1.applicationService.updateShortCode(appId, codeId, { enabled: !code.enabled });
|
|
71
|
-
console.log(chalk_1.default.green(`\n✓ Short code ${code.enabled ? 'disabled' : 'enabled'} successfully!`));
|
|
72
|
-
}, {
|
|
73
|
-
requireAuth: true,
|
|
74
|
-
requireOrganization: true,
|
|
75
|
-
});
|
|
76
|
-
;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=toggle.js.map
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example of a migrated command using all the new infrastructure
|
|
3
|
-
* This demonstrates how to use:
|
|
4
|
-
* - Dependency injection
|
|
5
|
-
* - Logger abstraction
|
|
6
|
-
* - Validation with Zod
|
|
7
|
-
* - Command wrapper
|
|
8
|
-
* - Shared utilities
|
|
9
|
-
* - Proper TypeScript types
|
|
10
|
-
*
|
|
11
|
-
* This is a reference implementation for migrating other commands
|
|
12
|
-
*/
|
|
13
|
-
import { Command } from 'commander';
|
|
14
|
-
/**
|
|
15
|
-
* Example: Migrated gateway create command
|
|
16
|
-
* This shows the pattern for all command migrations
|
|
17
|
-
*/
|
|
18
|
-
export declare function setupExampleGatewayCreateCommand(program: Command): void;
|
|
19
|
-
/**
|
|
20
|
-
* Migration checklist:
|
|
21
|
-
*
|
|
22
|
-
* ✅ Use DI container to get services
|
|
23
|
-
* ✅ Use logger instead of console.log
|
|
24
|
-
* ✅ Validate inputs with Zod schemas
|
|
25
|
-
* ✅ Use wrapCommand for error handling
|
|
26
|
-
* ✅ Use shared utilities for common operations
|
|
27
|
-
* ✅ Use proper TypeScript types (no any)
|
|
28
|
-
* ✅ Validate configuration before execution
|
|
29
|
-
* ✅ Format output consistently
|
|
30
|
-
*/
|
|
31
|
-
//# sourceMappingURL=migrated-command-example.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrated-command-example.d.ts","sourceRoot":"","sources":["../../../src/commands/examples/migrated-command-example.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+KvE;AAED;;;;;;;;;;;GAWG"}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Example of a migrated command using all the new infrastructure
|
|
4
|
-
* This demonstrates how to use:
|
|
5
|
-
* - Dependency injection
|
|
6
|
-
* - Logger abstraction
|
|
7
|
-
* - Validation with Zod
|
|
8
|
-
* - Command wrapper
|
|
9
|
-
* - Shared utilities
|
|
10
|
-
* - Proper TypeScript types
|
|
11
|
-
*
|
|
12
|
-
* This is a reference implementation for migrating other commands
|
|
13
|
-
*/
|
|
14
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.setupExampleGatewayCreateCommand = setupExampleGatewayCreateCommand;
|
|
19
|
-
const container_1 = require("../../di/container");
|
|
20
|
-
const types_1 = require("../../di/types");
|
|
21
|
-
const command_wrapper_1 = require("../base/command-wrapper");
|
|
22
|
-
const validator_1 = require("../../validation/validator");
|
|
23
|
-
const schemas_1 = require("../../validation/schemas");
|
|
24
|
-
const gateway_prompt_1 = require("../utils/gateway-prompt");
|
|
25
|
-
const output_formatter_1 = require("../utils/output-formatter");
|
|
26
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
27
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
28
|
-
/**
|
|
29
|
-
* Example: Migrated gateway create command
|
|
30
|
-
* This shows the pattern for all command migrations
|
|
31
|
-
*/
|
|
32
|
-
function setupExampleGatewayCreateCommand(program) {
|
|
33
|
-
const gatewayCommand = program
|
|
34
|
-
.command('gateway')
|
|
35
|
-
.description('Manage gateways')
|
|
36
|
-
.alias('gw');
|
|
37
|
-
gatewayCommand
|
|
38
|
-
.command('create')
|
|
39
|
-
.description('Create a new gateway device and EC2 instance')
|
|
40
|
-
.option('-n, --name <name>', 'Gateway name')
|
|
41
|
-
.option('-d, --description <description>', 'Gateway description')
|
|
42
|
-
.option('-p, --profile <profile>', 'AWS profile to use')
|
|
43
|
-
.option('-r, --region <region>', 'AWS region')
|
|
44
|
-
.option('-t, --instance-type <type>', 'EC2 instance type', 't3.micro')
|
|
45
|
-
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
46
|
-
// Get dependencies from container
|
|
47
|
-
const container = (0, container_1.getContainer)();
|
|
48
|
-
const logger = container.get(types_1.TYPES.Logger);
|
|
49
|
-
const gatewayService = container.get(types_1.TYPES.GatewayService);
|
|
50
|
-
const configRepository = container.get(types_1.TYPES.ConfigRepository);
|
|
51
|
-
// Validate configuration
|
|
52
|
-
(0, config_validator_1.validateConfig)(configRepository, {
|
|
53
|
-
requireAuth: true,
|
|
54
|
-
requireOrganization: true,
|
|
55
|
-
});
|
|
56
|
-
// Validate and parse options using Zod
|
|
57
|
-
const validatedOptions = (0, validator_1.validateOptions)(schemas_1.createGatewayRequestSchema, {
|
|
58
|
-
name: options.name,
|
|
59
|
-
description: options.description,
|
|
60
|
-
awsProfile: options.profile,
|
|
61
|
-
region: options.region,
|
|
62
|
-
instanceType: options.instanceType,
|
|
63
|
-
});
|
|
64
|
-
// Log command execution
|
|
65
|
-
logger.info('Creating gateway', { name: validatedOptions.name });
|
|
66
|
-
// Use the service
|
|
67
|
-
const result = await gatewayService.createGateway({
|
|
68
|
-
name: validatedOptions.name,
|
|
69
|
-
description: validatedOptions.description,
|
|
70
|
-
awsProfile: validatedOptions.awsProfile,
|
|
71
|
-
region: validatedOptions.region,
|
|
72
|
-
instanceType: validatedOptions.instanceType,
|
|
73
|
-
});
|
|
74
|
-
// Format output
|
|
75
|
-
console.log((0, output_formatter_1.formatSuccess)('Gateway created successfully!'));
|
|
76
|
-
console.log(chalk_1.default.blue('\n📋 Gateway Details:'));
|
|
77
|
-
console.log((0, output_formatter_1.formatGateway)({
|
|
78
|
-
device: result.gateway,
|
|
79
|
-
ec2Instance: result.ec2Instance,
|
|
80
|
-
}));
|
|
81
|
-
logger.debug('Gateway creation completed', { gatewayId: result.gateway.id });
|
|
82
|
-
}, {
|
|
83
|
-
configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
|
|
84
|
-
requireAuth: true,
|
|
85
|
-
requireOrganization: true,
|
|
86
|
-
}));
|
|
87
|
-
/**
|
|
88
|
-
* Example: Migrated gateway list command
|
|
89
|
-
*/
|
|
90
|
-
gatewayCommand
|
|
91
|
-
.command('list')
|
|
92
|
-
.description('List all gateway devices')
|
|
93
|
-
.option('--json', 'Output as JSON')
|
|
94
|
-
.alias('ls')
|
|
95
|
-
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
96
|
-
const container = (0, container_1.getContainer)();
|
|
97
|
-
const logger = container.get(types_1.TYPES.Logger);
|
|
98
|
-
const gatewayService = container.get(types_1.TYPES.GatewayService);
|
|
99
|
-
const configRepository = container.get(types_1.TYPES.ConfigRepository);
|
|
100
|
-
(0, config_validator_1.validateConfig)(configRepository, {
|
|
101
|
-
requireAuth: true,
|
|
102
|
-
requireOrganization: true,
|
|
103
|
-
});
|
|
104
|
-
logger.debug('Listing gateways');
|
|
105
|
-
const response = await gatewayService.listGateways();
|
|
106
|
-
if (options.json) {
|
|
107
|
-
console.log(JSON.stringify({
|
|
108
|
-
gateways: response.gateways.map((gateway) => ({
|
|
109
|
-
id: gateway.device.id,
|
|
110
|
-
name: gateway.device.name,
|
|
111
|
-
description: gateway.device.description,
|
|
112
|
-
ec2Instance: gateway.ec2Instance?.instanceId,
|
|
113
|
-
publicIp: gateway.ec2Instance?.publicIp,
|
|
114
|
-
privateIp: gateway.ec2Instance?.privateIp,
|
|
115
|
-
region: gateway.ec2Instance?.region,
|
|
116
|
-
state: gateway.ec2Instance?.state,
|
|
117
|
-
createdAt: gateway.device.createdAt,
|
|
118
|
-
})),
|
|
119
|
-
}, null, 2));
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (response.gateways.length === 0) {
|
|
123
|
-
console.log(chalk_1.default.yellow('⚠ No gateways found'));
|
|
124
|
-
console.log(chalk_1.default.gray('Use "edgible gateway create" to create a gateway'));
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
console.log(chalk_1.default.blue.bold('🌐 Gateway Devices:\n'));
|
|
128
|
-
response.gateways.forEach((gateway) => {
|
|
129
|
-
console.log((0, output_formatter_1.formatGateway)(gateway));
|
|
130
|
-
});
|
|
131
|
-
}, {
|
|
132
|
-
configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
|
|
133
|
-
requireAuth: true,
|
|
134
|
-
requireOrganization: true,
|
|
135
|
-
}));
|
|
136
|
-
/**
|
|
137
|
-
* Example: Migrated gateway delete command using shared utilities
|
|
138
|
-
*/
|
|
139
|
-
gatewayCommand
|
|
140
|
-
.command('delete')
|
|
141
|
-
.description('Delete a gateway device and EC2 instance')
|
|
142
|
-
.option('-i, --id <id>', 'Gateway ID to delete')
|
|
143
|
-
.option('-f, --force', 'Force delete even if applications exist')
|
|
144
|
-
.alias('rm')
|
|
145
|
-
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
146
|
-
const container = (0, container_1.getContainer)();
|
|
147
|
-
const logger = container.get(types_1.TYPES.Logger);
|
|
148
|
-
const gatewayService = container.get(types_1.TYPES.GatewayService);
|
|
149
|
-
const configRepository = container.get(types_1.TYPES.ConfigRepository);
|
|
150
|
-
(0, config_validator_1.validateConfig)(configRepository, {
|
|
151
|
-
requireAuth: true,
|
|
152
|
-
requireOrganization: true,
|
|
153
|
-
});
|
|
154
|
-
// Use shared utility to get gateway ID
|
|
155
|
-
const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
|
|
156
|
-
if (!gatewayId) {
|
|
157
|
-
throw new Error('Gateway ID is required');
|
|
158
|
-
}
|
|
159
|
-
logger.info('Deleting gateway', { gatewayId });
|
|
160
|
-
await gatewayService.deleteGateway(gatewayId, options.force || false);
|
|
161
|
-
console.log((0, output_formatter_1.formatSuccess)('Gateway deleted successfully!'));
|
|
162
|
-
}, {
|
|
163
|
-
configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
|
|
164
|
-
requireAuth: true,
|
|
165
|
-
requireOrganization: true,
|
|
166
|
-
}));
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Migration checklist:
|
|
170
|
-
*
|
|
171
|
-
* ✅ Use DI container to get services
|
|
172
|
-
* ✅ Use logger instead of console.log
|
|
173
|
-
* ✅ Validate inputs with Zod schemas
|
|
174
|
-
* ✅ Use wrapCommand for error handling
|
|
175
|
-
* ✅ Use shared utilities for common operations
|
|
176
|
-
* ✅ Use proper TypeScript types (no any)
|
|
177
|
-
* ✅ Validate configuration before execution
|
|
178
|
-
* ✅ Format output consistently
|
|
179
|
-
*/
|
|
180
|
-
//# sourceMappingURL=migrated-command-example.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/create.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDlI"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleManagedGatewayCreate = handleManagedGatewayCreate;
|
|
7
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const instances_1 = require("../../services/instances");
|
|
10
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
11
|
-
async function handleManagedGatewayCreate(options) {
|
|
12
|
-
wrapCommand(async (options) => {
|
|
13
|
-
(0, config_validator_1.validateConfig)(instances_1.configManager, {
|
|
14
|
-
requireAuth: true,
|
|
15
|
-
});
|
|
16
|
-
let gatewayName = options.name;
|
|
17
|
-
const region = options.region || 'ap-southeast-2';
|
|
18
|
-
const instanceType = options.instanceType || 't3.micro';
|
|
19
|
-
if (!gatewayName) {
|
|
20
|
-
const nameAnswer = await inquirer_1.default.prompt([
|
|
21
|
-
{
|
|
22
|
-
type: 'input',
|
|
23
|
-
name: 'name',
|
|
24
|
-
message: 'Enter gateway name:',
|
|
25
|
-
validate: (input) => {
|
|
26
|
-
if (!input.trim()) {
|
|
27
|
-
return 'Gateway name is required';
|
|
28
|
-
}
|
|
29
|
-
return true;
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
]);
|
|
33
|
-
gatewayName = nameAnswer.name.trim();
|
|
34
|
-
}
|
|
35
|
-
instances_1.logger.info('Creating managed gateway', { name: gatewayName, region, instanceType });
|
|
36
|
-
const result = await instances_1.managedGatewayService.createManagedGateway({
|
|
37
|
-
name: gatewayName,
|
|
38
|
-
region,
|
|
39
|
-
instanceType
|
|
40
|
-
});
|
|
41
|
-
console.log(chalk_1.default.green('\n✓ Managed gateway created successfully!'));
|
|
42
|
-
console.log(chalk_1.default.blue('\n📋 Gateway Details:'));
|
|
43
|
-
console.log(chalk_1.default.white(` ID: ${result.gateway.id}`));
|
|
44
|
-
console.log(chalk_1.default.white(` Name: ${result.gateway.name}`));
|
|
45
|
-
console.log(chalk_1.default.white(` IP Address: ${result.gateway.ipAddress || 'N/A'}`));
|
|
46
|
-
console.log(chalk_1.default.white(` Status: ${result.gateway.status || 'N/A'}`));
|
|
47
|
-
console.log(chalk_1.default.white(` Created: ${new Date(result.gateway.createdAt).toLocaleString()}`));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/delete.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzG"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleManagedGatewayDelete = handleManagedGatewayDelete;
|
|
7
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const instances_1 = require("../../services/instances");
|
|
10
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
11
|
-
async function handleManagedGatewayDelete(options) {
|
|
12
|
-
wrapCommand(async (options) => {
|
|
13
|
-
(0, config_validator_1.validateConfig)(instances_1.configManager, {
|
|
14
|
-
requireAuth: true,
|
|
15
|
-
});
|
|
16
|
-
let gatewayId = options.id;
|
|
17
|
-
if (!gatewayId) {
|
|
18
|
-
// List gateways first to allow selection
|
|
19
|
-
const listResponse = await instances_1.managedGatewayService.listManagedGateways();
|
|
20
|
-
if (!listResponse.success || !listResponse.gateways || listResponse.gateways.length === 0) {
|
|
21
|
-
console.log(chalk_1.default.yellow('⚠ No managed gateways found'));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const choices = listResponse.gateways.map((gateway) => ({
|
|
25
|
-
name: `${gateway.name} (${gateway.id})`,
|
|
26
|
-
value: gateway.id,
|
|
27
|
-
}));
|
|
28
|
-
const answer = await inquirer_1.default.prompt([
|
|
29
|
-
{
|
|
30
|
-
type: 'list',
|
|
31
|
-
name: 'gatewayId',
|
|
32
|
-
message: 'Select managed gateway to delete:',
|
|
33
|
-
choices,
|
|
34
|
-
},
|
|
35
|
-
]);
|
|
36
|
-
gatewayId = answer.gatewayId;
|
|
37
|
-
}
|
|
38
|
-
// Confirm deletion
|
|
39
|
-
const confirm = await inquirer_1.default.prompt([
|
|
40
|
-
{
|
|
41
|
-
type: 'confirm',
|
|
42
|
-
name: 'confirm',
|
|
43
|
-
message: `Are you sure you want to delete managed gateway ${gatewayId}?`,
|
|
44
|
-
default: false,
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
if (!confirm.confirm) {
|
|
48
|
-
instances_1.logger.info('Managed gateway deletion cancelled');
|
|
49
|
-
console.log(chalk_1.default.gray('Deletion cancelled'));
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
instances_1.logger.info('Deleting managed gateway', { gatewayId, force: options.force || false });
|
|
53
|
-
await instances_1.managedGatewayService.deleteManagedGateway(gatewayId, options.force || false);
|
|
54
|
-
console.log(chalk_1.default.green('✓ Managed gateway deleted successfully!'));
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=delete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/get.ts"],"names":[],"mappings":"AAKA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuErF"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleManagedGatewayGet = handleManagedGatewayGet;
|
|
7
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const instances_1 = require("../../services/instances");
|
|
10
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
11
|
-
async function handleManagedGatewayGet(options) {
|
|
12
|
-
wrapCommand(async (options) => {
|
|
13
|
-
(0, config_validator_1.validateConfig)(instances_1.configManager, {
|
|
14
|
-
requireAuth: true,
|
|
15
|
-
});
|
|
16
|
-
let gatewayId = options.id;
|
|
17
|
-
if (!gatewayId) {
|
|
18
|
-
// List gateways first to allow selection
|
|
19
|
-
const listResponse = await instances_1.managedGatewayService.listManagedGateways();
|
|
20
|
-
if (!listResponse.success || !listResponse.gateways || listResponse.gateways.length === 0) {
|
|
21
|
-
console.log(chalk_1.default.yellow('⚠ No managed gateways found'));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const choices = listResponse.gateways.map((gateway) => ({
|
|
25
|
-
name: `${gateway.name} (${gateway.id})`,
|
|
26
|
-
value: gateway.id,
|
|
27
|
-
}));
|
|
28
|
-
const answer = await inquirer_1.default.prompt([
|
|
29
|
-
{
|
|
30
|
-
type: 'list',
|
|
31
|
-
name: 'gatewayId',
|
|
32
|
-
message: 'Select managed gateway:',
|
|
33
|
-
choices,
|
|
34
|
-
},
|
|
35
|
-
]);
|
|
36
|
-
gatewayId = answer.gatewayId;
|
|
37
|
-
}
|
|
38
|
-
instances_1.logger.info('Getting managed gateway details', { gatewayId });
|
|
39
|
-
const response = await instances_1.managedGatewayService.getManagedGateway(gatewayId);
|
|
40
|
-
if (!response.success || !response.gateway) {
|
|
41
|
-
console.log(chalk_1.default.red('✗ Managed gateway not found'));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const gateway = response.gateway;
|
|
45
|
-
console.log(chalk_1.default.blue('\n📋 Managed Gateway Details:'));
|
|
46
|
-
console.log(chalk_1.default.white(` ID: ${gateway.id}`));
|
|
47
|
-
console.log(chalk_1.default.white(` Name: ${gateway.name}`));
|
|
48
|
-
if (gateway.description) {
|
|
49
|
-
console.log(chalk_1.default.gray(` Description: ${gateway.description}`));
|
|
50
|
-
}
|
|
51
|
-
console.log(chalk_1.default.white(` IP Address: ${gateway.ipAddress || 'N/A'}`));
|
|
52
|
-
console.log(chalk_1.default.white(` Status: ${gateway.status || 'N/A'}`));
|
|
53
|
-
console.log(chalk_1.default.white(` Last Seen: ${gateway.lastSeen ? new Date(gateway.lastSeen).toLocaleString() : 'N/A'}`));
|
|
54
|
-
console.log(chalk_1.default.white(` Created: ${new Date(gateway.createdAt).toLocaleString()}`));
|
|
55
|
-
console.log(chalk_1.default.white(` Organization ID: ${gateway.organizationId}`));
|
|
56
|
-
if (gateway.capacity) {
|
|
57
|
-
console.log(chalk_1.default.blue('\n📊 Capacity:'));
|
|
58
|
-
console.log(chalk_1.default.white(` Current Applications: ${gateway.capacity.currentApps}`));
|
|
59
|
-
console.log(chalk_1.default.white(` Max Applications: ${gateway.capacity.maxApps}`));
|
|
60
|
-
const usagePercent = (gateway.capacity.currentApps / gateway.capacity.maxApps) * 100;
|
|
61
|
-
console.log(chalk_1.default.white(` Usage: ${usagePercent.toFixed(1)}%`));
|
|
62
|
-
}
|
|
63
|
-
if (gateway.health) {
|
|
64
|
-
console.log(chalk_1.default.blue('\n🏥 Health:'));
|
|
65
|
-
console.log(chalk_1.default.white(` Healthy: ${gateway.health.healthy ? chalk_1.default.green('Yes') : chalk_1.default.red('No')}`));
|
|
66
|
-
console.log(chalk_1.default.white(` Last Seen: ${gateway.health.lastSeen ? new Date(gateway.health.lastSeen).toLocaleString() : 'N/A'}`));
|
|
67
|
-
console.log(chalk_1.default.white(` Application Count: ${gateway.health.applicationCount}`));
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=get.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"haproxy-stats.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/haproxy-stats.ts"],"names":[],"mappings":"AAKA,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiG9H"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.handleManagedGatewayHaproxyStats = handleManagedGatewayHaproxyStats;
|
|
40
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
41
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
-
const instances_1 = require("../../services/instances");
|
|
43
|
-
const config_validator_1 = require("../utils/config-validator");
|
|
44
|
-
async function handleManagedGatewayHaproxyStats(options) {
|
|
45
|
-
async (options) => {
|
|
46
|
-
(0, config_validator_1.validateConfig)(instances_1.configManager, {
|
|
47
|
-
requireAuth: true,
|
|
48
|
-
});
|
|
49
|
-
let gatewayId = options.id;
|
|
50
|
-
// If no gateway ID provided, let user select
|
|
51
|
-
if (!gatewayId) {
|
|
52
|
-
const listResponse = await instances_1.managedGatewayService.listManagedGateways();
|
|
53
|
-
if (!listResponse.success || !listResponse.gateways || listResponse.gateways.length === 0) {
|
|
54
|
-
console.log(chalk_1.default.yellow('⚠ No managed gateways found'));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const choices = listResponse.gateways.map((gateway) => ({
|
|
58
|
-
name: `${gateway.name} (${gateway.id})`,
|
|
59
|
-
value: gateway.id,
|
|
60
|
-
}));
|
|
61
|
-
const answer = await inquirer_1.default.prompt([
|
|
62
|
-
{
|
|
63
|
-
type: 'list',
|
|
64
|
-
name: 'gatewayId',
|
|
65
|
-
message: 'Select managed gateway:',
|
|
66
|
-
choices,
|
|
67
|
-
},
|
|
68
|
-
]);
|
|
69
|
-
gatewayId = answer.gatewayId;
|
|
70
|
-
}
|
|
71
|
-
const outputFile = options.output || 'haproxy-stats.html';
|
|
72
|
-
const statsPort = options.port || '8404';
|
|
73
|
-
instances_1.logger.info('Downloading HAProxy stats', { gatewayId, outputFile, statsPort });
|
|
74
|
-
try {
|
|
75
|
-
if (!gatewayId) {
|
|
76
|
-
console.log(chalk_1.default.red('✗ Gateway ID is required'));
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
// First check if HAProxy is running and stats are available
|
|
80
|
-
const checkCommand = `curl -s -o /dev/null -w "%{http_code}" http://localhost:${statsPort}/stats`;
|
|
81
|
-
const checkResult = await instances_1.diagnosticsService.executeManagedGatewayCommand(gatewayId, checkCommand);
|
|
82
|
-
if (!checkResult.success) {
|
|
83
|
-
console.log(chalk_1.default.red('✗ Failed to check HAProxy stats availability'));
|
|
84
|
-
if (checkResult.error) {
|
|
85
|
-
console.log(chalk_1.default.red(` Error: ${checkResult.error}`));
|
|
86
|
-
}
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
const httpCode = checkResult.output.trim();
|
|
90
|
-
if (httpCode !== '200') {
|
|
91
|
-
console.log(chalk_1.default.red(`✗ HAProxy stats not accessible (HTTP ${httpCode})`));
|
|
92
|
-
console.log(chalk_1.default.yellow(` Hint: Check if HAProxy stats are enabled on port ${statsPort}`));
|
|
93
|
-
console.log(chalk_1.default.yellow(` Hint: Check HAPROXY_STATS_PORT environment variable on the gateway`));
|
|
94
|
-
console.log(chalk_1.default.yellow(` Hint: Verify HAProxy is running: edgible managed-gateway ssh --id ${gatewayId}`));
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
console.log(chalk_1.default.blue('📊 Downloading HAProxy stats...'));
|
|
98
|
-
// Download the stats HTML
|
|
99
|
-
const downloadCommand = `curl -s http://localhost:${statsPort}/stats`;
|
|
100
|
-
const result = await instances_1.diagnosticsService.executeManagedGatewayCommand(gatewayId, downloadCommand);
|
|
101
|
-
if (result.success) {
|
|
102
|
-
if (result.output.trim()) {
|
|
103
|
-
// Write to file
|
|
104
|
-
const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
105
|
-
await fs.writeFile(outputFile, result.output, 'utf8');
|
|
106
|
-
console.log(chalk_1.default.green(`\n✓ HAProxy stats downloaded successfully!`));
|
|
107
|
-
console.log(chalk_1.default.white(` File: ${outputFile}`));
|
|
108
|
-
console.log(chalk_1.default.white(` Size: ${(result.output.length / 1024).toFixed(2)} KB`));
|
|
109
|
-
console.log(chalk_1.default.blue(`\n💡 Open ${outputFile} in your browser to view the stats`));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
console.log(chalk_1.default.yellow('⚠ No stats data received'));
|
|
113
|
-
console.log(chalk_1.default.gray(' The stats page may be empty or HAProxy may not have any backends configured'));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
instances_1.logger.error('Failed to download HAProxy stats', { error: result.error });
|
|
118
|
-
console.log(chalk_1.default.red('✗ Failed to download HAProxy stats'));
|
|
119
|
-
if (result.error) {
|
|
120
|
-
console.log(chalk_1.default.red(` Error: ${result.error}`));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
instances_1.logger.error('Error downloading HAProxy stats', error);
|
|
126
|
-
console.log(chalk_1.default.red('✗ Error downloading HAProxy stats'));
|
|
127
|
-
throw error;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=haproxy-stats.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/list.ts"],"names":[],"mappings":"AAKA,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CzF"}
|