@axway/axway-central-cli
Version:
Manage APIs, services and publish to the Amplify Marketplace
108 lines (103 loc) • 4.88 kB
JavaScript
;
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'
};