@itentialopensource/adapter-openstack_neutron 3.0.3 → 3.1.1

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 (42) hide show
  1. package/AUTH.md +9 -9
  2. package/CALLS.md +364 -328
  3. package/CHANGELOG.md +16 -0
  4. package/CONTRIBUTING.md +1 -160
  5. package/ENHANCE.md +2 -2
  6. package/README.md +32 -23
  7. package/adapter.js +174 -373
  8. package/adapterBase.js +517 -875
  9. package/changelogs/CHANGELOG.md +58 -0
  10. package/metadata.json +56 -0
  11. package/package.json +24 -26
  12. package/pronghorn.json +474 -142
  13. package/propertiesSchema.json +431 -34
  14. package/refs?service=git-upload-pack +0 -0
  15. package/report/adapter-openapi.json +14594 -0
  16. package/report/adapter-openapi.yaml +12289 -0
  17. package/report/adapterInfo.json +8 -8
  18. package/report/updateReport1691507382282.json +120 -0
  19. package/report/updateReport1692202417483.json +120 -0
  20. package/report/updateReport1694460523394.json +120 -0
  21. package/report/updateReport1698420447048.json +120 -0
  22. package/sampleProperties.json +58 -3
  23. package/test/integration/adapterTestBasicGet.js +2 -4
  24. package/test/integration/adapterTestConnectivity.js +91 -42
  25. package/test/integration/adapterTestIntegration.js +130 -2
  26. package/test/unit/adapterBaseTestUnit.js +389 -317
  27. package/test/unit/adapterTestUnit.js +303 -114
  28. package/utils/adapterInfo.js +1 -1
  29. package/utils/addAuth.js +1 -1
  30. package/utils/artifactize.js +1 -1
  31. package/utils/checkMigrate.js +1 -1
  32. package/utils/entitiesToDB.js +2 -2
  33. package/utils/findPath.js +1 -1
  34. package/utils/methodDocumentor.js +71 -23
  35. package/utils/modify.js +13 -15
  36. package/utils/packModificationScript.js +1 -1
  37. package/utils/taskMover.js +309 -0
  38. package/utils/tbScript.js +89 -34
  39. package/utils/tbUtils.js +41 -21
  40. package/utils/testRunner.js +1 -1
  41. package/utils/troubleshootingAdapter.js +9 -6
  42. 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;
@@ -46,7 +46,6 @@ samProps.ssl.accept_invalid_cert = false;
46
46
  samProps.request.attempt_timeout = 1200000;
47
47
  const attemptTimeout = samProps.request.attempt_timeout;
48
48
  const { stub } = samProps;
49
- const { choosepath } = samProps;
50
49
 
51
50
  // these are the adapter properties. You generally should not need to alter
52
51
  // any of these after they are initially set up
