@itentialopensource/adapter-nokia_nsp_network_management 0.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 (179) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +18 -0
  3. package/.jshintrc +3 -0
  4. package/AUTH.md +38 -0
  5. package/BROKER.md +211 -0
  6. package/CALLS.md +206 -0
  7. package/CHANGELOG.md +9 -0
  8. package/CODE_OF_CONDUCT.md +43 -0
  9. package/CONTRIBUTING.md +13 -0
  10. package/ENHANCE.md +69 -0
  11. package/LICENSE +201 -0
  12. package/PROPERTIES.md +646 -0
  13. package/README.md +343 -0
  14. package/SUMMARY.md +9 -0
  15. package/SYSTEMINFO.md +22 -0
  16. package/TAB1.md +14 -0
  17. package/TAB2.md +321 -0
  18. package/TROUBLESHOOT.md +47 -0
  19. package/adapter.js +11110 -0
  20. package/adapterBase.js +1452 -0
  21. package/entities/.generic/action.json +214 -0
  22. package/entities/.generic/schema.json +28 -0
  23. package/entities/.system/action.json +52 -0
  24. package/entities/.system/mockdatafiles/getToken-default.json +3 -0
  25. package/entities/.system/mockdatafiles/healthcheck-default.json +3 -0
  26. package/entities/.system/schema.json +19 -0
  27. package/entities/.system/schemaTokenReq.json +53 -0
  28. package/entities/.system/schemaTokenResp.json +31 -0
  29. package/entities/AddressPool/action.json +65 -0
  30. package/entities/AddressPool/mockdatafiles/getIPv4AddressPool-default.json +47 -0
  31. package/entities/AddressPool/mockdatafiles/obtainValueFromPool-default.json +23 -0
  32. package/entities/AddressPool/schema.json +32 -0
  33. package/entities/AuditAndAlignment/action.json +165 -0
  34. package/entities/AuditAndAlignment/mockdatafiles/alignConfigurationDeployment-default.json +6 -0
  35. package/entities/AuditAndAlignment/mockdatafiles/alignConfigurationTemplateAllDeployments-default.json +7 -0
  36. package/entities/AuditAndAlignment/mockdatafiles/alignConfigurationTemplateMisalignedDeployments-default.json +7 -0
  37. package/entities/AuditAndAlignment/mockdatafiles/auditDeployment-default.json +7 -0
  38. package/entities/AuditAndAlignment/mockdatafiles/auditNodeDeployments-default.json +6 -0
  39. package/entities/AuditAndAlignment/mockdatafiles/auditTemplate-default.json +7 -0
  40. package/entities/AuditAndAlignment/mockdatafiles/checkAuditStatusCount-default.json +15 -0
  41. package/entities/AuditAndAlignment/mockdatafiles/getAuditDetails-default.json +9 -0
  42. package/entities/AuditAndAlignment/schema.json +26 -0
  43. package/entities/BaselineOperationsRestconfAPI/action.json +207 -0
  44. package/entities/BaselineOperationsRestconfAPI/mockdatafiles/createBaselineDetector-default.json +35 -0
  45. package/entities/BaselineOperationsRestconfAPI/mockdatafiles/getAllBaselines-default.json +44 -0
  46. package/entities/BaselineOperationsRestconfAPI/mockdatafiles/getBaseline-default.json +24 -0
  47. package/entities/BaselineOperationsRestconfAPI/mockdatafiles/getBaselineDetector-default.json +15 -0
  48. package/entities/BaselineOperationsRestconfAPI/mockdatafiles/patchBaselineDetector-default.json +13 -0
  49. package/entities/BaselineOperationsRestconfAPI/schema.json +39 -0
  50. package/entities/Brownfield/action.json +24 -0
  51. package/entities/Brownfield/mockdatafiles/discoverDeployments-default.json +7 -0
  52. package/entities/Brownfield/schema.json +19 -0
  53. package/entities/ConfigurationDeployments/action.json +207 -0
  54. package/entities/ConfigurationDeployments/mockdatafiles/createDeployment-default.json +7 -0
  55. package/entities/ConfigurationDeployments/mockdatafiles/createPortGroup-default.json +18 -0
  56. package/entities/ConfigurationDeployments/mockdatafiles/createPortGroupDirectory-default.json +16 -0
  57. package/entities/ConfigurationDeployments/mockdatafiles/deleteDeployments-default.json +7 -0
  58. package/entities/ConfigurationDeployments/mockdatafiles/getDeployments-default.json +322 -0
  59. package/entities/ConfigurationDeployments/mockdatafiles/getPortGroupFDN-default.json +18 -0
  60. package/entities/ConfigurationDeployments/mockdatafiles/getSpecificDeployment-default.json +43 -0
  61. package/entities/ConfigurationDeployments/mockdatafiles/replaceDeployment-default.json +7 -0
  62. package/entities/ConfigurationDeployments/mockdatafiles/updateDeploymentConfiguration-default.json +7 -0
  63. package/entities/ConfigurationDeployments/schema.json +28 -0
  64. package/entities/ConfigurationTemplates/action.json +85 -0
  65. package/entities/ConfigurationTemplates/mockdatafiles/createTemplate-default.json +4 -0
  66. package/entities/ConfigurationTemplates/mockdatafiles/getTemplates-default.json +195 -0
  67. package/entities/ConfigurationTemplates/schema.json +22 -0
  68. package/entities/DataTablesRetention/action.json +86 -0
  69. package/entities/DataTablesRetention/mockdatafiles/getBaselineAgeoutPolicySettings-default.json +22 -0
  70. package/entities/DataTablesRetention/mockdatafiles/getIndicatorAgeoutPolicySettings-default.json +16 -0
  71. package/entities/DataTablesRetention/schema.json +22 -0
  72. package/entities/IETFL2Model/action.json +67 -0
  73. package/entities/IETFL2Model/mockdatafiles/getL2TopologyAttributes-default.json +5 -0
  74. package/entities/IETFL2Model/mockdatafiles/getL2TopologyNodeTerminationPoints-default.json +69 -0
  75. package/entities/IETFL2Model/schema.json +21 -0
  76. package/entities/IETFL3Model/action.json +277 -0
  77. package/entities/IETFL3Model/mockdatafiles/getAllNodesInANetwork-default.json +207 -0
  78. package/entities/IETFL3Model/mockdatafiles/getL3TopologyAttribute-default.json +8 -0
  79. package/entities/IETFL3Model/mockdatafiles/getNetworkType-default.json +7 -0
  80. package/entities/IETFL3Model/mockdatafiles/getSpecificLinkInANetwork-default.json +67 -0
  81. package/entities/IETFL3Model/mockdatafiles/getSpecificNetwork-default.json +498 -0
  82. package/entities/IETFL3Model/mockdatafiles/getSpecificNodeInANetwork-default.json +56 -0
  83. package/entities/IETFL3Model/mockdatafiles/getSpecificTerminationPointsOfANode-default.json +17 -0
  84. package/entities/IETFL3Model/mockdatafiles/getSupportingLink-default.json +8 -0
  85. package/entities/IETFL3Model/mockdatafiles/getSupportingNetwork-default.json +7 -0
  86. package/entities/IETFL3Model/mockdatafiles/getSupportingTerminationPoint-default.json +9 -0
  87. package/entities/IETFL3Model/mockdatafiles/l3GETSRTopologyLinkAttributes-default.json +41 -0
  88. package/entities/IETFL3Model/mockdatafiles/l3GETSRTopologyNodeAttributes-default.json +16 -0
  89. package/entities/IETFL3Model/schema.json +42 -0
  90. package/entities/IETFLogicalInventoryRestconfAPI/action.json +235 -0
  91. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkInterfacesConfig-default.json +14 -0
  92. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkInterfacesUnnumbered-default.json +28 -0
  93. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkInterfacesUnnumberedIntf-default.json +21 -0
  94. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkSubInterfacesConfig-default.json +16 -0
  95. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkSubInterfacesIPv4Addresses-default.json +39 -0
  96. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkSubInterfacesIPv6Addresses-default.json +38 -0
  97. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveNetworkSubInterfacesState-default.json +15 -0
  98. package/entities/IETFLogicalInventoryRestconfAPI/mockdatafiles/retrieveResyncPolicyNodeVersionEntity-default.json +797 -0
  99. package/entities/IETFLogicalInventoryRestconfAPI/schema.json +51 -0
  100. package/entities/IETFSAPTopology/action.json +67 -0
  101. package/entities/IETFSAPTopology/mockdatafiles/getIETFNetworkFromSpecificNode-default.json +483 -0
  102. package/entities/IETFSAPTopology/mockdatafiles/getSAPNetwork-default.json +9 -0
  103. package/entities/IETFSAPTopology/mockdatafiles/getSAPsOnASpecificNodeOfSpecificServiceType-default.json +153 -0
  104. package/entities/IETFSAPTopology/schema.json +21 -0
  105. package/entities/IndicatorRules/action.json +106 -0
  106. package/entities/IndicatorRules/mockdatafiles/getAllIndicatorRules-default.json +818 -0
  107. package/entities/IndicatorRules/mockdatafiles/getSpecificIndicatorRule-default.json +119 -0
  108. package/entities/IndicatorRules/schema.json +23 -0
  109. package/entities/IndicatorTemplates/action.json +106 -0
  110. package/entities/IndicatorTemplates/mockdatafiles/avgCPUAllNodesAllActions-default.json +105 -0
  111. package/entities/IndicatorTemplates/mockdatafiles/getAllIndicatorTemplates-default.json +512 -0
  112. package/entities/IndicatorTemplates/mockdatafiles/getSpecificIndicatorTemplate-default.json +88 -0
  113. package/entities/IndicatorTemplates/mockdatafiles/uPDATEIndicatorTemplate-default.json +48 -0
  114. package/entities/IndicatorTemplates/schema.json +23 -0
  115. package/entities/Intent/action.json +105 -0
  116. package/entities/Intent/mockdatafiles/getIntent-default.json +161 -0
  117. package/entities/Intent/mockdatafiles/synchronizeIntent-default.json +6 -0
  118. package/entities/Intent/schema.json +23 -0
  119. package/entities/IntentTypeManagement/action.json +65 -0
  120. package/entities/IntentTypeManagement/mockdatafiles/getIntentTypes-default.json +482 -0
  121. package/entities/IntentTypeManagement/mockdatafiles/importIntentTypeFromIntentManager-default.json +6 -0
  122. package/entities/IntentTypeManagement/mockdatafiles/removeIntentType-default.json +7 -0
  123. package/entities/IntentTypeManagement/schema.json +21 -0
  124. package/entities/LogicalInventoryRestconfAPI/action.json +107 -0
  125. package/entities/LogicalInventoryRestconfAPI/mockdatafiles/nspInventoryFindWithFilter-default.json +528 -0
  126. package/entities/LogicalInventoryRestconfAPI/mockdatafiles/retrieveResyncPolicy-default.json +4189 -0
  127. package/entities/LogicalInventoryRestconfAPI/mockdatafiles/retrieveResyncPolicyNEAndVersionSpecific-default.json +1083 -0
  128. package/entities/LogicalInventoryRestconfAPI/mockdatafiles/retrieveResyncPollingPolicyNESpecific-default.json +1113 -0
  129. package/entities/LogicalInventoryRestconfAPI/schema.json +34 -0
  130. package/entities/ManageZTPListFromDeviceAdministrator/action.json +85 -0
  131. package/entities/ManageZTPListFromDeviceAdministrator/mockdatafiles/getZTPListFromDeviceAdministrator-default.json +114 -0
  132. package/entities/ManageZTPListFromDeviceAdministrator/schema.json +33 -0
  133. package/entities/RouterNECorrelationMappingService/action.json +147 -0
  134. package/entities/RouterNECorrelationMappingService/mockdatafiles/getCorrelationPolicy-default.json +38 -0
  135. package/entities/RouterNECorrelationMappingService/mockdatafiles/getRouterNeMapping-default.json +32 -0
  136. package/entities/RouterNECorrelationMappingService/mockdatafiles/getSpecificMappingPolicy-default.json +32 -0
  137. package/entities/RouterNECorrelationMappingService/schema.json +47 -0
  138. package/entities/TemplateMigration/action.json +44 -0
  139. package/entities/TemplateMigration/mockdatafiles/cloneTemplate-default.json +7 -0
  140. package/entities/TemplateMigration/mockdatafiles/migrateDeployments-default.json +7 -0
  141. package/entities/TemplateMigration/schema.json +20 -0
  142. package/entities/UploadMappingFiles/action.json +45 -0
  143. package/entities/UploadMappingFiles/mockdatafiles/getIETFMappingFiles-default.json +953 -0
  144. package/entities/UploadMappingFiles/schema.json +31 -0
  145. package/error.json +190 -0
  146. package/metadata.json +61 -0
  147. package/package.json +81 -0
  148. package/pronghorn.json +5141 -0
  149. package/propertiesDecorators.json +14 -0
  150. package/propertiesSchema.json +1666 -0
  151. package/refs?service=git-upload-pack +0 -0
  152. package/report/creationReport.json +657 -0
  153. package/report/update-postman.json-OpenApi3Json.json +112049 -0
  154. package/report/updateReport1718639512342.json +120 -0
  155. package/sampleProperties.json +268 -0
  156. package/test/integration/adapterTestBasicGet.js +83 -0
  157. package/test/integration/adapterTestConnectivity.js +142 -0
  158. package/test/integration/adapterTestIntegration.js +3836 -0
  159. package/test/unit/adapterBaseTestUnit.js +1024 -0
  160. package/test/unit/adapterTestUnit.js +5403 -0
  161. package/utils/adapterInfo.js +206 -0
  162. package/utils/addAuth.js +94 -0
  163. package/utils/artifactize.js +146 -0
  164. package/utils/basicGet.js +50 -0
  165. package/utils/checkMigrate.js +63 -0
  166. package/utils/entitiesToDB.js +179 -0
  167. package/utils/findPath.js +74 -0
  168. package/utils/methodDocumentor.js +273 -0
  169. package/utils/modify.js +152 -0
  170. package/utils/packModificationScript.js +35 -0
  171. package/utils/patches2bundledDeps.js +90 -0
  172. package/utils/pre-commit.sh +32 -0
  173. package/utils/removeHooks.js +20 -0
  174. package/utils/setup.js +33 -0
  175. package/utils/taskMover.js +309 -0
  176. package/utils/tbScript.js +239 -0
  177. package/utils/tbUtils.js +489 -0
  178. package/utils/testRunner.js +298 -0
  179. package/utils/troubleshootingAdapter.js +193 -0
