@calltelemetry/cli 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +104 -2
  2. package/dist/commands/appliance.d.ts.map +1 -1
  3. package/dist/commands/appliance.js +48 -0
  4. package/dist/commands/appliance.js.map +1 -1
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +15 -2
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/db.d.ts.map +1 -1
  9. package/dist/commands/db.js +33 -0
  10. package/dist/commands/db.js.map +1 -1
  11. package/dist/commands/diag.d.ts.map +1 -1
  12. package/dist/commands/diag.js +3 -0
  13. package/dist/commands/diag.js.map +1 -1
  14. package/dist/commands/health.d.ts +3 -0
  15. package/dist/commands/health.d.ts.map +1 -0
  16. package/dist/commands/health.js +34 -0
  17. package/dist/commands/health.js.map +1 -0
  18. package/dist/index.js +2 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/bundle.d.ts +1 -0
  21. package/dist/lib/bundle.d.ts.map +1 -1
  22. package/dist/lib/bundle.js +49 -3
  23. package/dist/lib/bundle.js.map +1 -1
  24. package/dist/lib/compose.d.ts.map +1 -1
  25. package/dist/lib/compose.js +126 -13
  26. package/dist/lib/compose.js.map +1 -1
  27. package/dist/lib/hardware.d.ts +46 -0
  28. package/dist/lib/hardware.d.ts.map +1 -0
  29. package/dist/lib/hardware.js +180 -0
  30. package/dist/lib/hardware.js.map +1 -0
  31. package/dist/lib/health-report.d.ts +93 -0
  32. package/dist/lib/health-report.d.ts.map +1 -0
  33. package/dist/lib/health-report.js +391 -0
  34. package/dist/lib/health-report.js.map +1 -0
  35. package/dist/lib/migration-003-nm-heal.js +5 -5
  36. package/dist/lib/migration-003-nm-heal.js.map +1 -1
  37. package/dist/lib/migration-009-bind-mount-files.js +2 -2
  38. package/dist/lib/migration-009-bind-mount-files.js.map +1 -1
  39. package/dist/lib/migration-010-jtapi-state.js +2 -2
  40. package/dist/lib/migration-010-jtapi-state.js.map +1 -1
  41. package/dist/lib/migration-011-docker-memory-limit.js +2 -2
  42. package/dist/lib/migration-011-docker-memory-limit.js.map +1 -1
  43. package/dist/lib/migration-012-db-pool-sizes.d.ts +6 -6
  44. package/dist/lib/migration-012-db-pool-sizes.d.ts.map +1 -1
  45. package/dist/lib/migration-012-db-pool-sizes.js +27 -36
  46. package/dist/lib/migration-012-db-pool-sizes.js.map +1 -1
  47. package/dist/lib/migration-013-grafana-password.d.ts.map +1 -1
  48. package/dist/lib/migration-013-grafana-password.js +5 -13
  49. package/dist/lib/migration-013-grafana-password.js.map +1 -1
  50. package/dist/lib/postgres-performance.d.ts +51 -0
  51. package/dist/lib/postgres-performance.d.ts.map +1 -0
  52. package/dist/lib/postgres-performance.js +279 -0
  53. package/dist/lib/postgres-performance.js.map +1 -0
  54. package/dist/lib/postgres.d.ts +1 -1
  55. package/dist/lib/postgres.d.ts.map +1 -1
  56. package/dist/lib/postgres.js +17 -53
  57. package/dist/lib/postgres.js.map +1 -1
  58. package/dist/lib/prompts.d.ts +2 -1
  59. package/dist/lib/prompts.d.ts.map +1 -1
  60. package/dist/lib/prompts.js +30 -1
  61. package/dist/lib/prompts.js.map +1 -1
  62. package/dist/lib/services.d.ts.map +1 -1
  63. package/dist/lib/services.js +70 -1
  64. package/dist/lib/services.js.map +1 -1
  65. package/dist/lib/showtech-steps.d.ts +5 -1
  66. package/dist/lib/showtech-steps.d.ts.map +1 -1
  67. package/dist/lib/showtech-steps.js +44 -13
  68. package/dist/lib/showtech-steps.js.map +1 -1
  69. package/dist/lib/update-steps.d.ts.map +1 -1
  70. package/dist/lib/update-steps.js +8 -1
  71. package/dist/lib/update-steps.js.map +1 -1
  72. package/dist/lib/update.d.ts +8 -0
  73. package/dist/lib/update.d.ts.map +1 -1
  74. package/dist/lib/update.js +36 -4
  75. package/dist/lib/update.js.map +1 -1
  76. package/dist/lib/version.d.ts +1 -1
  77. package/dist/lib/version.js +1 -1
  78. package/dist/shell/commands/appliance-hardware.d.ts +5 -0
  79. package/dist/shell/commands/appliance-hardware.d.ts.map +1 -0
  80. package/dist/shell/commands/appliance-hardware.js +47 -0
  81. package/dist/shell/commands/appliance-hardware.js.map +1 -0
  82. package/dist/shell/commands/appliance-performance.d.ts.map +1 -1
  83. package/dist/shell/commands/appliance-performance.js +37 -50
  84. package/dist/shell/commands/appliance-performance.js.map +1 -1
  85. package/dist/shell/commands/db.d.ts +1 -0
  86. package/dist/shell/commands/db.d.ts.map +1 -1
  87. package/dist/shell/commands/db.js +18 -0
  88. package/dist/shell/commands/db.js.map +1 -1
  89. package/dist/shell/commands/registry.d.ts.map +1 -1
  90. package/dist/shell/commands/registry.js +12 -1
  91. package/dist/shell/commands/registry.js.map +1 -1
  92. package/dist/shell/commands/show.d.ts +1 -0
  93. package/dist/shell/commands/show.d.ts.map +1 -1
  94. package/dist/shell/commands/show.js +37 -1
  95. package/dist/shell/commands/show.js.map +1 -1
  96. package/dist/shell/network-onboarding.d.ts +1 -0
  97. package/dist/shell/network-onboarding.d.ts.map +1 -1
  98. package/dist/shell/network-onboarding.js +13 -10
  99. package/dist/shell/network-onboarding.js.map +1 -1
  100. package/dist/ui/components/PostgresPerformanceLines.d.ts +7 -0
  101. package/dist/ui/components/PostgresPerformanceLines.d.ts.map +1 -0
  102. package/dist/ui/components/PostgresPerformanceLines.js +7 -0
  103. package/dist/ui/components/PostgresPerformanceLines.js.map +1 -0
  104. package/dist/ui/components/index.d.ts +1 -0
  105. package/dist/ui/components/index.d.ts.map +1 -1
  106. package/dist/ui/components/index.js +1 -0
  107. package/dist/ui/components/index.js.map +1 -1
  108. package/dist/ui/views/DbHealthView.d.ts.map +1 -1
  109. package/dist/ui/views/DbHealthView.js +26 -27
  110. package/dist/ui/views/DbHealthView.js.map +1 -1
  111. package/dist/ui/views/DbStatusView.d.ts.map +1 -1
  112. package/dist/ui/views/DbStatusView.js +5 -3
  113. package/dist/ui/views/DbStatusView.js.map +1 -1
  114. package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
  115. package/dist/ui/views/DiagDatabaseView.js +3 -1
  116. package/dist/ui/views/DiagDatabaseView.js.map +1 -1
  117. package/dist/ui/views/DiagShowTechView.d.ts +3 -1
  118. package/dist/ui/views/DiagShowTechView.d.ts.map +1 -1
  119. package/dist/ui/views/DiagShowTechView.js +3 -3
  120. package/dist/ui/views/DiagShowTechView.js.map +1 -1
  121. package/dist/ui/views/DiskHardwareCheckView.d.ts +6 -0
  122. package/dist/ui/views/DiskHardwareCheckView.d.ts.map +1 -0
  123. package/dist/ui/views/DiskHardwareCheckView.js +108 -0
  124. package/dist/ui/views/DiskHardwareCheckView.js.map +1 -0
  125. package/dist/ui/views/HealthReportView.d.ts +6 -0
  126. package/dist/ui/views/HealthReportView.d.ts.map +1 -0
  127. package/dist/ui/views/HealthReportView.js +82 -0
  128. package/dist/ui/views/HealthReportView.js.map +1 -0
  129. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  130. package/dist/ui/views/MainMenu.js +7 -1
  131. package/dist/ui/views/MainMenu.js.map +1 -1
  132. package/package.json +1 -1
