@itentialopensource/adapter-meraki 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -0
- package/adapterBase.js +111 -58
- package/package.json +1 -1
- package/refs?service=git-upload-pack +0 -0
- package/sampleProperties.json +17 -33
- package/test/unit/adapterBaseTestUnit.js +5 -5
package/CHANGELOG.md
CHANGED
@@ -1,4 +1,12 @@
|
|
1
1
|
|
2
|
+
## 1.0.2 [05-10-2023]
|
3
|
+
|
4
|
+
* Migrate adapter base to have broker changes
|
5
|
+
|
6
|
+
See merge request itentialopensource/adapters/sd-wan/adapter-meraki!25
|
7
|
+
|
8
|
+
---
|
9
|
+
|
2
10
|
## 1.0.1 [04-04-2023]
|
3
11
|
|
4
12
|
* Utils version has been updated in package.json, and the changes are being migrated to the adapter
|
package/adapterBase.js
CHANGED
@@ -17,6 +17,8 @@ const jsonQuery = require('json-query');
|
|
17
17
|
const EventEmitterCl = require('events').EventEmitter;
|
18
18
|
const { execSync } = require('child_process');
|
19
19
|
|
20
|
+
const sampleProperties = require(`${__dirname}/sampleProperties.json`).properties;
|
21
|
+
|
20
22
|
/* The schema validator */
|
21
23
|
const AjvCl = require('ajv');
|
22
24
|
|
@@ -24,11 +26,14 @@ const AjvCl = require('ajv');
|
|
24
26
|
const PropUtilCl = require('@itentialopensource/adapter-utils').PropertyUtility;
|
25
27
|
const RequestHandlerCl = require('@itentialopensource/adapter-utils').RequestHandler;
|
26
28
|
|
29
|
+
const TransUtilCl = require(path.join(__dirname, 'node_modules/@itentialopensource/adapter-utils/lib/translatorUtil.js'));
|
30
|
+
|
27
31
|
const entitiesToDB = require(path.join(__dirname, 'utils/entitiesToDB'));
|
28
32
|
const troubleshootingAdapter = require(path.join(__dirname, 'utils/troubleshootingAdapter'));
|
29
33
|
const tbUtils = require(path.join(__dirname, 'utils/tbUtils'));
|
30
34
|
|
31
35
|
let propUtil = null;
|
36
|
+
let transUtil = null;
|
32
37
|
let choosepath = null;
|
33
38
|
|
34
39
|
/*
|
@@ -102,7 +107,7 @@ function updateSchema(entityPath, configFile, changes) {
|
|
102
107
|
/*
|
103
108
|
* INTERNAL FUNCTION: update the mock data file
|
104
109
|
*/
|
105
|
-
function updateMock(mockPath, configFile, changes) {
|
110
|
+
function updateMock(mockPath, configFile, changes, replace) {
|
106
111
|
// if the mock file does not exist - create it
|
107
112
|
const mockFile = path.join(mockPath, `/${configFile}`);
|
108
113
|
if (!fs.existsSync(mockFile)) {
|
@@ -114,7 +119,11 @@ function updateMock(mockPath, configFile, changes) {
|
|
114
119
|
let mock = require(path.resolve(mockPath, configFile));
|
115
120
|
|
116
121
|
// merge the changes into the mock file
|
117
|
-
|
122
|
+
if (replace === true) {
|
123
|
+
mock = changes;
|
124
|
+
} else {
|
125
|
+
mock = propUtil.mergeProperties(changes, mock);
|
126
|
+
}
|
118
127
|
|
119
128
|
fs.writeFileSync(mockFile, JSON.stringify(mock, null, 2));
|
120
129
|
return null;
|
@@ -167,6 +176,28 @@ function getDataFromSources(loopField, sources) {
|
|
167
176
|
return fieldValue;
|
168
177
|
}
|
169
178
|
|
179
|
+
/*
|
180
|
+
* INTERNAL FUNCTION: update allprops device broker array with service config and sample props
|
181
|
+
*/
|
182
|
+
function getDeviceBrokerArray(sampleProps, allProps) {
|
183
|
+
const brokerCallsArr = ['getDevice', 'getDevicesFiltered', 'isAlive', 'getConfig', 'getCount'];
|
184
|
+
const deviceBroker = allProps.devicebroker;
|
185
|
+
for (let i = 0; i < brokerCallsArr.length; i += 1) {
|
186
|
+
if (!allProps.devicebroker || !allProps.devicebroker[brokerCallsArr[i]] || allProps.devicebroker[brokerCallsArr[i]].length === 0 || !allProps.devicebroker[brokerCallsArr[i]][0].path) {
|
187
|
+
// if not in service config check sample props
|
188
|
+
if (!sampleProps.devicebroker || !sampleProps.devicebroker[brokerCallsArr[i]] || sampleProps.devicebroker[brokerCallsArr[i]].length === 0 || !sampleProps.devicebroker[brokerCallsArr[i]][0].path) {
|
189
|
+
deviceBroker[brokerCallsArr[i]] = [];
|
190
|
+
} else {
|
191
|
+
log.info('Updating device broker with sample props');
|
192
|
+
deviceBroker[brokerCallsArr[i]] = sampleProps.devicebroker[brokerCallsArr[i]];
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
log.info('Device broker array', JSON.stringify(deviceBroker, null, 3));
|
198
|
+
return deviceBroker;
|
199
|
+
}
|
200
|
+
|
170
201
|
/* GENERAL ADAPTER FUNCTIONS THESE SHOULD NOT BE DIRECTLY MODIFIED */
|
171
202
|
/* IF YOU NEED MODIFICATIONS, REDEFINE THEM IN adapter.js!!! */
|
172
203
|
class AdapterBase extends EventEmitterCl {
|
@@ -186,6 +217,10 @@ class AdapterBase extends EventEmitterCl {
|
|
186
217
|
this.id = prongid;
|
187
218
|
this.propUtilInst = new PropUtilCl(prongid, __dirname);
|
188
219
|
propUtil = this.propUtilInst;
|
220
|
+
this.transUtilInst = new TransUtilCl(prongid, this.propUtilInst);
|
221
|
+
transUtil = this.transUtilInst;
|
222
|
+
this.transUtilInst = new TransUtilCl(prongid, this.propUtilInst);
|
223
|
+
transUtil = this.transUtilInst;
|
189
224
|
this.initProps = properties;
|
190
225
|
this.alive = false;
|
191
226
|
this.healthy = false;
|
@@ -198,6 +233,8 @@ class AdapterBase extends EventEmitterCl {
|
|
198
233
|
|
199
234
|
// set up the properties I care about
|
200
235
|
this.refreshProperties(properties);
|
236
|
+
// update deviceBroker based on service config and sample props
|
237
|
+
this.allProps.devicebroker = getDeviceBrokerArray(sampleProperties, this.allProps);
|
201
238
|
|
202
239
|
// Instantiate the other components for this Adapter
|
203
240
|
this.requestHandlerInst = new RequestHandlerCl(this.id, this.allProps, __dirname);
|
@@ -380,9 +417,15 @@ class AdapterBase extends EventEmitterCl {
|
|
380
417
|
this.emit('OFFLINE', { id: this.id });
|
381
418
|
this.emit('DEGRADED', { id: this.id });
|
382
419
|
this.healthy = false;
|
383
|
-
|
384
|
-
|
420
|
+
if (typeof error === 'object') {
|
421
|
+
log.error(`${origin}: HEALTH CHECK - Error ${JSON.stringify(error)}`);
|
422
|
+
} else {
|
423
|
+
log.error(`${origin}: HEALTH CHECK - Error ${error}`);
|
424
|
+
}
|
425
|
+
} else if (typeof error === 'object') {
|
385
426
|
// still log but set the level to trace
|
427
|
+
log.trace(`${origin}: HEALTH CHECK - Still Errors ${JSON.stringify(error)}`);
|
428
|
+
} else {
|
386
429
|
log.trace(`${origin}: HEALTH CHECK - Still Errors ${error}`);
|
387
430
|
}
|
388
431
|
|
@@ -528,16 +571,17 @@ class AdapterBase extends EventEmitterCl {
|
|
528
571
|
* @param {string} entity - the entity to be changed, if an action, schema or mock data file (optional)
|
529
572
|
* @param {string} type - the type of entity file to change, (action, schema, mock) (optional)
|
530
573
|
* @param {string} action - the action to be changed, if an action, schema or mock data file (optional)
|
574
|
+
* @param {boolean} replace - true to replace entire mock data, false to merge/append (optional)
|
531
575
|
* @param {Callback} callback - The results of the call
|
532
576
|
*/
|
533
|
-
iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, callback) {
|
577
|
+
iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, replace, callback) {
|
534
578
|
const meth = 'adapterBase-iapUpdateAdapterConfiguration';
|
535
579
|
const origin = `${this.id}-${meth}`;
|
536
580
|
log.trace(origin);
|
537
581
|
|
538
582
|
// verify the parameters are valid
|
539
583
|
if (changes === undefined || changes === null || typeof changes !== 'object'
|
540
|
-
|
584
|
+
|| Object.keys(changes).length === 0) {
|
541
585
|
const result = {
|
542
586
|
response: 'No configuration updates to make'
|
543
587
|
};
|
@@ -622,8 +666,14 @@ class AdapterBase extends EventEmitterCl {
|
|
622
666
|
if (!fs.existsSync(mpath)) {
|
623
667
|
fs.mkdirSync(mpath);
|
624
668
|
}
|
669
|
+
// this means we are changing a mock data file so replace is required
|
670
|
+
if (replace === undefined || replace === null || replace === '') {
|
671
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Missing Data', ['replace'], null, null, null);
|
672
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
673
|
+
return callback(null, errorObj);
|
674
|
+
}
|
675
|
+
const mres = updateMock(mpath, configFile, changes, replace);
|
625
676
|
|
626
|
-
const mres = updateMock(mpath, configFile, changes);
|
627
677
|
if (mres) {
|
628
678
|
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, `Incomplete Configuration Change: ${mres}`, [], null, null, null);
|
629
679
|
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
@@ -854,7 +904,7 @@ class AdapterBase extends EventEmitterCl {
|
|
854
904
|
if (result) {
|
855
905
|
return callback(result);
|
856
906
|
}
|
857
|
-
return callback(null,
|
907
|
+
return callback(null, 'Healthcheck failed');
|
858
908
|
} catch (error) {
|
859
909
|
return callback(null, error);
|
860
910
|
}
|
@@ -869,8 +919,7 @@ class AdapterBase extends EventEmitterCl {
|
|
869
919
|
*/
|
870
920
|
async iapRunAdapterConnectivity(callback) {
|
871
921
|
try {
|
872
|
-
const {
|
873
|
-
const { host } = serviceItem.properties.properties;
|
922
|
+
const { host } = this.allProps;
|
874
923
|
const result = tbUtils.runConnectivity(host, false);
|
875
924
|
if (result.failCount > 0) {
|
876
925
|
return callback(null, result);
|
@@ -941,7 +990,7 @@ class AdapterBase extends EventEmitterCl {
|
|
941
990
|
const entityIds = [];
|
942
991
|
|
943
992
|
if (entities && Object.hasOwnProperty.call(entities, 'response')
|
944
|
-
|
993
|
+
&& Array.isArray(entities.response)) {
|
945
994
|
for (let e = 0; e < entities.response.length; e += 1) {
|
946
995
|
entityIds.push(entities.response[e][key]);
|
947
996
|
}
|
@@ -1178,75 +1227,73 @@ class AdapterBase extends EventEmitterCl {
|
|
1178
1227
|
uriMethod = callProps.method;
|
1179
1228
|
}
|
1180
1229
|
if (callProps.query) {
|
1181
|
-
callQuery = callProps.query;
|
1182
|
-
|
1230
|
+
callQuery = { ...callProps.query };
|
1183
1231
|
// go through the query params to check for variable values
|
1184
1232
|
const cpKeys = Object.keys(callQuery);
|
1185
1233
|
for (let cp = 0; cp < cpKeys.length; cp += 1) {
|
1186
|
-
if (callQuery[cpKeys[cp]].startsWith('{') && callQuery[cpKeys[cp]].endsWith('}')) {
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
callQuery[cpKeys[cp]] = fieldValue;
|
1198
|
-
}
|
1234
|
+
// if (callQuery[cpKeys[cp]].startsWith('{') && callQuery[cpKeys[cp]].endsWith('}')) {
|
1235
|
+
// make any necessary changes to the query params
|
1236
|
+
if (devResp !== null && callProps.requestFields && Object.keys(callProps.requestFields).length > 0) {
|
1237
|
+
const rqKeys = Object.keys(callProps.requestFields);
|
1238
|
+
|
1239
|
+
// get the field from the provided device
|
1240
|
+
for (let rq = 0; rq < rqKeys.length; rq += 1) {
|
1241
|
+
if (callQuery[cpKeys[cp]] === rqKeys[rq]) {
|
1242
|
+
const fieldValue = getDataFromSources(callProps.requestFields[rqKeys[rq]], devResp);
|
1243
|
+
// put the value into the query - if it has been specified in the query
|
1244
|
+
callQuery[cpKeys[cp]] = fieldValue;
|
1199
1245
|
}
|
1200
1246
|
}
|
1201
1247
|
}
|
1248
|
+
// }
|
1202
1249
|
}
|
1203
1250
|
}
|
1204
1251
|
if (callProps.body) {
|
1205
|
-
callBody = callProps.body;
|
1252
|
+
callBody = { ...callProps.body };
|
1206
1253
|
|
1207
1254
|
// go through the body fields to check for variable values
|
1208
1255
|
const cbKeys = Object.keys(callBody);
|
1209
1256
|
for (let cb = 0; cb < cbKeys.length; cb += 1) {
|
1210
|
-
if (callBody[cbKeys[cb]].startsWith('{') && callBody[cbKeys[cb]].endsWith('}')) {
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1220
|
-
|
1221
|
-
|
1222
|
-
}
|
1257
|
+
// if (callBody[cbKeys[cb]].startsWith('{') && callBody[cbKeys[cb]].endsWith('}')) {
|
1258
|
+
// make any necessary changes to the query params
|
1259
|
+
if (devResp !== null && callProps.requestFields && Object.keys(callProps.requestFields).length > 0) {
|
1260
|
+
const rqKeys = Object.keys(callProps.requestFields);
|
1261
|
+
|
1262
|
+
// get the field from the provided device
|
1263
|
+
for (let rq = 0; rq < rqKeys.length; rq += 1) {
|
1264
|
+
if (callBody[cbKeys[cb]] === rqKeys[rq]) {
|
1265
|
+
const fieldValue = getDataFromSources(callProps.requestFields[rqKeys[rq]], devResp);
|
1266
|
+
|
1267
|
+
// put the value into the query - if it has been specified in the query
|
1268
|
+
callBody[cbKeys[cb]] = fieldValue;
|
1223
1269
|
}
|
1224
1270
|
}
|
1225
1271
|
}
|
1272
|
+
// }
|
1226
1273
|
}
|
1227
1274
|
}
|
1228
1275
|
if (callProps.headers) {
|
1229
|
-
callHeaders = callProps.headers;
|
1276
|
+
callHeaders = { ...callProps.headers };
|
1230
1277
|
|
1231
1278
|
// go through the body fields to check for variable values
|
1232
1279
|
const chKeys = Object.keys(callHeaders);
|
1233
1280
|
for (let ch = 0; ch < chKeys.length; ch += 1) {
|
1234
|
-
if (callHeaders[chKeys[ch]].startsWith('{') && callHeaders[chKeys[ch]].endsWith('}')) {
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
}
|
1281
|
+
// if (callHeaders[chKeys[ch]].startsWith('{') && callHeaders[chKeys[ch]].endsWith('}')) {
|
1282
|
+
// make any necessary changes to the query params
|
1283
|
+
if (devResp !== null && callProps.requestFields && Object.keys(callProps.requestFields).length > 0) {
|
1284
|
+
const rqKeys = Object.keys(callProps.requestFields);
|
1285
|
+
|
1286
|
+
// get the field from the provided device
|
1287
|
+
for (let rq = 0; rq < rqKeys.length; rq += 1) {
|
1288
|
+
if (callHeaders[chKeys[ch]] === rqKeys[rq]) {
|
1289
|
+
const fieldValue = getDataFromSources(callProps.requestFields[rqKeys[rq]], devResp);
|
1290
|
+
|
1291
|
+
// put the value into the query - if it has been specified in the query
|
1292
|
+
callHeaders[chKeys[ch]] = fieldValue;
|
1247
1293
|
}
|
1248
1294
|
}
|
1249
1295
|
}
|
1296
|
+
// }
|
1250
1297
|
}
|
1251
1298
|
}
|
1252
1299
|
if (callProps.handleFailure) {
|
@@ -1445,7 +1492,7 @@ class AdapterBase extends EventEmitterCl {
|
|
1445
1492
|
// Perform component calls here.
|
1446
1493
|
callPromises.push(
|
1447
1494
|
new Promise((resolve, reject) => {
|
1448
|
-
this.iapMakeBrokerCall('getDevice', this.allProps.devicebroker.getDevice[i], [devs.list[0]],
|
1495
|
+
this.iapMakeBrokerCall('getDevice', this.allProps.devicebroker.getDevice[i], [devs.list[0]], [deviceName], (callRet, callErr) => {
|
1449
1496
|
// return an error
|
1450
1497
|
if (callErr) {
|
1451
1498
|
reject(callErr);
|
@@ -1726,7 +1773,13 @@ class AdapterBase extends EventEmitterCl {
|
|
1726
1773
|
return Promise.all(callPromises).then((results) => {
|
1727
1774
|
let myResult = {};
|
1728
1775
|
results.forEach((result) => {
|
1729
|
-
|
1776
|
+
if (typeof result === 'string') {
|
1777
|
+
myResult = { ...myResult, result };
|
1778
|
+
} else if (Array.isArray(result)) {
|
1779
|
+
myResult = result[0];
|
1780
|
+
} else {
|
1781
|
+
myResult = { ...myResult, ...result };
|
1782
|
+
}
|
1730
1783
|
});
|
1731
1784
|
|
1732
1785
|
// return the result
|
@@ -1771,7 +1824,7 @@ class AdapterBase extends EventEmitterCl {
|
|
1771
1824
|
// Perform component calls here.
|
1772
1825
|
callPromises.push(
|
1773
1826
|
new Promise((resolve, reject) => {
|
1774
|
-
this.iapMakeBrokerCall('getCount', this.allProps.devicebroker.getCount[i],
|
1827
|
+
this.iapMakeBrokerCall('getCount', this.allProps.devicebroker.getCount[i], [{ fake: 'fakedata' }], null, (callRet, callErr) => {
|
1775
1828
|
// return an error
|
1776
1829
|
if (callErr) {
|
1777
1830
|
reject(callErr);
|
@@ -1792,7 +1845,7 @@ class AdapterBase extends EventEmitterCl {
|
|
1792
1845
|
});
|
1793
1846
|
|
1794
1847
|
// return the result
|
1795
|
-
return callback({ count: myResult.length });
|
1848
|
+
return callback({ count: Object.keys(myResult).length });
|
1796
1849
|
});
|
1797
1850
|
} catch (ex) {
|
1798
1851
|
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
|
package/package.json
CHANGED
Binary file
|
package/sampleProperties.json
CHANGED
@@ -107,9 +107,9 @@
|
|
107
107
|
"headers": {},
|
108
108
|
"handleFailure": "ignore",
|
109
109
|
"requestFields": {
|
110
|
-
"networkID": "
|
111
|
-
"serial": "
|
112
|
-
"orgID": "
|
110
|
+
"networkID": "627126248111459727",
|
111
|
+
"serial": "Q4AB-J4J8-6BJR",
|
112
|
+
"orgID": "1076949"
|
113
113
|
},
|
114
114
|
"responseDatakey": "",
|
115
115
|
"responseFields": {
|
@@ -130,7 +130,7 @@
|
|
130
130
|
"headers": {},
|
131
131
|
"handleFailure": "ignore",
|
132
132
|
"requestFields": {
|
133
|
-
"orgID": "
|
133
|
+
"orgID": "1076949"
|
134
134
|
},
|
135
135
|
"responseDatakey": "",
|
136
136
|
"responseFields": {
|
@@ -139,27 +139,7 @@
|
|
139
139
|
"ostypePrefix": "meraki-",
|
140
140
|
"port": "networkId",
|
141
141
|
"ipaddress": "mac",
|
142
|
-
"orgID": "
|
143
|
-
}
|
144
|
-
},
|
145
|
-
{
|
146
|
-
"path": "/organizations/{orgID}/devices",
|
147
|
-
"method": "GET",
|
148
|
-
"query": {},
|
149
|
-
"body": {},
|
150
|
-
"headers": {},
|
151
|
-
"handleFailure": "ignore",
|
152
|
-
"requestFields": {
|
153
|
-
"orgID": "681155"
|
154
|
-
},
|
155
|
-
"responseDatakey": "",
|
156
|
-
"responseFields": {
|
157
|
-
"name": "serial",
|
158
|
-
"ostype": "model",
|
159
|
-
"ostypePrefix": "meraki-",
|
160
|
-
"port": "networkId",
|
161
|
-
"ipaddress": "mac",
|
162
|
-
"orgID": "681155"
|
142
|
+
"orgID": "1076949"
|
163
143
|
}
|
164
144
|
}
|
165
145
|
],
|
@@ -173,8 +153,8 @@
|
|
173
153
|
"handleFailure": "ignore",
|
174
154
|
"requestFields": {
|
175
155
|
"networkID": "port",
|
176
|
-
"serial": "
|
177
|
-
"orgID": "
|
156
|
+
"serial": "Q4AB-J4J8-6BJR",
|
157
|
+
"orgID": "1076949"
|
178
158
|
},
|
179
159
|
"responseDatakey": "",
|
180
160
|
"responseFields": {
|
@@ -193,8 +173,8 @@
|
|
193
173
|
"handleFailure": "ignore",
|
194
174
|
"requestFields": {
|
195
175
|
"networkID": "port",
|
196
|
-
"serial": "
|
197
|
-
"orgID": "
|
176
|
+
"serial": "Q4AB-J4J8-6BJR",
|
177
|
+
"orgID": "1076949"
|
198
178
|
},
|
199
179
|
"responseDatakey": "",
|
200
180
|
"responseFields": {}
|
@@ -202,24 +182,28 @@
|
|
202
182
|
],
|
203
183
|
"getCount": [
|
204
184
|
{
|
205
|
-
"path": "/organizations/
|
185
|
+
"path": "/organizations/{orgID}/devices",
|
206
186
|
"method": "GET",
|
207
187
|
"query": {},
|
208
188
|
"body": {},
|
209
189
|
"headers": {},
|
210
190
|
"handleFailure": "ignore",
|
211
|
-
"requestFields": {
|
191
|
+
"requestFields": {
|
192
|
+
"orgID": "1076949"
|
193
|
+
},
|
212
194
|
"responseDatakey": "",
|
213
195
|
"responseFields": {}
|
214
196
|
},
|
215
197
|
{
|
216
|
-
"path": "/organizations/
|
198
|
+
"path": "/organizations/{orgID}/devices",
|
217
199
|
"method": "GET",
|
218
200
|
"query": {},
|
219
201
|
"body": {},
|
220
202
|
"headers": {},
|
221
203
|
"handleFailure": "ignore",
|
222
|
-
"requestFields": {
|
204
|
+
"requestFields": {
|
205
|
+
"orgID": "1076949"
|
206
|
+
},
|
223
207
|
"responseDatakey": "",
|
224
208
|
"responseFields": {}
|
225
209
|
}
|
@@ -862,7 +862,7 @@ describe('[unit] Adapter Base Test', () => {
|
|
862
862
|
});
|
863
863
|
it('should return no updated if no changes are provided', (done) => {
|
864
864
|
try {
|
865
|
-
a.iapUpdateAdapterConfiguration(null, null, null, null, null, (data, error) => {
|
865
|
+
a.iapUpdateAdapterConfiguration(null, null, null, null, null, null, (data, error) => {
|
866
866
|
try {
|
867
867
|
assert.equal('No configuration updates to make', data.response);
|
868
868
|
done();
|
@@ -878,7 +878,7 @@ describe('[unit] Adapter Base Test', () => {
|
|
878
878
|
}).timeout(attemptTimeout);
|
879
879
|
it('should throw an error if missing configuration file', (done) => {
|
880
880
|
try {
|
881
|
-
a.iapUpdateAdapterConfiguration(null, { name: 'fakeChange' }, null, null, null, (data, error) => {
|
881
|
+
a.iapUpdateAdapterConfiguration(null, { name: 'fakeChange' }, null, null, null, null, (data, error) => {
|
882
882
|
try {
|
883
883
|
const displayE = 'configFile is required';
|
884
884
|
runErrorAsserts(data, error, 'AD.300', 'Test-Base-adapterBase-iapUpdateAdapterConfiguration', displayE);
|
@@ -895,7 +895,7 @@ describe('[unit] Adapter Base Test', () => {
|
|
895
895
|
}).timeout(attemptTimeout);
|
896
896
|
it('if not package.json, entity is required', (done) => {
|
897
897
|
try {
|
898
|
-
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, null, null, null, (data, error) => {
|
898
|
+
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, null, null, null, null, (data, error) => {
|
899
899
|
try {
|
900
900
|
const displayE = 'Unsupported Configuration Change or Missing Entity';
|
901
901
|
runErrorAsserts(data, error, 'AD.999', 'Test-Base-adapterBase-iapUpdateAdapterConfiguration', displayE);
|
@@ -912,7 +912,7 @@ describe('[unit] Adapter Base Test', () => {
|
|
912
912
|
}).timeout(attemptTimeout);
|
913
913
|
it('if not package.json, type is required', (done) => {
|
914
914
|
try {
|
915
|
-
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, 'entity', null, null, (data, error) => {
|
915
|
+
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, 'entity', null, null, null, (data, error) => {
|
916
916
|
try {
|
917
917
|
const displayE = 'type is required';
|
918
918
|
runErrorAsserts(data, error, 'AD.300', 'Test-Base-adapterBase-iapUpdateAdapterConfiguration', displayE);
|
@@ -929,7 +929,7 @@ describe('[unit] Adapter Base Test', () => {
|
|
929
929
|
}).timeout(attemptTimeout);
|
930
930
|
it('if not package.json, entity must be valid', (done) => {
|
931
931
|
try {
|
932
|
-
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, 'fakeEntity', 'fakeType', null, (data, error) => {
|
932
|
+
a.iapUpdateAdapterConfiguration('notPackage', { name: 'fakeChange' }, 'fakeEntity', 'fakeType', null, null, (data, error) => {
|
933
933
|
try {
|
934
934
|
const displayE = 'Incomplete Configuration Change: Invalid Entity - fakeEntity';
|
935
935
|
runErrorAsserts(data, error, 'AD.999', 'Test-Base-adapterBase-iapUpdateAdapterConfiguration', displayE);
|