@@ -223,19 +222,24 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
223
222
  it('package.json should be validated', (done) => {
224
223
  try {
225
224
  const packageDotJson = require('../../package.json');
226
- const { PJV } = require('package-json-validator');
227
- const options = {
228
- warnings: true, // show warnings
229
- 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']
230
234
  };
231
- const results = PJV.validate(JSON.stringify(packageDotJson), 'npm', options);
235
+ const validate = ajv.compile(packageJsonSchema);
236
+ const isValid = validate(packageDotJson);
232
237
 
233
- if (results.valid === false) {
234
- log.error('The package.json contains the following errors: ');
235
- log.error(util.inspect(results));
236
- assert.equal(true, results.valid);
238
+ if (isValid === false) {
239
+ log.error('The package.json contains errors');
240
+ assert.equal(true, isValid);
237
241
  } else {
238
- assert.equal(true, results.valid);
242
+ assert.equal(true, isValid);
239
243
  }
240
244
 
241
245
  done();
@@ -274,7 +278,7 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
274
278
  assert.notEqual(undefined, packageDotJson.scripts);
275
279
  assert.notEqual(null, packageDotJson.scripts);
276
280
  assert.notEqual('', packageDotJson.scripts);
277
- 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);
278
282
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js', packageDotJson.scripts.lint);
279
283
  assert.equal('node --max_old_space_size=4096 ./node_modules/eslint/bin/eslint.js . --ext .json --ext .js --quiet', packageDotJson.scripts['lint:errors']);
280
284
  assert.equal('mocha test/unit/adapterBaseTestUnit.js --LOG=error', packageDotJson.scripts['test:baseunit']);
@@ -311,17 +315,17 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
311
315
  assert.notEqual(undefined, packageDotJson.dependencies);
312
316
  assert.notEqual(null, packageDotJson.dependencies);
313
317
  assert.notEqual('', packageDotJson.dependencies);
314
- assert.equal('^6.12.0', packageDotJson.dependencies.ajv);
315
- assert.equal('^0.21.0', packageDotJson.dependencies.axios);
316
- assert.equal('^2.20.0', packageDotJson.dependencies.commander);
317
- assert.equal('^8.1.0', packageDotJson.dependencies['fs-extra']);
318
- assert.equal('^9.0.1', packageDotJson.dependencies.mocha);
318
+ assert.equal('^8.12.0', packageDotJson.dependencies.ajv);
319
+ assert.equal('^1.6.7', 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.3.0', packageDotJson.dependencies.mocha);
319
323
  assert.equal('^2.0.1', packageDotJson.dependencies['mocha-param']);
320
- assert.equal('^0.5.3', packageDotJson.dependencies['network-diagnostics']);
321
324
  assert.equal('^15.1.0', packageDotJson.dependencies.nyc);
325
+ assert.equal('^0.4.4', packageDotJson.dependencies.ping);
322
326
  assert.equal('^1.4.10', packageDotJson.dependencies['readline-sync']);
323
- assert.equal('^7.3.2', packageDotJson.dependencies.semver);
324
- 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);
325
329
  done();
326
330
  } catch (error) {
327
331
  log.error(`Test Failure: ${error}`);
@@ -334,13 +338,12 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
334
338
  assert.notEqual(undefined, packageDotJson.devDependencies);
335
339
  assert.notEqual(null, packageDotJson.devDependencies);
336
340
  assert.notEqual('', packageDotJson.devDependencies);
337
- assert.equal('^4.3.4', packageDotJson.devDependencies.chai);
338
- assert.equal('^7.29.0', packageDotJson.devDependencies.eslint);
339
- assert.equal('^14.2.1', packageDotJson.devDependencies['eslint-config-airbnb-base']);
340
- assert.equal('^2.23.4', packageDotJson.devDependencies['eslint-plugin-import']);
341
- assert.equal('^3.0.0', packageDotJson.devDependencies['eslint-plugin-json']);
342
- assert.equal('^0.6.3', packageDotJson.devDependencies['package-json-validator']);
343
- 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);
344
347
  done();
345
348
  } catch (error) {
346
349
  log.error(`Test Failure: ${error}`);
@@ -384,16 +387,30 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
384
387
  assert.equal(true, Array.isArray(pronghornDotJson.methods));
385
388
  assert.notEqual(0, pronghornDotJson.methods.length);
386
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'));
387
393
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapFindAdapterPath'));
388
394
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapTroubleshootAdapter'));
389
395
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterHealthcheck'));
390
396
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterConnectivity'));
391
397
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapRunAdapterBasicGet'));
392
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapSuspendAdapter'));
393
- assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'iapUnsuspendAdapter'));
394
- 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'));
395
409
  assert.notEqual(undefined, pronghornDotJson.methods.find((e) => e.name === 'genericAdapterRequest'));
396
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'));
397
414
  done();
398
415
  } catch (error) {
399
416
  log.error(`Test Failure: ${error}`);
@@ -582,6 +599,7 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
582
599
  assert.equal('string', propertiesDotJson.properties.host.type);
583
600
  assert.equal('integer', propertiesDotJson.properties.port.type);
584
601
  assert.equal('boolean', propertiesDotJson.properties.stub.type);
602
+ assert.equal('string', propertiesDotJson.properties.protocol.type);
585
603
  assert.notEqual(undefined, propertiesDotJson.definitions.authentication);
586
604
  assert.notEqual(null, propertiesDotJson.definitions.authentication);
587
605
  assert.notEqual('', propertiesDotJson.definitions.authentication);
@@ -615,7 +633,6 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
615
633
  assert.equal('boolean', propertiesDotJson.properties.encode_pathvars.type);
616
634
  assert.equal('boolean', propertiesDotJson.properties.encode_queryvars.type);
617
635
  assert.equal(true, Array.isArray(propertiesDotJson.properties.save_metric.type));
618
- assert.equal('string', propertiesDotJson.properties.protocol.type);
619
636
  assert.notEqual(undefined, propertiesDotJson.definitions);
620
637
  assert.notEqual(null, propertiesDotJson.definitions);
621
638
  assert.notEqual('', propertiesDotJson.definitions);
@@ -772,6 +789,7 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
772
789
  assert.notEqual(undefined, sampleDotJson.properties.host);
773
790
  assert.notEqual(undefined, sampleDotJson.properties.port);
774
791
  assert.notEqual(undefined, sampleDotJson.properties.stub);
792
+ assert.notEqual(undefined, sampleDotJson.properties.protocol);
775
793
  assert.notEqual(undefined, sampleDotJson.properties.authentication);
776
794
  assert.notEqual(null, sampleDotJson.properties.authentication);
777
795
  assert.notEqual('', sampleDotJson.properties.authentication);
@@ -805,7 +823,6 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
805
823
  assert.notEqual(undefined, sampleDotJson.properties.encode_pathvars);
806
824
  assert.notEqual(undefined, sampleDotJson.properties.encode_queryvars);
807
825
  assert.notEqual(undefined, sampleDotJson.properties.save_metric);
808
- assert.notEqual(undefined, sampleDotJson.properties.protocol);
809
826
  assert.notEqual(undefined, sampleDotJson.properties.healthcheck);
810
827
  assert.notEqual(null, sampleDotJson.properties.healthcheck);
811
828
  assert.notEqual('', sampleDotJson.properties.healthcheck);
@@ -870,6 +887,8 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
870
887
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.isAlive);
871
888
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getConfig);
872
889
  assert.notEqual(undefined, sampleDotJson.properties.devicebroker.getCount);
