@itentialopensource/adapter-firemon_securitymanager 0.1.1 → 0.2.0

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 (44) hide show
  1. package/CALLS.md +4530 -0
  2. package/CHANGELOG.md +8 -1
  3. package/CONTRIBUTING.md +1 -160
  4. package/ENHANCE.md +2 -2
  5. package/README.md +32 -23
  6. package/SUMMARY.md +2 -2
  7. package/TROUBLESHOOT.md +6 -6
  8. package/adapter.js +162 -333
  9. package/adapterBase.js +541 -877
  10. package/changelogs/changelog.md +9 -0
  11. package/metadata.json +49 -0
  12. package/package.json +23 -25
  13. package/pronghorn.json +980 -641
  14. package/propertiesSchema.json +435 -35
  15. package/refs?service=git-upload-pack +0 -0
  16. package/report/adapter-openapi.json +63736 -0
  17. package/report/adapter-openapi.yaml +45622 -0
  18. package/report/adapterInfo.json +8 -8
  19. package/report/updateReport1691508716734.json +120 -0
  20. package/report/updateReport1692203173889.json +120 -0
  21. package/report/updateReport1694468126963.json +120 -0
  22. package/report/updateReport1698422536944.json +120 -0
  23. package/sampleProperties.json +63 -2
  24. package/test/integration/adapterTestBasicGet.js +2 -4
  25. package/test/integration/adapterTestConnectivity.js +91 -42
  26. package/test/integration/adapterTestIntegration.js +130 -2
  27. package/test/unit/adapterBaseTestUnit.js +388 -313
  28. package/test/unit/adapterTestUnit.js +304 -113
  29. package/utils/adapterInfo.js +1 -1
  30. package/utils/addAuth.js +1 -1
  31. package/utils/artifactize.js +1 -1
  32. package/utils/checkMigrate.js +1 -1
  33. package/utils/entitiesToDB.js +2 -2
  34. package/utils/findPath.js +1 -1
  35. package/utils/methodDocumentor.js +273 -0
  36. package/utils/modify.js +13 -15
  37. package/utils/packModificationScript.js +1 -1
  38. package/utils/pre-commit.sh +2 -0
  39. package/utils/taskMover.js +309 -0
  40. package/utils/tbScript.js +89 -34
  41. package/utils/tbUtils.js +41 -21
  42. package/utils/testRunner.js +1 -1
  43. package/utils/troubleshootingAdapter.js +9 -6
  44. package/workflows/README.md +0 -3
@@ -8,18 +8,18 @@
8
8
 
9
9
  // include required items for testing & logging
10
10
  const assert = require('assert');
11
- const fs = require('fs-extra');
12
- const mocha = require('mocha');
13
11
  const path = require('path');
14
12
  const util = require('util');
15
- const winston = require('winston');
16
13
  const execute = require('child_process').execSync;
14
+ const fs = require('fs-extra');
15
+ const mocha = require('mocha');
16
+ const winston = require('winston');
17
17
  const { expect } = require('chai');
18
18
  const { use } = require('chai');
19
19
  const td = require('testdouble');
20
20
  const Ajv = require('ajv');
21
21
 
22
- const ajv = new Ajv({ allErrors: true, unknownFormats: 'ignore' });
22
+ const ajv = new Ajv({ strictSchema: false, allErrors: true, allowUnionTypes: true });
23
23
  const anything = td.matchers.anything();
24
24
  let logLevel = 'none';
25
25
  const isRapidFail = false;
