@phystack/cli 4.4.29
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/LICENSE.md +19 -0
- package/README.md +24 -0
- package/bin/index.js +2 -0
- package/dist/commands/app/build-apps.js +66 -0
- package/dist/commands/app/build-apps.js.map +1 -0
- package/dist/commands/app/build-container-remote.js +171 -0
- package/dist/commands/app/build-container-remote.js.map +1 -0
- package/dist/commands/app/build-container.js +322 -0
- package/dist/commands/app/build-container.js.map +1 -0
- package/dist/commands/app/build.js +375 -0
- package/dist/commands/app/build.js.map +1 -0
- package/dist/commands/app/create.js +409 -0
- package/dist/commands/app/create.js.map +1 -0
- package/dist/commands/app/deploy.js +176 -0
- package/dist/commands/app/deploy.js.map +1 -0
- package/dist/commands/app/device-picker.js +150 -0
- package/dist/commands/app/device-picker.js.map +1 -0
- package/dist/commands/app/import.js +303 -0
- package/dist/commands/app/import.js.map +1 -0
- package/dist/commands/app/list.js +26 -0
- package/dist/commands/app/list.js.map +1 -0
- package/dist/commands/app/publish.js +327 -0
- package/dist/commands/app/publish.js.map +1 -0
- package/dist/commands/app/settings.js +129 -0
- package/dist/commands/app/settings.js.map +1 -0
- package/dist/commands/app/types.js +13 -0
- package/dist/commands/app/types.js.map +1 -0
- package/dist/commands/app/upload-description.js +139 -0
- package/dist/commands/app/upload-description.js.map +1 -0
- package/dist/commands/app/upload-settings.js +29 -0
- package/dist/commands/app/upload-settings.js.map +1 -0
- package/dist/commands/app/utils.js +86 -0
- package/dist/commands/app/utils.js.map +1 -0
- package/dist/commands/auth/login.js +111 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.js +19 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/descriptor/create.js +143 -0
- package/dist/commands/descriptor/create.js.map +1 -0
- package/dist/commands/descriptor/index.js +36 -0
- package/dist/commands/descriptor/index.js.map +1 -0
- package/dist/commands/descriptor/publish.js +163 -0
- package/dist/commands/descriptor/publish.js.map +1 -0
- package/dist/commands/descriptor/show.js +68 -0
- package/dist/commands/descriptor/show.js.map +1 -0
- package/dist/commands/dev/develop.js +175 -0
- package/dist/commands/dev/develop.js.map +1 -0
- package/dist/commands/dev/forward.js +118 -0
- package/dist/commands/dev/forward.js.map +1 -0
- package/dist/commands/dev/index.js +66 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/dev/list.js +96 -0
- package/dist/commands/dev/list.js.map +1 -0
- package/dist/commands/dev/screen-devtools.js +156 -0
- package/dist/commands/dev/screen-devtools.js.map +1 -0
- package/dist/commands/dev/select.js +118 -0
- package/dist/commands/dev/select.js.map +1 -0
- package/dist/commands/dev/shell.js +171 -0
- package/dist/commands/dev/shell.js.map +1 -0
- package/dist/commands/dev/vnc.js +75 -0
- package/dist/commands/dev/vnc.js.map +1 -0
- package/dist/commands/device/select.js +118 -0
- package/dist/commands/device/select.js.map +1 -0
- package/dist/commands/flash.js +1120 -0
- package/dist/commands/flash.js.map +1 -0
- package/dist/commands/inst/create.js +55 -0
- package/dist/commands/inst/create.js.map +1 -0
- package/dist/commands/inst/index.js +15 -0
- package/dist/commands/inst/index.js.map +1 -0
- package/dist/commands/inst/list.js +26 -0
- package/dist/commands/inst/list.js.map +1 -0
- package/dist/commands/legacydev/debug.js +11 -0
- package/dist/commands/legacydev/debug.js.map +1 -0
- package/dist/commands/legacydev/deploy.js +15 -0
- package/dist/commands/legacydev/deploy.js.map +1 -0
- package/dist/commands/legacydev/dumpTwin.js +27 -0
- package/dist/commands/legacydev/dumpTwin.js.map +1 -0
- package/dist/commands/legacydev/forward.js +104 -0
- package/dist/commands/legacydev/forward.js.map +1 -0
- package/dist/commands/legacydev/index.js +188 -0
- package/dist/commands/legacydev/index.js.map +1 -0
- package/dist/commands/legacydev/invoke.js +29 -0
- package/dist/commands/legacydev/invoke.js.map +1 -0
- package/dist/commands/legacydev/js.js +69 -0
- package/dist/commands/legacydev/js.js.map +1 -0
- package/dist/commands/legacydev/list.js +196 -0
- package/dist/commands/legacydev/list.js.map +1 -0
- package/dist/commands/legacydev/logs.js +60 -0
- package/dist/commands/legacydev/logs.js.map +1 -0
- package/dist/commands/legacydev/modules.js +50 -0
- package/dist/commands/legacydev/modules.js.map +1 -0
- package/dist/commands/legacydev/move.js +23 -0
- package/dist/commands/legacydev/move.js.map +1 -0
- package/dist/commands/legacydev/ota.js +88 -0
- package/dist/commands/legacydev/ota.js.map +1 -0
- package/dist/commands/legacydev/patchTwin.js +21 -0
- package/dist/commands/legacydev/patchTwin.js.map +1 -0
- package/dist/commands/legacydev/pin.js +23 -0
- package/dist/commands/legacydev/pin.js.map +1 -0
- package/dist/commands/legacydev/pub.js +25 -0
- package/dist/commands/legacydev/pub.js.map +1 -0
- package/dist/commands/legacydev/rdp.js +64 -0
- package/dist/commands/legacydev/rdp.js.map +1 -0
- package/dist/commands/legacydev/screen-devtools.js +142 -0
- package/dist/commands/legacydev/screen-devtools.js.map +1 -0
- package/dist/commands/legacydev/settingsShow.js +89 -0
- package/dist/commands/legacydev/settingsShow.js.map +1 -0
- package/dist/commands/legacydev/settingsUpdate.js +114 -0
- package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
- package/dist/commands/legacydev/shell.js +167 -0
- package/dist/commands/legacydev/shell.js.map +1 -0
- package/dist/commands/legacydev/showTwin.js +9 -0
- package/dist/commands/legacydev/showTwin.js.map +1 -0
- package/dist/commands/legacydev/statusLog.js +56 -0
- package/dist/commands/legacydev/statusLog.js.map +1 -0
- package/dist/commands/legacydev/sub.js +39 -0
- package/dist/commands/legacydev/sub.js.map +1 -0
- package/dist/commands/legacydev/vnc.js +61 -0
- package/dist/commands/legacydev/vnc.js.map +1 -0
- package/dist/commands/tenant/index.js +21 -0
- package/dist/commands/tenant/index.js.map +1 -0
- package/dist/commands/tenant/list.js +14 -0
- package/dist/commands/tenant/list.js.map +1 -0
- package/dist/commands/tenant/select.js +87 -0
- package/dist/commands/tenant/select.js.map +1 -0
- package/dist/commands/vm/create.js +718 -0
- package/dist/commands/vm/create.js.map +1 -0
- package/dist/commands/vm/index.js +130 -0
- package/dist/commands/vm/index.js.map +1 -0
- package/dist/commands/vm/list.js +124 -0
- package/dist/commands/vm/list.js.map +1 -0
- package/dist/commands/vm/logs.js +66 -0
- package/dist/commands/vm/logs.js.map +1 -0
- package/dist/commands/vm/remove.js +180 -0
- package/dist/commands/vm/remove.js.map +1 -0
- package/dist/commands/vm/shell.js +400 -0
- package/dist/commands/vm/shell.js.map +1 -0
- package/dist/commands/vm/start.js +861 -0
- package/dist/commands/vm/start.js.map +1 -0
- package/dist/commands/vm/stop.js +232 -0
- package/dist/commands/vm/stop.js.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/services/admin-api/admin-api.types.js +3 -0
- package/dist/services/admin-api/admin-api.types.js.map +1 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
- package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
- package/dist/services/admin-api/devices-admin-api.service.js +213 -0
- package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
- package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/index.js +157 -0
- package/dist/services/admin-api/index.js.map +1 -0
- package/dist/services/admin-api/installations-admin-api.service.js +29 -0
- package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
- package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
- package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
- package/dist/services/auth/device-grant-auth.service.js +224 -0
- package/dist/services/auth/device-grant-auth.service.js.map +1 -0
- package/dist/services/phyhub/index.js +200 -0
- package/dist/services/phyhub/index.js.map +1 -0
- package/dist/services/phyhub/phyhub.types.js +3 -0
- package/dist/services/phyhub/phyhub.types.js.map +1 -0
- package/dist/utils/device-fetcher.js +92 -0
- package/dist/utils/device-fetcher.js.map +1 -0
- package/dist/utils/devices.js +41 -0
- package/dist/utils/devices.js.map +1 -0
- package/dist/utils/docker-credentials.js +546 -0
- package/dist/utils/docker-credentials.js.map +1 -0
- package/dist/utils/emulated-device.js +91 -0
- package/dist/utils/emulated-device.js.map +1 -0
- package/dist/utils/index.js +180 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/modules.js +36 -0
- package/dist/utils/modules.js.map +1 -0
- package/dist/utils/org-selector.js +108 -0
- package/dist/utils/org-selector.js.map +1 -0
- package/dist/utils/proxy.js +31 -0
- package/dist/utils/proxy.js.map +1 -0
- package/dist/utils/registry-credentials.js +113 -0
- package/dist/utils/registry-credentials.js.map +1 -0
- package/dist/utils/statuses.js +124 -0
- package/dist/utils/statuses.js.map +1 -0
- package/dist/utils/templates.js +189 -0
- package/dist/utils/templates.js.map +1 -0
- package/dist/utils/tenant-storage.js +88 -0
- package/dist/utils/tenant-storage.js.map +1 -0
- package/dist/utils/vm.js +434 -0
- package/dist/utils/vm.js.map +1 -0
- package/dist/utils/with-spinner.js +20 -0
- package/dist/utils/with-spinner.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/vm/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
const commander_1 = require("commander");
|
|
40
|
+
const create_1 = __importDefault(require("./create"));
|
|
41
|
+
const list_1 = __importDefault(require("./list"));
|
|
42
|
+
const start_1 = __importDefault(require("./start"));
|
|
43
|
+
const stop_1 = __importDefault(require("./stop"));
|
|
44
|
+
const logs_1 = __importDefault(require("./logs"));
|
|
45
|
+
const remove_1 = __importDefault(require("./remove"));
|
|
46
|
+
const shell_1 = __importDefault(require("./shell"));
|
|
47
|
+
const utils_1 = require("../../utils");
|
|
48
|
+
// Simple restart command that just calls stop and then start
|
|
49
|
+
async function restartVm(name, options) {
|
|
50
|
+
console.log(`Restarting VM "${name}"...`);
|
|
51
|
+
// First stop the VM (force stop if specified)
|
|
52
|
+
try {
|
|
53
|
+
await (0, stop_1.default)(name, { force: options.force });
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (options.force) {
|
|
57
|
+
console.log(`Failed to stop VM with force option, attempting to manually kill process...`);
|
|
58
|
+
// Manually force kill if needed
|
|
59
|
+
const { getVmPid } = await Promise.resolve().then(() => __importStar(require('../../utils/vm')));
|
|
60
|
+
const pid = getVmPid(name);
|
|
61
|
+
if (pid) {
|
|
62
|
+
try {
|
|
63
|
+
process.kill(pid, 'SIGKILL');
|
|
64
|
+
console.log(`Successfully force killed VM process (PID: ${pid})`);
|
|
65
|
+
}
|
|
66
|
+
catch (killError) {
|
|
67
|
+
console.warn(`Warning: Failed to force kill VM process: ${killError.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Brief pause to ensure everything is cleaned up
|
|
76
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
77
|
+
// Then start it with the same options
|
|
78
|
+
await (0, start_1.default)(name, options);
|
|
79
|
+
}
|
|
80
|
+
const vm = new commander_1.Command('vm').description('Virtual Machine management');
|
|
81
|
+
vm
|
|
82
|
+
.command('create [name]')
|
|
83
|
+
.description('Create a new PhyOS virtual machine')
|
|
84
|
+
.option('--phyos-version <version>', 'Select a specific PhyOS version for the VM (format: X.Y.Z, e.g., 5.0.127)')
|
|
85
|
+
.option('--arch <arch>', 'Architecture (arm64 or amd64)')
|
|
86
|
+
.option('--memory <memory>', 'Memory allocation in MB')
|
|
87
|
+
.option('--storage <storage>', 'Storage allocation in GB')
|
|
88
|
+
.option('--headless', 'Configure VM for headless operation (no display)')
|
|
89
|
+
.option('--count <count>', 'Number of VMs to create (default: 1)')
|
|
90
|
+
.action((0, utils_1.handleError)(create_1.default));
|
|
91
|
+
vm
|
|
92
|
+
.command('list')
|
|
93
|
+
.description('List installed virtual machines')
|
|
94
|
+
.action((0, utils_1.handleError)(list_1.default));
|
|
95
|
+
vm
|
|
96
|
+
.command('start <names...>')
|
|
97
|
+
.description('Start one or more virtual machines')
|
|
98
|
+
.option('--memory <memory>', 'Memory allocation in MB')
|
|
99
|
+
.option('--headless', 'Run VMs without display')
|
|
100
|
+
.action((0, utils_1.handleError)(start_1.default));
|
|
101
|
+
vm
|
|
102
|
+
.command('stop <names...>')
|
|
103
|
+
.description('Stop one or more running virtual machines')
|
|
104
|
+
.option('--force', 'Force stop if graceful shutdown fails')
|
|
105
|
+
.action((0, utils_1.handleError)(stop_1.default));
|
|
106
|
+
vm
|
|
107
|
+
.command('restart <name>')
|
|
108
|
+
.description('Restart a virtual machine')
|
|
109
|
+
.option('--memory <memory>', 'Memory allocation in MB')
|
|
110
|
+
.option('--headless', 'Run VM without display')
|
|
111
|
+
.option('--force', 'Force stop if graceful shutdown fails')
|
|
112
|
+
.action((0, utils_1.handleError)(restartVm));
|
|
113
|
+
vm
|
|
114
|
+
.command('logs <name>')
|
|
115
|
+
.alias('log')
|
|
116
|
+
.description('Display logs for a virtual machine')
|
|
117
|
+
.option('-f, --follow', 'Follow log output')
|
|
118
|
+
.action((0, utils_1.handleError)(logs_1.default));
|
|
119
|
+
vm
|
|
120
|
+
.command('shell <name>')
|
|
121
|
+
.description('Connect to the console of a running virtual machine')
|
|
122
|
+
.action((0, utils_1.handleError)(shell_1.default));
|
|
123
|
+
vm
|
|
124
|
+
.command('remove <names...>')
|
|
125
|
+
.alias('rm')
|
|
126
|
+
.description('Remove one or more virtual machines')
|
|
127
|
+
.option('--force', 'Force removal of running VMs')
|
|
128
|
+
.action((0, utils_1.handleError)(remove_1.default));
|
|
129
|
+
exports.default = vm;
|
|
130
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/vm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,sDAAgC;AAChC,kDAA6B;AAC7B,oDAA8B;AAC9B,kDAA4B;AAC5B,kDAA2B;AAC3B,sDAAgC;AAChC,oDAA8B;AAC9B,uCAA0C;AAE1C,6DAA6D;AAC7D,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAY;IACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC;IAE1C,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,IAAA,cAAM,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;YAC3F,gCAAgC;YAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;YACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,GAAG,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,6CAA6C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAExD,sCAAsC;IACtC,MAAM,IAAA,eAAO,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,EAAE,GAAG,IAAI,mBAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAEvE,EAAE;KACC,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,2BAA2B,EAAE,2EAA2E,CAAC;KAChH,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;KACzD,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,IAAA,mBAAW,EAAC,gBAAQ,CAAC,CAAC,CAAC;AAEjC,EAAE;KACC,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,IAAA,mBAAW,EAAC,cAAO,CAAC,CAAC,CAAC;AAEhC,EAAE;KACC,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CAAC,IAAA,mBAAW,EAAC,eAAO,CAAC,CAAC,CAAC;AAEhC,EAAE;KACC,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;KAC1D,MAAM,CAAC,IAAA,mBAAW,EAAC,cAAM,CAAC,CAAC,CAAC;AAE/B,EAAE;KACC,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;KACtD,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC;KAC9C,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;KAC1D,MAAM,CAAC,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC,CAAC;AAElC,EAAE;KACC,OAAO,CAAC,aAAa,CAAC;KACtB,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC3C,MAAM,CAAC,IAAA,mBAAW,EAAC,cAAK,CAAC,CAAC,CAAC;AAE9B,EAAE;KACC,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,IAAA,mBAAW,EAAC,eAAO,CAAC,CAAC,CAAC;AAEhC,EAAE;KACC,OAAO,CAAC,mBAAmB,CAAC;KAC5B,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC;KACjD,MAAM,CAAC,IAAA,mBAAW,EAAC,gBAAQ,CAAC,CAAC,CAAC;AAEjC,kBAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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.default = listVmsCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const vm_1 = require("../../utils/vm");
|
|
9
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
/**
|
|
12
|
+
* Command to list all installed VMs
|
|
13
|
+
*/
|
|
14
|
+
async function listVmsCommand() {
|
|
15
|
+
const vmNames = (0, vm_1.listVms)();
|
|
16
|
+
if (vmNames.length === 0) {
|
|
17
|
+
console.log(chalk_1.default.yellow('No virtual machines found.'));
|
|
18
|
+
console.log(`To create a VM, run: ${chalk_1.default.green('phy vm create [name]')}`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
// --- Pre-check for sudo requirement ---
|
|
22
|
+
const isRoot = process.getuid && process.getuid() === 0;
|
|
23
|
+
if (!isRoot) {
|
|
24
|
+
for (const vmName of vmNames) {
|
|
25
|
+
if ((0, vm_1.isPidFileRootOwned)(vmName)) {
|
|
26
|
+
// If any VM needs sudo and we are not root, relaunch the entire command
|
|
27
|
+
console.log(chalk_1.default.yellow(`VM "${vmName}" requires root privileges. Relaunching list command...`));
|
|
28
|
+
(0, vm_1.relaunchWithSudo)(process.argv.slice(2));
|
|
29
|
+
// relaunchWithSudo handles exiting the current process, but return to be safe
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// --- End Pre-check ---
|
|
35
|
+
// If we reach here, no sudo relaunch was needed or we are already root
|
|
36
|
+
const table = new cli_table3_1.default({
|
|
37
|
+
head: [
|
|
38
|
+
chalk_1.default.cyan('Name'),
|
|
39
|
+
chalk_1.default.cyan('Status'),
|
|
40
|
+
chalk_1.default.cyan('Version'),
|
|
41
|
+
chalk_1.default.cyan('Architecture'),
|
|
42
|
+
chalk_1.default.cyan('Memory'),
|
|
43
|
+
chalk_1.default.cyan('Serial'),
|
|
44
|
+
chalk_1.default.cyan('Created'),
|
|
45
|
+
chalk_1.default.cyan('Settings')
|
|
46
|
+
],
|
|
47
|
+
style: {
|
|
48
|
+
head: [], // Disable default styling
|
|
49
|
+
border: []
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
for (const vmName of vmNames) {
|
|
53
|
+
try {
|
|
54
|
+
const config = (0, vm_1.readVmConfig)(vmName);
|
|
55
|
+
const settings = (0, vm_1.readVmSettings)(vmName);
|
|
56
|
+
// Check if VM is running, and if PID file is missing, try to create it
|
|
57
|
+
let status = (0, vm_1.isVmRunning)(vmName)
|
|
58
|
+
? chalk_1.default.green('Running')
|
|
59
|
+
: chalk_1.default.gray('Stopped');
|
|
60
|
+
// If VM appears stopped but might actually be running (missing PID file), check process list
|
|
61
|
+
if (status === chalk_1.default.gray('Stopped')) {
|
|
62
|
+
try {
|
|
63
|
+
const qemuBin = config.arch === 'amd64' ? 'qemu-system-x86_64' : 'qemu-system-aarch64';
|
|
64
|
+
const psOutput = (0, child_process_1.execSync)(`ps aux | grep "${qemuBin}" | grep "${vmName}" | grep -v grep`, { encoding: 'utf8' });
|
|
65
|
+
if (psOutput.trim()) {
|
|
66
|
+
// VM is running but PID file is missing - try to create it
|
|
67
|
+
if ((0, vm_1.createPidFileForRunningVm)(vmName)) {
|
|
68
|
+
status = chalk_1.default.green('Running');
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// VM is running but we can't create PID file - show as running anyway
|
|
72
|
+
status = chalk_1.default.green('Running*');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (psError) {
|
|
77
|
+
// Ignore errors when checking process list
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Get memory from settings.json if available, otherwise from config.json
|
|
81
|
+
const memoryValue = settings.memory || config.memory || 2048;
|
|
82
|
+
// Format memory (MB to GB if applicable)
|
|
83
|
+
const memory = memoryValue >= 1024
|
|
84
|
+
? `${(memoryValue / 1024).toFixed(1)} GB`
|
|
85
|
+
: `${memoryValue} MB`;
|
|
86
|
+
// Get serial number from settings.json
|
|
87
|
+
const serial = settings.serial
|
|
88
|
+
? settings.serial.substring(0, 12) + '...' // truncate long serial numbers
|
|
89
|
+
: chalk_1.default.gray('N/A');
|
|
90
|
+
// Get architecture from settings or config
|
|
91
|
+
const arch = settings.arch || config.arch || chalk_1.default.gray('N/A');
|
|
92
|
+
// Get version from settings or config
|
|
93
|
+
const version = settings.version || config.version || chalk_1.default.gray('N/A');
|
|
94
|
+
// Format date
|
|
95
|
+
const created = settings.created || config.created
|
|
96
|
+
? new Date(settings.created || config.created).toLocaleDateString()
|
|
97
|
+
: chalk_1.default.gray('N/A');
|
|
98
|
+
// Create a summary of all settings for display
|
|
99
|
+
const settingsSummary = Object.entries(settings)
|
|
100
|
+
.filter(([key]) => !['memory', 'serial', 'arch', 'version', 'created'].includes(key))
|
|
101
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
102
|
+
.join(', ');
|
|
103
|
+
table.push([
|
|
104
|
+
chalk_1.default.white(config.name),
|
|
105
|
+
status,
|
|
106
|
+
chalk_1.default.white(version),
|
|
107
|
+
chalk_1.default.white(arch),
|
|
108
|
+
chalk_1.default.white(memory),
|
|
109
|
+
chalk_1.default.white(serial),
|
|
110
|
+
chalk_1.default.white(created),
|
|
111
|
+
chalk_1.default.white(settingsSummary || chalk_1.default.gray('No additional settings'))
|
|
112
|
+
]);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
// Skip invalid VMs
|
|
116
|
+
console.error(`Error reading VM "${vmName}": ${error.message}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
console.log(table.toString());
|
|
120
|
+
console.log(`\nTo start a VM: ${chalk_1.default.green('phy vm start <name>')}`);
|
|
121
|
+
console.log(`To stop a VM: ${chalk_1.default.green('phy vm stop <name>')}`);
|
|
122
|
+
console.log(`To view VM logs: ${chalk_1.default.green('phy vm logs <name>')}`);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/vm/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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.default = logVm;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const vm_1 = require("../../utils/vm");
|
|
11
|
+
/**
|
|
12
|
+
* View logs for a PhyOS VM
|
|
13
|
+
*/
|
|
14
|
+
async function logVm(name, options) {
|
|
15
|
+
if (!name) {
|
|
16
|
+
throw new Error('VM name is required');
|
|
17
|
+
}
|
|
18
|
+
// Check if sudo is needed and relaunch if necessary
|
|
19
|
+
const isRoot = process.getuid && process.getuid() === 0;
|
|
20
|
+
if (!isRoot && (0, vm_1.isPidFileRootOwned)(name)) {
|
|
21
|
+
console.log(chalk_1.default.yellow(`VM "${name}" requires root privileges. Relaunching logs command...`));
|
|
22
|
+
(0, vm_1.relaunchWithSudo)(process.argv.slice(2));
|
|
23
|
+
return; // Exit current process
|
|
24
|
+
}
|
|
25
|
+
// Check if VM exists
|
|
26
|
+
if (!(0, vm_1.vmExists)(name)) {
|
|
27
|
+
throw new Error(`VM "${name}" not found`);
|
|
28
|
+
}
|
|
29
|
+
const logPath = (0, vm_1.getVmLogPath)(name);
|
|
30
|
+
// Check if log file exists
|
|
31
|
+
if (!fs_1.default.existsSync(logPath)) {
|
|
32
|
+
console.log(chalk_1.default.yellow(`No logs found for VM "${name}"`));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// If follow option is enabled, tail -f the log file
|
|
36
|
+
if (options.follow) {
|
|
37
|
+
console.log(chalk_1.default.blue(`Following logs for VM "${name}" (Ctrl+C to exit)...`));
|
|
38
|
+
// Use tail -f to follow the log file
|
|
39
|
+
const tail = (0, child_process_1.spawn)('tail', ['-f', logPath], {
|
|
40
|
+
stdio: 'inherit'
|
|
41
|
+
});
|
|
42
|
+
// Handle process termination
|
|
43
|
+
process.on('SIGINT', () => {
|
|
44
|
+
tail.kill();
|
|
45
|
+
console.log('\nStopped following logs');
|
|
46
|
+
process.exit(0);
|
|
47
|
+
});
|
|
48
|
+
// Keep the process running
|
|
49
|
+
await new Promise(resolve => {
|
|
50
|
+
tail.on('close', resolve);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Read and display the log file
|
|
55
|
+
console.log(chalk_1.default.blue(`Logs for VM "${name}":`));
|
|
56
|
+
const logs = fs_1.default.readFileSync(logPath, 'utf8');
|
|
57
|
+
if (logs.trim() === '') {
|
|
58
|
+
console.log(chalk_1.default.yellow('Log file is empty'));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log(logs);
|
|
62
|
+
console.log(chalk_1.default.blue(`\nTo follow logs in real-time: ${chalk_1.default.green('phy vm logs -f')} ${name}`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/vm/logs.ts"],"names":[],"mappings":";;;;;AAaA,wBA2DC;AAxED,4CAAoB;AACpB,kDAA0B;AAC1B,iDAAsC;AACtC,uCAA8F;AAO9F;;GAEG;AACY,KAAK,UAAU,KAAK,CAAC,IAAY,EAAE,OAAmB;IACnE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,oDAAoD;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,IAAI,IAAA,uBAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,IAAI,yDAAyD,CAAC,CAAC,CAAC;QAChG,IAAA,qBAAgB,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,uBAAuB;IACnC,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;IAEnC,2BAA2B;IAC3B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,oDAAoD;IACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,IAAI,uBAAuB,CAAC,CAAC,CAAC;QAE/E,qCAAqC;QACrC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAC1C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,eAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,180 @@
|
|
|
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.default = removeVm;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const readline_1 = __importDefault(require("readline"));
|
|
10
|
+
const rimraf_1 = require("rimraf");
|
|
11
|
+
const vm_1 = require("../../utils/vm");
|
|
12
|
+
const stop_1 = __importDefault(require("./stop"));
|
|
13
|
+
/**
|
|
14
|
+
* Prompts the user for confirmation
|
|
15
|
+
*/
|
|
16
|
+
function promptForConfirmation(prompt) {
|
|
17
|
+
const rl = readline_1.default.createInterface({
|
|
18
|
+
input: process.stdin,
|
|
19
|
+
output: process.stdout
|
|
20
|
+
});
|
|
21
|
+
return new Promise(resolve => {
|
|
22
|
+
rl.question(prompt, (answer) => {
|
|
23
|
+
rl.close();
|
|
24
|
+
resolve(answer.toLowerCase() === 'yes');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Removes a single PhyOS VM (helper function)
|
|
30
|
+
*/
|
|
31
|
+
async function removeSingleVm(name, options, skipConfirmation = false) {
|
|
32
|
+
// Read VM config and settings for information
|
|
33
|
+
let vmDescription = '';
|
|
34
|
+
try {
|
|
35
|
+
const config = (0, vm_1.readVmConfig)(name);
|
|
36
|
+
const settings = (0, vm_1.readVmSettings)(name);
|
|
37
|
+
const headlessInfo = settings.headless ? ' (headless)' : '';
|
|
38
|
+
vmDescription = `"${name}" (version ${config.version}, arch ${config.arch}, ${settings.memory}MB RAM${headlessInfo})`;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
vmDescription = `"${name}"`;
|
|
42
|
+
}
|
|
43
|
+
// Check if VM is running
|
|
44
|
+
const isRunning = (0, vm_1.isVmRunning)(name);
|
|
45
|
+
// Stop the VM if it's running
|
|
46
|
+
if (isRunning) {
|
|
47
|
+
if (options.force) {
|
|
48
|
+
console.log(chalk_1.default.yellow(`Force stopping running VM "${name}"...`));
|
|
49
|
+
const pid = (0, vm_1.getVmPid)(name);
|
|
50
|
+
if (pid) {
|
|
51
|
+
try {
|
|
52
|
+
// Use SIGKILL for immediate termination
|
|
53
|
+
process.kill(pid, 'SIGKILL');
|
|
54
|
+
console.log(chalk_1.default.green(`Successfully stopped VM process (PID: ${pid})`));
|
|
55
|
+
// Remove PID file
|
|
56
|
+
const pidPath = (0, vm_1.getVmPidPath)(name);
|
|
57
|
+
if (fs_1.default.existsSync(pidPath)) {
|
|
58
|
+
fs_1.default.unlinkSync(pidPath);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.warn(chalk_1.default.yellow(`Failed to stop VM process: ${error.message}`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Use the regular stopVm function for a graceful shutdown
|
|
68
|
+
console.log(chalk_1.default.blue(`Stopping VM "${name}" before removal...`));
|
|
69
|
+
try {
|
|
70
|
+
await (0, stop_1.default)(name);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.warn(chalk_1.default.yellow(`Warning: Failed to gracefully stop VM: ${error.message}`));
|
|
74
|
+
console.warn(chalk_1.default.yellow(`Proceeding with removal anyway...`));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Get the VM directory path
|
|
79
|
+
const vmDir = (0, vm_1.getVmDir)(name);
|
|
80
|
+
console.log(chalk_1.default.blue(`Removing VM ${vmDescription}...`));
|
|
81
|
+
// Check if the directory exists
|
|
82
|
+
if (!fs_1.default.existsSync(vmDir)) {
|
|
83
|
+
throw new Error(`VM directory for "${name}" not found`);
|
|
84
|
+
}
|
|
85
|
+
// Remove the directory recursively using rimrafSync
|
|
86
|
+
(0, rimraf_1.rimrafSync)(vmDir);
|
|
87
|
+
console.log(chalk_1.default.green(`VM "${name}" has been successfully removed.`));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Removes one or more PhyOS VMs
|
|
91
|
+
*/
|
|
92
|
+
async function removeVm(names, options) {
|
|
93
|
+
// Handle single name (for backward compatibility)
|
|
94
|
+
const vmNames = Array.isArray(names) ? names : [names];
|
|
95
|
+
if (vmNames.length === 0) {
|
|
96
|
+
throw new Error('At least one VM name is required');
|
|
97
|
+
}
|
|
98
|
+
// Check which VMs exist and which don't
|
|
99
|
+
const existingVms = [];
|
|
100
|
+
const missingVms = [];
|
|
101
|
+
vmNames.forEach(name => {
|
|
102
|
+
if ((0, vm_1.vmExists)(name)) {
|
|
103
|
+
existingVms.push(name);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
missingVms.push(name);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// Report missing VMs
|
|
110
|
+
if (missingVms.length > 0) {
|
|
111
|
+
console.error(chalk_1.default.red(`❗️ The following VMs were not found: ${missingVms.join(', ')}`));
|
|
112
|
+
}
|
|
113
|
+
// If no existing VMs, exit
|
|
114
|
+
if (existingVms.length === 0) {
|
|
115
|
+
throw new Error('No VMs found to remove');
|
|
116
|
+
}
|
|
117
|
+
// Show summary of what will be removed
|
|
118
|
+
console.log(chalk_1.default.yellow(`About to remove ${existingVms.length} VM${existingVms.length > 1 ? 's' : ''}:`));
|
|
119
|
+
const runningVms = [];
|
|
120
|
+
existingVms.forEach(name => {
|
|
121
|
+
try {
|
|
122
|
+
const config = (0, vm_1.readVmConfig)(name);
|
|
123
|
+
const settings = (0, vm_1.readVmSettings)(name);
|
|
124
|
+
const isRunning = (0, vm_1.isVmRunning)(name);
|
|
125
|
+
if (isRunning) {
|
|
126
|
+
runningVms.push(name);
|
|
127
|
+
}
|
|
128
|
+
const headlessInfo = settings.headless ? ' (headless)' : '';
|
|
129
|
+
const runningInfo = isRunning ? ' [RUNNING]' : '';
|
|
130
|
+
console.log(chalk_1.default.yellow(` - "${name}" (version ${config.version}, arch ${config.arch}, ${settings.memory}MB RAM${headlessInfo})${runningInfo}`));
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const isRunning = (0, vm_1.isVmRunning)(name);
|
|
134
|
+
if (isRunning) {
|
|
135
|
+
runningVms.push(name);
|
|
136
|
+
}
|
|
137
|
+
const runningInfo = isRunning ? ' [RUNNING]' : '';
|
|
138
|
+
console.log(chalk_1.default.yellow(` - "${name}"${runningInfo}`));
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (runningVms.length > 0) {
|
|
142
|
+
console.log(chalk_1.default.yellow(`\n${runningVms.length} VM${runningVms.length > 1 ? 's are' : ' is'} currently running and will be stopped before removal.`));
|
|
143
|
+
}
|
|
144
|
+
// Get confirmation from user unless --force is used
|
|
145
|
+
if (!options.force) {
|
|
146
|
+
const confirmed = await promptForConfirmation(chalk_1.default.red(`Type 'yes' to confirm removal of ${existingVms.length} VM${existingVms.length > 1 ? 's' : ''}: `));
|
|
147
|
+
if (!confirmed) {
|
|
148
|
+
console.log(chalk_1.default.blue('Operation cancelled.'));
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Remove each VM
|
|
153
|
+
const removedVms = [];
|
|
154
|
+
const failedVms = [];
|
|
155
|
+
for (const name of existingVms) {
|
|
156
|
+
try {
|
|
157
|
+
await removeSingleVm(name, options, true);
|
|
158
|
+
removedVms.push(name);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.error(chalk_1.default.red(`❗️ Failed to remove VM "${name}": ${error.message}`));
|
|
162
|
+
failedVms.push({ name, error: error.message });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Summary
|
|
166
|
+
if (removedVms.length > 0) {
|
|
167
|
+
console.log(chalk_1.default.green(`\n✅ Successfully removed ${removedVms.length} VM${removedVms.length > 1 ? 's' : ''}: ${removedVms.join(', ')}`));
|
|
168
|
+
}
|
|
169
|
+
if (failedVms.length > 0) {
|
|
170
|
+
console.log(chalk_1.default.red(`\n❌ Failed to remove ${failedVms.length} VM${failedVms.length > 1 ? 's' : ''}: ${failedVms.map(f => f.name).join(', ')}`));
|
|
171
|
+
}
|
|
172
|
+
if (missingVms.length > 0) {
|
|
173
|
+
console.log(chalk_1.default.yellow(`\n⚠️ VMs not found: ${missingVms.join(', ')}`));
|
|
174
|
+
}
|
|
175
|
+
// Throw error if any operations failed
|
|
176
|
+
if (failedVms.length > 0 || missingVms.length > 0) {
|
|
177
|
+
throw new Error(`Some VM removal operations failed or VMs were not found`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/vm/remove.ts"],"names":[],"mappings":"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"}
|