890
+ assert.notEqual(undefined, sampleDotJson.properties.cache);
891
+ assert.notEqual(undefined, sampleDotJson.properties.cache.entities);
873
892
  done();
874
893
  } catch (error) {
875
894
  log.error(`Test Failure: ${error}`);
@@ -975,41 +994,6 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
975
994
  });
976
995
  });
977
996
 
978
- describe('#iapFindAdapterPath', () => {
979
- it('should have a iapFindAdapterPath function', (done) => {
980
- try {
981
- assert.equal(true, typeof a.iapFindAdapterPath === 'function');
982
- done();
983
- } catch (error) {
984
- log.error(`Test Failure: ${error}`);
985
- done(error);
986
- }
987
- });
988
- it('iapFindAdapterPath should find atleast one path that matches', (done) => {
989
- try {
990
- a.iapFindAdapterPath('{base_path}/{version}', (data, error) => {
991
- try {
992
- console.log(error);
993
- assert.equal(undefined, error);
994
- assert.notEqual(undefined, data);
995
- assert.notEqual(null, data);
996
- assert.equal(true, data.found);
997
- assert.notEqual(undefined, data.foundIn);
998
- assert.notEqual(null, data.foundIn);
999
- assert.notEqual(0, data.foundIn.length);
1000
- done();
1001
- } catch (err) {
1002
- log.error(`Test Failure: ${err}`);
1003
- done(err);
1004
- }
1005
- });
1006
- } catch (error) {
1007
- log.error(`Adapter Exception: ${error}`);
1008
- done(error);
1009
- }
1010
- }).timeout(attemptTimeout);
1011
- });
1012
-
1013
997
  describe('#iapSuspendAdapter', () => {
1014
998
  it('should have a iapSuspendAdapter function', (done) => {
1015
999
  try {
@@ -1046,6 +1030,40 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
1046
1030
  });
1047
1031
  });
1048
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
+
1049
1067
  describe('#iapTroubleshootAdapter', () => {
1050
1068
  it('should have a iapTroubleshootAdapter function', (done) => {
1051
1069
  try {
@@ -1191,49 +1209,53 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
1191
1209
  }).timeout(attemptTimeout);
1192
1210
  });
1193
1211
 
1194
- // describe('#iapHasAdapterEntity', () => {
1195
- // it('should have a iapHasAdapterEntity function', (done) => {
1196
- // try {
1197
- // assert.equal(true, typeof a.iapHasAdapterEntity === 'function');
1198
- // done();
1199
- // } catch (error) {
1200
- // log.error(`Test Failure: ${error}`);
1201
- // done(error);
1202
- // }
1203
- // });
1204
- // it('should find entity', (done) => {
1205
- // try {
1206
- // a.iapHasAdapterEntity('template_entity', // 'a9e9c33dc61122760072455df62663d2', (data) => {
1207
- // try {
1208
- // assert.equal(true, data[0]);
1209
- // done();
1210
- // } catch (err) {
1211
- // log.error(`Test Failure: ${err}`);
1212
- // done(err);
1213
- // }
1214
- // });
1215
- // } catch (error) {
1216
- // log.error(`Adapter Exception: ${error}`);
1217
- // done(error);
1218
- // }
1219
- // }).timeout(attemptTimeout);
1220
- // it('should not find entity', (done) => {
1221
- // try {
1222
- // a.iapHasAdapterEntity('template_entity', 'blah', (data) => {
1223
- // try {
1224
- // assert.equal(false, data[0]);
1225
- // done();
1226
- // } catch (err) {
1227
- // log.error(`Test Failure: ${err}`);
1228
- // done(err);
1229
- // }
1230
- // });
1231
- // } catch (error) {
1232
- // log.error(`Adapter Exception: ${error}`);
1233
- // done(error);
1234
- // }
1235
- // }).timeout(attemptTimeout);
1236
- // });
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
+ });
1237
1259
 
1238
1260
  describe('#hasEntities', () => {
1239
1261
  it('should have a hasEntities function', (done) => {
@@ -1307,6 +1329,173 @@ describe('[unit] Openstack_neutron Adapter Test', () => {
1307
1329
  });
1308
1330
  });
1309
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-openstack_neutron', 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-openstack_neutron', 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
+ });
1310
1499
  /*
1311
1500
  -----------------------------------------------------------------------
1312
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
  /**