@@ -222,19 +222,24 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
222
222
  it('package.json should be validated', (done) => {
223
223
  try {
224
224
  const packageDotJson = require('../../package.json');
225
- const { PJV } = require('package-json-validator');
226
- const options = {
227
- warnings: true, // show warnings
228
- recommendations: true // show recommendations
225
+ // Define the JSON schema for package.json
226
+ const packageJsonSchema = {
227
+ type: 'object',
228
+ properties: {
229
+ name: { type: 'string' },
230
+ version: { type: 'string' }
231
+ // May need to add more properties as needed
232
+ },
233
+ required: ['name', 'version']
229
234
  };
230
- const results = PJV.validate(JSON.stringify(packageDotJson), 'npm', options);
235
+ const validate = ajv.compile(packageJsonSchema);
236
+ const isValid = validate(packageDotJson);
231
237
 
232
- if (results.valid === false) {
233
- log.error('The package.json contains the following errors: ');
234
- log.error(util.inspect(results));
235
- assert.equal(true, results.valid);
238
+ if (isValid === false) {
239
+ log.error('The package.json contains errors');
240
+ assert.equal(true, isValid);
236
241
  } else {
237
- assert.equal(true, results.valid);
242
+ assert.equal(true, isValid);
238
243
  }
239
244
 
240
245
  done();
@@ -273,7 +278,7 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
273
278
  assert.notEqual(undefined, packageDotJson.scripts);
274
279
  assert.notEqual(null, packageDotJson.scripts);
275
280
  assert.notEqual('', packageDotJson.scripts);
276
- assert.equal('node utils/setup.js && npm install --package-lock-only --ignore-scripts && npx npm-force-resolutions', packageDotJson.scripts.preinstall);
281
+ assert.equal('node utils/setup.js', packageDotJson.scripts.preinstall);
277
282
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js', packageDotJson.scripts.lint);
278
283
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet', packageDotJson.scripts['lint:errors']);
279
284
  assert.equal('mocha test/unit/adapterBaseTestUnit.js --LOG=error', packageDotJson.scripts['test:baseunit']);
@@ -310,17 +315,17 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
310
315
  assert.notEqual(undefined, packageDotJson.dependencies);
311
316
  assert.notEqual(null, packageDotJson.dependencies);
312
317
  assert.notEqual('', packageDotJson.dependencies);
313
- assert.equal('^6.12.0', packageDotJson.dependencies.ajv);
314
- assert.equal('^0.21.0', packageDotJson.dependencies.axios);
315
- assert.equal('^2.20.0', packageDotJson.dependencies.commander);
316
- assert.equal('^8.1.0', packageDotJson.dependencies['fs-extra']);
317
- assert.equal('^9.0.1', packageDotJson.dependencies.mocha);
318
+ assert.equal('^8.12.0', packageDotJson.dependencies.ajv);
319
+ assert.equal('^1.6.3', packageDotJson.dependencies.axios);
320
+ assert.equal('^11.0.0', packageDotJson.dependencies.commander);
321
+ assert.equal('^11.1.1', packageDotJson.dependencies['fs-extra']);
322
+ assert.equal('^10.2.0', packageDotJson.dependencies.mocha);
318
323
  assert.equal('^2.0.1', packageDotJson.dependencies['mocha-param']);
319
- assert.equal('^0.5.3', packageDotJson.dependencies['network-diagnostics']);
320
324
  assert.equal('^15.1.0', packageDotJson.dependencies.nyc);
325
+ assert.equal('^0.4.4', packageDotJson.dependencies.ping);
321
326
  assert.equal('^1.4.10', packageDotJson.dependencies['readline-sync']);
322
- assert.equal('^7.3.2', packageDotJson.dependencies.semver);
323
- assert.equal('^3.3.3', packageDotJson.dependencies.winston);
327
+ assert.equal('^7.5.3', packageDotJson.dependencies.semver);
328
+ assert.equal('^3.9.0', packageDotJson.dependencies.winston);
324
329
  done();
325
330
  } catch (error) {
326
331
  log.error(`Test Failure: ${error}`);
@@ -333,13 +338,12 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
333
338
  assert.notEqual(undefined, packageDotJson.devDependencies);
334
339
  assert.notEqual(null, packageDotJson.devDependencies);
335
340
  assert.notEqual('', packageDotJson.devDependencies);
336
- assert.equal('^4.3.4', packageDotJson.devDependencies.chai);
337
- assert.equal('^7.29.0', packageDotJson.devDependencies.eslint);
338
- assert.equal('^14.2.1', packageDotJson.devDependencies['eslint-config-airbnb-base']);
339
- assert.equal('^2.23.4', packageDotJson.devDependencies['eslint-plugin-import']);
340
- assert.equal('^3.0.0', packageDotJson.devDependencies['eslint-plugin-json']);
341
- assert.equal('^0.6.3', packageDotJson.devDependencies['package-json-validator']);
342
- assert.equal('^3.16.1', packageDotJson.devDependencies.testdouble);
341
+ assert.equal('^4.3.7', packageDotJson.devDependencies.chai);
342
+ assert.equal('^8.44.0', packageDotJson.devDependencies.eslint);
343
+ assert.equal('^15.0.0', packageDotJson.devDependencies['eslint-config-airbnb-base']);
344
+ assert.equal('^2.27.5', packageDotJson.devDependencies['eslint-plugin-import']);
345
+ assert.equal('^3.1.0', packageDotJson.devDependencies['eslint-plugin-json']);
346
+ assert.equal('^3.18.0', packageDotJson.devDependencies.testdouble);
343
347
  done();
344
348
  } catch (error) {
345
349
  log.error(`Test Failure: ${error}`);
@@ -383,16 +387,30 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
383
387
  assert.equal(true, Array.isArray(pronghornDotJson.methods));
384
388
  assert.notEqual(0, pronghornDotJson.methods.length);
385
389
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUpdateAdapterConfiguration'));
390
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapSuspendAdapter'));
391
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUnsuspendAdapter'));
392
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterQueue'));
386
393
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapFindAdapterPath'));
387
394
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapTroubleshootAdapter'));
388
395
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterHealthcheck'));
389
396
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterConnectivity'));
390
397
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterBasicGet'));
391
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapSuspendAdapter'));
392
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUnsuspendAdapter'));
393
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterQueue'));
398
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapMoveAdapterEntitiesToDB'));
399
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapDeactivateTasks'));
400
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapActivateTasks'));
401
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapPopulateEntityCache'));
402
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRetrieveEntitiesCache'));
403
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getDevice'));
404
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getDevicesFiltered'));
405
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'isAlive'));
406
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'getConfig'));
407
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetDeviceCount'));
408
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapExpandedGenericAdapterRequest'));
394
409
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequest'));
395
410
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequestNoBasePath'));
411
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterLint'));
412
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterTests'));
413
+ assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapGetAdapterInventory'));
396
414
  done();
397
415
  } catch (error) {
398
416
  log.error(`Test Failure: ${error}`);
@@ -545,7 +563,7 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
545
563
  log.error(`Adapter Exception: ${error}`);
546
564
  done(error);
547
565
  }
