@itentialopensource/adapter-f5_bigiq 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CALLS.md +18 -0
- package/CHANGELOG.md +16 -0
- package/adapter.js +222 -0
- package/entities/CloudEdition/action.json +41 -0
- package/entities/CloudEdition/schema.json +2 -0
- package/entities/Device/action.json +20 -0
- package/entities/Device/schema.json +1 -0
- package/package.json +1 -1
- package/pronghorn.json +69 -0
- package/refs?service=git-upload-pack +0 -0
- package/report/adapterInfo.json +7 -7
- package/test/integration/adapterTestIntegration.js +75 -0
- package/test/unit/adapterTestUnit.js +36 -0
package/CALLS.md
CHANGED
|
@@ -262,6 +262,12 @@ Specific adapter calls are built based on the API of the f5 BIG-IQ. The Adapter
|
|
|
262
262
|
<td style="padding:15px">{base_path}/{version}/mgmt/cm/cloud/environments/{pathv1}?{query}</td>
|
|
263
263
|
<td style="padding:15px">Yes</td>
|
|
264
264
|
</tr>
|
|
265
|
+
<tr>
|
|
266
|
+
<td style="padding:15px">listCloudEnvironments(callback)</td>
|
|
267
|
+
<td style="padding:15px">List all Cloud Environments</td>
|
|
268
|
+
<td style="padding:15px">{base_path}/{version}/mgmt/cm/cloud/environments?{query}</td>
|
|
269
|
+
<td style="padding:15px">Yes</td>
|
|
270
|
+
</tr>
|
|
265
271
|
<tr>
|
|
266
272
|
<td style="padding:15px">patchCloudEnvironment(id, body, callback)</td>
|
|
267
273
|
<td style="padding:15px">Patch Cloud Enviornment</td>
|
|
@@ -286,6 +292,12 @@ Specific adapter calls are built based on the API of the f5 BIG-IQ. The Adapter
|
|
|
286
292
|
<td style="padding:15px">{base_path}/{version}/mgmt/cm/cloud/providers/{pathv1}?{query}</td>
|
|
287
293
|
<td style="padding:15px">Yes</td>
|
|
288
294
|
</tr>
|
|
295
|
+
<tr>
|
|
296
|
+
<td style="padding:15px">listCloudProviders(callback)</td>
|
|
297
|
+
<td style="padding:15px">List all Cloud Providers</td>
|
|
298
|
+
<td style="padding:15px">{base_path}/{version}/mgmt/cm/cloud/providers?{query}</td>
|
|
299
|
+
<td style="padding:15px">Yes</td>
|
|
300
|
+
</tr>
|
|
289
301
|
<tr>
|
|
290
302
|
<td style="padding:15px">patchCloudProvider(id, body, callback)</td>
|
|
291
303
|
<td style="padding:15px">Patch Cloud Provider</td>
|
|
@@ -1126,6 +1138,12 @@ Specific adapter calls are built based on the API of the f5 BIG-IQ. The Adapter
|
|
|
1126
1138
|
<td style="padding:15px">{base_path}/{version}/mgmt/cm/device/ip-pool/pools/{pathv1}?{query}</td>
|
|
1127
1139
|
<td style="padding:15px">Yes</td>
|
|
1128
1140
|
</tr>
|
|
1141
|
+
<tr>
|
|
1142
|
+
<td style="padding:15px">listDeviceIPPools(callback)</td>
|
|
1143
|
+
<td style="padding:15px">Get all IP Pools</td>
|
|
1144
|
+
<td style="padding:15px">{base_path}/{version}/mgmt/cm/device/ip-pool/pools?{query}</td>
|
|
1145
|
+
<td style="padding:15px">Yes</td>
|
|
1146
|
+
</tr>
|
|
1129
1147
|
<tr>
|
|
1130
1148
|
<td style="padding:15px">postDeviceIPPool(body, callback)</td>
|
|
1131
1149
|
<td style="padding:15px">Post Device IP Pool</td>
|
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
|
|
2
|
+
## 0.4.2 [12-14-2023]
|
|
3
|
+
|
|
4
|
+
* Added new Calls
|
|
5
|
+
|
|
6
|
+
See merge request itentialopensource/adapters/controller-orchestrator/adapter-f5_bigiq!9
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 0.4.1 [11-29-2023]
|
|
11
|
+
|
|
12
|
+
* Added new Calls
|
|
13
|
+
|
|
14
|
+
See merge request itentialopensource/adapters/controller-orchestrator/adapter-f5_bigiq!9
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
2
18
|
## 0.4.0 [11-08-2023]
|
|
3
19
|
|
|
4
20
|
* Adapter Engine has been updated and the changes are being migrated to the adapter
|
package/adapter.js
CHANGED
|
@@ -1496,6 +1496,80 @@ class F5BigIQ extends AdapterBaseCl {
|
|
|
1496
1496
|
}
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
|
+
/**
|
|
1500
|
+
* @function listCloudEnvironments
|
|
1501
|
+
* @pronghornType method
|
|
1502
|
+
* @name listCloudEnvironments
|
|
1503
|
+
* @summary List all Cloud Environments
|
|
1504
|
+
*
|
|
1505
|
+
* @param {getCallback} callback - a callback function to return the result
|
|
1506
|
+
* @return {object} results - An object containing the response of the action
|
|
1507
|
+
*
|
|
1508
|
+
* @route {POST} /listCloudEnvironments
|
|
1509
|
+
* @roles admin
|
|
1510
|
+
* @task true
|
|
1511
|
+
*/
|
|
1512
|
+
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
|
|
1513
|
+
listCloudEnvironments(callback) {
|
|
1514
|
+
const meth = 'adapter-listCloudEnvironments';
|
|
1515
|
+
const origin = `${this.id}-${meth}`;
|
|
1516
|
+
log.trace(origin);
|
|
1517
|
+
|
|
1518
|
+
if (this.suspended && this.suspendMode === 'error') {
|
|
1519
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
|
|
1520
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1521
|
+
return callback(null, errorObj);
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
|
|
1525
|
+
const queryParamsAvailable = {};
|
|
1526
|
+
const queryParams = {};
|
|
1527
|
+
const pathVars = [];
|
|
1528
|
+
const bodyVars = {};
|
|
1529
|
+
|
|
1530
|
+
// loop in template. long callback arg name to avoid identifier conflicts
|
|
1531
|
+
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
|
|
1532
|
+
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
|
|
1533
|
+
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
|
|
1534
|
+
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
|
|
1535
|
+
}
|
|
1536
|
+
});
|
|
1537
|
+
|
|
1538
|
+
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
|
|
1539
|
+
// see adapter code documentation for more information on the request object's fields
|
|
1540
|
+
const reqObj = {
|
|
1541
|
+
payload: bodyVars,
|
|
1542
|
+
uriPathVars: pathVars,
|
|
1543
|
+
uriQuery: queryParams
|
|
1544
|
+
};
|
|
1545
|
+
|
|
1546
|
+
try {
|
|
1547
|
+
// Make the call -
|
|
1548
|
+
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
|
|
1549
|
+
return this.requestHandlerInst.identifyRequest('CloudEdition', 'listCloudEnvironments', reqObj, true, (irReturnData, irReturnError) => {
|
|
1550
|
+
// if we received an error or their is no response on the results
|
|
1551
|
+
// return an error
|
|
1552
|
+
if (irReturnError) {
|
|
1553
|
+
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
|
|
1554
|
+
return callback(null, irReturnError);
|
|
1555
|
+
}
|
|
1556
|
+
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
|
|
1557
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['listCloudEnvironments'], null, null, null);
|
|
1558
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1559
|
+
return callback(null, errorObj);
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1562
|
+
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
|
|
1563
|
+
// return the response
|
|
1564
|
+
return callback(irReturnData, null);
|
|
1565
|
+
});
|
|
1566
|
+
} catch (ex) {
|
|
1567
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
|
|
1568
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1569
|
+
return callback(null, errorObj);
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
|
|
1499
1573
|
/**
|
|
1500
1574
|
* @function patchCloudEnvironment
|
|
1501
1575
|
* @pronghornType method
|
|
@@ -1830,6 +1904,80 @@ class F5BigIQ extends AdapterBaseCl {
|
|
|
1830
1904
|
}
|
|
1831
1905
|
}
|
|
1832
1906
|
|
|
1907
|
+
/**
|
|
1908
|
+
* @function listCloudProviders
|
|
1909
|
+
* @pronghornType method
|
|
1910
|
+
* @name listCloudProviders
|
|
1911
|
+
* @summary Get all Cloud Providers
|
|
1912
|
+
*
|
|
1913
|
+
* @param {getCallback} callback - a callback function to return the result
|
|
1914
|
+
* @return {object} results - An object containing the response of the action
|
|
1915
|
+
*
|
|
1916
|
+
* @route {POST} /listCloudProviders
|
|
1917
|
+
* @roles admin
|
|
1918
|
+
* @task true
|
|
1919
|
+
*/
|
|
1920
|
+
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
|
|
1921
|
+
listCloudProviders(callback) {
|
|
1922
|
+
const meth = 'adapter-listCloudProviders';
|
|
1923
|
+
const origin = `${this.id}-${meth}`;
|
|
1924
|
+
log.trace(origin);
|
|
1925
|
+
|
|
1926
|
+
if (this.suspended && this.suspendMode === 'error') {
|
|
1927
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
|
|
1928
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1929
|
+
return callback(null, errorObj);
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
|
|
1933
|
+
const queryParamsAvailable = {};
|
|
1934
|
+
const queryParams = {};
|
|
1935
|
+
const pathVars = [];
|
|
1936
|
+
const bodyVars = {};
|
|
1937
|
+
|
|
1938
|
+
// loop in template. long callback arg name to avoid identifier conflicts
|
|
1939
|
+
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
|
|
1940
|
+
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
|
|
1941
|
+
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
|
|
1942
|
+
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
|
|
1943
|
+
}
|
|
1944
|
+
});
|
|
1945
|
+
|
|
1946
|
+
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
|
|
1947
|
+
// see adapter code documentation for more information on the request object's fields
|
|
1948
|
+
const reqObj = {
|
|
1949
|
+
payload: bodyVars,
|
|
1950
|
+
uriPathVars: pathVars,
|
|
1951
|
+
uriQuery: queryParams
|
|
1952
|
+
};
|
|
1953
|
+
|
|
1954
|
+
try {
|
|
1955
|
+
// Make the call -
|
|
1956
|
+
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
|
|
1957
|
+
return this.requestHandlerInst.identifyRequest('CloudEdition', 'listCloudProviders', reqObj, true, (irReturnData, irReturnError) => {
|
|
1958
|
+
// if we received an error or their is no response on the results
|
|
1959
|
+
// return an error
|
|
1960
|
+
if (irReturnError) {
|
|
1961
|
+
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
|
|
1962
|
+
return callback(null, irReturnError);
|
|
1963
|
+
}
|
|
1964
|
+
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
|
|
1965
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['listCloudProviders'], null, null, null);
|
|
1966
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1967
|
+
return callback(null, errorObj);
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
|
|
1971
|
+
// return the response
|
|
1972
|
+
return callback(irReturnData, null);
|
|
1973
|
+
});
|
|
1974
|
+
} catch (ex) {
|
|
1975
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
|
|
1976
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
1977
|
+
return callback(null, errorObj);
|
|
1978
|
+
}
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1833
1981
|
/**
|
|
1834
1982
|
* @function patchCloudProvider
|
|
1835
1983
|
* @pronghornType method
|
|
@@ -13532,6 +13680,80 @@ class F5BigIQ extends AdapterBaseCl {
|
|
|
13532
13680
|
}
|
|
13533
13681
|
}
|
|
13534
13682
|
|
|
13683
|
+
/**
|
|
13684
|
+
* @function listDeviceIPPools
|
|
13685
|
+
* @pronghornType method
|
|
13686
|
+
* @name listDeviceIPPools
|
|
13687
|
+
* @summary Get all IP Pools
|
|
13688
|
+
*
|
|
13689
|
+
* @param {getCallback} callback - a callback function to return the result
|
|
13690
|
+
* @return {object} results - An object containing the response of the action
|
|
13691
|
+
*
|
|
13692
|
+
* @route {POST} /listDeviceIPPools
|
|
13693
|
+
* @roles admin
|
|
13694
|
+
* @task true
|
|
13695
|
+
*/
|
|
13696
|
+
/* YOU CAN CHANGE THE PARAMETERS YOU TAKE IN HERE AND IN THE pronghorn.json FILE */
|
|
13697
|
+
listDeviceIPPools(callback) {
|
|
13698
|
+
const meth = 'adapter-listDeviceIPPools';
|
|
13699
|
+
const origin = `${this.id}-${meth}`;
|
|
13700
|
+
log.trace(origin);
|
|
13701
|
+
|
|
13702
|
+
if (this.suspended && this.suspendMode === 'error') {
|
|
13703
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'AD.600', [], null, null, null);
|
|
13704
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
13705
|
+
return callback(null, errorObj);
|
|
13706
|
+
}
|
|
13707
|
+
|
|
13708
|
+
/* HERE IS WHERE YOU SET THE DATA TO PASS INTO REQUEST */
|
|
13709
|
+
const queryParamsAvailable = {};
|
|
13710
|
+
const queryParams = {};
|
|
13711
|
+
const pathVars = [];
|
|
13712
|
+
const bodyVars = {};
|
|
13713
|
+
|
|
13714
|
+
// loop in template. long callback arg name to avoid identifier conflicts
|
|
13715
|
+
Object.keys(queryParamsAvailable).forEach((thisKeyInQueryParamsAvailable) => {
|
|
13716
|
+
if (queryParamsAvailable[thisKeyInQueryParamsAvailable] !== undefined && queryParamsAvailable[thisKeyInQueryParamsAvailable] !== null
|
|
13717
|
+
&& queryParamsAvailable[thisKeyInQueryParamsAvailable] !== '') {
|
|
13718
|
+
queryParams[thisKeyInQueryParamsAvailable] = queryParamsAvailable[thisKeyInQueryParamsAvailable];
|
|
13719
|
+
}
|
|
13720
|
+
});
|
|
13721
|
+
|
|
13722
|
+
// set up the request object - payload, uriPathVars, uriQuery, uriOptions, addlHeaders, authData, callProperties, filter, priority, event
|
|
13723
|
+
// see adapter code documentation for more information on the request object's fields
|
|
13724
|
+
const reqObj = {
|
|
13725
|
+
payload: bodyVars,
|
|
13726
|
+
uriPathVars: pathVars,
|
|
13727
|
+
uriQuery: queryParams
|
|
13728
|
+
};
|
|
13729
|
+
|
|
13730
|
+
try {
|
|
13731
|
+
// Make the call -
|
|
13732
|
+
// identifyRequest(entity, action, requestObj, returnDataFlag, callback)
|
|
13733
|
+
return this.requestHandlerInst.identifyRequest('Device', 'listDeviceIPPools', reqObj, true, (irReturnData, irReturnError) => {
|
|
13734
|
+
// if we received an error or their is no response on the results
|
|
13735
|
+
// return an error
|
|
13736
|
+
if (irReturnError) {
|
|
13737
|
+
/* HERE IS WHERE YOU CAN ALTER THE ERROR MESSAGE */
|
|
13738
|
+
return callback(null, irReturnError);
|
|
13739
|
+
}
|
|
13740
|
+
if (!Object.hasOwnProperty.call(irReturnData, 'response')) {
|
|
13741
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Invalid Response', ['listDeviceIPPools'], null, null, null);
|
|
13742
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
13743
|
+
return callback(null, errorObj);
|
|
13744
|
+
}
|
|
13745
|
+
|
|
13746
|
+
/* HERE IS WHERE YOU CAN ALTER THE RETURN DATA */
|
|
13747
|
+
// return the response
|
|
13748
|
+
return callback(irReturnData, null);
|
|
13749
|
+
});
|
|
13750
|
+
} catch (ex) {
|
|
13751
|
+
const errorObj = this.requestHandlerInst.formatErrorObject(this.id, meth, 'Caught Exception', null, null, null, ex);
|
|
13752
|
+
log.error(`${origin}: ${errorObj.IAPerror.displayString}`);
|
|
13753
|
+
return callback(null, errorObj);
|
|
13754
|
+
}
|
|
13755
|
+
}
|
|
13756
|
+
|
|
13535
13757
|
/**
|
|
13536
13758
|
* @function postDeviceIPPool
|
|
13537
13759
|
* @pronghornType method
|
|
@@ -205,6 +205,26 @@
|
|
|
205
205
|
}
|
|
206
206
|
]
|
|
207
207
|
},
|
|
208
|
+
{
|
|
209
|
+
"name": "listCloudEnvironments",
|
|
210
|
+
"protocol": "REST",
|
|
211
|
+
"method": "GET",
|
|
212
|
+
"entitypath": "{base_path}/{version}/mgmt/cm/cloud/environments?{query}",
|
|
213
|
+
"requestSchema": "schema.json",
|
|
214
|
+
"responseSchema": "schema.json",
|
|
215
|
+
"timeout": 0,
|
|
216
|
+
"sendEmpty": false,
|
|
217
|
+
"requestDatatype": "JSON",
|
|
218
|
+
"responseDatatype": "JSON",
|
|
219
|
+
"headers": {},
|
|
220
|
+
"responseObjects": [
|
|
221
|
+
{
|
|
222
|
+
"type": "default",
|
|
223
|
+
"key": "",
|
|
224
|
+
"mockFile": ""
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
208
228
|
{
|
|
209
229
|
"name": "patchCloudEnvironment",
|
|
210
230
|
"protocol": "REST",
|
|
@@ -286,6 +306,27 @@
|
|
|
286
306
|
}
|
|
287
307
|
]
|
|
288
308
|
},
|
|
309
|
+
{
|
|
310
|
+
"name": "listCloudProviders",
|
|
311
|
+
"protocol": "REST",
|
|
312
|
+
"method": "GET",
|
|
313
|
+
"entitypath": "{base_path}/{version}/mgmt/cm/cloud/providers?{query}",
|
|
314
|
+
"requestSchema": "schema.json",
|
|
315
|
+
"responseSchema": "schema.json",
|
|
316
|
+
"timeout": 0,
|
|
317
|
+
"sendEmpty": false,
|
|
318
|
+
"sendGetBody": false,
|
|
319
|
+
"requestDatatype": "JSON",
|
|
320
|
+
"responseDatatype": "JSON",
|
|
321
|
+
"headers": {},
|
|
322
|
+
"responseObjects": [
|
|
323
|
+
{
|
|
324
|
+
"type": "default",
|
|
325
|
+
"key": "",
|
|
326
|
+
"mockFile": ""
|
|
327
|
+
}
|
|
328
|
+
]
|
|
329
|
+
},
|
|
289
330
|
{
|
|
290
331
|
"name": "patchCloudProvider",
|
|
291
332
|
"protocol": "REST",
|
|
@@ -20,10 +20,12 @@
|
|
|
20
20
|
"postApplyTemplate",
|
|
21
21
|
"getAllApplicationsList",
|
|
22
22
|
"getCloudEnvironment",
|
|
23
|
+
"listCloudEnvironments",
|
|
23
24
|
"patchCloudEnvironment",
|
|
24
25
|
"deleteCloudEnvironment",
|
|
25
26
|
"postCloudEnvironment",
|
|
26
27
|
"getCloudProvider",
|
|
28
|
+
"listCloudProviders",
|
|
27
29
|
"patchCloudProvider",
|
|
28
30
|
"deleteCloudProvider",
|
|
29
31
|
"postCloudProvider",
|
|
@@ -61,6 +61,26 @@
|
|
|
61
61
|
}
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
|
+
{
|
|
65
|
+
"name": "listDeviceIPPools",
|
|
66
|
+
"protocol": "REST",
|
|
67
|
+
"method": "GET",
|
|
68
|
+
"entitypath": "{base_path}/{version}/mgmt/cm/device/ip-pool/pools?{query}",
|
|
69
|
+
"requestSchema": "schema.json",
|
|
70
|
+
"responseSchema": "schema.json",
|
|
71
|
+
"timeout": 0,
|
|
72
|
+
"sendEmpty": false,
|
|
73
|
+
"requestDatatype": "JSON",
|
|
74
|
+
"responseDatatype": "JSON",
|
|
75
|
+
"headers": {},
|
|
76
|
+
"responseObjects": [
|
|
77
|
+
{
|
|
78
|
+
"type": "default",
|
|
79
|
+
"key": "",
|
|
80
|
+
"mockFile": ""
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
64
84
|
{
|
|
65
85
|
"name": "postDeviceIPPool",
|
|
66
86
|
"protocol": "REST",
|
package/package.json
CHANGED
package/pronghorn.json
CHANGED
|
@@ -1334,6 +1334,29 @@
|
|
|
1334
1334
|
},
|
|
1335
1335
|
"task": true
|
|
1336
1336
|
},
|
|
1337
|
+
{
|
|
1338
|
+
"name": "listCloudEnvironments",
|
|
1339
|
+
"summary": "List all Cloud Environments",
|
|
1340
|
+
"description": "List all Cloud Environments",
|
|
1341
|
+
"input": [],
|
|
1342
|
+
"output": {
|
|
1343
|
+
"name": "result",
|
|
1344
|
+
"type": "object",
|
|
1345
|
+
"description": "A JSON Object containing status, code and the result",
|
|
1346
|
+
"schema": {
|
|
1347
|
+
"title": "result",
|
|
1348
|
+
"type": "object"
|
|
1349
|
+
}
|
|
1350
|
+
},
|
|
1351
|
+
"roles": [
|
|
1352
|
+
"admin"
|
|
1353
|
+
],
|
|
1354
|
+
"route": {
|
|
1355
|
+
"verb": "POST",
|
|
1356
|
+
"path": "/listCloudEnvironments"
|
|
1357
|
+
},
|
|
1358
|
+
"task": true
|
|
1359
|
+
},
|
|
1337
1360
|
{
|
|
1338
1361
|
"name": "patchCloudEnvironment",
|
|
1339
1362
|
"summary": "Patch Cloud Enviornment",
|
|
@@ -1478,6 +1501,29 @@
|
|
|
1478
1501
|
},
|
|
1479
1502
|
"task": true
|
|
1480
1503
|
},
|
|
1504
|
+
{
|
|
1505
|
+
"name": "listCloudProviders",
|
|
1506
|
+
"summary": "List all Cloud Providers",
|
|
1507
|
+
"description": "List all Cloud Providers",
|
|
1508
|
+
"input": [],
|
|
1509
|
+
"output": {
|
|
1510
|
+
"name": "result",
|
|
1511
|
+
"type": "object",
|
|
1512
|
+
"description": "A JSON Object containing status, code and the result",
|
|
1513
|
+
"schema": {
|
|
1514
|
+
"title": "result",
|
|
1515
|
+
"type": "object"
|
|
1516
|
+
}
|
|
1517
|
+
},
|
|
1518
|
+
"roles": [
|
|
1519
|
+
"admin"
|
|
1520
|
+
],
|
|
1521
|
+
"route": {
|
|
1522
|
+
"verb": "POST",
|
|
1523
|
+
"path": "/listCloudProviders"
|
|
1524
|
+
},
|
|
1525
|
+
"task": true
|
|
1526
|
+
},
|
|
1481
1527
|
{
|
|
1482
1528
|
"name": "patchCloudProvider",
|
|
1483
1529
|
"summary": "Patch Cloud Provider",
|
|
@@ -6432,6 +6478,29 @@
|
|
|
6432
6478
|
},
|
|
6433
6479
|
"task": true
|
|
6434
6480
|
},
|
|
6481
|
+
{
|
|
6482
|
+
"name": "listDeviceIPPools",
|
|
6483
|
+
"summary": "Get all IP Pools",
|
|
6484
|
+
"description": "List all pools.",
|
|
6485
|
+
"input": [],
|
|
6486
|
+
"output": {
|
|
6487
|
+
"name": "result",
|
|
6488
|
+
"type": "object",
|
|
6489
|
+
"description": "A JSON Object containing status, code and the result",
|
|
6490
|
+
"schema": {
|
|
6491
|
+
"title": "result",
|
|
6492
|
+
"type": "object"
|
|
6493
|
+
}
|
|
6494
|
+
},
|
|
6495
|
+
"roles": [
|
|
6496
|
+
"admin"
|
|
6497
|
+
],
|
|
6498
|
+
"route": {
|
|
6499
|
+
"verb": "POST",
|
|
6500
|
+
"path": "/listDeviceIPPools"
|
|
6501
|
+
},
|
|
6502
|
+
"task": true
|
|
6503
|
+
},
|
|
6435
6504
|
{
|
|
6436
6505
|
"name": "getDeviceIPPool",
|
|
6437
6506
|
"summary": "Get Device IP Pool",
|
|
Binary file
|
package/report/adapterInfo.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
3
|
-
"configLines":
|
|
2
|
+
"version": "0.4.1",
|
|
3
|
+
"configLines": 15344,
|
|
4
4
|
"scriptLines": 1783,
|
|
5
|
-
"codeLines":
|
|
6
|
-
"testLines":
|
|
7
|
-
"testCases":
|
|
8
|
-
"totalCodeLines":
|
|
9
|
-
"wfTasks":
|
|
5
|
+
"codeLines": 30663,
|
|
6
|
+
"testLines": 23287,
|
|
7
|
+
"testCases": 1243,
|
|
8
|
+
"totalCodeLines": 55733,
|
|
9
|
+
"wfTasks": 368
|
|
10
10
|
}
|
|
@@ -705,6 +705,31 @@ describe('[integration] F5BigIQ Adapter Test', () => {
|
|
|
705
705
|
}).timeout(attemptTimeout);
|
|
706
706
|
});
|
|
707
707
|
|
|
708
|
+
describe('#listCloudEnvironments - errors', () => {
|
|
709
|
+
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
710
|
+
try {
|
|
711
|
+
a.listCloudEnvironments((data, error) => {
|
|
712
|
+
try {
|
|
713
|
+
if (stub) {
|
|
714
|
+
const displayE = 'Error 400 received on request';
|
|
715
|
+
runErrorAsserts(data, error, 'AD.500', 'Test-f5_bigiq-connectorRest-handleEndResponse', displayE);
|
|
716
|
+
} else {
|
|
717
|
+
runCommonAsserts(data, error);
|
|
718
|
+
}
|
|
719
|
+
saveMockData('CloudEdition', 'listCloudEnvironments', 'default', data);
|
|
720
|
+
done();
|
|
721
|
+
} catch (err) {
|
|
722
|
+
log.error(`Test Failure: ${err}`);
|
|
723
|
+
done(err);
|
|
724
|
+
}
|
|
725
|
+
});
|
|
726
|
+
} catch (error) {
|
|
727
|
+
log.error(`Adapter Exception: ${error}`);
|
|
728
|
+
done(error);
|
|
729
|
+
}
|
|
730
|
+
}).timeout(attemptTimeout);
|
|
731
|
+
});
|
|
732
|
+
|
|
708
733
|
const cloudEditionPatchCloudProviderBodyParam = {};
|
|
709
734
|
describe('#patchCloudProvider - errors', () => {
|
|
710
735
|
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
@@ -756,6 +781,31 @@ describe('[integration] F5BigIQ Adapter Test', () => {
|
|
|
756
781
|
}).timeout(attemptTimeout);
|
|
757
782
|
});
|
|
758
783
|
|
|
784
|
+
describe('#listCloudProviders - errors', () => {
|
|
785
|
+
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
786
|
+
try {
|
|
787
|
+
a.listCloudProviders((data, error) => {
|
|
788
|
+
try {
|
|
789
|
+
if (stub) {
|
|
790
|
+
const displayE = 'Error 400 received on request';
|
|
791
|
+
runErrorAsserts(data, error, 'AD.500', 'Test-f5_bigiq-connectorRest-handleEndResponse', displayE);
|
|
792
|
+
} else {
|
|
793
|
+
runCommonAsserts(data, error);
|
|
794
|
+
}
|
|
795
|
+
saveMockData('CloudEdition', 'listCloudProviders', 'default', data);
|
|
796
|
+
done();
|
|
797
|
+
} catch (err) {
|
|
798
|
+
log.error(`Test Failure: ${err}`);
|
|
799
|
+
done(err);
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
} catch (error) {
|
|
803
|
+
log.error(`Adapter Exception: ${error}`);
|
|
804
|
+
done(error);
|
|
805
|
+
}
|
|
806
|
+
}).timeout(attemptTimeout);
|
|
807
|
+
});
|
|
808
|
+
|
|
759
809
|
const cloudEditionPatchServiceScalingGroupBodyParam = {};
|
|
760
810
|
describe('#patchServiceScalingGroup - errors', () => {
|
|
761
811
|
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
@@ -3851,6 +3901,31 @@ describe('[integration] F5BigIQ Adapter Test', () => {
|
|
|
3851
3901
|
}).timeout(attemptTimeout);
|
|
3852
3902
|
});
|
|
3853
3903
|
|
|
3904
|
+
describe('#listDeviceIPPools - errors', () => {
|
|
3905
|
+
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
3906
|
+
try {
|
|
3907
|
+
a.listDeviceIPPools((data, error) => {
|
|
3908
|
+
try {
|
|
3909
|
+
if (stub) {
|
|
3910
|
+
const displayE = 'Error 400 received on request';
|
|
3911
|
+
runErrorAsserts(data, error, 'AD.500', 'Test-f5_bigiq-connectorRest-handleEndResponse', displayE);
|
|
3912
|
+
} else {
|
|
3913
|
+
runCommonAsserts(data, error);
|
|
3914
|
+
}
|
|
3915
|
+
saveMockData('Device', 'listDeviceIPPools', 'default', data);
|
|
3916
|
+
done();
|
|
3917
|
+
} catch (err) {
|
|
3918
|
+
log.error(`Test Failure: ${err}`);
|
|
3919
|
+
done(err);
|
|
3920
|
+
}
|
|
3921
|
+
});
|
|
3922
|
+
} catch (error) {
|
|
3923
|
+
log.error(`Adapter Exception: ${error}`);
|
|
3924
|
+
done(error);
|
|
3925
|
+
}
|
|
3926
|
+
}).timeout(attemptTimeout);
|
|
3927
|
+
});
|
|
3928
|
+
|
|
3854
3929
|
const devicePatchDeviceTemplateBodyParam = {};
|
|
3855
3930
|
describe('#patchDeviceTemplate - errors', () => {
|
|
3856
3931
|
it('should work if integrated but since no mockdata should error when run standalone', (done) => {
|
|
@@ -1812,6 +1812,18 @@ describe('[unit] F5BigIQ Adapter Test', () => {
|
|
|
1812
1812
|
}).timeout(attemptTimeout);
|
|
1813
1813
|
});
|
|
1814
1814
|
|
|
1815
|
+
describe('#listCloudEnvironments - errors', () => {
|
|
1816
|
+
it('should have a listCloudEnvironments function', (done) => {
|
|
1817
|
+
try {
|
|
1818
|
+
assert.equal(true, typeof a.listCloudEnvironments === 'function');
|
|
1819
|
+
done();
|
|
1820
|
+
} catch (error) {
|
|
1821
|
+
log.error(`Test Failure: ${error}`);
|
|
1822
|
+
done(error);
|
|
1823
|
+
}
|
|
1824
|
+
}).timeout(attemptTimeout);
|
|
1825
|
+
});
|
|
1826
|
+
|
|
1815
1827
|
describe('#patchCloudEnvironment - errors', () => {
|
|
1816
1828
|
it('should have a patchCloudEnvironment function', (done) => {
|
|
1817
1829
|
try {
|
|
@@ -1945,6 +1957,18 @@ describe('[unit] F5BigIQ Adapter Test', () => {
|
|
|
1945
1957
|
}).timeout(attemptTimeout);
|
|
1946
1958
|
});
|
|
1947
1959
|
|
|
1960
|
+
describe('#listCloudProviders - errors', () => {
|
|
1961
|
+
it('should have a listCloudProviders function', (done) => {
|
|
1962
|
+
try {
|
|
1963
|
+
assert.equal(true, typeof a.listCloudProviders === 'function');
|
|
1964
|
+
done();
|
|
1965
|
+
} catch (error) {
|
|
1966
|
+
log.error(`Test Failure: ${error}`);
|
|
1967
|
+
done(error);
|
|
1968
|
+
}
|
|
1969
|
+
}).timeout(attemptTimeout);
|
|
1970
|
+
});
|
|
1971
|
+
|
|
1948
1972
|
describe('#patchCloudProvider - errors', () => {
|
|
1949
1973
|
it('should have a patchCloudProvider function', (done) => {
|
|
1950
1974
|
try {
|
|
@@ -6559,6 +6583,18 @@ describe('[unit] F5BigIQ Adapter Test', () => {
|
|
|
6559
6583
|
}).timeout(attemptTimeout);
|
|
6560
6584
|
});
|
|
6561
6585
|
|
|
6586
|
+
describe('#listDeviceIPPools - errors', () => {
|
|
6587
|
+
it('should have a listDeviceIPPools function', (done) => {
|
|
6588
|
+
try {
|
|
6589
|
+
assert.equal(true, typeof a.listDeviceIPPools === 'function');
|
|
6590
|
+
done();
|
|
6591
|
+
} catch (error) {
|
|
6592
|
+
log.error(`Test Failure: ${error}`);
|
|
6593
|
+
done(error);
|
|
6594
|
+
}
|
|
6595
|
+
}).timeout(attemptTimeout);
|
|
6596
|
+
});
|
|
6597
|
+
|
|
6562
6598
|
describe('#patchDeviceIPPools - errors', () => {
|
|
6563
6599
|
it('should have a patchDeviceIPPools function', (done) => {
|
|
6564
6600
|
try {
|