@rockcarver/frodo-cli 0.18.2-1 → 0.18.2-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.
Files changed (127) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/esm/app.js +2 -0
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +25 -0
  5. package/esm/cli/_template/something-delete.js.map +1 -0
  6. package/esm/cli/_template/something-describe.js +25 -0
  7. package/esm/cli/_template/something-describe.js.map +1 -0
  8. package/esm/cli/_template/something-else-delete.js +25 -0
  9. package/esm/cli/_template/something-else-delete.js.map +1 -0
  10. package/esm/cli/_template/something-else-describe.js +25 -0
  11. package/esm/cli/_template/something-else-describe.js.map +1 -0
  12. package/esm/cli/_template/something-else-export.js +25 -0
  13. package/esm/cli/_template/something-else-export.js.map +1 -0
  14. package/esm/cli/_template/something-else-import.js +25 -0
  15. package/esm/cli/_template/something-else-import.js.map +1 -0
  16. package/esm/cli/_template/something-else-list.js +25 -0
  17. package/esm/cli/_template/something-else-list.js.map +1 -0
  18. package/esm/cli/_template/something-else.js +10 -0
  19. package/esm/cli/_template/something-else.js.map +1 -0
  20. package/esm/cli/_template/something-export.js +25 -0
  21. package/esm/cli/_template/something-export.js.map +1 -0
  22. package/esm/cli/_template/something-import.js +25 -0
  23. package/esm/cli/_template/something-import.js.map +1 -0
  24. package/esm/cli/_template/something-list.js +25 -0
  25. package/esm/cli/_template/something-list.js.map +1 -0
  26. package/esm/cli/_template/something-other-delete.js +25 -0
  27. package/esm/cli/_template/something-other-delete.js.map +1 -0
  28. package/esm/cli/_template/something-other-describe.js +25 -0
  29. package/esm/cli/_template/something-other-describe.js.map +1 -0
  30. package/esm/cli/_template/something-other-export.js +25 -0
  31. package/esm/cli/_template/something-other-export.js.map +1 -0
  32. package/esm/cli/_template/something-other-import.js +25 -0
  33. package/esm/cli/_template/something-other-import.js.map +1 -0
  34. package/esm/cli/_template/{cmd-export.js → something-other-list.js} +6 -3
  35. package/esm/cli/_template/something-other-list.js.map +1 -0
  36. package/esm/cli/_template/something-other.js +10 -0
  37. package/esm/cli/_template/something-other.js.map +1 -0
  38. package/esm/cli/_template/something.js +19 -0
  39. package/esm/cli/_template/something.js.map +1 -0
  40. package/esm/cli/agent/agent-delete.js +57 -0
  41. package/esm/cli/agent/agent-delete.js.map +1 -0
  42. package/esm/cli/{_template/cmd-describe.js → agent/agent-describe.js} +5 -2
  43. package/esm/cli/agent/agent-describe.js.map +1 -0
  44. package/esm/cli/agent/agent-export.js +44 -0
  45. package/esm/cli/agent/agent-export.js.map +1 -0
  46. package/esm/cli/agent/agent-gateway-delete.js +57 -0
  47. package/esm/cli/agent/agent-gateway-delete.js.map +1 -0
  48. package/esm/cli/agent/agent-gateway-describe.js +25 -0
  49. package/esm/cli/agent/agent-gateway-describe.js.map +1 -0
  50. package/esm/cli/agent/agent-gateway-export.js +44 -0
  51. package/esm/cli/agent/agent-gateway-export.js.map +1 -0
  52. package/esm/cli/agent/agent-gateway-import.js +48 -0
  53. package/esm/cli/agent/agent-gateway-import.js.map +1 -0
  54. package/esm/cli/agent/agent-gateway-list.js +27 -0
  55. package/esm/cli/agent/agent-gateway-list.js.map +1 -0
  56. package/esm/cli/agent/agent-gateway.js +10 -0
  57. package/esm/cli/agent/agent-gateway.js.map +1 -0
  58. package/esm/cli/agent/agent-import.js +48 -0
  59. package/esm/cli/agent/agent-import.js.map +1 -0
  60. package/esm/cli/agent/agent-java-delete.js +57 -0
  61. package/esm/cli/agent/agent-java-delete.js.map +1 -0
  62. package/esm/cli/agent/agent-java-describe.js +25 -0
  63. package/esm/cli/agent/agent-java-describe.js.map +1 -0
  64. package/esm/cli/agent/agent-java-export.js +44 -0
  65. package/esm/cli/agent/agent-java-export.js.map +1 -0
  66. package/esm/cli/agent/agent-java-import.js +48 -0
  67. package/esm/cli/agent/agent-java-import.js.map +1 -0
  68. package/esm/cli/agent/agent-java-list.js +27 -0
  69. package/esm/cli/agent/agent-java-list.js.map +1 -0
  70. package/esm/cli/agent/agent-java.js +10 -0
  71. package/esm/cli/agent/agent-java.js.map +1 -0
  72. package/esm/cli/{_template/cmd-sub1-export.js → agent/agent-list.js} +9 -4
  73. package/esm/cli/agent/agent-list.js.map +1 -0
  74. package/esm/cli/agent/agent-web-delete.js +57 -0
  75. package/esm/cli/agent/agent-web-delete.js.map +1 -0
  76. package/esm/cli/agent/agent-web-describe.js +25 -0
  77. package/esm/cli/agent/agent-web-describe.js.map +1 -0
  78. package/esm/cli/agent/agent-web-export.js +44 -0
  79. package/esm/cli/agent/agent-web-export.js.map +1 -0
  80. package/esm/cli/agent/agent-web-import.js +48 -0
  81. package/esm/cli/agent/agent-web-import.js.map +1 -0
  82. package/esm/cli/agent/agent-web-list.js +27 -0
  83. package/esm/cli/agent/agent-web-list.js.map +1 -0
  84. package/esm/cli/agent/agent-web.js +10 -0
  85. package/esm/cli/agent/agent-web.js.map +1 -0
  86. package/esm/cli/agent/agent.js +20 -0
  87. package/esm/cli/agent/agent.js.map +1 -0
  88. package/esm/cli/cmd_common.js +3 -1
  89. package/esm/cli/cmd_common.js.map +1 -1
  90. package/esm/ops/AgentOps.js +776 -0
  91. package/esm/ops/AgentOps.js.map +1 -0
  92. package/esm/utils/Console.js +19 -0
  93. package/esm/utils/Console.js.map +1 -1
  94. package/package.json +2 -2
  95. package/esm/cli/_template/cmd-delete.js +0 -22
  96. package/esm/cli/_template/cmd-delete.js.map +0 -1
  97. package/esm/cli/_template/cmd-describe.js.map +0 -1
  98. package/esm/cli/_template/cmd-export.js.map +0 -1
  99. package/esm/cli/_template/cmd-import.js +0 -22
  100. package/esm/cli/_template/cmd-import.js.map +0 -1
  101. package/esm/cli/_template/cmd-list.js +0 -22
  102. package/esm/cli/_template/cmd-list.js.map +0 -1
  103. package/esm/cli/_template/cmd-sub1-delete.js +0 -22
  104. package/esm/cli/_template/cmd-sub1-delete.js.map +0 -1
  105. package/esm/cli/_template/cmd-sub1-describe.js +0 -22
  106. package/esm/cli/_template/cmd-sub1-describe.js.map +0 -1
  107. package/esm/cli/_template/cmd-sub1-export.js.map +0 -1
  108. package/esm/cli/_template/cmd-sub1-import.js +0 -22
  109. package/esm/cli/_template/cmd-sub1-import.js.map +0 -1
  110. package/esm/cli/_template/cmd-sub1-list.js +0 -22
  111. package/esm/cli/_template/cmd-sub1-list.js.map +0 -1
  112. package/esm/cli/_template/cmd-sub1.js +0 -10
  113. package/esm/cli/_template/cmd-sub1.js.map +0 -1
  114. package/esm/cli/_template/cmd-sub2-delete.js +0 -22
  115. package/esm/cli/_template/cmd-sub2-delete.js.map +0 -1
  116. package/esm/cli/_template/cmd-sub2-describe.js +0 -22
  117. package/esm/cli/_template/cmd-sub2-describe.js.map +0 -1
  118. package/esm/cli/_template/cmd-sub2-export.js +0 -22
  119. package/esm/cli/_template/cmd-sub2-export.js.map +0 -1
  120. package/esm/cli/_template/cmd-sub2-import.js +0 -22
  121. package/esm/cli/_template/cmd-sub2-import.js.map +0 -1
  122. package/esm/cli/_template/cmd-sub2-list.js +0 -22
  123. package/esm/cli/_template/cmd-sub2-list.js.map +0 -1
  124. package/esm/cli/_template/cmd-sub2.js +0 -10
  125. package/esm/cli/_template/cmd-sub2.js.map +0 -1
  126. package/esm/cli/_template/cmd.js +0 -19
  127. package/esm/cli/_template/cmd.js.map +0 -1