@@ -63,7 +63,7 @@ export async function fetchAvailableVersions() {
63
63
  throw new Error(`Failed to fetch available versions from GCS${context}`);
64
64
  }
65
65
  }
66
- /** Copy a file, falling back to sudo cp if destination is owned by root */
66
+ /** Copy a file, falling back to sudo cp if destination requires elevated access. */
67
67
  async function safeCopy(src, dest) {
68
68
  try {
69
69
  await copyFile(src, dest);
@@ -78,6 +78,21 @@ async function safeCopy(src, dest) {
78
78
  }
79
79
  }
80
80
  }
81
+ /** chmod a file, falling back to sudo chmod if destination requires elevated access. */
82
+ async function safeChmod(path, mode) {
83
+ try {
84
+ await chmod(path, mode);
85
+ }
86
+ catch (err) {
87
+ if (err?.code === 'EACCES') {
88
+ debug(`Permission denied chmod ${path}, using sudo`);
89
+ await exec('sudo', ['chmod', mode.toString(8), path]);
90
+ }
91
+ else {
92
+ throw err;
93
+ }
94
+ }
95
+ }
81
96
  export async function downloadBundle(version, options) {
82
97
  const { gcsBundleBaseUrl, installDir, composeFile } = getPaths();
83
98
  const bundleName = `calltelemetry-bundle-${version}.tar.gz`;
@@ -131,8 +146,8 @@ export async function downloadBundle(version, options) {
131
146
  const extractedCli = join(extractDir, 'cli.sh');
132
147
  if (existsSync(extractedCli)) {
133
148
  const cliDest = join(installDir, 'cli.sh');
134
- await copyFile(extractedCli, cliDest);
135
- await chmod(cliDest, 0o755);
149
+ await safeCopy(extractedCli, cliDest);
150
+ await safeChmod(cliDest, 0o755);
136
151
  if (!quiet)
137
152
  out.ok('cli.sh');
138
153
  debug('Extracted cli.sh');
@@ -254,6 +269,20 @@ export async function downloadBundle(version, options) {
254
269
  out.ok('All config files extracted');
255
270
  }
256
271
  export async function extractImages(composeFile) {
272
+ try {
273
+ const { stdout } = await exec('docker', ['compose', '-f', composeFile, 'config', '--images'], {
274
+ cwd: dirname(composeFile),
275
+ });
276
+ const images = String(stdout ?? '')
277
+ .split(/\r?\n/)
278
+ .map(line => line.trim())
279
+ .filter(image => image.includes('calltelemetry/'));
280
+ if (images.length > 0)
281
+ return Array.from(new Set(images));
282
+ }
283
+ catch (err) {
284
+ debug(`docker compose config --images failed, falling back to static parser: ${err.message}`);
285
+ }
257
286
  const { extractImageNames } = await import('./offline-steps.js');
258
287
  const content = readFileSync(composeFile, 'utf-8');
259
288
  const rawImages = extractImageNames(content, 'calltelemetry');
@@ -269,6 +298,15 @@ export async function extractImages(composeFile) {
269
298
  }
270
299
  return rawImages.map(img => resolveImageTag(img, envVars));
271
300
  }
301
+ export async function isImagePresentLocally(image) {
302
+ try {
303
+ await exec('docker', ['image', 'inspect', image]);
304
+ return true;
305
+ }
306
+ catch {
307
+ return false;
308
+ }
309
+ }
272
310
  export async function checkImageAvailability(composeFile) {
273
311
  const images = await extractImages(composeFile);
274
312
  let allAvailable = true;
@@ -276,6 +314,10 @@ export async function checkImageAvailability(composeFile) {
276
314
  for (const image of images) {
277
315
  process.stdout.write(` Checking ${image}... `);
278
316
  try {
317
+ if (await isImagePresentLocally(image)) {
318
+ console.log('✓ Available locally');
319
+ continue;
320
+ }
279
321
  await execa('docker', ['manifest', 'inspect', image]);
280
322
  console.log('✓ Available');
281
323
  }
@@ -293,6 +335,10 @@ export async function checkImageAvailabilityQuiet(composeFile) {
293
335
  const results = [];
294
336
  for (const image of images) {
295
337
  try {
338
+ if (await isImagePresentLocally(image)) {
339
+ results.push({ image, available: true });
340
+ continue;
341
+ }
296
342
  await exec('docker', ['manifest', 'inspect', image]);
297
343
  results.push({ image, available: true });
298
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/lib/bundle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA6CD,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAIjE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CA0BpE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;IAmBzF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;;;;IAkBA;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;IAkBnG;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAM7C;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;IAEhF"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA6CD,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAYjE,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CA0BpE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;IAmBzF;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;;;;IAuBA;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;IAkBnG;AAED,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjE;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAM7C;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;;;;IAEhF"}
@@ -113,18 +113,25 @@ export async function composeExec(service, command, options) {
113
113
  const cmd = await detectComposeCommand();
114
114
  const { installDir } = getPaths();
115
115
  const envArgs = Object.entries(options?.env ?? {}).flatMap(([k, v]) => ['-e', `${k}=${v}`]);
116
- if (cmd === 'docker compose') {
117
- return execa('docker', ['compose', 'exec', '-T', ...envArgs, service, ...command], {
118
- cwd: installDir,
119
- stdout: options?.pipe ? 'pipe' : 'inherit',
120
- stderr: options?.pipe ? 'pipe' : 'inherit',
121
- });
122
- }
123
- return execa('docker-compose', ['exec', '-T', ...envArgs, service, ...command], {
116
+ const ioOptions = {
124
117
  cwd: installDir,
125
118
  stdout: options?.pipe ? 'pipe' : 'inherit',
126
119
  stderr: options?.pipe ? 'pipe' : 'inherit',
127
- });
120
+ };
121
+ if (cmd === 'docker compose') {
122
+ try {
123
+ return await execa('docker', ['compose', 'exec', '-T', ...envArgs, service, ...command], ioOptions);
124
+ }
125
+ catch (err) {
126
+ return composeExecFallback(err, service, envArgs, command, options);
127
+ }
128
+ }
129
+ try {
130
+ return await execa('docker-compose', ['exec', '-T', ...envArgs, service, ...command], ioOptions);
131
+ }
132
+ catch (err) {
133
+ return composeExecFallback(err, service, envArgs, command, options);
134
+ }
128
135
  }
129
136
  export async function composeWithFiles(files, args, options) {
130
137
  const cmd = await detectComposeCommand();
@@ -147,12 +154,19 @@ export async function composePs(service) {
147
154
  const cmd = await detectComposeCommand();
148
155
  const { installDir } = getPaths();
149
156
  const args = service ? ['ps', '-q', service] : ['ps'];
157
+ let stdout;
150
158
  if (cmd === 'docker compose') {
151
- const { stdout } = await execa('docker', ['compose', ...args], { cwd: installDir });
152
- return stdout.trim();
159
+ const result = await execa('docker', ['compose', ...args], { cwd: installDir });
160
+ stdout = result.stdout.trim();
153
161
  }
154
- const { stdout } = await execa('docker-compose', args, { cwd: installDir });
155
- return stdout.trim();
162
+ else {
163
+ const result = await execa('docker-compose', args, { cwd: installDir });
164
+ stdout = result.stdout.trim();
165
+ }
166
+ if (stdout || !service) {
167
+ return stdout;
168
+ }
169
+ return await findComposeContainerForService(service) ?? '';
156
170
  }
157
171
  export function getAllComposeFiles() {
158
172
  const { composeFile, overrideFile, secretsOverlayFile } = getPaths();
@@ -166,4 +180,103 @@ export function getAllComposeFiles() {
166
180
  export async function composeUp(args = [], options) {
167
181
  return composeWithFiles(getAllComposeFiles(), ['up', ...args], options);
168
182
  }
183
+ async function composeExecFallback(err, service, envArgs, command, options) {
184
+ if (!shouldFallbackToDockerExec(err, service)) {
185
+ throw err;
186
+ }
187
+ const container = await findComposeContainerForService(service);
188
+ if (!container) {
189
+ throw err;
190
+ }
191
+ debug(`Falling back to docker exec for compose service ${service} (${container})`);
192
+ return execa('docker', ['exec', ...envArgs, container, ...command], {
193
+ stdout: options?.pipe ? 'pipe' : 'inherit',
194
+ stderr: options?.pipe ? 'pipe' : 'inherit',
195
+ });
196
+ }
197
+ function shouldFallbackToDockerExec(err, service) {
198
+ const anyErr = err;
199
+ const text = `${anyErr.message ?? ''}\n${anyErr.stderr ?? ''}`.toLowerCase();
200
+ return text.includes(`service "${service.toLowerCase()}" is not running`) ||
201
+ text.includes(`service ${service.toLowerCase()} is not running`) ||
202
+ text.includes('no such service') ||
203
+ text.includes('has no container') ||
204
+ text.includes('no container found') ||
205
+ text.includes('container is not running');
206
+ }
207
+ async function findComposeContainerForService(service) {
208
+ try {
209
+ const containers = await listRunningComposeContainers();
210
+ const candidates = containers.filter((container) => container.service === service);
211
+ if (candidates.length === 0) {
212
+ return null;
213
+ }
214
+ const { installDir } = getPaths();
215
+ const projectServices = new Map();
216
+ for (const container of containers) {
217
+ const services = projectServices.get(container.project) ?? new Set();
218
+ services.add(container.service);
219
+ projectServices.set(container.project, services);
220
+ }
221
+ candidates.sort((a, b) => {
222
+ const pathDelta = workingDirScore(b.workingDir, installDir) - workingDirScore(a.workingDir, installDir);
223
+ if (pathDelta !== 0)
224
+ return pathDelta;
225
+ const appDelta = projectScore(b.project, projectServices) - projectScore(a.project, projectServices);
226
+ if (appDelta !== 0)
227
+ return appDelta;
228
+ const defaultProjectDelta = Number(b.project === 'docker-compose') - Number(a.project === 'docker-compose');
229
+ if (defaultProjectDelta !== 0)
230
+ return defaultProjectDelta;
231
+ return a.name.localeCompare(b.name);
232
+ });
233
+ return candidates[0]?.id ?? null;
234
+ }
235
+ catch (err) {
236
+ debug(`Compose container fallback lookup failed: ${err.message}`);
237
+ return null;
238
+ }
239
+ }
240
+ async function listRunningComposeContainers() {
241
+ const { stdout } = await execa('docker', [
242
+ 'ps',
243
+ '--filter',
244
+ 'label=com.docker.compose.project',
245
+ '--format',
246
+ '{{.ID}}\t{{.Names}}\t{{.Label "com.docker.compose.service"}}\t{{.Label "com.docker.compose.project"}}\t{{.Label "com.docker.compose.project.working_dir"}}',
247
+ ], {
248
+ stdout: 'pipe',
249
+ stderr: 'pipe',
250
+ });
251
+ return stdout
252
+ .split('\n')
253
+ .map((line) => line.trim())
254
+ .filter(Boolean)
255
+ .map((line) => {
256
+ const [id = '', name = '', service = '', project = '', workingDir = ''] = line.split('\t');
257
+ return { id, name, service, project, workingDir };
258
+ })
259
+ .filter((container) => container.id && container.service && container.project);
260
+ }
261
+ function workingDirScore(workingDir, installDir) {
262
+ if (workingDir === installDir)
263
+ return 3;
264
+ if (workingDir.startsWith(`${installDir}/`))
265
+ return 2;
266
+ if (installDir.startsWith(`${workingDir}/`))
267
+ return 1;
268
+ return 0;
269
+ }
270
+ function projectScore(project, projectServices) {
271
+ const services = projectServices.get(project);
272
+ if (!services)
273
+ return 0;
274
+ if (services.has('web'))
275
+ return 3;
276
+ if (services.has('spa'))
277
+ return 2;
278
+ if (services.has('api'))
279
+ return 1;
280
+ return 0;
281
+ }
169
282
  //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD,KAAK,UAAU,sBAAsB;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxC,IAAI,KAAa,CAAC;QAElB,IAAI,GAAG,CAAC,QAAQ,CAAC,qCAAqC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;YAClH,KAAK,GAAG,8BAA8B,CAAC;QACzC,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrF,KAAK,GAAG,oCAAoC,CAAC;QAC/C,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,KAAK,GAAG,yBAAyB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,wCAAwC,CAAC;QACnD,CAAC;QAED,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,IAAI,KAAa,CAAC;QAElB,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,KAAK,GAAG,iCAAiC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,GAAG,IAAI,8BAA8B,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,4CAA4C,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAID,IAAI,SAAS,GAA0B,IAAI,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,UAAU,KAAK,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACvF,KAAK,CAAC,uBAAuB,UAAU,IAAI,aAAa,eAAe,eAAe,KAAK,KAAK,EAAE,CAAC,CAAC;IAEpG,MAAM,YAAY,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACpD,IAAI,YAAY,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;QACpC,SAAS,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACtD,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC/B,SAAS,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,IAAI,eAAe,CAAC;IAC/E,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,IAAI;QAC9C,kFAAkF,CACnF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,OAA4C;IACxF,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAElC,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE;YAC3C,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE;QACnC,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,OAAiB,EAAE,OAGrE;IACC,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5F,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE;YACjF,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE;QAC9E,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAe,EAAE,IAAc,EAAE,OAA4B;IAClG,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;YACxD,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;QACrD,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB;IAC9C,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,UAAU,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,UAAU,CAAC,kBAAkB,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAiB,EAAE,EAAE,OAA4B;IAC/E,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/lib/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export declare const DEFAULT_DISK_CHECK_DIRECTORY = "/var/tmp";
2
+ export declare const DEFAULT_DISK_CHECK_SIZE = "512M";
3
+ export declare const DEFAULT_DISK_CHECK_RUNTIME_SEC = 15;
4
+ export interface DiskCheckOptions {
5
+ directory?: string;
6
+ size?: string;
7
+ runtimeSec?: number;
8
+ }
9
+ export interface FioMetric {
10
+ iops: number;
11
+ bandwidthBytesPerSec: number;
12
+ }
13
+ export interface DiskCheckPhaseResult {
14
+ label: string;
15
+ blockSize: string;
16
+ read: FioMetric;
17
+ write: FioMetric;
18
+ }
19
+ export interface DiskCheckResult {
20
+ fioVersion: string;
21
+ directory: string;
22
+ size: string;
23
+ runtimeSec: number;
24
+ phases: DiskCheckPhaseResult[];
25
+ }
26
+ export interface DiskCheckSeriesSample {
27
+ sampleNumber: number;
28
+ totalSamples: number;
29
+ random: DiskCheckPhaseResult;
30
+ sequential: DiskCheckPhaseResult;
31
+ }
32
+ export interface DiskCheckSeriesResult extends DiskCheckResult {
33
+ sampleCount: number;
34
+ randomReadIopsHistory: number[];
35
+ randomWriteIopsHistory: number[];
36
+ sequentialReadBandwidthHistory: number[];
37
+ sequentialWriteBandwidthHistory: number[];
38
+ }
39
+ export declare function runDiskCheck(options?: DiskCheckOptions): Promise<DiskCheckResult>;
40
+ export declare function runDiskCheckSeries(options?: DiskCheckOptions & {
41
+ sampleCount?: number;
42
+ onSample?: (sample: DiskCheckSeriesSample) => void;
43
+ }): Promise<DiskCheckSeriesResult>;
44
+ export declare function formatIops(iops: number): string;
45
+ export declare function formatBandwidth(bytesPerSec: number): string;
46
+ //# sourceMappingURL=hardware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../../src/lib/hardware.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,4BAA4B,aAAa,CAAC;AACvD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,+BAA+B,EAAE,MAAM,EAAE,CAAC;CAC3C;AA6ED,wBAAsB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiC3F;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,gBAAgB,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC/C,GACL,OAAO,CAAC,qBAAqB,CAAC,CAiFhC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3D"}
@@ -0,0 +1,180 @@
1
+ import { mkdtemp, rm } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { exec } from './exec.js';
4
+ export const DEFAULT_DISK_CHECK_DIRECTORY = '/var/tmp';
5
+ export const DEFAULT_DISK_CHECK_SIZE = '512M';
6
+ export const DEFAULT_DISK_CHECK_RUNTIME_SEC = 15;
7
+ function toMetric(value) {
8
+ return {
9
+ iops: Number(value?.iops ?? 0),
10
+ bandwidthBytesPerSec: Number(value?.bw_bytes ?? 0),
11
+ };
12
+ }
13
+ function parseFioResult(stdout, label, blockSize) {
14
+ const parsed = JSON.parse(stdout);
15
+ const job = parsed.jobs?.[0];
16
+ if (!job) {
17
+ throw new Error(`fio did not return any jobs for ${label}`);
18
+ }
19
+ return {
20
+ label,
21
+ blockSize,
22
+ read: toMetric(job.read),
23
+ write: toMetric(job.write),
24
+ };
25
+ }
26
+ function diskCheckArgs(filename, size, runtimeSec, rw, blockSize) {
27
+ return [
28
+ `--name=${rw}`,
29
+ `--filename=${filename}`,
30
+ `--rw=${rw}`,
31
+ '--rwmixread=50',
32
+ `--bs=${blockSize}`,
33
+ '--direct=1',
34
+ '--numjobs=1',
35
+ `--size=${size}`,
36
+ `--runtime=${runtimeSec}`,
37
+ '--time_based=1',
38
+ '--group_reporting=1',
39
+ '--output-format=json',
40
+ ];
41
+ }
42
+ function average(values) {
43
+ if (values.length === 0)
44
+ return 0;
45
+ return values.reduce((sum, value) => sum + value, 0) / values.length;
46
+ }
47
+ async function runFioPhase(filename, size, runtimeSec, rw, blockSize, label) {
48
+ const { stdout } = await exec('fio', diskCheckArgs(filename, size, runtimeSec, rw, blockSize), {
49
+ env: {
50
+ ...process.env,
51
+ LANG: 'C',
52
+ },
53
+ });
54
+ return parseFioResult(String(stdout ?? ''), label, blockSize);
55
+ }
56
+ export async function runDiskCheck(options = {}) {
57
+ const directory = options.directory ?? DEFAULT_DISK_CHECK_DIRECTORY;
58
+ const size = options.size ?? DEFAULT_DISK_CHECK_SIZE;
59
+ const runtimeSec = options.runtimeSec ?? DEFAULT_DISK_CHECK_RUNTIME_SEC;
60
+ try {
61
+ const { stdout: fioVersion } = await exec('fio', ['--version']);
62
+ const tempDir = await mkdtemp(join(directory, 'ct-fio-'));
63
+ const filename = join(tempDir, 'disk-check.bin');
64
+ try {
65
+ const phases = await Promise.all([
66
+ runFioPhase(filename, size, runtimeSec, 'randrw', '4k', 'Random IOPS'),
67
+ runFioPhase(filename, size, runtimeSec, 'rw', '1M', 'Sequential Bandwidth'),
68
+ ]);
69
+ return {
70
+ fioVersion: String(fioVersion ?? '').trim(),
71
+ directory,
72
+ size,
73
+ runtimeSec,
74
+ phases,
75
+ };
76
+ }
77
+ finally {
78
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
79
+ }
80
+ }
81
+ catch (err) {
82
+ const message = err instanceof Error ? err.message : String(err);
83
+ if (message.includes('ENOENT') || message.includes('command not found')) {
84
+ throw new Error('fio is not installed or not available on PATH');
85
+ }
86
+ throw err;
87
+ }
88
+ }
89
+ export async function runDiskCheckSeries(options = {}) {
90
+ const directory = options.directory ?? DEFAULT_DISK_CHECK_DIRECTORY;
91
+ const size = options.size ?? DEFAULT_DISK_CHECK_SIZE;
92
+ const runtimeSec = options.runtimeSec ?? DEFAULT_DISK_CHECK_RUNTIME_SEC;
93
+ const sampleCount = options.sampleCount ?? 6;
94
+ try {
95
+ const { stdout: fioVersion } = await exec('fio', ['--version']);
96
+ const tempDir = await mkdtemp(join(directory, 'ct-fio-'));
97
+ const filename = join(tempDir, 'disk-check.bin');
98
+ try {
99
+ const randomReadIopsHistory = [];
100
+ const randomWriteIopsHistory = [];
101
+ const sequentialReadBandwidthHistory = [];
102
+ const sequentialWriteBandwidthHistory = [];
103
+ for (let index = 0; index < sampleCount; index += 1) {
104
+ const random = await runFioPhase(filename, size, runtimeSec, 'randrw', '4k', 'Random IOPS');
105
+ const sequential = await runFioPhase(filename, size, runtimeSec, 'rw', '1M', 'Sequential Bandwidth');
106
+ randomReadIopsHistory.push(random.read.iops);
107
+ randomWriteIopsHistory.push(random.write.iops);
108
+ sequentialReadBandwidthHistory.push(sequential.read.bandwidthBytesPerSec);
109
+ sequentialWriteBandwidthHistory.push(sequential.write.bandwidthBytesPerSec);
110
+ options.onSample?.({
111
+ sampleNumber: index + 1,
112
+ totalSamples: sampleCount,
113
+ random,
114
+ sequential,
115
+ });
116
+ }
117
+ return {
118
+ fioVersion: String(fioVersion ?? '').trim(),
119
+ directory,
120
+ size,
121
+ runtimeSec,
122
+ sampleCount,
123
+ phases: [
124
+ {
125
+ label: 'Random IOPS',
126
+ blockSize: '4k',
127
+ read: {
128
+ iops: average(randomReadIopsHistory),
129
+ bandwidthBytesPerSec: 0,
130
+ },
131
+ write: {
132
+ iops: average(randomWriteIopsHistory),
133
+ bandwidthBytesPerSec: 0,
134
+ },
135
+ },
136
+ {
137
+ label: 'Sequential Bandwidth',
138
+ blockSize: '1M',
139
+ read: {
140
+ iops: 0,
141
+ bandwidthBytesPerSec: average(sequentialReadBandwidthHistory),
142
+ },
143
+ write: {
144
+ iops: 0,
145
+ bandwidthBytesPerSec: average(sequentialWriteBandwidthHistory),
146
+ },
147
+ },
148
+ ],
149
+ randomReadIopsHistory,
150
+ randomWriteIopsHistory,
151
+ sequentialReadBandwidthHistory,
152
+ sequentialWriteBandwidthHistory,
153
+ };
154
+ }
155
+ finally {
156
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
157
+ }
158
+ }
159
+ catch (err) {
160
+ const message = err instanceof Error ? err.message : String(err);
161
+ if (message.includes('ENOENT') || message.includes('command not found')) {
162
+ throw new Error('fio is not installed or not available on PATH');
163
+ }
164
+ throw err;
165
+ }
166
+ }
167
+ export function formatIops(iops) {
168
+ if (iops >= 1_000_000)
169
+ return `${(iops / 1_000_000).toFixed(2)}M`;
170
+ if (iops >= 1_000)
171
+ return `${(iops / 1_000).toFixed(1)}k`;
172
+ return iops.toFixed(0);
173
+ }
174
+ export function formatBandwidth(bytesPerSec) {
175
+ const mib = bytesPerSec / (1024 * 1024);
176
+ if (mib >= 1024)
177
+ return `${(mib / 1024).toFixed(2)} GiB/s`;
178
+ return `${mib.toFixed(1)} MiB/s`;
179
+ }
180
+ //# sourceMappingURL=hardware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/lib/hardware.ts"],"names":[],"mappings":"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"}