@@ -0,0 +1,120 @@
1
+ {
2
+ "errors": [],
3
+ "statistics": [
4
+ {
5
+ "owner": "errorJson",
6
+ "description": "New adapter errors available for use",
7
+ "value": 0
8
+ },
9
+ {
10
+ "owner": "errorJson",
11
+ "description": "Adapter errors no longer available for use",
12
+ "value": 0
13
+ },
14
+ {
15
+ "owner": "errorJson",
16
+ "description": "Adapter errors that have been updated (e.g. recommendation changes)",
17
+ "value": 31
18
+ },
19
+ {
20
+ "owner": "packageJson",
21
+ "description": "Number of production dependencies",
22
+ "value": 16
23
+ },
24
+ {
25
+ "owner": "packageJson",
26
+ "description": "Number of development dependencies",
27
+ "value": 6
28
+ },
29
+ {
30
+ "owner": "packageJson",
31
+ "description": "Number of npm scripts",
32
+ "value": 21
33
+ },
34
+ {
35
+ "owner": "packageJson",
36
+ "description": "Runtime Library dependency",
37
+ "value": "^5.5.0"
38
+ },
39
+ {
40
+ "owner": "propertiesSchemaJson",
41
+ "description": "Adapter properties defined in the propertiesSchema file",
42
+ "value": 78
43
+ },
44
+ {
45
+ "owner": "markdown",
46
+ "description": "Number of lines in the README.md",
47
+ "value": 344
48
+ },
49
+ {
50
+ "owner": "markdown",
51
+ "description": "Number of lines in the SUMMARY.md",
52
+ "value": 9
53
+ },
54
+ {
55
+ "owner": "markdown",
56
+ "description": "Number of lines in the PROPERTIES.md",
57
+ "value": 647
58
+ },
59
+ {
60
+ "owner": "markdown",
61
+ "description": "Number of lines in the TROUBLESHOOT.md",
62
+ "value": 48
63
+ },
64
+ {
65
+ "owner": "markdown",
66
+ "description": "Number of lines in the ENHANCE.md",
67
+ "value": 70
68
+ },
69
+ {
70
+ "owner": "markdown",
71
+ "description": "Number of lines in the BROKER.md",
72
+ "value": 70
73
+ },
74
+ {
75
+ "owner": "unitTestJS",
76
+ "description": "Number of lines of code in unit tests",
77
+ "value": 5404
78
+ },
79
+ {
80
+ "owner": "unitTestJS",
81
+ "description": "Number of unit tests",
82
+ "value": 329
83
+ },
84
+ {
85
+ "owner": "integrationTestJS",
86
+ "description": "Number of lines of code in integration tests",
87
+ "value": 3837
88
+ },
89
+ {
90
+ "owner": "integrationTestJS",
91
+ "description": "Number of integration tests",
92
+ "value": 117
93
+ },
94
+ {
95
+ "owner": "staticFile",
96
+ "description": "Number of lines of code in adapterBase.js",
97
+ "value": 1453
98
+ },
99
+ {
100
+ "owner": "staticFile",
101
+ "description": "Number of static files added",
102
+ "value": 36
103
+ },
104
+ {
105
+ "owner": "Overall",
106
+ "description": "Total lines of Code",
107
+ "value": 10694
108
+ },
109
+ {
110
+ "owner": "Overall",
111
+ "description": "Total Tests",
112
+ "value": 446
113
+ },
114
+ {
115
+ "owner": "Overall",
116
+ "description": "Total Files",
117
+ "value": 6
118
+ }
119
+ ]
120
+ }
@@ -0,0 +1,268 @@
1
+ {
2
+ "id": "Adapter-nokia_nsp_network_management",
3
+ "type": "NokiaNspNetworkManagement",
4
+ "properties": {
5
+ "host": "localhost",
6
+ "port": 443,
7
+ "choosepath": "",
8
+ "base_path": "/",
9
+ "version": "",
10
+ "cache_location": "none",
11
+ "encode_pathvars": false,
12
+ "encode_queryvars": true,
13
+ "save_metric": false,
14
+ "stub": true,
15
+ "protocol": "https",
16
+ "authentication": {
17
+ "auth_method": "request_token",
18
+ "username": "username",
19
+ "password": "password",
20
+ "token": "token",
21
+ "token_timeout": 600000,
22
+ "token_cache": "local",
23
+ "invalid_token_error": 401,
24
+ "auth_field": "header.headers.Authorization",
25
+ "auth_field_format": "Bearer {token}",
26
+ "auth_logging": false,
27
+ "client_id": "",
28
+ "client_secret": "",
29
+ "grant_type": "client_credentials",
30
+ "sensitive": [],
31
+ "multiStepAuthCalls": [
32
+ {
33
+ "name": "",
34
+ "requestFields": {},
35
+ "responseFields": {},
36
+ "successfullResponseCode": 200
37
+ }
38
+ ],
39
+ "sso": {
40
+ "protocol": "",
41
+ "host": "",
42
+ "port": 0
43
+ }
44
+ },
45
+ "healthcheck": {
46
+ "type": "none",
47
+ "frequency": 60000,
48
+ "query_object": {},
49
+ "addlHeaders": {}
50
+ },
51
+ "throttle": {
52
+ "throttle_enabled": false,
53
+ "number_pronghorns": 1,
54
+ "sync_async": "sync",
55
+ "max_in_queue": 1000,
56
+ "concurrent_max": 1,
57
+ "expire_timeout": 0,
58
+ "avg_runtime": 200,
59
+ "priorities": [
60
+ {
61
+ "value": 0,
62
+ "percent": 100
63
+ }
64
+ ]
65
+ },
66
+ "request": {
67
+ "number_redirects": 0,
68
+ "number_retries": 3,
69
+ "limit_retry_error": [
70
+ 0
71
+ ],
72
+ "failover_codes": [],
73
+ "attempt_timeout": 5000,
74
+ "global_request": {
75
+ "payload": {},
76
+ "uriOptions": {},
77
+ "addlHeaders": {},
78
+ "authData": {}
79
+ },
80
+ "healthcheck_on_timeout": true,
81
+ "return_raw": false,
82
+ "archiving": false,
83
+ "return_request": false
84
+ },
85
+ "proxy": {
86
+ "enabled": false,
87
+ "host": "",
88
+ "port": 1,
89
+ "protocol": "http",
90
+ "username": "",
91
+ "password": ""
92
+ },
93
+ "ssl": {
94
+ "ecdhCurve": "",
95
+ "enabled": false,
96
+ "accept_invalid_cert": false,
97
+ "ca_file": "",
98
+ "key_file": "",
99
+ "cert_file": "",
100
+ "secure_protocol": "",
101
+ "ciphers": ""
102
+ },
103
+ "mongo": {
104
+ "host": "",
105
+ "port": 0,
106
+ "database": "",
107
+ "username": "",
108
+ "password": "",
109
+ "replSet": "",
110
+ "db_ssl": {
111
+ "enabled": false,
112
+ "accept_invalid_cert": false,
113
+ "ca_file": "",
114
+ "key_file": "",
115
+ "cert_file": ""
116
+ }
117
+ },
118
+ "devicebroker": {
119
+ "enabled": false,
120
+ "getDevice": [
121
+ {
122
+ "path": "/not/mapped",
123
+ "method": "GET",
124
+ "query": {},
125
+ "body": {},
126
+ "headers": {},
127
+ "handleFailure": "ignore",
128
+ "requestFields": {
129
+ "insample": "{port}"
130
+ },
131
+ "responseDatakey": "",
132
+ "responseFields": {
133
+ "name": "{this}{||}{that}",
134
+ "ostype": "{osfield}",
135
+ "ostypePrefix": "meraki-",
136
+ "port": "{port}",
137
+ "ipaddress": "{ip_addr}",
138
+ "serial": "{serial}"
139
+ }
140
+ }
141
+ ],
142
+ "getDevicesFiltered": [
143
+ {
144
+ "path": "/not/mapped",
145
+ "method": "GET",
146
+ "pagination": {
147
+ "offsetVar": "",
148
+ "limitVar": "",
149
+ "incrementBy": "limit",
150
+ "requestLocation": "query"
151
+ },
152
+ "query": {},
153
+ "body": {},
154
+ "headers": {},
155
+ "handleFailure": "ignore",
156
+ "requestFields": {},
157
+ "responseDatakey": "",
158
+ "responseFields": {
159
+ "name": "{this}{||}{that}",
160
+ "ostype": "{osfield}",
161
+ "ostypePrefix": "meraki-",
162
+ "port": "{port}",
163
+ "ipaddress": "{ip_addr}",
164
+ "serial": "{serial}",
165
+ "id": "{myid}"
166
+ }
167
+ }
168
+ ],
169
+ "isAlive": [
170
+ {
171
+ "path": "/not/mapped/{devID}",
172
+ "method": "GET",
173
+ "query": {},
174
+ "body": {},
175
+ "headers": {},
176
+ "handleFailure": "ignore",
177
+ "requestFields": {
178
+ "devID": "{id}"
179
+ },
180
+ "responseDatakey": "",
181
+ "responseFields": {
182
+ "status": "return2xx",
183
+ "statusValue": "AD.200"
184
+ }
185
+ }
186
+ ],
187
+ "getConfig": [
188
+ {
189
+ "path": "/not/mapped/{devID}",
190
+ "method": "GET",
191
+ "query": {},
192
+ "body": {},
193
+ "headers": {},
194
+ "handleFailure": "ignore",
195
+ "requestFields": {
196
+ "devID": "{id}"
197
+ },
198
+ "responseDatakey": "",
199
+ "responseFields": {}
200
+ }
201
+ ],
202
+ "getCount": [
203
+ {
204
+ "path": "/not/mapped",
205
+ "method": "GET",
206
+ "query": {},
207
+ "body": {},
208
+ "headers": {},
209
+ "handleFailure": "ignore",
210
+ "requestFields": {},
211
+ "responseDatakey": "",
212
+ "responseFields": {}
213
+ }
214
+ ]
215
+ },
216
+ "cache": {
217
+ "enabled": false,
218
+ "entities": [
219
+ {
220
+ "entityType": "device",
221
+ "frequency": 3600,
222
+ "flushOnFail": false,
223
+ "limit": 10000,
224
+ "retryAttempts": 5,
225
+ "sort": true,
226
+ "populate": [
227
+ {
228
+ "path": "/not/mapped",
229
+ "method": "GET",
230
+ "pagination": {
231
+ "offsetVar": "",
232
+ "limitVar": "",
233
+ "incrementBy": "limit",
234
+ "requestLocation": "query"
235
+ },
236
+ "query": {},
237
+ "body": {},
238
+ "headers": {},
239
+ "handleFailure": "ignore",
240
+ "requestFields": {},
241
+ "responseDatakey": "",
242
+ "responseFields": {
243
+ "name": "{this}{||}{that}",
244
+ "ostype": "{osfield}",
245
+ "ostypePrefix": "meraki-",
246
+ "port": "{port}",
247
+ "ipaddress": "{ip_addr}",
248
+ "serial": "{serial}",
249
+ "id": "{myid}"
250
+ }
251
+ }
252
+ ],
253
+ "cachedTasks": [
254
+ {
255
+ "name": "",
256
+ "filterField": "",
257
+ "filterLoc": ""
258
+ }
259
+ ]
260
+ }
261
+ ]
262
+ }
263
+ },
264
+ "groups": [],
265
+ "brokers": [],
266
+ "logLevel": "none",
267
+ "timeout": 120000
268
+ }
@@ -0,0 +1,83 @@
1
+ /* @copyright Itential, LLC 2020 */
2
+
3
+ /* global describe context before after */
4
+ /* eslint global-require: warn */
5
+ /* eslint no-unused-vars: warn */
6
+ /* eslint import/no-extraneous-dependencies: warn */
7
+ /* eslint import/no-dynamic-require: warn */
8
+ /* eslint import/no-unresolved: warn */
9
+
10
+ const path = require('path');
11
+ const assert = require('assert');
12
+ const mocha = require('mocha');
13
+ const itParam = require('mocha-param');
14
+
15
+ const utils = require('../../utils/tbUtils');
16
+ const basicGet = require('../../utils/basicGet');
17
+ const { name } = require('../../package.json');
18
+ const { methods } = require('../../pronghorn.json');
19
+
20
+ const getPronghornProps = (iapDir) => {
21
+ console.log('Retrieving properties.json file...');
22
+ const rawProps = require(path.join(iapDir, 'properties.json'));
23
+ console.log('Decrypting properties...');
24
+ const pronghornProps = utils.decryptProperties(rawProps, iapDir);
25
+ console.log('Found properties.\n');
26
+ return pronghornProps;
27
+ };
28
+
29
+ let a;
30
+
31
+ describe('[integration] Adapter BasicGET Test', () => {
32
+ context('Testing GET calls without query parameters', () => {
33
+ before(async () => {
34
+ const iapDir = path.join(__dirname, '../../../../../');
35
+ if (!utils.areWeUnderIAPinstallationDirectory()) {
36
+ const sampleProperties = require('../../sampleProperties.json');
37
+ const adapter = { properties: sampleProperties };
38
+ a = basicGet.getAdapterInstance(adapter);
39
+ } else {
40
+ const pronghornProps = getPronghornProps(iapDir);
41
+ console.log('Connecting to Database...');
42
+ const database = await basicGet.connect(pronghornProps);
43
+ console.log('Connection established.');
44
+ const adapter = await database.collection(utils.SERVICE_CONFIGS_COLLECTION).findOne(
45
+ { model: name }
46
+ );
47
+ a = basicGet.getAdapterInstance(adapter);
48
+ }
49
+ });
50
+
51
+ after((done) => {
52
+ done();
53
+ });
54
+
55
+ const basicGets = methods.filter((method) => (method.route.verb === 'GET' && method.input.length === 0));
56
+ if (basicGets.length === 0) {
57
+ console.log('No non-parameter GET calls found.');
58
+ process.exit(0);
59
+ }
60
+ const functionNames = basicGets.map((g) => g.name);
61
+ const request = function request(f, ad) {
62
+ return new Promise((resolve, reject) => {
63
+ const getRespCode = (resp) => {
64
+ if (resp) {
65
+ if (resp.metrics.code !== 200) {
66
+ console.log('\x1b[31m', `Testing ${f} \nResponseCode: ${resp.metrics.code}`);
67
+ }
68
+ resolve(resp.metrics.code);
69
+ } else {
70
+ console.log('\x1b[31m', `call ${f} results in failure`);
71
+ reject(new Error(`${f} failed`));
72
+ }
73
+ };
74
+ ad[f](getRespCode, console.log);
75
+ });
76
+ };
77
+
78
+ itParam('GET call should return 200', functionNames, (fname) => {
79
+ console.log(`\t ${fname}`);
80
+ return request(fname, a).then((result) => assert.equal(result, 200));
81
+ });
82
+ });
83
+ });
@@ -0,0 +1,142 @@
1
+ /* @copyright Itential, LLC 2020 */
2
+
3
+ /* global describe it context before after */
4
+ /* eslint no-unused-vars: warn */
5
+
6
+ const assert = require('assert');
7
+ const http = require('http');
8
+ const https = require('https');
9
+ const mocha = require('mocha');
10
+ const ping = require('ping');
11
+ const dnsLookup = require('dns-lookup-promise');
12
+
13
+ let host;
14
+ process.argv.forEach((val) => {
15
+ if (val.indexOf('--HOST') === 0) {
16
+ [, host] = val.split('=');
17
+ }
18
+ });
19
+
20
+ describe('[integration] Adapter Test', () => {
21
+ context(`Testing network connection on ${host}`, () => {
22
+ after((done) => {
23
+ done();
24
+ });
25
+
26
+ it('DNS resolve', (done) => {
27
+ dnsLookup(host)
28
+ .then((addresses) => {
29
+ try {
30
+ assert.ok(addresses.length > 0);
31
+ done();
32
+ } catch (error) {
33
+ done(error);
34
+ }
35
+ })
36
+ .catch((err) => {
37
+ done(err);
38
+ });
39
+ });
40
+
41
+ it('Responds to ping', (done) => {
42
+ ping.promise.probe(host)
43
+ .then((result) => {
44
+ try {
45
+ assert.ok(result.alive);
46
+ done();
47
+ } catch (error) {
48
+ done(error);
49
+ }
50
+ })
51
+ .catch((err) => {
52
+ done(err);
53
+ });
54
+ });
55
+
56
+ it('Support HTTP on port 80', (done) => {
57
+ const requestOptions = {
58
+ host,
59
+ port: 80,
60
+ method: 'HEAD'
61
+ };
62
+
63
+ const req = http.request(requestOptions, (res) => {
64
+ try {
65
+ assert.ok(res.statusCode >= 200 && res.statusCode < 400);
66
+ done();
67
+ } catch (error) {
68
+ done(error);
69
+ }
70
+ });
71
+
72
+ req.on('error', (err) => {
73
+ done(err);
74
+ });
75
+
76
+ req.end();
77
+ });
78
+
79
+ it('Support HTTPS on port 443', (done) => {
80
+ const requestOptions = {
81
+ host,
82
+ port: 443,
83
+ method: 'HEAD'
84
+ };
85
+
86
+ const req = https.request(requestOptions, (res) => {
87
+ try {
88
+ assert.ok(res.statusCode >= 200 && res.statusCode < 400);
89
+ done();
90
+ } catch (error) {
91
+ done(error);
92
+ }
93
+ });
94
+
95
+ req.on('error', (err) => {
96
+ done(err);
97
+ });
98
+
99
+ req.end();
100
+ });
101
+
102
+ it('Support IPv4', (done) => {
103
+ const options = {
104
+ family: 4,
105
+ hints: dnsLookup.ADDRCONFIG
106
+ };
107
+
108
+ dnsLookup.lookup(host, options)
109
+ .then((address, family) => {
110
+ try {
111
+ assert.ok(address !== null && family === 4);
112
+ done();
113
+ } catch (error) {
114
+ done(error);
115
+ }
116
+ })
117
+ .catch((err) => {
118
+ done(err);
119
+ });
120
+ });
121
+
122
+ it('Support IPv6', (done) => {
123
+ const options = {
124
+ family: 6,
125
+ hints: dnsLookup.ADDRCONFIG
126
+ };
127
+
128
+ dnsLookup.lookup(host, options)
129
+ .then((address, family) => {
130
+ try {
131
+ assert.ok(address !== null && family === 6);
132
+ done();
133
+ } catch (error) {
134
+ done(error);
135
+ }
136
+ })
137
+ .catch((err) => {
138
+ done(err);
139
+ });
140
+ });
141
+ });
142
+ });