548
- });
566
+ }).timeout(attemptTimeout);
549
567
  });
550
568
 
551
569
  describe('propertiesSchema.json', () => {
@@ -581,6 +599,7 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
581
599
  assert.equal('string', propertiesDotJson.properties.host.type);
582
600
  assert.equal('integer', propertiesDotJson.properties.port.type);
583
601
  assert.equal('boolean', propertiesDotJson.properties.stub.type);
602
+ assert.equal('string', propertiesDotJson.properties.protocol.type);
584
603
  assert.notEqual(undefined, propertiesDotJson.definitions.authentication);
585
604
  assert.notEqual(null, propertiesDotJson.definitions.authentication);
586
605
  assert.notEqual('', propertiesDotJson.definitions.authentication);
@@ -614,7 +633,6 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
614
633
  assert.equal('boolean', propertiesDotJson.properties.encode_pathvars.type);
615
634
  assert.equal('boolean', propertiesDotJson.properties.encode_queryvars.type);
616
635
  assert.equal(true, Array.isArray(propertiesDotJson.properties.save_metric.type));
617
- assert.equal('string', propertiesDotJson.properties.protocol.type);
618
636
  assert.notEqual(undefined, propertiesDotJson.definitions);
619
637
  assert.notEqual(null, propertiesDotJson.definitions);
620
638
  assert.notEqual('', propertiesDotJson.definitions);
@@ -771,6 +789,7 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
771
789
  assert.notEqual(undefined, sampleDotJson.properties.host);
772
790
  assert.notEqual(undefined, sampleDotJson.properties.port);
773
791
  assert.notEqual(undefined, sampleDotJson.properties.stub);
792
+ assert.notEqual(undefined, sampleDotJson.properties.protocol);
774
793
  assert.notEqual(undefined, sampleDotJson.properties.authentication);
775
794
  assert.notEqual(null, sampleDotJson.properties.authentication);
776
795
  assert.notEqual('', sampleDotJson.properties.authentication);
@@ -804,7 +823,6 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
804
823
  assert.notEqual(undefined, sampleDotJson.properties.encode_pathvars);
805
824
  assert.notEqual(undefined, sampleDotJson.properties.encode_queryvars);
806
825
  assert.notEqual(undefined, sampleDotJson.properties.save_metric);
807
- assert.notEqual(undefined, sampleDotJson.properties.protocol);
808
826
  assert.notEqual(undefined, sampleDotJson.properties.healthcheck);
809
827
  assert.notEqual(null, sampleDotJson.properties.healthcheck);
810
828
  assert.notEqual('', sampleDotJson.properties.healthcheck);
@@ -869,6 +887,8 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
869
887
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.isAlive);
870
888
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getConfig);
871
889
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getCount);
890
+ assert.notEqual(undefined, sampleDotJson.properties.cache);
891
+ assert.notEqual(undefined, sampleDotJson.properties.cache.entities);
872
892
  done();