@@ -0,0 +1,776 @@
1
+ import fs from 'fs';
2
+ import { printMessage, createTable, debugMessage, showSpinner, succeedSpinner, failSpinner } from '../utils/Console';
3
+ import { ExportImportUtils, Agent, Utils, state } from '@rockcarver/frodo-lib';
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;
38
+ const agentTypeToFileIdMap = {
39
+ [AGENT_TYPE_IG]: 'gateway.agent',
40
+ [AGENT_TYPE_JAVA]: 'java.agent',
41
+ [AGENT_TYPE_WEB]: 'web.agent'
42
+ };
43
+ /**
44
+ * List agents
45
+ */
46
+
47
+ export async function listAgents(long = false) {
48
+ try {
49
+ const agents = await getAgents();
50
+
51
+ if (long) {
52
+ const table = createTable(['Agent Id', 'Status', 'Agent Type']);
53
+
54
+ for (const agent of agents) {
55
+ let status = 'Unknown';
56
+
57
+ switch (agent._type._id) {
58
+ case 'J2EEAgent':
59
+ status = agent['globalJ2EEAgentConfig']['status'];
60
+ break;
61
+
62
+ case 'WebAgent':
63
+ status = agent['globalWebAgentConfig']['status'];
64
+ break;
65
+
66
+ default:
67
+ status = agent.status;
68
+ break;
69
+ }
70
+
71
+ table.push([agent._id, status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'], agent._type.name]);
72
+ }
73
+
74
+ printMessage(table.toString(), 'data');
75
+ } else {
76
+ agents.forEach(agent => {
77
+ printMessage(`${agent._id}`, 'data');
78
+ });
79
+ }
80
+ } catch (error) {
81
+ printMessage(`Error listing agents - ${error}`, 'error');
82
+ printMessage(error.stack, 'error');
83
+ }
84
+ }
85
+ /**
86
+ * List identity gateway agents
87
+ */
88
+
89
+ export async function listIdentityGatewayAgents(long = false) {
90
+ try {
91
+ const agents = await getIdentityGatewayAgents();
92
+
93
+ if (long) {
94
+ const table = createTable(['Gateway Agent Id', 'Status']);
95
+
96
+ for (const agent of agents) {
97
+ table.push([agent._id, agent.status === 'Active' ? 'Active'['brightGreen'] : agent.status['brightRed']]);
98
+ }
99
+
100
+ printMessage(table.toString(), 'data');
101
+ } else {
102
+ agents.forEach(agent => {
103
+ printMessage(`${agent._id}`, 'data');
104
+ });
105
+ }
106
+ } catch (error) {
107
+ printMessage(`Error listing gateway agents - ${error}`, 'error');
108
+ printMessage(error.stack, 'error');
109
+ }
110
+ }
111
+ /**
112
+ * List java agents
113
+ */
114
+
115
+ export async function listJavaAgents(long = false) {
116
+ try {
117
+ const agents = await getJavaAgents();
118
+
119
+ if (long) {
120
+ const table = createTable(['Java Agent Id', 'Status']);
121
+
122
+ for (const agent of agents) {
123
+ table.push([agent._id, agent['globalJ2EEAgentConfig']['status'] === 'Active' ? 'Active'['brightGreen'] : agent['globalJ2EEAgentConfig']['status']['brightRed']]);
124
+ }
125
+
126
+ printMessage(table.toString(), 'data');
127
+ } else {
128
+ agents.forEach(agent => {
129
+ printMessage(`${agent._id}`, 'data');
130
+ });
131
+ }
132
+ } catch (error) {
133
+ printMessage(`Error listing java agents - ${error}`, 'error');
134
+ printMessage(error.stack, 'error');
135
+ }
136
+ }
137
+ /**
138
+ * List web agents
139
+ */
140
+
141
+ export async function listWebAgents(long = false) {
142
+ try {
143
+ const agents = await getWebAgents();
144
+
145
+ if (long) {
146
+ const table = createTable(['Web Agent Id', 'Status']);
147
+
148
+ for (const agent of agents) {
149
+ table.push([agent._id, agent['globalWebAgentConfig']['status'] === 'Active' ? 'Active'['brightGreen'] : agent['globalWebAgentConfig']['status']['brightRed']]);
150
+ }
151
+
152
+ printMessage(table.toString(), 'data');
153
+ } else {
154
+ agents.forEach(agent => {
155
+ printMessage(`${agent._id}`, 'data');
156
+ });
157
+ }
158
+ } catch (error) {
159
+ printMessage(`Error listing web agents - ${error}`, 'error');
160
+ printMessage(error.stack, 'error');
161
+ }
162
+ }
163
+ /**
164
+ * Export all agents to file
165
+ * @param {string} file file name
166
+ */
167
+
168
+ export async function exportAgentsToFile(file) {
169
+ const exportData = await exportAgents();
170
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.default.session.getRealm()))}Agents`, 'agent');
171
+
172
+ if (file) {
173
+ fileName = file;
174
+ }
175
+
176
+ saveJsonToFile(exportData, fileName);
177
+ }
178
+ /**
179
+ * Export all identity gateway agents to file
180
+ * @param {string} file file name
181
+ */
182
+
183
+ export async function exportIdentityGatewayAgentsToFile(file) {
184
+ const exportData = await exportIdentityGatewayAgents();
185
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.default.session.getRealm()))}Agents`, agentTypeToFileIdMap[AGENT_TYPE_IG]);
186
+
187
+ if (file) {
188
+ fileName = file;
189
+ }
190
+
191
+ saveJsonToFile(exportData, fileName);
192
+ }
193
+ /**
194
+ * Export all java agents to file
195
+ * @param {string} file file name
196
+ */
197
+
198
+ export async function exportJavaAgentsToFile(file) {
199
+ const exportData = await exportJavaAgents();
200
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.default.session.getRealm()))}Agents`, agentTypeToFileIdMap[AGENT_TYPE_JAVA]);
201
+
202
+ if (file) {
203
+ fileName = file;
204
+ }
205
+
206
+ saveJsonToFile(exportData, fileName);
207
+ }
208
+ /**
209
+ * Export all web agents to file
210
+ * @param {string} file file name
211
+ */
212
+
213
+ export async function exportWebAgentsToFile(file) {
214
+ const exportData = await exportWebAgents();
215
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.default.session.getRealm()))}Agents`, agentTypeToFileIdMap[AGENT_TYPE_WEB]);
216
+
217
+ if (file) {
218
+ fileName = file;
219
+ }
220
+
221
+ saveJsonToFile(exportData, fileName);
222
+ }
223
+ /**
224
+ * Export agent to file
225
+ * @param {string} agentId agent id
226
+ * @param {string} file file name
227
+ */
228
+
229
+ export async function exportAgentToFile(agentId, file) {
230
+ const exportData = await exportAgent(agentId);
231
+ let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
232
+
233
+ if (file) {
234
+ fileName = file;
235
+ }
236
+
237
+ saveJsonToFile(exportData, fileName);
238
+ }
239
+ /**
240
+ * Export identity gateway agent to file
241
+ * @param {string} agentId agent id
242
+ * @param {string} file file name
243
+ */
244
+
245
+ export async function exportIdentityGatewayAgentToFile(agentId, file) {
246
+ const exportData = await exportIdentityGatewayAgent(agentId);
247
+ let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
248
+
249
+ if (file) {
250
+ fileName = file;
251
+ }
252
+
253
+ saveJsonToFile(exportData, fileName);
254
+ }
255
+ /**
256
+ * Export java agent to file
257
+ * @param {string} agentId agent id
258
+ * @param {string} file file name
259
+ */
260
+
261
+ export async function exportJavaAgentToFile(agentId, file) {
262
+ const exportData = await exportJavaAgent(agentId);
263
+ let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
264
+
265
+ if (file) {
266
+ fileName = file;
267
+ }
268
+
269
+ saveJsonToFile(exportData, fileName);
270
+ }
271
+ /**
272
+ * Export web agent to file
273
+ * @param {string} agentId agent id
274
+ * @param {string} file file name
275
+ */
276
+
277
+ export async function exportWebAgentToFile(agentId, file) {
278
+ const exportData = await exportWebAgent(agentId);
279
+ let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
280
+
281
+ if (file) {
282
+ fileName = file;
283
+ }
284
+
285
+ saveJsonToFile(exportData, fileName);
286
+ }
287
+ /**
288
+ * Export all agents to separate files
289
+ */
290
+
291
+ export async function exportAgentsToFiles() {
292
+ const agents = await getAgents();
293
+ debugMessage(`exportAgentsToFiles: ${agents.length} agents`);
294
+
295
+ for (const agent of agents) {
296
+ const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
297
+ const exportData = createAgentExportTemplate();
298
+ exportData.agents[agent._id] = agent;
299
+ debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);
300
+ saveJsonToFile(exportData, fileName);
301
+ }
302
+
303
+ debugMessage(`exportAgentsToFiles: done.`);
304
+ }
305
+ /**
306
+ * Export all identity gateway agents to separate files
307
+ */
308
+
309
+ export async function exportIdentityGatewayAgentsToFiles() {
310
+ const agents = await getIdentityGatewayAgents();
311
+
312
+ for (const agent of agents) {
313
+ const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
314
+ const exportData = createAgentExportTemplate();
315
+ exportData.agents[agent._id] = agent;
316
+ saveJsonToFile(exportData, fileName);
317
+ }
318
+ }
319
+ /**
320
+ * Export all java agents to separate files
321
+ */
322
+
323
+ export async function exportJavaAgentsToFiles() {
324
+ const agents = await getJavaAgents();
325
+
326
+ for (const agent of agents) {
327
+ const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
328
+ const exportData = createAgentExportTemplate();
329
+ exportData.agents[agent._id] = agent;
330
+ saveJsonToFile(exportData, fileName);
331
+ }
332
+ }
333
+ /**
334
+ * Export all web agents to separate files
335
+ */
336
+
337
+ export async function exportWebAgentsToFiles() {
338
+ const agents = await getWebAgents();
339
+
340
+ for (const agent of agents) {
341
+ const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
342
+ const exportData = createAgentExportTemplate();
343
+ exportData.agents[agent._id] = agent;
344
+ saveJsonToFile(exportData, fileName);
345
+ }
346
+ }
347
+ /**
348
+ * Import an agent from file
349
+ * @param {string} agentId agent id/name
350
+ * @param {string} file import file name
351
+ */
352
+
353
+ export async function importAgentFromFile(agentId, file) {
354
+ const verbose = state.default.session.getVerbose();
355
+ fs.readFile(file, 'utf8', async (err, data) => {
356
+ if (err) throw err;
357
+ let importData = JSON.parse(data); // check if this is a file with multiple agents and get agent by id
358
+
359
+ if (importData.agents && importData.agents[agentId]) {
360
+ importData = importData.agents[agentId];
361
+ } else if (importData.agents) {
362
+ importData = null;
363
+ } // if an agentId was specified, only import the matching agent
364
+
365
+
366
+ if (importData && agentId === importData.agents._id) {
367
+ if (!verbose) showSpinner(`Importing ${agentId}...`);
368
+
369
+ try {
370
+ if (verbose) showSpinner(`Importing ${agentId}...`);
371
+ await importAgent(agentId, importData);
372
+ succeedSpinner(`Imported ${agentId}.`);
373
+ } catch (importError) {
374
+ if (verbose) showSpinner(`Importing ${agentId}...`);
375
+ failSpinner(`${importError}`);
376
+ }
377
+ } else {
378
+ showSpinner(`Importing ${agentId}...`);
379
+ failSpinner(`${agentId} not found!`);
380
+ }
381
+ });
382
+ }
383
+ /**
384
+ * Import first agent from file
385
+ * @param {string} file import file name
386
+ */
387
+
388
+ export async function importFirstAgentFromFile(file) {
389
+ const verbose = state.default.session.getVerbose();
390
+ fs.readFile(file, 'utf8', async (err, data) => {
391
+ if (err) throw err;
392
+ const importData = JSON.parse(data);
393
+
394
+ if (Object.keys(importData.agents).length > 0) {
395
+ for (const agent of Object.values(importData.agents)) {
396
+ if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
397
+
398
+ try {
399
+ if (verbose) showSpinner(`Importing ${agent['_id']}...`);
400
+ await importAgent(agent['_id'], importData);
401
+ succeedSpinner(`Imported ${agent['_id']}.`);
402
+ } catch (importError) {
403
+ if (verbose) showSpinner(`Importing ${agent['_id']}...`);
404
+ failSpinner(`${importError}`);
405
+ }
406
+
407
+ return;
408
+ }
409
+ } else {
410
+ showSpinner(`Importing...`);
411
+ failSpinner(`No agents found!`);
412
+ }
413
+ });
414
+ }
415
+ /**
416
+ * Import agents from file
417
+ * @param {String} file file name
418
+ */
419
+
420
+ export async function importAgentsFromFile(file) {
421
+ debugMessage(`importAgentsFromFile: start`);
422
+ fs.readFile(file, 'utf8', async (err, data) => {
423
+ if (err) throw err;
424
+ debugMessage(`importAgentsFromFile: importing ${file}`);
425
+ const importData = JSON.parse(data);
426
+
427
+ try {
428
+ await importAgents(importData);
429
+ } catch (error) {
430
+ printMessage(`${error.message}`, 'error');
431
+ printMessage(error.response.status, 'error');
432
+ }
433
+
434
+ debugMessage(`importAgentsFromFile: end`);
435
+ });
436
+ }
437
+ /**
438
+ * Import all agents from separate files
439
+ */
440
+
441
+ export async function importAgentsFromFiles() {
442
+ const names = fs.readdirSync('.');
443
+ const agentFiles = names.filter(name => name.toLowerCase().endsWith('.agent.json'));
444
+
445
+ for (const file of agentFiles) {
446
+ await importAgentsFromFile(file);
447
+ }
448
+ }
449
+ /**
450
+ * Import an identity gateway agent from file
451
+ * @param {string} agentId agent id/name
452
+ * @param {string} file import file name
453
+ */
454
+
455
+ export async function importIdentityGatewayAgentFromFile(agentId, file) {
456
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);
457
+ const verbose = state.default.session.getVerbose();
458
+ fs.readFile(file, 'utf8', async (err, data) => {
459
+ if (err) throw err;
460
+ let importData = JSON.parse(data); // check if this is a file with multiple agents and get agent by id
461
+
462
+ if (importData.agents && importData.agents[agentId]) {
463
+ importData = importData.agents[agentId];
464
+ } else if (importData.agents) {
465
+ importData = null;
466
+ } // if an agentId was specified, only import the matching agent
467
+
468
+
469
+ if (importData && agentId === importData.agents._id) {
470
+ if (!verbose) showSpinner(`Importing ${agentId}...`);
471
+
472
+ try {
473
+ if (verbose) showSpinner(`Importing ${agentId}...`);
474
+ await importIdentityGatewayAgent(agentId, importData);
475
+ succeedSpinner(`Imported ${agentId}.`);
476
+ } catch (importError) {
477
+ failSpinner(`${importError}`);
478
+ }
479
+ } else {
480
+ showSpinner(`Importing ${agentId}...`);
481
+ failSpinner(`${agentId} not found!`);
482
+ }
483
+
484
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);
485
+ });
486
+ }
487
+ /**
488
+ * Import first identity gateway agent from file
489
+ * @param {string} file import file name
490
+ */
491
+
492
+ export async function importFirstIdentityGatewayAgentFromFile(file) {
493
+ debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);
494
+ const verbose = state.default.session.getVerbose();
495
+ fs.readFile(file, 'utf8', async (err, data) => {
496
+ if (err) throw err;
497
+ const importData = JSON.parse(data);
498
+
499
+ if (Object.keys(importData.agents).length > 0) {
500
+ for (const agent of Object.values(importData.agents)) {
501
+ if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
502
+
503
+ try {
504
+ if (verbose) showSpinner(`Importing ${agent['_id']}...`);
505
+ await importIdentityGatewayAgent(agent['_id'], importData);
506
+ succeedSpinner(`Imported ${agent['_id']}.`);
507
+ } catch (importError) {
508
+ failSpinner(`${importError}`);
509
+ }
510
+
511
+ return;
512
+ }
513
+ } else {
514
+ showSpinner(`Importing...`);
515
+ failSpinner(`No agents found!`);
516
+ }
517
+
518
+ debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);
519
+ });
520
+ }
521
+ /**
522
+ * Import identity gateway agents from file
523
+ * @param {String} file file name
524
+ */
525
+
526
+ export async function importIdentityGatewayAgentsFromFile(file) {
527
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);
528
+ fs.readFile(file, 'utf8', async (err, data) => {
529
+ if (err) throw err;
530
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`);
531
+ const importData = JSON.parse(data);
532
+
533
+ try {
534
+ await importIdentityGatewayAgents(importData);
535
+ } catch (error) {
536
+ printMessage(`${error.message}`, 'error');
537
+ printMessage(error.response.status, 'error');
538
+ }
539
+
540
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);
541
+ });
542
+ }
543
+ /**
544
+ * Import all identity gateway agents from separate files
545
+ */
546
+
547
+ export async function importIdentityGatewayAgentsFromFiles() {
548
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);
549
+ const names = fs.readdirSync('.');
550
+ const agentFiles = names.filter(name => name.toLowerCase().endsWith('.agent.json'));
551
+
552
+ for (const file of agentFiles) {
553
+ await importIdentityGatewayAgentsFromFile(file);
554
+ }
555
+
556
+ debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);
557
+ }
558
+ /**
559
+ * Import an java agent from file
560
+ * @param {string} agentId agent id/name
561
+ * @param {string} file import file name
562
+ */
563
+
564
+ export async function importJavaAgentFromFile(agentId, file) {
565
+ debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);
566
+ const verbose = state.default.session.getVerbose();
567
+ fs.readFile(file, 'utf8', async (err, data) => {
568
+ if (err) throw err;
569
+ let importData = JSON.parse(data); // check if this is a file with multiple agents and get agent by id
570
+
571
+ if (importData.agents && importData.agents[agentId]) {
572
+ importData = importData.agents[agentId];
573
+ } else if (importData.agents) {
574
+ importData = null;
575
+ } // if an agentId was specified, only import the matching agent
576
+
577
+
578
+ if (importData && agentId === importData.agents._id) {
579
+ if (!verbose) showSpinner(`Importing ${agentId}...`);
580
+
581
+ try {
582
+ if (verbose) showSpinner(`Importing ${agentId}...`);
583
+ await importJavaAgent(agentId, importData);
584
+ succeedSpinner(`Imported ${agentId}.`);
585
+ } catch (importError) {
586
+ failSpinner(`${importError}`);
587
+ }
588
+ } else {
589
+ showSpinner(`Importing ${agentId}...`);
590
+ failSpinner(`${agentId} not found!`);
591
+ }
592
+
593
+ debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);
594
+ });
595
+ }
596
+ /**
597
+ * Import first java agent from file
598
+ * @param {string} file import file name
599
+ */
600
+
601
+ export async function importFirstJavaAgentFromFile(file) {
602
+ debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);
603
+ const verbose = state.default.session.getVerbose();
604
+ fs.readFile(file, 'utf8', async (err, data) => {
605
+ if (err) throw err;
606
+ const importData = JSON.parse(data);
607
+
608
+ if (Object.keys(importData.agents).length > 0) {
609
+ for (const agent of Object.values(importData.agents)) {
610
+ if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
611
+
612
+ try {
613
+ if (verbose) showSpinner(`Importing ${agent['_id']}...`);
614
+ await importJavaAgent(agent['_id'], importData);
615
+ succeedSpinner(`Imported ${agent['_id']}.`);
616
+ } catch (importError) {
617
+ failSpinner(`${importError}`);
618
+ }
619
+
620
+ return;
621
+ }
622
+ } else {
623
+ showSpinner(`Importing...`);
624
+ failSpinner(`No agents found!`);
625
+ }
626
+
627
+ debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);
628
+ });
629
+ }
630
+ /**
631
+ * Import java agents from file
632
+ * @param {String} file file name
633
+ */
634
+
635
+ export async function importJavaAgentsFromFile(file) {
636
+ debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);
637
+ fs.readFile(file, 'utf8', async (err, data) => {
638
+ if (err) throw err;
639
+ debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);
640
+ const importData = JSON.parse(data);
641
+
642
+ try {
643
+ await importJavaAgents(importData);
644
+ } catch (error) {
645
+ printMessage(`${error.message}`, 'error');
646
+ printMessage(error.response.status, 'error');
647
+ }
648
+
649
+ debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);
650
+ });
651
+ }
652
+ /**
653
+ * Import all java agents from separate files
654
+ */
655
+
656
+ export async function importJavaAgentsFromFiles() {
657
+ debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);
658
+ const names = fs.readdirSync('.');
659
+ const agentFiles = names.filter(name => name.toLowerCase().endsWith('.agent.json'));
660
+
661
+ for (const file of agentFiles) {
662
+ await importJavaAgentsFromFile(file);
663
+ }
664
+
665
+ debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);
666
+ }
667
+ /**
668
+ * Import an web agent from file
669
+ * @param {string} agentId agent id/name
670
+ * @param {string} file import file name
671
+ */
672
+
673
+ export async function importWebAgentFromFile(agentId, file) {
674
+ debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);
675
+ const verbose = state.default.session.getVerbose();
676
+ fs.readFile(file, 'utf8', async (err, data) => {
677
+ if (err) throw err;
678
+ let importData = JSON.parse(data); // check if this is a file with multiple agents and get agent by id
679
+
680
+ if (importData.agents && importData.agents[agentId]) {
681
+ importData = importData.agents[agentId];
682
+ } else if (importData.agents) {
683
+ importData = null;
684
+ } // if an agentId was specified, only import the matching agent
685
+
686
+
687
+ if (importData && agentId === importData.agents._id) {
688
+ if (!verbose) showSpinner(`Importing ${agentId}...`);
689
+
690
+ try {
691
+ if (verbose) showSpinner(`Importing ${agentId}...`);
692
+ await importWebAgent(agentId, importData);
693
+ succeedSpinner(`Imported ${agentId}.`);
694
+ } catch (importError) {
695
+ failSpinner(`${importError}`);
696
+ }
697
+ } else {
698
+ showSpinner(`Importing ${agentId}...`);
699
+ failSpinner(`${agentId} not found!`);
700
+ }
701
+
702
+ debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);
703
+ });
704
+ }
705
+ /**
706
+ * Import web gateway agent from file
707
+ * @param {string} file import file name
708
+ */
709
+
710
+ export async function importFirstWebAgentFromFile(file) {
711
+ debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);
712
+ const verbose = state.default.session.getVerbose();
713
+ fs.readFile(file, 'utf8', async (err, data) => {
714
+ if (err) throw err;
715
+ const importData = JSON.parse(data);
716
+
717
+ if (Object.keys(importData.agents).length > 0) {
718
+ for (const agent of Object.values(importData.agents)) {
719
+ if (!verbose) showSpinner(`Importing ${agent['_id']}...`);
720
+
721
+ try {
722
+ if (verbose) showSpinner(`Importing ${agent['_id']}...`);
723
+ await importWebAgent(agent['_id'], importData);
724
+ succeedSpinner(`Imported ${agent['_id']}.`);
725
+ } catch (importError) {
726
+ failSpinner(`caught it here ${importError}`);
727
+ }
728
+
729
+ break;
730
+ }
731
+ } else {
732
+ showSpinner(`Importing...`);
733
+ failSpinner(`No agents found!`);
734
+ }
735
+
736
+ debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);
737
+ });
738
+ }
739
+ /**
740
+ * Import web agents from file
741
+ * @param {String} file file name
742
+ */
743
+
744
+ export async function importWebAgentsFromFile(file) {
745
+ debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);
746
+ fs.readFile(file, 'utf8', async (err, data) => {
747
+ if (err) throw err;
748
+ debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);
749
+ const importData = JSON.parse(data);
750
+
751
+ try {
752
+ await importWebAgents(importData);
753
+ } catch (error) {
754
+ printMessage(`${error.message}`, 'error');
755
+ printMessage(error.response.status, 'error');
756
+ }
757
+
758
+ debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);
759
+ });
760
+ }
761
+ /**
762
+ * Import all web agents from separate files
763
+ */
764
+
765
+ export async function importWebAgentsFromFiles() {
766
+ debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);
767
+ const names = fs.readdirSync('.');
768
+ const agentFiles = names.filter(name => name.toLowerCase().endsWith('.agent.json'));
769
+
770
+ for (const file of agentFiles) {
771
+ await importWebAgentsFromFile(file);
772
+ }
773
+
774
+ debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);
775
+ }
776
+ //# sourceMappingURL=AgentOps.js.map