UNPKG

@axway/axway-central-cli

Version:

Manage APIs, services and publish to the Amplify Marketplace

108 lines (103 loc) 4.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.agentResource = void 0; var _snooplogg = _interopRequireDefault(require("snooplogg")); var _chalk = _interopRequireDefault(require("chalk")); var _Renderer = _interopRequireDefault(require("../../common/Renderer")); var _types = require("../../common/types"); var _helpers = require("../install/helpers"); var _ApiServerClient = require("../../common/ApiServerClient"); var _DefinitionsManager = require("../../common/DefinitionsManager"); var _basicPrompts = require("../../common/basicPrompts"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const { log } = (0, _snooplogg.default)('engage: create: agent-resource'); const action = async ({ argv, console }) => { const { baseUrl, account, region } = argv; const render = new _Renderer.default(console); let isCmdError = false; // parameters - all prompts answered will update this object; needed for the configuration of agent resrouces let parameters = { agentType: '', dataPlaneName: '', environmentName: '', teamName: '', discoveryAgentName: '', ampcDiscoveryAgentName: '', traceabilityAgentName: '', ampcTraceabilityAgentName: '' }; try { const apiServerClient = new _ApiServerClient.ApiServerClient({ baseUrl, account, region }); const defsManager = await new _DefinitionsManager.DefinitionsManager(apiServerClient).init(); // Agent resource Type parameters.agentType = await askAgentType(); const isDiscoveryAgent = parameters.agentType === _types.BundleType.DISCOVERY || parameters.agentType === _types.BundleType.ALL_AGENTS; const isTraceabilityAgent = parameters.agentType === _types.BundleType.TRACEABILITY || parameters.agentType === _types.BundleType.ALL_AGENTS; // environment const environmentInfo = await (0, _helpers.askEnvironmentName)(apiServerClient, defsManager); if (isDiscoveryAgent) { // Discovery Agent Name parameters.discoveryAgentName = await (0, _helpers.askAgentName)(apiServerClient, defsManager, _types.AgentTypes.da, environmentInfo.name); } if (isTraceabilityAgent) { // Traceability Agent Name parameters.traceabilityAgentName = await (0, _helpers.askAgentName)(apiServerClient, defsManager, _types.AgentTypes.ta, environmentInfo.name); } // dataplane name parameters.dataPlaneName = await askDataPlaneName(); if (parameters.dataPlaneName == _types.DataPlaneNames.OTHER) { parameters.dataPlaneName = await (0, _basicPrompts.askInput)({ msg: 'Enter the type of dataplane type' }); } // Create Environment Name if necessary parameters.environmentName = environmentInfo.isNew ? await (0, _helpers.createByResourceType)(apiServerClient, defsManager, environmentInfo.name, 'Environment', 'env') : environmentInfo.name; if (isDiscoveryAgent) { // Create DiscoveryAgent Resource parameters.ampcDiscoveryAgentName = await (0, _helpers.createNewAgentResource)(apiServerClient, defsManager, parameters.environmentName, parameters.dataPlaneName, _types.AgentResourceKind.da, _types.AgentTypes.da, parameters.teamName, parameters.discoveryAgentName); console.log(_chalk.default.cyan(`To use this resource, add the following to your discovery agent's environment variables file: CENTRAL_AGENTNAME=${parameters.discoveryAgentName}\n`)); } if (isTraceabilityAgent) { // Create TraceabilityAgent Resource parameters.ampcTraceabilityAgentName = await (0, _helpers.createNewAgentResource)(apiServerClient, defsManager, parameters.environmentName, parameters.dataPlaneName, _types.AgentResourceKind.ta, _types.AgentTypes.ta, parameters.teamName, parameters.traceabilityAgentName); console.log(_chalk.default.cyan(`To use this resource, add the following to your traceability agent's environment variables file: CENTRAL_AGENTNAME=${parameters.traceabilityAgentName}`)); } } catch (e) { log('command error', e); render.anyError(e); isCmdError = true; } finally { log('command finished, error = ', isCmdError); if (isCmdError) { process.exit(1); } } }; const askAgentType = async () => await (0, _basicPrompts.askList)({ msg: 'Select the type of agent resource(s) you want to create', choices: [_types.BundleType.ALL_AGENTS, _types.BundleType.DISCOVERY, _types.BundleType.TRACEABILITY] }); const askDataPlaneName = async () => await (0, _basicPrompts.askList)({ msg: 'Select the type of dataplane you want to create', choices: [_types.DataPlaneNames.AWS, _types.DataPlaneNames.AZURE, _types.DataPlaneNames.EDGE, _types.DataPlaneNames.OTHER] }); const agentResource = exports.agentResource = { aliases: ['agent-resource', 'agentresource'], action, desc: 'Create an agent resource' };