@itentialopensource/adapter-meraki 0.8.0 → 0.8.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.
package/adapterBase.js CHANGED
@@ -277,129 +277,6 @@ class AdapterBase extends EventEmitterCl {
277
277
  }
278
278
  }
279
279
 
280
- /**
281
- * updateAdapterConfiguration is used to update any of the adapter configuration files. This
282
- * allows customers to make changes to adapter configuration without having to be on the
283
- * file system.
284
- *
285
- * @function updateAdapterConfiguration
286
- * @param {string} configFile - the name of the file being updated (required)
287
- * @param {Object} changes - an object containing all of the changes = formatted like the configuration file (required)
288
- * @param {string} entity - the entity to be changed, if an action, schema or mock data file (optional)
289
- * @param {string} type - the type of entity file to change, (action, schema, mock) (optional)
290
- * @param {string} action - the action to be changed, if an action, schema or mock data file (optional)
291
- * @param {Callback} callback - The results of the call
292
- */
293
- updateAdapterConfiguration(configFile, changes, entity, type, action, callback) {
294
- const meth = 'adapterBase-updateAdapterConfiguration';
295
- const origin = `${this.id}-${meth}`;
296
- log.trace(origin);
297
-
298
- // verify the parameters are valid
299
- if (changes === undefined || changes === null || typeof changes !== 'object'
300
- || Object.keys(changes).length === 0) {
301
- const result = {
302
- response: 'No configuration updates to make'
303
- };
304
- log.info(result.response);
305
- return callback(result, null);
306
- }
307
- if (configFile === undefined || configFile === null || configFile === '') {
308
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['configFile'], null, null, null);
309
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
310
- return callback(null, errorObj);
311
- }
312
-
313
- // take action based on configFile being changed
314
- if (configFile === 'package.json') {
315
- const pres = updatePackage(changes);
316
- if (pres) {
317
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${pres}`, [], null, null, null);
318
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
319
- return callback(null, errorObj);
320
- }
321
- const result = {
322
- response: 'Package updates completed - restarting adapter'
323
- };
324
- log.info(result.response);
325
- forceFail(true);
326
- return callback(result, null);
327
- }
328
- if (entity === undefined || entity === null || entity === '') {
329
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Unsupported Configuration Change or Missing Entity', [], null, null, null);
330
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
331
- return callback(null, errorObj);
332
- }
333
-
334
- // this means we are changing an entity file so type is required
335
- if (type === undefined || type === null || type === '') {
336
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['type'], null, null, null);
337
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
338
- return callback(null, errorObj);
339
- }
340
-
341
- // if the entity does not exist - error
342
- const epath = `${__dirname}/entities/${entity}`;
343
- if (!fs.existsSync(epath)) {
344
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: Invalid Entity - ${entity}`, [], null, null, null);
345
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
346
- return callback(null, errorObj);
347
- }
348
-
349
- // take action based on type of file being changed
350
- if (type === 'action') {
351
- // BACKUP???
352
- const ares = updateAction(epath, action, changes);
353
- if (ares) {
354
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${ares}`, [], null, null, null);
355
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
356
- return callback(null, errorObj);
357
- }
358
- // AJV CHECK???
359
- // RESTORE IF NEEDED???
360
- const result = {
361
- response: `Action updates completed to entity: ${entity} - ${action}`
362
- };
363
- log.info(result.response);
364
- return callback(result, null);
365
- }
366
- if (type === 'schema') {
367
- const sres = updateSchema(epath, configFile, changes);
368
- if (sres) {
369
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${sres}`, [], null, null, null);
370
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
371
- return callback(null, errorObj);
372
- }
373
- const result = {
374
- response: `Schema updates completed to entity: ${entity} - ${configFile}`
375
- };
376
- log.info(result.response);
377
- return callback(result, null);
378
- }
379
- if (type === 'mock') {
380
- // if the mock directory does not exist - error
381
- const mpath = `${__dirname}/entities/${entity}/mockdatafiles`;
382
- if (!fs.existsSync(mpath)) {
383
- fs.mkdirSync(mpath);
384
- }
385
-
386
- const mres = updateMock(mpath, configFile, changes);
387
- if (mres) {
388
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${mres}`, [], null, null, null);
389
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
390
- return callback(null, errorObj);
391
- }
392
- const result = {
393
- response: `Mock data updates completed to entity: ${entity} - ${configFile}`
394
- };
395
- log.info(result.response);
396
- return callback(result, null);
397
- }
398
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: Unsupported Type - ${type}`, [], null, null, null);
399
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
400
- return callback(null, errorObj);
401
- }
402
-
403
280
  /**
404
281
  * @summary Connect function is used during Pronghorn startup to provide instantiation feedback.
405
282
  *
@@ -468,7 +345,7 @@ class AdapterBase extends EventEmitterCl {
468
345
  }
469
346
 
470
347
  // call to the healthcheck in connector
471
- return this.requestHandlerInst.identifyHealthcheck(reqObj, (res, error) => {
348
+ return this.requestHandlerInst.identifyHealthcheck(myRequest, (res, error) => {
472
349
  // unhealthy
473
350
  if (error) {
474
351
  // if we were healthy, toggle health
@@ -501,98 +378,12 @@ class AdapterBase extends EventEmitterCl {
501
378
  }
502
379
 
503
380
  /**
504
- * @summary Suspends the adapter
505
- * @param {Callback} callback - The adapater suspension status
506
- * @function suspend
507
- */
508
- suspend(mode, callback) {
509
- const origin = `${this.id}-adapterBase-suspend`;
510
- if (this.suspended) {
511
- throw new Error(`${origin}: Adapter is already suspended`);
512
- }
513
- try {
514
- this.suspended = true;
515
- this.suspendMode = mode;
516
- if (this.suspendMode === 'pause') {
517
- const props = JSON.parse(JSON.stringify(this.initProps));
518
- // To suspend adapter, enable throttling and set concurrent max to 0
519
- props.throttle.throttle_enabled = true;
520
- props.throttle.concurrent_max = 0;
521
- this.refreshProperties(props);
522
- }
523
- return callback({ suspended: true });
524
- } catch (error) {
525
- return callback(null, error);
526
- }
527
- }
528
-
529
- /**
530
- * @summary Unsuspends the adapter
531
- * @param {Callback} callback - The adapater suspension status
532
- *
533
- * @function unsuspend
534
- */
535
- unsuspend(callback) {
536
- const origin = `${this.id}-adapterBase-unsuspend`;
537
- if (!this.suspended) {
538
- throw new Error(`${origin}: Adapter is not suspended`);
539
- }
540
- if (this.suspendMode === 'pause') {
541
- const props = JSON.parse(JSON.stringify(this.initProps));
542
- // To unsuspend adapter, keep throttling enabled and begin processing queued requests in order
543
- props.throttle.throttle_enabled = true;
544
- props.throttle.concurrent_max = 1;
545
- this.refreshProperties(props);
546
- setTimeout(() => {
547
- this.getQueue((q, error) => {
548
- // console.log("Items in queue: " + String(q.length))
549
- if (q.length === 0) {
550
- // if queue is empty, return to initial properties state
551
- this.refreshProperties(this.initProps);
552
- this.suspended = false;
553
- return callback({ suspended: false });
554
- }
555
- // recursive call to check queue again every second
556
- return this.unsuspend(callback);
557
- });
558
- }, 1000);
559
- } else {
560
- this.suspended = false;
561
- callback({ suspend: false });
562
- }
563
- }
564
-
565
- /**
566
- * getAllFunctions is used to get all of the exposed function in the adapter
567
- *
568
- * @function getAllFunctions
569
- */
570
- getAllFunctions() {
571
- let myfunctions = [];
572
- let obj = this;
573
-
574
- // find the functions in this class
575
- do {
576
- const l = Object.getOwnPropertyNames(obj)
577
- .concat(Object.getOwnPropertySymbols(obj).map((s) => s.toString()))
578
- .sort()
579
- .filter((p, i, arr) => typeof obj[p] === 'function' && p !== 'constructor' && (i === 0 || p !== arr[i - 1]) && myfunctions.indexOf(p) === -1);
580
- myfunctions = myfunctions.concat(l);
581
- }
582
- while (
583
- (obj = Object.getPrototypeOf(obj)) && Object.getPrototypeOf(obj)
584
- );
585
-
586
- return myfunctions;
587
- }
588
-
589
- /**
590
- * getWorkflowFunctions is used to get all of the workflow function in the adapter
381
+ * iapGetAdapterWorkflowFunctions is used to get all of the workflow function in the adapter
591
382
  * @param {array} ignoreThese - additional methods to ignore (optional)
592
383
  *
593
- * @function getWorkflowFunctions
384
+ * @function iapGetAdapterWorkflowFunctions
594
385
  */
