@rockcarver/frodo-cli 0.24.5 → 2.0.0-2
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/.vscode/launch.json +15 -0
- package/CHANGELOG.md +9 -1
- package/esm/app.js +2 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +10 -10
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +2 -5
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +2 -5
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +2 -5
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +2 -5
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +2 -5
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +2 -5
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +2 -5
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +2 -5
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +2 -5
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +2 -5
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +2 -5
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +2 -5
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +2 -5
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +2 -5
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +2 -5
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -9
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +4 -11
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +3 -9
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +3 -9
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +3 -9
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +3 -9
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +3 -9
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +3 -9
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -9
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +3 -9
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +3 -9
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +3 -9
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +4 -11
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +2 -5
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +2 -5
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +4 -11
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +2 -5
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +2 -5
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +2 -5
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +2 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +2 -5
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +4 -11
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +2 -5
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +2 -5
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +2 -5
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +2 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +2 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +4 -11
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +2 -5
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +2 -5
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +2 -5
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +2 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +2 -5
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +2 -5
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +4 -7
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +5 -8
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +3 -6
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +4 -7
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +2 -5
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +6 -9
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +5 -8
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +3 -6
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +3 -6
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +2 -5
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +4 -7
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +5 -8
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +2 -5
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +4 -7
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +3 -6
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +5 -8
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +6 -9
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +2 -5
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +2 -5
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +1 -4
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +1 -4
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +6 -16
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +4 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +5 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +2 -5
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +6 -16
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +3 -8
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +6 -12
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +3 -8
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +2 -5
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +2 -5
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +3 -8
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +4 -9
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +3 -8
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +4 -9
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +3 -8
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +5 -10
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +4 -9
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +3 -8
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +6 -12
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +3 -8
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +2 -5
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +2 -5
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +3 -8
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +5 -11
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +2 -5
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +4 -7
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +5 -8
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +2 -5
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +2 -5
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +5 -8
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +2 -5
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +3 -9
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +5 -12
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +7 -15
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +3 -9
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +3 -9
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +4 -7
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +5 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +2 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +4 -11
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +7 -17
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +5 -15
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +7 -17
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +3 -8
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +4 -12
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +3 -8
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +3 -9
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +11 -15
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +15 -19
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +5 -9
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +5 -12
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +2 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +12 -30
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +15 -36
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +6 -14
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +3 -6
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +2 -5
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +2 -5
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +2 -5
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +4 -6
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +4 -6
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +3 -6
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +4 -7
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +5 -8
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +2 -5
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +4 -7
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +5 -8
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +6 -9
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +2 -5
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/launch.js +4 -3
- package/esm/launch.js.map +1 -1
- package/esm/ops/AgentOps.js +49 -82
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +217 -2
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +97 -8
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +16 -25
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +25 -39
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +10 -18
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +49 -65
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +9 -17
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +11 -11
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +13 -29
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +28 -0
- package/esm/ops/OrganizationOps.js.map +1 -0
- package/esm/ops/PolicyOps.js +22 -38
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +19 -37
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +109 -0
- package/esm/ops/RealmOps.js.map +1 -0
- package/esm/ops/ResourceTypeOps.js +19 -37
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +30 -251
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +14 -21
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +223 -0
- package/esm/ops/SecretsOps.js.map +1 -0
- package/esm/ops/ServiceOps.js +20 -41
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +20 -35
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +133 -0
- package/esm/ops/VariablesOps.js.map +1 -0
- package/esm/utils/Config.js +3 -6
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +2 -5
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +4 -6
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js +3 -3
- package/esm/utils/Version.js.map +1 -1
- package/package.json +4 -4
package/esm/launch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","names":["spawn","
|
|
1
|
+
{"version":3,"file":"launch.js","names":["spawn","fileURLToPath","launchArgs","URL","import","meta","url","href","frodoArgs","process","argv","slice","frodo","execPath","stdio","shell","on","code","exitCode"],"sources":["launch.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { spawn } from 'node:child_process';\nimport { fileURLToPath } from 'node:url';\n\nconst launchArgs = [\n // '--inspect-brk=2000',\n '--no-warnings',\n '--enable-source-maps',\n '--experimental-loader',\n new URL('./loader.js', import.meta.url).href,\n fileURLToPath(new URL('./app.js', import.meta.url)),\n];\nconst frodoArgs = process.argv.slice(2);\n\nconst frodo = spawn(process.execPath, [...launchArgs, ...frodoArgs], {\n stdio: 'inherit',\n shell: false,\n});\n\nfrodo.on('exit', (code) => {\n process.exitCode = code;\n});\n"],"mappings":"AAAA;AACA,SAASA,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,aAAa,QAAQ,UAAU;AAExC,MAAMC,UAAU,GAAG;AACjB;AACA,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,IAAIC,GAAG,CAAC,aAAa,EAAEC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAACC,IAAI,EAC5CN,aAAa,CAAC,IAAIE,GAAG,CAAC,UAAU,EAAEC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,CACpD;AACD,MAAME,SAAS,GAAGC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;AAEvC,MAAMC,KAAK,GAAGZ,KAAK,CAACS,OAAO,CAACI,QAAQ,EAAE,CAAC,GAAGX,UAAU,EAAE,GAAGM,SAAS,CAAC,EAAE;EACnEM,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE;AACT,CAAC,CAAC;AAEFH,KAAK,CAACI,EAAE,CAAC,MAAM,EAAGC,IAAI,IAAK;EACzBR,OAAO,CAACS,QAAQ,GAAGD,IAAI;AACzB,CAAC,CAAC"}
|
package/esm/ops/AgentOps.js
CHANGED
|
@@ -1,44 +1,11 @@
|
|
|
1
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import { printMessage, createTable, debugMessage, showSpinner, succeedSpinner, failSpinner } from '../utils/Console';
|
|
3
|
-
import {
|
|
4
|
-
const {
|
|
5
|
-
AGENT_TYPE_IG,
|
|
6
|
-
AGENT_TYPE_JAVA,
|
|
7
|
-
AGENT_TYPE_WEB,
|
|
8
|
-
createAgentExportTemplate,
|
|
9
|
-
getAgents,
|
|
10
|
-
getIdentityGatewayAgents,
|
|
11
|
-
getJavaAgents,
|
|
12
|
-
getWebAgents,
|
|
13
|
-
exportAgents,
|
|
14
|
-
exportIdentityGatewayAgents,
|
|
15
|
-
exportJavaAgents,
|
|
16
|
-
exportWebAgents,
|
|
17
|
-
exportAgent,
|
|
18
|
-
exportIdentityGatewayAgent,
|
|
19
|
-
exportJavaAgent,
|
|
20
|
-
exportWebAgent,
|
|
21
|
-
importAgents,
|
|
22
|
-
importIdentityGatewayAgents,
|
|
23
|
-
importJavaAgents,
|
|
24
|
-
importWebAgents,
|
|
25
|
-
importAgent,
|
|
26
|
-
importIdentityGatewayAgent,
|
|
27
|
-
importJavaAgent,
|
|
28
|
-
importWebAgent
|
|
29
|
-
} = Agent;
|
|
30
|
-
const {
|
|
31
|
-
getTypedFilename,
|
|
32
|
-
saveJsonToFile,
|
|
33
|
-
titleCase
|
|
34
|
-
} = ExportImportUtils;
|
|
35
|
-
const {
|
|
36
|
-
getRealmName
|
|
37
|
-
} = Utils;
|
|
4
|
+
import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
|
|
38
5
|
const agentTypeToFileIdMap = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
6
|
+
IdentityGatewayAgent: 'gateway.agent',
|
|
7
|
+
J2EEAgent: 'java.agent',
|
|
8
|
+
WebAgent: 'web.agent'
|
|
42
9
|
};
|
|
43
10
|
|
|
44
11
|
/**
|
|
@@ -46,7 +13,7 @@ const agentTypeToFileIdMap = {
|
|
|
46
13
|
*/
|
|
47
14
|
export async function listAgents(long = false) {
|
|
48
15
|
try {
|
|
49
|
-
const agents = await getAgents();
|
|
16
|
+
const agents = await frodo.agent.getAgents();
|
|
50
17
|
if (long) {
|
|
51
18
|
const table = createTable(['Agent Id', 'Status', 'Agent Type']);
|
|
52
19
|
for (const agent of agents) {
|
|
@@ -81,7 +48,7 @@ export async function listAgents(long = false) {
|
|
|
81
48
|
*/
|
|
82
49
|
export async function listIdentityGatewayAgents(long = false) {
|
|
83
50
|
try {
|
|
84
|
-
const agents = await getIdentityGatewayAgents();
|
|
51
|
+
const agents = await frodo.agent.getIdentityGatewayAgents();
|
|
85
52
|
if (long) {
|
|
86
53
|
const table = createTable(['Gateway Agent Id', 'Status']);
|
|
87
54
|
for (const agent of agents) {
|
|
@@ -104,7 +71,7 @@ export async function listIdentityGatewayAgents(long = false) {
|
|
|
104
71
|
*/
|
|
105
72
|
export async function listJavaAgents(long = false) {
|
|
106
73
|
try {
|
|
107
|
-
const agents = await getJavaAgents();
|
|
74
|
+
const agents = await frodo.agent.getJavaAgents();
|
|
108
75
|
if (long) {
|
|
109
76
|
const table = createTable(['Java Agent Id', 'Status']);
|
|
110
77
|
for (const agent of agents) {
|
|
@@ -127,7 +94,7 @@ export async function listJavaAgents(long = false) {
|
|
|
127
94
|
*/
|
|
128
95
|
export async function listWebAgents(long = false) {
|
|
129
96
|
try {
|
|
130
|
-
const agents = await getWebAgents();
|
|
97
|
+
const agents = await frodo.agent.getWebAgents();
|
|
131
98
|
if (long) {
|
|
132
99
|
const table = createTable(['Web Agent Id', 'Status']);
|
|
133
100
|
for (const agent of agents) {
|
|
@@ -150,8 +117,8 @@ export async function listWebAgents(long = false) {
|
|
|
150
117
|
* @param {string} file file name
|
|
151
118
|
*/
|
|
152
119
|
export async function exportAgentsToFile(file) {
|
|
153
|
-
const exportData = await exportAgents();
|
|
154
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.
|
|
120
|
+
const exportData = await frodo.agent.exportAgents();
|
|
121
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`, 'agent');
|
|
155
122
|
if (file) {
|
|
156
123
|
fileName = file;
|
|
157
124
|
}
|
|
@@ -163,8 +130,8 @@ export async function exportAgentsToFile(file) {
|
|
|
163
130
|
* @param {string} file file name
|
|
164
131
|
*/
|
|
165
132
|
export async function exportIdentityGatewayAgentsToFile(file) {
|
|
166
|
-
const exportData = await exportIdentityGatewayAgents();
|
|
167
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.
|
|
133
|
+
const exportData = await frodo.agent.exportIdentityGatewayAgents();
|
|
134
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['IdentityGatewayAgent']);
|
|
168
135
|
if (file) {
|
|
169
136
|
fileName = file;
|
|
170
137
|
}
|
|
@@ -176,8 +143,8 @@ export async function exportIdentityGatewayAgentsToFile(file) {
|
|
|
176
143
|
* @param {string} file file name
|
|
177
144
|
*/
|
|
178
145
|
export async function exportJavaAgentsToFile(file) {
|
|
179
|
-
const exportData = await exportJavaAgents();
|
|
180
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.
|
|
146
|
+
const exportData = await frodo.agent.exportJavaAgents();
|
|
147
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['J2EEAgent']);
|
|
181
148
|
if (file) {
|
|
182
149
|
fileName = file;
|
|
183
150
|
}
|
|
@@ -189,8 +156,8 @@ export async function exportJavaAgentsToFile(file) {
|
|
|
189
156
|
* @param {string} file file name
|
|
190
157
|
*/
|
|
191
158
|
export async function exportWebAgentsToFile(file) {
|
|
192
|
-
const exportData = await exportWebAgents();
|
|
193
|
-
let fileName = getTypedFilename(`all${titleCase(getRealmName(state.
|
|
159
|
+
const exportData = await frodo.agent.exportWebAgents();
|
|
160
|
+
let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['WebAgent']);
|
|
194
161
|
if (file) {
|
|
195
162
|
fileName = file;
|
|
196
163
|
}
|
|
@@ -203,7 +170,7 @@ export async function exportWebAgentsToFile(file) {
|
|
|
203
170
|
* @param {string} file file name
|
|
204
171
|
*/
|
|
205
172
|
export async function exportAgentToFile(agentId, file) {
|
|
206
|
-
const exportData = await exportAgent(agentId);
|
|
173
|
+
const exportData = await frodo.agent.exportAgent(agentId);
|
|
207
174
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
208
175
|
if (file) {
|
|
209
176
|
fileName = file;
|
|
@@ -217,7 +184,7 @@ export async function exportAgentToFile(agentId, file) {
|
|
|
217
184
|
* @param {string} file file name
|
|
218
185
|
*/
|
|
219
186
|
export async function exportIdentityGatewayAgentToFile(agentId, file) {
|
|
220
|
-
const exportData = await exportIdentityGatewayAgent(agentId);
|
|
187
|
+
const exportData = await frodo.agent.exportIdentityGatewayAgent(agentId);
|
|
221
188
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
222
189
|
if (file) {
|
|
223
190
|
fileName = file;
|
|
@@ -231,7 +198,7 @@ export async function exportIdentityGatewayAgentToFile(agentId, file) {
|
|
|
231
198
|
* @param {string} file file name
|
|
232
199
|
*/
|
|
233
200
|
export async function exportJavaAgentToFile(agentId, file) {
|
|
234
|
-
const exportData = await exportJavaAgent(agentId);
|
|
201
|
+
const exportData = await frodo.agent.exportJavaAgent(agentId);
|
|
235
202
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
236
203
|
if (file) {
|
|
237
204
|
fileName = file;
|
|
@@ -245,7 +212,7 @@ export async function exportJavaAgentToFile(agentId, file) {
|
|
|
245
212
|
* @param {string} file file name
|
|
246
213
|
*/
|
|
247
214
|
export async function exportWebAgentToFile(agentId, file) {
|
|
248
|
-
const exportData = await exportWebAgent(agentId);
|
|
215
|
+
const exportData = await frodo.agent.exportWebAgent(agentId);
|
|
249
216
|
let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
|
|
250
217
|
if (file) {
|
|
251
218
|
fileName = file;
|
|
@@ -257,11 +224,11 @@ export async function exportWebAgentToFile(agentId, file) {
|
|
|
257
224
|
* Export all agents to separate files
|
|
258
225
|
*/
|
|
259
226
|
export async function exportAgentsToFiles() {
|
|
260
|
-
const agents = await getAgents();
|
|
227
|
+
const agents = await frodo.agent.getAgents();
|
|
261
228
|
debugMessage(`exportAgentsToFiles: ${agents.length} agents`);
|
|
262
229
|
for (const agent of agents) {
|
|
263
230
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
264
|
-
const exportData = createAgentExportTemplate();
|
|
231
|
+
const exportData = frodo.agent.createAgentExportTemplate();
|
|
265
232
|
exportData.agents[agent._id] = agent;
|
|
266
233
|
debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);
|
|
267
234
|
saveJsonToFile(exportData, fileName);
|
|
@@ -273,10 +240,10 @@ export async function exportAgentsToFiles() {
|
|
|
273
240
|
* Export all identity gateway agents to separate files
|
|
274
241
|
*/
|
|
275
242
|
export async function exportIdentityGatewayAgentsToFiles() {
|
|
276
|
-
const agents = await getIdentityGatewayAgents();
|
|
243
|
+
const agents = await frodo.agent.getIdentityGatewayAgents();
|
|
277
244
|
for (const agent of agents) {
|
|
278
245
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
279
|
-
const exportData = createAgentExportTemplate();
|
|
246
|
+
const exportData = frodo.agent.createAgentExportTemplate();
|
|
280
247
|
exportData.agents[agent._id] = agent;
|
|
281
248
|
saveJsonToFile(exportData, fileName);
|
|
282
249
|
}
|
|
@@ -286,10 +253,10 @@ export async function exportIdentityGatewayAgentsToFiles() {
|
|
|
286
253
|
* Export all java agents to separate files
|
|
287
254
|
*/
|
|
288
255
|
export async function exportJavaAgentsToFiles() {
|
|
289
|
-
const agents = await getJavaAgents();
|
|
256
|
+
const agents = await frodo.agent.getJavaAgents();
|
|
290
257
|
for (const agent of agents) {
|
|
291
258
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
292
|
-
const exportData = createAgentExportTemplate();
|
|
259
|
+
const exportData = frodo.agent.createAgentExportTemplate();
|
|
293
260
|
exportData.agents[agent._id] = agent;
|
|
294
261
|
saveJsonToFile(exportData, fileName);
|
|
295
262
|
}
|
|
@@ -299,10 +266,10 @@ export async function exportJavaAgentsToFiles() {
|
|
|
299
266
|
* Export all web agents to separate files
|
|
300
267
|
*/
|
|
301
268
|
export async function exportWebAgentsToFiles() {
|
|
302
|
-
const agents = await getWebAgents();
|
|
269
|
+
const agents = await frodo.agent.getWebAgents();
|
|
303
270
|
for (const agent of agents) {
|
|
304
271
|
const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
|
|
305
|
-
const exportData = createAgentExportTemplate();
|
|
272
|
+
const exportData = frodo.agent.createAgentExportTemplate();
|
|
306
273
|
exportData.agents[agent._id] = agent;
|
|
307
274
|
saveJsonToFile(exportData, fileName);
|
|
308
275
|
}
|
|
@@ -314,7 +281,7 @@ export async function exportWebAgentsToFiles() {
|
|
|
314
281
|
* @param {string} file import file name
|
|
315
282
|
*/
|
|
316
283
|
export async function importAgentFromFile(agentId, file) {
|
|
317
|
-
const verbose = state.
|
|
284
|
+
const verbose = state.getVerbose();
|
|
318
285
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
319
286
|
if (err) throw err;
|
|
320
287
|
let importData = JSON.parse(data);
|
|
@@ -329,7 +296,7 @@ export async function importAgentFromFile(agentId, file) {
|
|
|
329
296
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
330
297
|
try {
|
|
331
298
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
332
|
-
await importAgent(agentId, importData);
|
|
299
|
+
await frodo.agent.importAgent(agentId, importData);
|
|
333
300
|
succeedSpinner(`Imported ${agentId}.`);
|
|
334
301
|
} catch (importError) {
|
|
335
302
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
@@ -347,7 +314,7 @@ export async function importAgentFromFile(agentId, file) {
|
|
|
347
314
|
* @param {string} file import file name
|
|
348
315
|
*/
|
|
349
316
|
export async function importFirstAgentFromFile(file) {
|
|
350
|
-
const verbose = state.
|
|
317
|
+
const verbose = state.getVerbose();
|
|
351
318
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
352
319
|
if (err) throw err;
|
|
353
320
|
const importData = JSON.parse(data);
|
|
@@ -356,7 +323,7 @@ export async function importFirstAgentFromFile(file) {
|
|
|
356
323
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
357
324
|
try {
|
|
358
325
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
359
|
-
await importAgent(agent['_id'], importData);
|
|
326
|
+
await frodo.agent.importAgent(agent['_id'], importData);
|
|
360
327
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
361
328
|
} catch (importError) {
|
|
362
329
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
@@ -382,7 +349,7 @@ export async function importAgentsFromFile(file) {
|
|
|
382
349
|
debugMessage(`importAgentsFromFile: importing ${file}`);
|
|
383
350
|
const importData = JSON.parse(data);
|
|
384
351
|
try {
|
|
385
|
-
await importAgents(importData);
|
|
352
|
+
await frodo.agent.importAgents(importData);
|
|
386
353
|
} catch (error) {
|
|
387
354
|
printMessage(`${error.message}`, 'error');
|
|
388
355
|
printMessage(error.response.status, 'error');
|
|
@@ -409,7 +376,7 @@ export async function importAgentsFromFiles() {
|
|
|
409
376
|
*/
|
|
410
377
|
export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
411
378
|
debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);
|
|
412
|
-
const verbose = state.
|
|
379
|
+
const verbose = state.getVerbose();
|
|
413
380
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
414
381
|
if (err) throw err;
|
|
415
382
|
let importData = JSON.parse(data);
|
|
@@ -424,7 +391,7 @@ export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
|
424
391
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
425
392
|
try {
|
|
426
393
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
427
|
-
await importIdentityGatewayAgent(agentId, importData);
|
|
394
|
+
await frodo.agent.importIdentityGatewayAgent(agentId, importData);
|
|
428
395
|
succeedSpinner(`Imported ${agentId}.`);
|
|
429
396
|
} catch (importError) {
|
|
430
397
|
failSpinner(`${importError}`);
|
|
@@ -443,7 +410,7 @@ export async function importIdentityGatewayAgentFromFile(agentId, file) {
|
|
|
443
410
|
*/
|
|
444
411
|
export async function importFirstIdentityGatewayAgentFromFile(file) {
|
|
445
412
|
debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);
|
|
446
|
-
const verbose = state.
|
|
413
|
+
const verbose = state.getVerbose();
|
|
447
414
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
448
415
|
if (err) throw err;
|
|
449
416
|
const importData = JSON.parse(data);
|
|
@@ -452,7 +419,7 @@ export async function importFirstIdentityGatewayAgentFromFile(file) {
|
|
|
452
419
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
453
420
|
try {
|
|
454
421
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
455
|
-
await importIdentityGatewayAgent(agent['_id'], importData);
|
|
422
|
+
await frodo.agent.importIdentityGatewayAgent(agent['_id'], importData);
|
|
456
423
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
457
424
|
} catch (importError) {
|
|
458
425
|
failSpinner(`${importError}`);
|
|
@@ -478,7 +445,7 @@ export async function importIdentityGatewayAgentsFromFile(file) {
|
|
|
478
445
|
debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`);
|
|
479
446
|
const importData = JSON.parse(data);
|
|
480
447
|
try {
|
|
481
|
-
await importIdentityGatewayAgents(importData);
|
|
448
|
+
await frodo.agent.importIdentityGatewayAgents(importData);
|
|
482
449
|
} catch (error) {
|
|
483
450
|
printMessage(`${error.message}`, 'error');
|
|
484
451
|
printMessage(error.response.status, 'error');
|
|
@@ -507,7 +474,7 @@ export async function importIdentityGatewayAgentsFromFiles() {
|
|
|
507
474
|
*/
|
|
508
475
|
export async function importJavaAgentFromFile(agentId, file) {
|
|
509
476
|
debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);
|
|
510
|
-
const verbose = state.
|
|
477
|
+
const verbose = state.getVerbose();
|
|
511
478
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
512
479
|
if (err) throw err;
|
|
513
480
|
let importData = JSON.parse(data);
|
|
@@ -522,7 +489,7 @@ export async function importJavaAgentFromFile(agentId, file) {
|
|
|
522
489
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
523
490
|
try {
|
|
524
491
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
525
|
-
await importJavaAgent(agentId, importData);
|
|
492
|
+
await frodo.agent.importJavaAgent(agentId, importData);
|
|
526
493
|
succeedSpinner(`Imported ${agentId}.`);
|
|
527
494
|
} catch (importError) {
|
|
528
495
|
failSpinner(`${importError}`);
|
|
@@ -541,7 +508,7 @@ export async function importJavaAgentFromFile(agentId, file) {
|
|
|
541
508
|
*/
|
|
542
509
|
export async function importFirstJavaAgentFromFile(file) {
|
|
543
510
|
debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);
|
|
544
|
-
const verbose = state.
|
|
511
|
+
const verbose = state.getVerbose();
|
|
545
512
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
546
513
|
if (err) throw err;
|
|
547
514
|
const importData = JSON.parse(data);
|
|
@@ -550,7 +517,7 @@ export async function importFirstJavaAgentFromFile(file) {
|
|
|
550
517
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
551
518
|
try {
|
|
552
519
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
553
|
-
await importJavaAgent(agent['_id'], importData);
|
|
520
|
+
await frodo.agent.importJavaAgent(agent['_id'], importData);
|
|
554
521
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
555
522
|
} catch (importError) {
|
|
556
523
|
failSpinner(`${importError}`);
|
|
@@ -576,7 +543,7 @@ export async function importJavaAgentsFromFile(file) {
|
|
|
576
543
|
debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);
|
|
577
544
|
const importData = JSON.parse(data);
|
|
578
545
|
try {
|
|
579
|
-
await importJavaAgents(importData);
|
|
546
|
+
await frodo.agent.importJavaAgents(importData);
|
|
580
547
|
} catch (error) {
|
|
581
548
|
printMessage(`${error.message}`, 'error');
|
|
582
549
|
printMessage(error.response.status, 'error');
|
|
@@ -605,7 +572,7 @@ export async function importJavaAgentsFromFiles() {
|
|
|
605
572
|
*/
|
|
606
573
|
export async function importWebAgentFromFile(agentId, file) {
|
|
607
574
|
debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);
|
|
608
|
-
const verbose = state.
|
|
575
|
+
const verbose = state.getVerbose();
|
|
609
576
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
610
577
|
if (err) throw err;
|
|
611
578
|
let importData = JSON.parse(data);
|
|
@@ -620,7 +587,7 @@ export async function importWebAgentFromFile(agentId, file) {
|
|
|
620
587
|
if (!verbose) showSpinner(`Importing ${agentId}...`);
|
|
621
588
|
try {
|
|
622
589
|
if (verbose) showSpinner(`Importing ${agentId}...`);
|
|
623
|
-
await importWebAgent(agentId, importData);
|
|
590
|
+
await frodo.agent.importWebAgent(agentId, importData);
|
|
624
591
|
succeedSpinner(`Imported ${agentId}.`);
|
|
625
592
|
} catch (importError) {
|
|
626
593
|
failSpinner(`${importError}`);
|
|
@@ -639,7 +606,7 @@ export async function importWebAgentFromFile(agentId, file) {
|
|
|
639
606
|
*/
|
|
640
607
|
export async function importFirstWebAgentFromFile(file) {
|
|
641
608
|
debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);
|
|
642
|
-
const verbose = state.
|
|
609
|
+
const verbose = state.getVerbose();
|
|
643
610
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
644
611
|
if (err) throw err;
|
|
645
612
|
const importData = JSON.parse(data);
|
|
@@ -648,7 +615,7 @@ export async function importFirstWebAgentFromFile(file) {
|
|
|
648
615
|
if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
649
616
|
try {
|
|
650
617
|
if (verbose) showSpinner(`Importing ${agent['_id']}...`);
|
|
651
|
-
await importWebAgent(agent['_id'], importData);
|
|
618
|
+
await frodo.agent.importWebAgent(agent['_id'], importData);
|
|
652
619
|
succeedSpinner(`Imported ${agent['_id']}.`);
|
|
653
620
|
} catch (importError) {
|
|
654
621
|
failSpinner(`caught it here ${importError}`);
|
|
@@ -674,7 +641,7 @@ export async function importWebAgentsFromFile(file) {
|
|
|
674
641
|
debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);
|
|
675
642
|
const importData = JSON.parse(data);
|
|
676
643
|
try {
|
|
677
|
-
await importWebAgents(importData);
|
|
644
|
+
await frodo.agent.importWebAgents(importData);
|
|
678
645
|
} catch (error) {
|
|
679
646
|
printMessage(`${error.message}`, 'error');
|
|
680
647
|
printMessage(error.response.status, 'error');
|
package/esm/ops/AgentOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.js","names":["fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","ExportImportUtils","Agent","Utils","state","AGENT_TYPE_IG","AGENT_TYPE_JAVA","AGENT_TYPE_WEB","createAgentExportTemplate","getAgents","getIdentityGatewayAgents","getJavaAgents","getWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","getTypedFilename","saveJsonToFile","titleCase","getRealmName","agentTypeToFileIdMap","listAgents","long","agents","table","agent","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","default","session","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","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":["ops/AgentOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport { ExportImportUtils, Agent, Utils, state } from '@rockcarver/frodo-lib';\nimport { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\nconst {\n AGENT_TYPE_IG,\n AGENT_TYPE_JAVA,\n AGENT_TYPE_WEB,\n createAgentExportTemplate,\n getAgents,\n getIdentityGatewayAgents,\n getJavaAgents,\n getWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n} = Agent;\nconst { getTypedFilename, saveJsonToFile, titleCase } = ExportImportUtils;\nconst { getRealmName } = Utils;\n\nconst agentTypeToFileIdMap = {\n [AGENT_TYPE_IG]: 'gateway.agent',\n [AGENT_TYPE_JAVA]: 'java.agent',\n [AGENT_TYPE_WEB]: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await getAgents();\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 getIdentityGatewayAgents();\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 getJavaAgents();\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 getWebAgents();\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.default.session.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_IG]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_JAVA]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_WEB]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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, fileName);\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, fileName);\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, fileName);\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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await getAgents();\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 exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\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 getIdentityGatewayAgents();\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, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await getJavaAgents();\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, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await getWebAgents();\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, fileName);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\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.default.session.getVerbose();\n fs.readFile(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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\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.default.session.getVerbose();\n fs.readFile(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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\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.default.session.getVerbose();\n fs.readFile(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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\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.default.session.getVerbose();\n fs.readFile(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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\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('.');\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","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getTypedFilename","saveJsonToFile","titleCase","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","agent","getAgents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","getIdentityGatewayAgents","listJavaAgents","getJavaAgents","listWebAgents","getWebAgents","exportAgentsToFile","file","exportData","exportAgents","fileName","helper","utils","getRealmName","getRealm","exportIdentityGatewayAgentsToFile","exportIdentityGatewayAgents","exportJavaAgentsToFile","exportJavaAgents","exportWebAgentsToFile","exportWebAgents","exportAgentToFile","agentId","exportAgent","exportIdentityGatewayAgentToFile","exportIdentityGatewayAgent","exportJavaAgentToFile","exportJavaAgent","exportWebAgentToFile","exportWebAgent","exportAgentsToFiles","length","createAgentExportTemplate","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importAgent","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","importAgents","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importIdentityGatewayAgent","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgents","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importJavaAgent","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgents","importJavaAgentsFromFiles","importWebAgentFromFile","importWebAgent","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgents","importWebAgentsFromFiles"],"sources":["ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\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 frodo.agent.getAgents();\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 frodo.agent.getIdentityGatewayAgents();\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 frodo.agent.getJavaAgents();\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 frodo.agent.getWebAgents();\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 frodo.agent.exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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 frodo.agent.exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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 frodo.agent.exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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 frodo.agent.exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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 frodo.agent.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, fileName);\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 frodo.agent.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, fileName);\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 frodo.agent.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, fileName);\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 frodo.agent.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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await frodo.agent.getAgents();\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 exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\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 frodo.agent.getIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await frodo.agent.getJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await frodo.agent.getWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.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(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 frodo.agent.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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.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(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 frodo.agent.importIdentityGatewayAgent(\n agent['_id'],\n importData\n );\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.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(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 frodo.agent.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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.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(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 frodo.agent.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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.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('.');\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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"}
|