873
893
  } catch (error) {
874
894
  log.error(`Test Failure: ${error}`);
@@ -974,40 +994,6 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
974
994
  });
975
995
  });
976
996
 
977
- describe('#iapFindAdapterPath', () => {
978
- it('should have a iapFindAdapterPath function', (done) => {
979
- try {
980
- assert.equal(true, typeof a.iapFindAdapterPath === 'function');
981
- done();
982
- } catch (error) {
983
- log.error(`Test Failure: ${error}`);
984
- done(error);
985
- }
986
- });
987
- it('iapFindAdapterPath should find atleast one path that matches', (done) => {
988
- try {
989
- a.iapFindAdapterPath('{base_path}/{version}', (data, error) => {
990
- try {
991
- assert.equal(undefined, error);
992
- assert.notEqual(undefined, data);
993
- assert.notEqual(null, data);
994
- assert.equal(true, data.found);
995
- assert.notEqual(undefined, data.foundIn);
996
- assert.notEqual(null, data.foundIn);
997
- assert.notEqual(0, data.foundIn.length);
998
- done();
999
- } catch (err) {
1000
- log.error(`Test Failure: ${err}`);
1001
- done(err);
1002
- }
1003
- });
1004
- } catch (error) {
1005
- log.error(`Adapter Exception: ${error}`);
1006
- done(error);
1007
- }
1008
- }).timeout(attemptTimeout);
1009
- });
1010
-
1011
997
  describe('#iapSuspendAdapter', () => {
1012
998
  it('should have a iapSuspendAdapter function', (done) => {
1013
999
  try {
@@ -1044,6 +1030,40 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
1044
1030
  });
1045
1031
  });
1046
1032
 
1033
+ describe('#iapFindAdapterPath', () => {
1034
+ it('should have a iapFindAdapterPath function', (done) => {
1035
+ try {
1036
+ assert.equal(true, typeof a.iapFindAdapterPath === 'function');
1037
+ done();
1038
+ } catch (error) {
1039
+ log.error(`Test Failure: ${error}`);
1040
+ done(error);
1041
+ }
1042
+ });
1043
+ it('iapFindAdapterPath should find atleast one path that matches', (done) => {
1044
+ try {
1045
+ a.iapFindAdapterPath('{base_path}/{version}', (data, error) => {
1046
+ try {
1047
+ assert.equal(undefined, error);
1048
+ assert.notEqual(undefined, data);
1049
+ assert.notEqual(null, data);
1050
+ assert.equal(true, data.found);
1051
+ assert.notEqual(undefined, data.foundIn);
1052
+ assert.notEqual(null, data.foundIn);
1053
+ assert.notEqual(0, data.foundIn.length);
1054
+ done();
1055
+ } catch (err) {
1056
+ log.error(`Test Failure: ${err}`);
1057
+ done(err);
1058
+ }
1059
+ });
1060
+ } catch (error) {
1061
+ log.error(`Adapter Exception: ${error}`);
1062
+ done(error);
1063
+ }
1064
+ }).timeout(attemptTimeout);
1065
+ });
1066
+
1047
1067
  describe('#iapTroubleshootAdapter', () => {
1048
1068
  it('should have a iapTroubleshootAdapter function', (done) => {
1049
1069
  try {
@@ -1189,49 +1209,53 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
1189
1209
  }).timeout(attemptTimeout);
1190
1210
  });
1191
1211
 
1192
- // describe('#iapHasAdapterEntity', () => {
1193
- // it('should have a iapHasAdapterEntity function', (done) => {
1194
- // try {
1195
- // assert.equal(true, typeof a.iapHasAdapterEntity === 'function');
1196
- // done();
1197
- // } catch (error) {
1198
- // log.error(`Test Failure: ${error}`);
1199
- // done(error);
1200
- // }
1201
- // });
1202
- // it('should find entity', (done) => {
1203
- // try {
1204
- // a.iapHasAdapterEntity('template_entity', // 'a9e9c33dc61122760072455df62663d2', (data) => {
1205
- // try {
1206
- // assert.equal(true, data[0]);
1207
- // done();
1208
- // } catch (err) {
1209
- // log.error(`Test Failure: ${err}`);
1210
- // done(err);
1211
- // }
1212
- // });
1213
- // } catch (error) {
1214
- // log.error(`Adapter Exception: ${error}`);
1215
- // done(error);
1216
- // }
1217
- // }).timeout(attemptTimeout);
1218
- // it('should not find entity', (done) => {
1219
- // try {
1220
- // a.iapHasAdapterEntity('template_entity', 'blah', (data) => {
1221
- // try {
1222
- // assert.equal(false, data[0]);
1223
- // done();
1224
- // } catch (err) {
1225
- // log.error(`Test Failure: ${err}`);
1226
- // done(err);
1227
- // }
1228
- // });
1229
- // } catch (error) {
1230
- // log.error(`Adapter Exception: ${error}`);
1231
- // done(error);
1232
- // }
1233
- // }).timeout(attemptTimeout);
1234
- // });
1212
+ describe('#iapDeactivateTasks', () => {
1213
+ it('should have a iapDeactivateTasks function', (done) => {
1214
+ try {
1215
+ assert.equal(true, typeof a.iapDeactivateTasks === 'function');
1216
+ done();
1217
+ } catch (error) {
1218
+ log.error(`Test Failure: ${error}`);
1219
+ done(error);
1220
+ }
1221
+ });
1222
+ });
1223
+
1224
+ describe('#iapActivateTasks', () => {
1225
+ it('should have a iapActivateTasks function', (done) => {
1226
+ try {
1227
+ assert.equal(true, typeof a.iapActivateTasks === 'function');
1228
+ done();
1229
+ } catch (error) {
1230
+ log.error(`Test Failure: ${error}`);
1231
+ done(error);
1232
+ }
1233
+ });
1234
+ });
1235
+
1236
+ describe('#iapPopulateEntityCache', () => {
1237
+ it('should have a iapPopulateEntityCache function', (done) => {
1238
+ try {
1239
+ assert.equal(true, typeof a.iapPopulateEntityCache === 'function');
1240
+ done();
1241
+ } catch (error) {
1242
+ log.error(`Test Failure: ${error}`);
1243
+ done(error);
1244
+ }
1245
+ });
1246
+ });
1247
+
1248
+ describe('#iapRetrieveEntitiesCache', () => {
1249
+ it('should have a iapRetrieveEntitiesCache function', (done) => {
1250
+ try {
1251
+ assert.equal(true, typeof a.iapRetrieveEntitiesCache === 'function');
1252
+ done();
1253
+ } catch (error) {
1254
+ log.error(`Test Failure: ${error}`);
1255
+ done(error);
1256
+ }
1257
+ });
1258
+ });
1235
1259
 
1236
1260
  describe('#hasEntities', () => {
1237
1261
  it('should have a hasEntities function', (done) => {
@@ -1305,6 +1329,173 @@ describe('[unit] Firemon_securitymanager Adapter Test', () => {
1305
1329
  });
1306
1330
  });
1307
1331
 
1332
+ describe('#iapExpandedGenericAdapterRequest', () => {
1333
+ it('should have a iapExpandedGenericAdapterRequest function', (done) => {
1334
+ try {
1335
+ assert.equal(true, typeof a.iapExpandedGenericAdapterRequest === 'function');
1336
+ done();
1337
+ } catch (error) {
1338
+ log.error(`Test Failure: ${error}`);
1339
+ done(error);
1340
+ }
1341
+ });
1342
+ });
1343
+
1344
+ describe('#genericAdapterRequest', () => {
1345
+ it('should have a genericAdapterRequest function', (done) => {
1346
+ try {
1347
+ assert.equal(true, typeof a.genericAdapterRequest === 'function');
1348
+ done();
1349
+ } catch (error) {
1350
+ log.error(`Test Failure: ${error}`);
1351
+ done(error);
1352
+ }
1353
+ });
1354
+ });
1355
+
1356
+ describe('#genericAdapterRequestNoBasePath', () => {
1357
+ it('should have a genericAdapterRequestNoBasePath function', (done) => {
1358
+ try {
1359
+ assert.equal(true, typeof a.genericAdapterRequestNoBasePath === 'function');
1360
+ done();
1361
+ } catch (error) {
1362
+ log.error(`Test Failure: ${error}`);
1363
+ done(error);
1364
+ }
1365
+ });
1366
+ });
1367
+
1368
+ describe('#iapRunAdapterLint', () => {
1369
+ it('should have a iapRunAdapterLint function', (done) => {
1370
+ try {
1371
+ assert.equal(true, typeof a.iapRunAdapterLint === 'function');
1372
+ done();
1373
+ } catch (error) {
1374
+ log.error(`Test Failure: ${error}`);
1375
+ done(error);
1376
+ }
1377
+ });
1378
+ it('retrieve the lint results', (done) => {
1379
+ try {
1380
+ a.iapRunAdapterLint((data, error) => {
1381
+ try {
1382
+ assert.equal(undefined, error);
1383
+ assert.notEqual(undefined, data);
1384
+ assert.notEqual(null, data);
1385
+ assert.notEqual(undefined, data.status);
1386
+ assert.notEqual(null, data.status);
1387
+ assert.equal('SUCCESS', data.status);
1388
+ done();
1389
+ } catch (err) {
1390
+ log.error(`Test Failure: ${err}`);
1391
+ done(err);
1392
+ }
1393
+ });
1394
+ } catch (error) {
1395
+ log.error(`Adapter Exception: ${error}`);
1396
+ done(error);
1397
+ }
1398
+ }).timeout(attemptTimeout);
1399
+ });
1400
+
1401
+ describe('#iapRunAdapterTests', () => {
1402
+ it('should have a iapRunAdapterTests function', (done) => {
1403
+ try {
1404
+ assert.equal(true, typeof a.iapRunAdapterTests === 'function');
1405
+ done();
1406
+ } catch (error) {
1407
+ log.error(`Test Failure: ${error}`);
1408
+ done(error);
1409
+ }
1410
+ });
1411
+ });
1412
+
1413
+ describe('#iapGetAdapterInventory', () => {
1414
+ it('should have a iapGetAdapterInventory function', (done) => {
1415
+ try {
1416
+ assert.equal(true, typeof a.iapGetAdapterInventory === 'function');
1417
+ done();
1418
+ } catch (error) {
1419
+ log.error(`Test Failure: ${error}`);
1420
+ done(error);
1421
+ }
1422
+ });
1423
+ it('retrieve the inventory', (done) => {
1424
+ try {
1425
+ a.iapGetAdapterInventory((data, error) => {
1426
+ try {
1427
+ assert.equal(undefined, error);
1428
+ assert.notEqual(undefined, data);
1429
+ assert.notEqual(null, data);
1430
+ done();
1431
+ } catch (err) {
1432
+ log.error(`Test Failure: ${err}`);
1433
+ done(err);
1434
+ }
1435
+ });
1436
+ } catch (error) {
1437
+ log.error(`Adapter Exception: ${error}`);
1438
+ done(error);
1439
+ }
1440
+ }).timeout(attemptTimeout);
1441
+ });
1442
+ describe('metadata.json', () => {
1443
+ it('should have a metadata.json', (done) => {
1444
+ try {
1445
+ fs.exists('metadata.json', (val) => {
1446
+ assert.equal(true, val);
1447
+ done();
1448
+ });
1449
+ } catch (error) {
1450
+ log.error(`Test Failure: ${error}`);
1451
+ done(error);
1452
+ }
1453
+ });
1454
+ it('metadata.json is customized', (done) => {
1455
+ try {
1456
+ const metadataDotJson = require('../../metadata.json');
1457
+ assert.equal('adapter-firemon_securitymanager', metadataDotJson.name);
1458
+ assert.notEqual(undefined, metadataDotJson.webName);
1459
+ assert.notEqual(null, metadataDotJson.webName);
1460
+ assert.notEqual('', metadataDotJson.webName);
1461
+ assert.equal('Adapter', metadataDotJson.type);
1462
+ done();
1463
+ } catch (error) {
1464
+ log.error(`Test Failure: ${error}`);
1465
+ done(error);
1466
+ }
1467
+ });
1468
+ it('metadata.json contains accurate documentation', (done) => {
1469
+ try {
1470
+ const metadataDotJson = require('../../metadata.json');
1471
+ assert.notEqual(undefined, metadataDotJson.documentation);
1472
+ assert.equal('https://www.npmjs.com/package/@itentialopensource/adapter-firemon_securitymanager', metadataDotJson.documentation.npmLink);
1473
+ assert.equal('https://docs.itential.com/opensource/docs/troubleshooting-an-adapter', metadataDotJson.documentation.faqLink);
1474
+ assert.equal('https://gitlab.com/itentialopensource/adapters/contributing-guide', metadataDotJson.documentation.contributeLink);
1475
+ assert.equal('https://itential.atlassian.net/servicedesk/customer/portals', metadataDotJson.documentation.issueLink);
1476
+ done();
1477
+ } catch (error) {
1478
+ log.error(`Test Failure: ${error}`);
1479
+ done(error);
1480
+ }
1481
+ });
1482
+ it('metadata.json has related items', (done) => {
1483
+ try {
1484
+ const metadataDotJson = require('../../metadata.json');
1485
+ assert.notEqual(undefined, metadataDotJson.relatedItems);
1486
+ assert.notEqual(undefined, metadataDotJson.relatedItems.adapters);
1487
+ assert.notEqual(undefined, metadataDotJson.relatedItems.integrations);
1488
+ assert.notEqual(undefined, metadataDotJson.relatedItems.ecosystemApplications);
1489
+ assert.notEqual(undefined, metadataDotJson.relatedItems.workflowProjects);
1490
+ assert.notEqual(undefined, metadataDotJson.relatedItems.transformationProjects);
1491
+ assert.notEqual(undefined, metadataDotJson.relatedItems.exampleProjects);
1492
+ done();
1493
+ } catch (error) {
1494
+ log.error(`Test Failure: ${error}`);
1495
+ done(error);
1496
+ }
1497
+ });
1498
+ });
1308
1499
  /*
1309
1500
  -----------------------------------------------------------------------
1310
1501
  -----------------------------------------------------------------------
@@ -4,8 +4,8 @@
4
4
  /* eslint import/no-dynamic-require:warn */
5
5
  /* eslint prefer-destructuring:warn */
6
6
 
7
- const fs = require('fs-extra');
8
7
  const path = require('path');
8
+ const fs = require('fs-extra');
9
9
 
10
10
  /**
11
11
  * This script will determine the information about the adapter and store
package/utils/addAuth.js CHANGED
@@ -2,9 +2,9 @@
2
2
  /* eslint global-require: warn */
3
3
  /* eslint import/no-dynamic-require: warn */
4
4
 
5
- const rls = require('readline-sync');
6
5
  const path = require('path');
7
6
  const fs = require('fs');
7
+ const rls = require('readline-sync');
8
8
 
9
9
  function getQuestions(props, obj) {
10
10
  const questions = props.map((p) => `${p}: ${(obj[p] !== undefined) ? `(${obj[p]})` : ''} `);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /* @copyright Itential, LLC 2019 */
3
3
 
4
- const fs = require('fs-extra');
5
4
  const path = require('path');
5
+ const fs = require('fs-extra');
6
6
 
7
7
  async function createBundle(adapterOldDir) {
8
8
  // set directories
@@ -1,7 +1,7 @@
1
1
  const { execSync } = require('child_process');
2
+ const fs = require('fs');
2
3
  const semver = require('semver');
3
4
  const axios = require('axios');
4
- const fs = require('fs');
5
5
  const packageJson = require('../package.json');
6
6
 
7
7
  const localEngineVer = packageJson.engineVersion;
@@ -7,6 +7,7 @@
7
7
  /* eslint global-require: warn */
8
8
  /* eslint no-unused-vars: warn */
9
9
  /* eslint import/no-unresolved: warn */
10
+ /* eslint no-promise-executor-return: warn */
10
11
 
11
12
  /**
12
13
  * This script is used to read through an adapter's entities files
@@ -164,8 +165,7 @@ const moveEntitiesToDB = async (targetPath, options) => {
164
165
  });
165
166
 
166
167
  // Upload documents to db collection
167
- const iapDir = utils.getIAPHome();
168
- const db = await utils.connect(iapDir, currentProps).catch((err) => { console.error(err); throw err; });
168
+ const db = await utils.connect(currentProps).catch((err) => { console.error(err); throw err; });
169
169
  if (!db) {
170
170
  console.error('Error occured when connectiong to database', currentProps);
171
171
  throw new Error('Database not found');
package/utils/findPath.js CHANGED
@@ -4,8 +4,8 @@
4
4
  /* eslint import/no-dynamic-require:warn */
5
5
  /* eslint prefer-destructuring:warn */
6
6
 
7
- const fs = require('fs-extra');
8
7
  const path = require('path');
8
+ const fs = require('fs-extra');
9
9
  const rls = require('readline-sync');
10
10
 
11
11
  /**