595
- getWorkflowFunctions(ignoreThese) {
386
+ iapGetAdapterWorkflowFunctions(ignoreThese) {
596
387
  const myfunctions = this.getAllFunctions();
597
388
  const wffunctions = [];
598
389
 
@@ -602,8 +393,9 @@ class AdapterBase extends EventEmitterCl {
602
393
  // got to the second tier (adapterBase)
603
394
  break;
604
395
  }
605
- if (myfunctions[m] !== 'hasEntity' && myfunctions[m] !== 'verifyCapability' && myfunctions[m] !== 'updateEntityCache'
606
- && myfunctions[m] !== 'healthCheck' && myfunctions[m] !== 'getWorkflowFunctions'
396
+ if (myfunctions[m] !== 'iapHasAdapterEntity' && myfunctions[m] !== 'iapVerifyAdapterCapability'
397
+ && myfunctions[m] !== 'iapUpdateAdapterEntityCache' && myfunctions[m] !== 'healthCheck'
398
+ && myfunctions[m] !== 'iapGetAdapterWorkflowFunctions'
607
399
  && !(myfunctions[m].endsWith('Emit') || myfunctions[m].match(/Emit__v[0-9]+/))) {
608
400
  let found = false;
609
401
  if (ignoreThese && Array.isArray(ignoreThese)) {
@@ -623,30 +415,136 @@ class AdapterBase extends EventEmitterCl {
623
415
  }
624
416
 
625
417
  /**
626
- * checkActionFiles is used to update the validation of the action files.
418
+ * iapUpdateAdapterConfiguration is used to update any of the adapter configuration files. This
419
+ * allows customers to make changes to adapter configuration without having to be on the
420
+ * file system.
627
421
  *
628
- * @function checkActionFiles
422
+ * @function iapUpdateAdapterConfiguration
423
+ * @param {string} configFile - the name of the file being updated (required)
424
+ * @param {Object} changes - an object containing all of the changes = formatted like the configuration file (required)
425
+ * @param {string} entity - the entity to be changed, if an action, schema or mock data file (optional)
426
+ * @param {string} type - the type of entity file to change, (action, schema, mock) (optional)
427
+ * @param {string} action - the action to be changed, if an action, schema or mock data file (optional)
428
+ * @param {Callback} callback - The results of the call
629
429
  */
630
- checkActionFiles() {
631
- const origin = `${this.id}-adapterBase-checkActionFiles`;
430
+ iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, callback) {
431
+ const meth = 'adapterBase-iapUpdateAdapterConfiguration';
432
+ const origin = `${this.id}-${meth}`;
632
433
  log.trace(origin);
633
434
 
634
- // validate the action files for the adapter
635
- try {
636
- return this.requestHandlerInst.checkActionFiles();
637
- } catch (e) {
638
- return ['Exception increase log level'];
435
+ // verify the parameters are valid
436
+ if (changes === undefined || changes === null || typeof changes !== 'object'
437
+ || Object.keys(changes).length === 0) {
438
+ const result = {
439
+ response: 'No configuration updates to make'
440
+ };
441
+ log.info(result.response);
442
+ return callback(result, null);
443
+ }
444
+ if (configFile === undefined || configFile === null || configFile === '') {
445
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['configFile'], null, null, null);
446
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
447
+ return callback(null, errorObj);
448
+ }
449
+
450
+ // take action based on configFile being changed
451
+ if (configFile === 'package.json') {
452
+ const pres = updatePackage(changes);
453
+ if (pres) {
454
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${pres}`, [], null, null, null);
455
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
456
+ return callback(null, errorObj);
457
+ }
458
+ const result = {
459
+ response: 'Package updates completed - restarting adapter'
460
+ };
461
+ log.info(result.response);
462
+ forceFail(true);
463
+ return callback(result, null);
464
+ }
465
+ if (entity === undefined || entity === null || entity === '') {
466
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Unsupported Configuration Change or Missing Entity', [], null, null, null);
467
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
468
+ return callback(null, errorObj);
469
+ }
470
+
471
+ // this means we are changing an entity file so type is required
472
+ if (type === undefined || type === null || type === '') {
473
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['type'], null, null, null);
474
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
475
+ return callback(null, errorObj);
476
+ }
477
+
478
+ // if the entity does not exist - error
479
+ const epath = `${__dirname}/entities/${entity}`;
480
+ if (!fs.existsSync(epath)) {
481
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: Invalid Entity - ${entity}`, [], null, null, null);
482
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
483
+ return callback(null, errorObj);
484
+ }
485
+
486
+ // take action based on type of file being changed
487
+ if (type === 'action') {
488
+ // BACKUP???
489
+ const ares = updateAction(epath, action, changes);
490
+ if (ares) {
491
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${ares}`, [], null, null, null);
492
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
493
+ return callback(null, errorObj);
494
+ }
495
+ // AJV CHECK???
496
+ // RESTORE IF NEEDED???
497
+ const result = {
498
+ response: `Action updates completed to entity: ${entity} - ${action}`
499
+ };
500
+ log.info(result.response);
501
+ return callback(result, null);
502
+ }
503
+ if (type === 'schema') {
504
+ const sres = updateSchema(epath, configFile, changes);
505
+ if (sres) {
506
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${sres}`, [], null, null, null);
507
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
508
+ return callback(null, errorObj);
509
+ }
510
+ const result = {
511
+ response: `Schema updates completed to entity: ${entity} - ${configFile}`
512
+ };
513
+ log.info(result.response);
514
+ return callback(result, null);
515
+ }
516
+ if (type === 'mock') {
517
+ // if the mock directory does not exist - error
518
+ const mpath = `${__dirname}/entities/${entity}/mockdatafiles`;
519
+ if (!fs.existsSync(mpath)) {
520
+ fs.mkdirSync(mpath);
521
+ }
522
+
523
+ const mres = updateMock(mpath, configFile, changes);
524
+ if (mres) {
525
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${mres}`, [], null, null, null);
526
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
527
+ return callback(null, errorObj);
528
+ }
529
+ const result = {
530
+ response: `Mock data updates completed to entity: ${entity} - ${configFile}`
531
+ };
532
+ log.info(result.response);
533
+ return callback(result, null);
639
534
  }
535
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: Unsupported Type - ${type}`, [], null, null, null);
536
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
537
+ return callback(null, errorObj);
640
538
  }
641
539
 
642
540
  /**
643
541
  * See if the API path provided is found in this adapter
644
542
  *
645
- * @function findPath
543
+ * @function iapFindAdapterPath
646
544
  * @param {string} apiPath - the api path to check on
647
545
  * @param {Callback} callback - The results of the call
648
546
  */
649
- findPath(apiPath, callback) {
547
+ iapFindAdapterPath(apiPath, callback) {
650
548
  const result = {
651
549
  apiPath
652
550
  };
@@ -723,66 +621,90 @@ class AdapterBase extends EventEmitterCl {
723
621
  }
724
622
 
725
623
  /**
726
- * checkProperties is used to validate the adapter properties.
727
- *
728
- * @function checkProperties
729
- * @param {Object} properties - an object containing all of the properties
624
+ * @summary Suspends the adapter
625
+ * @param {Callback} callback - The adapater suspension status
626
+ * @function iapSuspendAdapter
730
627
  */
731
- checkProperties(properties) {
732
- const origin = `${this.myid}-adapterBase-checkProperties`;
733
- log.trace(origin);
734
-
735
- // validate the properties for the adapter
628
+ iapSuspendAdapter(mode, callback) {
629
+ const origin = `${this.id}-adapterBase-iapSuspendAdapter`;
630
+ if (this.suspended) {
631
+ throw new Error(`${origin}: Adapter is already suspended`);
632
+ }
736
633
  try {
737
- return this.requestHandlerInst.checkProperties(properties);
738
- } catch (e) {
739
- return { exception: 'Exception increase log level' };
634
+ this.suspended = true;
635
+ this.suspendMode = mode;
636
+ if (this.suspendMode === 'pause') {
637
+ const props = JSON.parse(JSON.stringify(this.initProps));
638
+ // To suspend adapter, enable throttling and set concurrent max to 0
639
+ props.throttle.throttle_enabled = true;
640
+ props.throttle.concurrent_max = 0;
641
+ this.refreshProperties(props);
642
+ }
643
+ return callback({ suspended: true });
644
+ } catch (error) {
645
+ return callback(null, error);
740
646
  }
741
647
  }
742
648
 
743
649
  /**
744
- * getQueue is used to get information for all of the requests currently in the queue.
650
+ * @summary Unsuspends the adapter
651
+ * @param {Callback} callback - The adapater suspension status
745
652
  *
746
- * @function getQueue
747
- * @param {Callback} callback - a callback function to return the result (Queue) or the error
653
+ * @function iapUnsuspendAdapter
748
654
  */
749
- getQueue(callback) {
750
- const origin = `${this.id}-adapterBase-getQueue`;
751
- log.trace(origin);
752
-
753
- return this.requestHandlerInst.getQueue(callback);
655
+ iapUnsuspendAdapter(callback) {
656
+ const origin = `${this.id}-adapterBase-iapUnsuspendAdapter`;
657
+ if (!this.suspended) {
658
+ throw new Error(`${origin}: Adapter is not suspended`);
659
+ }
660
+ if (this.suspendMode === 'pause') {
661
+ const props = JSON.parse(JSON.stringify(this.initProps));
662
+ // To unsuspend adapter, keep throttling enabled and begin processing queued requests in order
663
+ props.throttle.throttle_enabled = true;
664
+ props.throttle.concurrent_max = 1;
665
+ this.refreshProperties(props);
666
+ setTimeout(() => {
667
+ this.getQueue((q, error) => {
668
+ // console.log("Items in queue: " + String(q.length))
669
+ if (q.length === 0) {
670
+ // if queue is empty, return to initial properties state
671
+ this.refreshProperties(this.initProps);
672
+ this.suspended = false;
673
+ return callback({ suspended: false });
674
+ }
675
+ // recursive call to check queue again every second
676
+ return this.iapUnsuspendAdapter(callback);
677
+ });
678
+ }, 1000);
679
+ } else {
680
+ this.suspended = false;
681
+ callback({ suspend: false });
682
+ }
754
683
  }
755
684
 
756
685
  /**
757
- * @summary Takes in property text and an encoding/encryption and returns the resulting
758
- * encoded/encrypted string
686
+ * iapGetAdapterQueue is used to get information for all of the requests currently in the queue.
759
687
  *
760
- * @function encryptProperty
761
- * @param {String} property - the property to encrypt
762
- * @param {String} technique - the technique to use to encrypt
763
- *
764
- * @param {Callback} callback - a callback function to return the result
765
- * Encrypted String or the Error
688
+ * @function iapGetAdapterQueue
689
+ * @param {Callback} callback - a callback function to return the result (Queue) or the error
766
690
  */
767
- encryptProperty(property, technique, callback) {
768
- const origin = `${this.id}-adapterBase-encryptProperty`;
691
+ iapGetAdapterQueue(callback) {
692
+ const origin = `${this.id}-adapterBase-iapGetAdapterQueue`;
769
693
  log.trace(origin);
770
694
 
771
- // Make the call -
772
- // encryptProperty(property, technique, callback)
773
- return this.requestHandlerInst.encryptProperty(property, technique, callback);
695
+ return this.requestHandlerInst.getQueue(callback);
774
696
  }
775
697
 
776
698
  /**
777
699
  * @summary runs troubleshoot scripts for adapter
778
700
  *
779
- * @function troubleshoot
701
+ * @function iapTroubleshootAdapter
780
702
  * @param {Object} props - the connection, healthcheck and authentication properties
781
703
  * @param {boolean} persistFlag - whether the adapter properties should be updated
782
704
  * @param {Adapter} adapter - adapter instance to troubleshoot
783
705
  * @param {Callback} callback - callback function to return troubleshoot results
784
706
  */
785
- async troubleshoot(props, persistFlag, adapter, callback) {
707
+ async iapTroubleshootAdapter(props, persistFlag, adapter, callback) {
786
708
  try {
787
709
  const result = await troubleshootingAdapter.troubleshoot(props, false, persistFlag, adapter);
788
710
  if (result.healthCheck && result.connectivity.failCount === 0 && result.basicGet.failCount === 0) {
@@ -797,11 +719,11 @@ class AdapterBase extends EventEmitterCl {
797
719
  /**
798
720
  * @summary runs healthcheck script for adapter
799
721
  *
800
- * @function runHealthcheck
722
+ * @function iapRunAdapterHealthcheck
801
723
  * @param {Adapter} adapter - adapter instance to troubleshoot
802
724
  * @param {Callback} callback - callback function to return healthcheck status
803
725
  */
804
- async runHealthcheck(adapter, callback) {
726
+ async iapRunAdapterHealthcheck(adapter, callback) {
805
727
  try {
806
728
  const result = await tbUtils.healthCheck(adapter);
807
729
  if (result) {
@@ -816,15 +738,15 @@ class AdapterBase extends EventEmitterCl {
816
738
  /**
817
739
  * @summary runs connectivity check script for adapter
818
740
  *
819
- * @function runConnectivity
741
+ * @function iapRunAdapterConnectivity
820
742
  * @param {Adapter} adapter - adapter instance to troubleshoot
821
743
  * @param {Callback} callback - callback function to return connectivity status
822
744
  */
823
- async runConnectivity(callback) {
745
+ async iapRunAdapterConnectivity(callback) {
824
746
  try {
825
747
  const { serviceItem } = await tbUtils.getAdapterConfig();
826
748
  const { host } = serviceItem.properties.properties;
827
- const result = tbUtils.runConnectivity(host, false);
749
+ const result = tbUtils.iapRunAdapterConnectivity(host, false);
828
750
  if (result.failCount > 0) {
829
751
  return callback(null, result);
830
752
  }
@@ -837,12 +759,12 @@ class AdapterBase extends EventEmitterCl {
837
759
  /**
838
760
  * @summary runs basicGet script for adapter
839
761
  *
840
- * @function runBasicGet
762
+ * @function iapRunAdapterBasicGet
841
763
  * @param {Callback} callback - callback function to return basicGet result
842
764
  */
843
- runBasicGet(callback) {
765
+ iapRunAdapterBasicGet(callback) {
844
766
  try {
845
- const result = tbUtils.runBasicGet(false);
767
+ const result = tbUtils.iapRunAdapterBasicGet(false);
846
768
  if (result.failCount > 0) {
847
769
  return callback(null, result);
848
770
  }
@@ -852,6 +774,106 @@ class AdapterBase extends EventEmitterCl {
852
774
  }
853
775
  }
854
776
 
777
+ /**
778
+ * @summary moves entities to mongo database
779
+ *
780
+ * @function iapMoveAdapterEntitiesToDB
781
+ *
782
+ * @return {Callback} - containing the response from the mongo transaction
783
+ */
784
+ iapMoveAdapterEntitiesToDB(callback) {
785
+ const meth = 'adapterBase-iapMoveAdapterEntitiesToDB';
786
+ const origin = `${this.id}-${meth}`;
787
+ log.trace(origin);
788
+
789
+ try {
790
+ return callback(entitiesToDB.iapMoveAdapterEntitiesToDB(__dirname, { pronghornProps: this.allProps, id: this.id }), null);
791
+ } catch (err) {
792
+ const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, err);
793
+ log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
794
+ return callback(null, errorObj);
795
+ }
796
+ }
797
+
798
+ /**
799
+ * getAllFunctions is used to get all of the exposed function in the adapter
800
+ *
801
+ * @function getAllFunctions
802
+ */
803
+ getAllFunctions() {
804
+ let myfunctions = [];
805
+ let obj = this;
806
+
807
+ // find the functions in this class
808
+ do {
809
+ const l = Object.getOwnPropertyNames(obj)
810
+ .concat(Object.getOwnPropertySymbols(obj).map((s) => s.toString()))
811
+ .sort()
812
+ .filter((p, i, arr) => typeof obj[p] === 'function' && p !== 'constructor' && (i === 0 || p !== arr[i - 1]) && myfunctions.indexOf(p) === -1);
813
+ myfunctions = myfunctions.concat(l);
814
+ }
815
+ while (
816
+ (obj = Object.getPrototypeOf(obj)) && Object.getPrototypeOf(obj)
817
+ );
818
+
819
+ return myfunctions;
820
+ }
821
+
822
+ /**
823
+ * checkActionFiles is used to update the validation of the action files.
824
+ *
825
+ * @function checkActionFiles
826
+ */
827
+ checkActionFiles() {
828
+ const origin = `${this.id}-adapterBase-checkActionFiles`;
829
+ log.trace(origin);
830
+
831
+ // validate the action files for the adapter
832
+ try {
833
+ return this.requestHandlerInst.checkActionFiles();
834
+ } catch (e) {
835
+ return ['Exception increase log level'];
836
+ }
837
+ }
838
+
839
+ /**
840
+ * checkProperties is used to validate the adapter properties.
841
+ *
842
+ * @function checkProperties
843
+ * @param {Object} properties - an object containing all of the properties
844
+ */
845
+ checkProperties(properties) {
846
+ const origin = `${this.myid}-adapterBase-checkProperties`;
847
+ log.trace(origin);
848
+
849
+ // validate the properties for the adapter
850
+ try {
851
+ return this.requestHandlerInst.checkProperties(properties);
852
+ } catch (e) {
853
+ return { exception: 'Exception increase log level' };
854
+ }
855
+ }
856
+
857
+ /**
858
+ * @summary Takes in property text and an encoding/encryption and returns the resulting
859
+ * encoded/encrypted string
860
+ *
861
+ * @function encryptProperty
862
+ * @param {String} property - the property to encrypt
863
+ * @param {String} technique - the technique to use to encrypt
864
+ *
865
+ * @param {Callback} callback - a callback function to return the result
866
+ * Encrypted String or the Error
867
+ */
868
+ encryptProperty(property, technique, callback) {
869
+ const origin = `${this.id}-adapterBase-encryptProperty`;
870
+ log.trace(origin);
871
+
872
+ // Make the call -
873
+ // encryptProperty(property, technique, callback)
874
+ return this.requestHandlerInst.encryptProperty(property, technique, callback);
875
+ }
876
+
855
877
  /**
856
878
  * @summary take the entities and add them to the cache
857
879
  *
@@ -1002,27 +1024,6 @@ class AdapterBase extends EventEmitterCl {
1002
1024
  return [];
1003
1025
  }
1004
1026
  }
1005
-
1006
- /**
1007
- * @summary moves entities to mongo database
1008
- *
1009
- * @function moveEntitiesToDB
1010
- *
1011
- * @return {Callback} - containing the response from the mongo transaction
1012
- */
1013
- moveEntitiesToDB(callback) {
1014
- const meth = 'adapterBase-moveEntitiesToDB';
1015
- const origin = `${this.id}-${meth}`;
1016
- log.trace(origin);
1017
-
1018
- try {
1019
- return callback(entitiesToDB.moveEntitiesToDB(__dirname, { pronghornProps: this.allProps, id: this.id }), null);
1020
- } catch (err) {
1021
- const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, err);
1022
- log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
1023
- return callback(null, errorObj);
1024
- }
1025
- }
1026
1027
  }
1027
1028
 
1028
1029
  module.exports = AdapterBase;