@rockcarver/frodo-cli 2.0.0-32 → 2.0.0-33
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/CHANGELOG.md +5 -1
- package/esm/cli/FrodoCommand.js +8 -1
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/admin/admin-export-full-cloud-config.js +44 -0
- package/esm/cli/admin/admin-export-full-cloud-config.js.map +1 -0
- package/esm/cli/admin/admin.js +1 -0
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +1 -1
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +1 -1
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +2 -2
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +2 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +1 -1
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +1 -1
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +1 -1
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +3 -3
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +2 -2
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +2 -2
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +1 -1
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/email/email-template-export.js +3 -3
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +4 -4
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +1 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/idm/idm-count.js +1 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +3 -3
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-list.js +2 -2
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +3 -3
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +4 -4
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +1 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +6 -2
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +4 -10
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +4 -10
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-import.js +4 -4
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +1 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +3 -3
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +1 -1
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +1 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-import.js +4 -4
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +1 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +1 -1
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-export.js +2 -6
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +3 -3
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +4 -4
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +4 -4
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +1 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +28 -26
- package/esm/ops/AdminFederationOps.js.map +1 -1
- package/esm/ops/AdminOps.js +112 -0
- package/esm/ops/AdminOps.js.map +1 -0
- package/esm/ops/AgentOps.js +59 -51
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +19 -13
- package/esm/ops/ApplicationOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +28 -26
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +78 -94
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +8 -31
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +49 -54
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +91 -70
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +13 -11
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +31 -26
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +42 -39
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +19 -16
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +49 -45
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +36 -55
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +13 -11
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +111 -130
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +14 -12
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/utils/Console.js +68 -30
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +4 -12
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/package.json +2 -2
package/esm/ops/AgentOps.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { createTable, debugMessage,
|
|
3
|
+
import { createProgressIndicator, createTable, debugMessage, printMessage, stopProgressIndicator } from '../utils/Console';
|
|
4
4
|
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
5
5
|
const {
|
|
6
6
|
getRealmName,
|
|
@@ -323,19 +323,20 @@ export async function importAgentFromFile(agentId, file) {
|
|
|
323
323
|
importData.agents = null;
|
|
324
324
|
}
|
|
325
325
|
// if an agentId was specified, only import the matching agent
|
|
326
|
+
let spinnerId;
|
|
326
327
|
if (importData.agents) {
|
|
327
|
-
if (!verbose)
|
|
328
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
328
329
|
try {
|
|
329
|
-
if (verbose)
|
|
330
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
330
331
|
await importAgent(agentId, importData);
|
|
331
|
-
|
|
332
|
+
stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');
|
|
332
333
|
} catch (importError) {
|
|
333
|
-
if (verbose)
|
|
334
|
-
|
|
334
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
335
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
335
336
|
}
|
|
336
337
|
} else {
|
|
337
|
-
|
|
338
|
-
|
|
338
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
339
|
+
stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');
|
|
339
340
|
}
|
|
340
341
|
});
|
|
341
342
|
}
|
|
@@ -349,22 +350,23 @@ export async function importFirstAgentFromFile(file) {
|
|
|
349
350
|
fs.readFile(getFilePath(file), 'utf8', async (err, data) => {
|
|
350
351
|
if (err) throw err;
|
|
351
352
|
const importData = JSON.parse(data);
|
|
353
|
+
let spinnerId;
|
|
352
354
|
if (Object.keys(importData.agents).length > 0) {
|
|
353
355
|
for (const agent of Object.values(importData.agents)) {
|
|
354
|
-
if (!verbose)
|
|
356
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
355
357
|
try {
|
|
356
|
-
if (verbose)
|
|
358
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
357
359
|
await importAgent(agent['_id'], importData);
|
|
358
|
-
|
|
360
|
+
stopProgressIndicator(spinnerId, `Imported ${agent['_id']}.`, 'success');
|
|
359
361
|
} catch (importError) {
|
|
360
|
-
if (verbose)
|
|
361
|
-
|
|
362
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
363
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
362
364
|
}
|
|
363
365
|
return;
|
|
364
366
|
}
|
|
365
367
|
} else {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);
|
|
369
|
+
stopProgressIndicator(spinnerId, `No agents found!`, 'fail');
|
|
368
370
|
}
|
|
369
371
|
});
|
|
370
372
|
}
|
|
@@ -421,18 +423,19 @@ export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
|
421
423
|
importData.agents = null;
|
|
422
424
|
}
|
|
423
425
|
// if an agentId was specified, only import the matching agent
|
|
426
|
+
let spinnerId;
|
|
424
427
|
if (importData.agents) {
|
|
425
|
-
if (!verbose)
|
|
428
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
426
429
|
try {
|
|
427
|
-
if (verbose)
|
|
430
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
428
431
|
await importIdentityGatewayAgent(agentId, importData);
|
|
429
|
-
|
|
432
|
+
stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');
|
|
430
433
|
} catch (importError) {
|
|
431
|
-
|
|
434
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
432
435
|
}
|
|
433
436
|
} else {
|
|
434
|
-
|
|
435
|
-
|
|
437
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
438
|
+
stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');
|
|
436
439
|
}
|
|
437
440
|
debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);
|
|
438
441
|
});
|
|
@@ -448,21 +451,22 @@ export async function importFirstIdentityGatewayAgentFromFile(file) {
|
|
|
448
451
|
fs.readFile(getFilePath(file), 'utf8', async (err, data) => {
|
|
449
452
|
if (err) throw err;
|
|
450
453
|
const importData = JSON.parse(data);
|
|
454
|
+
let spinnerId;
|
|
451
455
|
if (Object.keys(importData.agents).length > 0) {
|
|
452
456
|
for (const agent of Object.values(importData.agents)) {
|
|
453
|
-
if (!verbose)
|
|
457
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
454
458
|
try {
|
|
455
|
-
if (verbose)
|
|
459
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
456
460
|
await importIdentityGatewayAgent(agent['_id'], importData);
|
|
457
|
-
|
|
461
|
+
stopProgressIndicator(spinnerId, `Imported ${agent['_id']}.`, 'success');
|
|
458
462
|
} catch (importError) {
|
|
459
|
-
|
|
463
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
460
464
|
}
|
|
461
465
|
return;
|
|
462
466
|
}
|
|
463
467
|
} else {
|
|
464
|
-
|
|
465
|
-
|
|
468
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);
|
|
469
|
+
stopProgressIndicator(spinnerId, `No agents found!`, 'fail');
|
|
466
470
|
}
|
|
467
471
|
debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);
|
|
468
472
|
});
|
|
@@ -522,18 +526,19 @@ export async function importJavaAgentFromFile(agentId, file) {
|
|
|
522
526
|
importData.agents = null;
|
|
523
527
|
}
|
|
524
528
|
// if an agentId was specified, only import the matching agent
|
|
529
|
+
let spinnerId;
|
|
525
530
|
if (importData.agents) {
|
|
526
|
-
if (!verbose)
|
|
531
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
527
532
|
try {
|
|
528
|
-
if (verbose)
|
|
533
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
529
534
|
await importJavaAgent(agentId, importData);
|
|
530
|
-
|
|
535
|
+
stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');
|
|
531
536
|
} catch (importError) {
|
|
532
|
-
|
|
537
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
533
538
|
}
|
|
534
539
|
} else {
|
|
535
|
-
|
|
536
|
-
|
|
540
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
541
|
+
stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');
|
|
537
542
|
}
|
|
538
543
|
debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);
|
|
539
544
|
});
|
|
@@ -549,21 +554,22 @@ export async function importFirstJavaAgentFromFile(file) {
|
|
|
549
554
|
fs.readFile(getFilePath(file), 'utf8', async (err, data) => {
|
|
550
555
|
if (err) throw err;
|
|
551
556
|
const importData = JSON.parse(data);
|
|
557
|
+
let spinnerId;
|
|
552
558
|
if (Object.keys(importData.agents).length > 0) {
|
|
553
559
|
for (const agent of Object.values(importData.agents)) {
|
|
554
|
-
if (!verbose)
|
|
560
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
555
561
|
try {
|
|
556
|
-
if (verbose)
|
|
562
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
557
563
|
await importJavaAgent(agent['_id'], importData);
|
|
558
|
-
|
|
564
|
+
stopProgressIndicator(spinnerId, `Imported ${agent['_id']}.`, 'success');
|
|
559
565
|
} catch (importError) {
|
|
560
|
-
|
|
566
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
561
567
|
}
|
|
562
568
|
return;
|
|
563
569
|
}
|
|
564
570
|
} else {
|
|
565
|
-
|
|
566
|
-
|
|
571
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);
|
|
572
|
+
stopProgressIndicator(spinnerId, `No agents found!`, 'fail');
|
|
567
573
|
}
|
|
568
574
|
debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);
|
|
569
575
|
});
|
|
@@ -623,18 +629,19 @@ export async function importWebAgentFromFile(agentId, file) {
|
|
|
623
629
|
importData.agents = null;
|
|
624
630
|
}
|
|
625
631
|
// if an agentId was specified, only import the matching agent
|
|
632
|
+
let spinnerId;
|
|
626
633
|
if (importData.agents) {
|
|
627
|
-
if (!verbose)
|
|
634
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
628
635
|
try {
|
|
629
|
-
if (verbose)
|
|
636
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
630
637
|
await importWebAgent(agentId, importData);
|
|
631
|
-
|
|
638
|
+
stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');
|
|
632
639
|
} catch (importError) {
|
|
633
|
-
|
|
640
|
+
stopProgressIndicator(spinnerId, `${importError}`, 'fail');
|
|
634
641
|
}
|
|
635
642
|
} else {
|
|
636
|
-
|
|
637
|
-
|
|
643
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agentId}...`);
|
|
644
|
+
stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');
|
|
638
645
|
}
|
|
639
646
|
debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);
|
|
640
647
|
});
|
|
@@ -650,21 +657,22 @@ export async function importFirstWebAgentFromFile(file) {
|
|
|
650
657
|
fs.readFile(getFilePath(file), 'utf8', async (err, data) => {
|
|
651
658
|
if (err) throw err;
|
|
652
659
|
const importData = JSON.parse(data);
|
|
660
|
+
let spinnerId;
|
|
653
661
|
if (Object.keys(importData.agents).length > 0) {
|
|
654
662
|
for (const agent of Object.values(importData.agents)) {
|
|
655
|
-
if (!verbose)
|
|
663
|
+
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
656
664
|
try {
|
|
657
|
-
if (verbose)
|
|
665
|
+
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${agent['_id']}...`);
|
|
658
666
|
await importWebAgent(agent['_id'], importData);
|
|
659
|
-
|
|
667
|
+
stopProgressIndicator(spinnerId, `Imported ${agent['_id']}.`, 'success');
|
|
660
668
|
} catch (importError) {
|
|
661
|
-
|
|
669
|
+
stopProgressIndicator(spinnerId, `caught it here ${importError}`, 'fail');
|
|
662
670
|
}
|
|
663
671
|
break;
|
|
664
672
|
}
|
|
665
673
|
} else {
|
|
666
|
-
|
|
667
|
-
|
|
674
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);
|
|
675
|
+
stopProgressIndicator(spinnerId, `No agents found!`, 'fail');
|
|
668
676
|
}
|
|
669
677
|
debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);
|
|
670
678
|
});
|
package/esm/ops/AgentOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createTable","debugMessage","failSpinner","printMessage","showSpinner","succeedSpinner","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n succeedSpinner,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n */\nexport async function exportAgentsToFile(file) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData.agents) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData.agents) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importIdentityGatewayAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData.agents) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData.agents) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","spinnerId","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n */\nexport async function exportAgentsToFile(file) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import {
|
|
3
|
+
import { createProgressIndicator, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressIndicator, succeedSpinner, updateProgressIndicator } from '../utils/Console';
|
|
4
4
|
import { saveJsonToFile } from '../utils/ExportImportUtils';
|
|
5
5
|
import wordwrap from './utils/Wordwrap';
|
|
6
6
|
const {
|
|
@@ -170,24 +170,29 @@ export async function exportApplicationsToFiles(options = {
|
|
|
170
170
|
}) {
|
|
171
171
|
debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: begin`);
|
|
172
172
|
const errors = [];
|
|
173
|
+
let barId;
|
|
173
174
|
try {
|
|
174
175
|
const applications = await _readApplications();
|
|
175
|
-
|
|
176
|
+
barId = createProgressIndicator('determinate', applications.length, 'Exporting applications...');
|
|
176
177
|
for (const application of applications) {
|
|
177
|
-
const
|
|
178
|
+
const fileBarId = createProgressIndicator('determinate', 1, `Exporting application ${application.name}...`);
|
|
179
|
+
const file = getFilePath(getTypedFilename(application.name, 'application'), true);
|
|
178
180
|
try {
|
|
181
|
+
updateProgressIndicator(barId, `Exporting ${application.name}.`);
|
|
179
182
|
const exportData = await _exportApplication(application._id, options);
|
|
180
|
-
saveJsonToFile(exportData,
|
|
181
|
-
|
|
183
|
+
saveJsonToFile(exportData, file);
|
|
184
|
+
updateProgressIndicator(fileBarId, `Saving ${application.name} to ${file}.`);
|
|
185
|
+
stopProgressIndicator(fileBarId, `${application.name} saved to ${file}.`);
|
|
182
186
|
} catch (error) {
|
|
183
187
|
errors.push(error);
|
|
184
|
-
|
|
188
|
+
updateProgressIndicator(barId, `Error exporting ${application.name}.`);
|
|
189
|
+
stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}.`);
|
|
185
190
|
}
|
|
186
191
|
}
|
|
187
|
-
|
|
192
|
+
stopProgressIndicator(barId, `Export complete.`);
|
|
188
193
|
} catch (error) {
|
|
189
194
|
errors.push(error);
|
|
190
|
-
|
|
195
|
+
stopProgressIndicator(barId, `Error exporting applications(s) to file(s)`);
|
|
191
196
|
}
|
|
192
197
|
debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);
|
|
193
198
|
return 0 === errors.length;
|
|
@@ -283,11 +288,12 @@ export async function importApplicationsFromFiles(options = {
|
|
|
283
288
|
deps: true
|
|
284
289
|
}) {
|
|
285
290
|
const errors = [];
|
|
291
|
+
let barId;
|
|
286
292
|
try {
|
|
287
293
|
debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: begin`);
|
|
288
294
|
const names = fs.readdirSync(getWorkingDirectory());
|
|
289
295
|
const files = names.filter(name => name.toLowerCase().endsWith('.application.json')).map(name => getFilePath(name));
|
|
290
|
-
|
|
296
|
+
barId = createProgressIndicator('determinate', files.length, 'Importing applications...');
|
|
291
297
|
let total = 0;
|
|
292
298
|
for (const file of files) {
|
|
293
299
|
try {
|
|
@@ -296,17 +302,17 @@ export async function importApplicationsFromFiles(options = {
|
|
|
296
302
|
const count = Object.keys(fileData.application).length;
|
|
297
303
|
total += count;
|
|
298
304
|
await _importApplications(fileData, options);
|
|
299
|
-
|
|
305
|
+
updateProgressIndicator(barId, `Imported ${count} application(s) from ${file}`);
|
|
300
306
|
} catch (error) {
|
|
301
307
|
errors.push(error);
|
|
302
|
-
|
|
308
|
+
updateProgressIndicator(barId, `Error importing application(s) from ${file}`);
|
|
303
309
|
printMessage(error, 'error');
|
|
304
310
|
}
|
|
305
311
|
}
|
|
306
|
-
|
|
312
|
+
stopProgressIndicator(barId, `Finished importing ${total} application(s) from ${files.length} file(s).`);
|
|
307
313
|
} catch (error) {
|
|
308
314
|
errors.push(error);
|
|
309
|
-
|
|
315
|
+
stopProgressIndicator(barId, `Error importing application(s) from file(s).`);
|
|
310
316
|
printMessage(error, 'error');
|
|
311
317
|
}
|
|
312
318
|
debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);
|