2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.infrastructure.scripts
25 import com.github.tomakehurst.wiremock.client.WireMock
26 import com.github.tomakehurst.wiremock.junit.WireMockRule
27 import org.camunda.bpm.engine.ProcessEngineServices
28 import org.camunda.bpm.engine.RepositoryService
29 import org.camunda.bpm.engine.delegate.BpmnError
30 import org.camunda.bpm.engine.delegate.DelegateExecution
31 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
32 import org.camunda.bpm.engine.repository.ProcessDefinition
34 import org.junit.runner.RunWith
35 import org.mockito.MockitoAnnotations
36 import org.mockito.junit.MockitoJUnitRunner
37 import org.onap.aai.domain.yang.*
38 import org.onap.so.bpmn.common.scripts.MsoUtils
39 import org.onap.so.bpmn.core.UrnPropertiesReader
40 import org.onap.so.bpmn.core.WorkflowException
41 import org.onap.so.bpmn.mock.FileUtil
42 import org.onap.so.client.aai.entities.AAIResultWrapper
43 import org.springframework.mock.env.MockEnvironment
45 import static org.mockito.ArgumentMatchers.eq
46 import static org.mockito.ArgumentMatchers.isA
47 import static org.mockito.ArgumentMatchers.refEq
48 import static org.mockito.Mockito.atLeast
49 import static org.mockito.Mockito.mock
50 import static org.mockito.Mockito.verify
51 import static org.mockito.Mockito.when
52 import static org.onap.so.bpmn.mock.StubResponseAAI.*
54 @RunWith(MockitoJUnitRunner.class)
55 class DoUpdateNetworkInstanceTest {
58 public WireMockRule wireMockRule = new WireMockRule(8090);
60 def utils = new MsoUtils()
61 String Prefix="UPDNETI_"
63 String jsonIncomingRequest =
64 """{ "requestDetails": {
66 "modelType": "network",
67 "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",
68 "modelName": "CONTRAIL_EXTERNAL",
71 "cloudConfiguration": {
72 "lcpCloudRegionId": "RDM2WAGPLCP",
73 "tenantId": "7dd5365547234ee8937416c65507d266"
76 "instanceName": "MNS-25180-L-01-dmz_direct_net_1",
79 "suppressRollback": true,
80 "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"
82 "relatedInstanceList": [
85 "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",
87 "modelType": "serviceT",
89 "modelNameVersionId": "modelNameVersionI",
90 "modelName": "modleNam",
96 "requestParameters": {
99 "name": "someUserParam1",
100 "value": "someValue1"
107 String jsonIncomingRequest_MissingCloudRegion =
108 """{ "requestDetails": {
110 "modelType": "network",
111 "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",
112 "modelName": "CONTRAIL_EXTERNAL",
113 "modelVersion": "1.0"
115 "cloudConfiguration": {
116 "tenantId": "7dd5365547234ee8937416c65507d266"
119 "instanceName": "MNS-25180-L-01-dmz_direct_net_1",
122 "suppressRollback": true,
123 "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"
125 "relatedInstanceList": [
128 "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",
130 "modelType": "serviceT",
132 "modelNameVersionId": "modelNameVersionI",
133 "modelName": "modleNam",
139 "requestParameters": {
146 String expectedNetworkRequestMissingNetworkId =
147 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
149 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
150 <action>UPDATE</action>
152 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
156 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
157 <network-type>CONTRAIL_EXTERNAL</network-type>
158 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
159 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
160 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
161 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
162 <backout-on-failure>false</backout-on-failure>
163 <sdncVersion>1610</sdncVersion>
166 <param name="some_user_param1">someValue1</param>
168 </network-request>"""
171 String expectedNetworkRequestMissingCloudRegion =
172 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
174 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
175 <action>UPDATE</action>
177 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
180 <network-id>networkId</network-id>
181 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
182 <network-type>CONTRAIL_EXTERNAL</network-type>
183 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
184 <aic-cloud-region>null</aic-cloud-region>
185 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
186 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
187 <backout-on-failure>false</backout-on-failure>
188 <sdncVersion>null</sdncVersion>
191 </network-request>"""
193 String expectedNetworkInputMissingCloudRegion =
194 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
195 <network-id>networkId</network-id>
196 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
197 <network-type>CONTRAIL_EXTERNAL</network-type>
198 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
199 <aic-cloud-region>null</aic-cloud-region>
200 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
201 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
202 <backout-on-failure>false</backout-on-failure>
203 <sdncVersion>null</sdncVersion>
206 // expectedNetworkRequest
207 String expectedNetworkRequest =
208 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
210 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
211 <action>UPDATE</action>
213 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
216 <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
217 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
218 <network-type>CONTRAIL_EXTERNAL</network-type>
219 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
220 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
221 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
222 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
223 <backout-on-failure>false</backout-on-failure>
224 <sdncVersion>1610</sdncVersion>
227 <param name="some_user_param1">someValue1</param>
229 </network-request>"""
231 String expectedNetworkInputs =
232 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
233 <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
234 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
235 <network-type>CONTRAIL_EXTERNAL</network-type>
236 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
237 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
238 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
239 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
240 <backout-on-failure>false</backout-on-failure>
241 <sdncVersion>1610</sdncVersion>
244 String expectedVperNetworkRequest =
245 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
247 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
248 <action>UPDATE</action>
250 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
253 <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
254 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
255 <network-type>CONTRAIL_EXTERNAL</network-type>
256 <subscription-service-type>MSO-dev-service-type</subscription-service-type>
257 <global-customer-id>globalId_45678905678</global-customer-id>
258 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
259 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
260 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
261 <backout-on-failure>false</backout-on-failure>
262 <failIfExist>false</failIfExist>
264 <modelName>CONTRAIL_EXTERNAL</modelName>
265 <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>
266 <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>
267 <modelVersion>1</modelVersion>
268 <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
273 <modelInvariantUuid/>
275 <modelCustomizationUuid/>
277 <sdncVersion>1702</sdncVersion>
280 </network-request>"""
282 String expectedVperNetworkInputs =
283 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
284 <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
285 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
286 <network-type>CONTRAIL_EXTERNAL</network-type>
287 <subscription-service-type>MSO-dev-service-type</subscription-service-type>
288 <global-customer-id>globalId_45678905678</global-customer-id>
289 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
290 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
291 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
292 <backout-on-failure>false</backout-on-failure>
293 <failIfExist>false</failIfExist>
295 <modelName>CONTRAIL_EXTERNAL</modelName>
296 <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>
297 <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>
298 <modelVersion>1</modelVersion>
299 <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
304 <modelInvariantUuid/>
306 <modelCustomizationUuid/>
308 <sdncVersion>1702</sdncVersion>
311 String expectedNetworkInputsMissingNetworkId =
312 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
314 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
315 <network-type>CONTRAIL_EXTERNAL</network-type>
316 <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
317 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
318 <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
319 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
320 <backout-on-failure>false</backout-on-failure>
321 <sdncVersion>1610</sdncVersion>
325 String NetworkRequest_noPhysicalName =
326 """<vnfreq:network-request xmlns:vnfreq="http://org.onap/so/infra/vnf-request/v1">
327 <vnfreq:request-info>
328 <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
329 <vnfreq:action>UPDATE</vnfreq:action>
330 <vnfreq:source>PORTAL</vnfreq:source>
331 </vnfreq:request-info>
332 <vnfreq:network-inputs>
333 <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
334 <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
335 <vnfreq:modelCustomizationId></vnfreq:modelCustomizationId>
336 <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
337 <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
338 <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
339 <vnfreq:vlans>3008</vnfreq:vlans>
340 </vnfreq:network-inputs>
341 <vnfreq:network-params>
343 <param name="dhcp-enabled">true</param>
344 <param name="serviceId">a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</param>
345 <param name="cidr-mask">true</param>
346 <param name="backoutOnFailure">true</param>
347 <param name="gateway-address">10.10.125.1</param>
349 </vnfreq:network-params>
350 </vnfreq:network-request>"""
352 String vnfRequestFakeRegion =
353 """<vnfreq:network-request xmlns:vnfreq="http://org.onap/so/infra/vnf-request/v1">
354 <vnfreq:request-info>
355 <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
356 <vnfreq:action>UPDATE</vnfreq:action>
357 <vnfreq:source>PORTAL</vnfreq:source>
358 </vnfreq:request-info>
359 <vnfreq:network-inputs>
360 <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
361 <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
362 <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
363 <vnfreq:aic-cloud-region>MDTWNJ21</vnfreq:aic-cloud-region>
364 <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
365 </vnfreq:network-inputs>
366 <vnfreq:network-params>
367 <param name="shared">1</param>
368 <param name="external">0</param>
369 </vnfreq:network-params>
370 </vnfreq:network-request>"""
373 String updateNetworkRequest =
374 """<updateNetworkRequest>
375 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
376 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
377 <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
378 <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
379 <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
380 <networkType>CONTRAIL_EXTERNAL</networkType>
381 <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
382 <networkTypeVersion/>
383 <networkTechnology>CONTRAIL</networkTechnology>
384 <providerVlanNetwork>
385 <physicalNetworkName>networkName</physicalNetworkName>
386 <vlans>414,415</vlans>
387 </providerVlanNetwork>
389 <shared>true</shared>
390 <external>false</external>
391 <routeTargets>13979:105757</routeTargets>
392 <routeTargets>13979:105757</routeTargets>
393 <policyFqdns>GN_EVPN_Test</policyFqdns>
394 <routeTableFqdns>refFQDN1</routeTableFqdns>
395 <routeTableFqdns>refFQDN2</routeTableFqdns>
402 <cidr>107.239.52.0/24</cidr>
403 <enableDHCP>true</enableDHCP>
404 <gatewayIp>107.239.52.1</gatewayIp>
405 <ipVersion>4</ipVersion>
406 <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
407 <subnetName>subnetName</subnetName>
408 <addrFromStart>true</addrFromStart>
410 <prefix>172.20.1.0/24</prefix>
411 <nextHop>10.102.200.1</nextHop>
414 <prefix>10.102.0.0/16</prefix>
415 <nextHop>10.102.200.1</nextHop>
418 <prefix>192.168.2.0/25</prefix>
419 <nextHop>10.102.200.1</nextHop>
422 <skipAAI>true</skipAAI>
423 <backout>true</backout>
424 <failIfExists>false</failIfExists>
426 <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
427 <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>
429 <messageId>messageId_generated</messageId>
431 </updateNetworkRequest>"""
433 String updateNetworkRequest_noPhysicalName =
434 """<updateNetworkRequest>
435 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
436 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
437 <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
438 <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
439 <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
440 <networkType>CONTRAIL_EXTERNAL</networkType>
441 <modelCustomizationUuid/>
442 <networkTypeVersion/>
443 <networkTechnology>CONTRAIL</networkTechnology>
444 <providerVlanNetwork>
445 <physicalNetworkName>networkName</physicalNetworkName>
446 <vlans>414,415</vlans>
447 </providerVlanNetwork>
449 <shared>true</shared>
450 <external>false</external>
451 <routeTargets>13979:105757</routeTargets>
452 <routeTargets>13979:105757</routeTargets>
453 <policyFqdns>GN_EVPN_Test</policyFqdns>
460 <cidr>107.239.52.0/24</cidr>
461 <enableDHCP>true</enableDHCP>
462 <gatewayIp>107.239.52.1</gatewayIp>
463 <ipVersion>4</ipVersion>
464 <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
465 <subnetName>subnetName</subnetName>
466 <addrFromStart>true</addrFromStart>
468 <prefix>172.20.1.0/24</prefix>
469 <nextHop>10.102.200.1</nextHop>
472 <prefix>10.102.0.0/16</prefix>
473 <nextHop>10.102.200.1</nextHop>
476 <prefix>192.168.2.0/25</prefix>
477 <nextHop>10.102.200.1</nextHop>
480 <skipAAI>true</skipAAI>
481 <backout>true</backout>
482 <failIfExists>false</failIfExists>
484 <dhcp-enabled>true</dhcp-enabled>
485 <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>
486 <cidr-mask>true</cidr-mask>
487 <backoutOnFailure>true</backoutOnFailure>
488 <gateway-address>10.10.125.1</gateway-address>
491 <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
492 <serviceInstanceId>null</serviceInstanceId>
494 <messageId>messageId_generated</messageId>
496 </updateNetworkRequest>"""
498 String updateNetworkResponseREST =
499 """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.onap.so/network">
500 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
501 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
502 <networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>
503 <networkStackId></networkStackId>
506 <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
507 <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
510 <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
511 <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
515 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
516 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
517 <networkStackId></networkStackId>
518 <networkType>CONTRAIL_EXTERNAL</networkType>
519 <networkUpdated>true</networkUpdated>
520 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
521 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
523 <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
524 <serviceInstanceId></serviceInstanceId>
527 <messageId>messageId_generated</messageId>
528 </ns2:updateNetworkContrailResponse>"""
530 String updateRollbackNetworkRequest =
531 """<rollbackNetworkRequest>
533 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
534 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
536 <networkType>CONTRAIL_EXTERNAL</networkType>
537 <networkUpdated>true</networkUpdated>
538 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
539 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
541 <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
545 </rollbackNetworkRequest>"""
548 String networkException500 =
549 """<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>"http://org.onap.so/network", the namespace on the "updateNetworkContrail" element, is not a valid SOAP version.</faultstring></soap:Fault></soap:Body></soap:Envelope>"""
551 String changeAssignSDNCRequest =
552 """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
553 xmlns:ns5="http://org.onap/so/request/types/v1"
554 xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
555 <sdncadapter:RequestHeader>
556 <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
557 <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
558 <sdncadapter:SvcAction>changeassign</sdncadapter:SvcAction>
559 <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
560 <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
561 </sdncadapter:RequestHeader>
562 <aetgt:SDNCRequestData>
563 <request-information>
564 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
565 <request-action>NetworkActivateRequest</request-action>
570 </request-information>
571 <service-information>
572 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
573 <service-type>MSO-dev-service-type</service-type>
574 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
575 <subscriber-name>MSO_1610_dev</subscriber-name>
576 </service-information>
577 <network-request-information>
578 <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
579 <network-type>CONTRAIL30_BASIC</network-type>
580 <network-name>vprobes_pktinternal_net_4_1806</network-name>
581 <tenant>7dd5365547234ee8937416c65507d266</tenant>
582 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
583 </network-request-information>
584 </aetgt:SDNCRequestData>
585 </aetgt:SDNCAdapterWorkflowRequest>"""
587 String assignResponse =
588 """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1" xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sdncadapterworkflow:response-data> <tag0:CallbackHeader> <tag0:RequestId>006927ca-f5a3-47fd-880c-dfcbcd81a093</tag0:RequestId> <tag0:ResponseCode>200</tag0:ResponseCode> <tag0:ResponseMessage>OK</tag0:ResponseMessage> </tag0:CallbackHeader> <tag0:RequestData xsi:type="xs:string"><output xmlns="com:att:sdnctl:vnf"><response-code>200</response-code><svc-request-id>006927ca-f5a3-47fd-880c-dfcbcd81a093</svc-request-id><ack-final-indicator>Y</ack-final-indicator><service-information><subscriber-name>notsurewecare</subscriber-name><service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id><service-instance-id>GN_EVPN_direct_net_0_ST_noGW</service-instance-id></service-information><network-information><network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id></network-information></output></tag0:RequestData> </sdncadapterworkflow:response-data> </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
590 String sdncRollbackRequest =
591 """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
592 xmlns:ns5="http://org.onap/so/request/types/v1"
593 xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
594 <sdncadapter:RequestHeader>
595 <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
596 <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
597 <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>
598 <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
599 <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
600 </sdncadapter:RequestHeader>
601 <aetgt:SDNCRequestData>
602 <request-information>
603 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
604 <request-action>NetworkActivateRequest</request-action>
609 </request-information>
610 <service-information>
611 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
612 <service-type>MSO-dev-service-type</service-type>
613 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
614 <subscriber-name>MSO_1610_dev</subscriber-name>
615 </service-information>
616 <network-request-information>
617 <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
618 <network-type>CONTRAIL_EXTERNAL</network-type>
619 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
620 <tenant>7dd5365547234ee8937416c65507d266</tenant>
621 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
622 </network-request-information>
623 </aetgt:SDNCRequestData>
624 </aetgt:SDNCAdapterWorkflowRequest>"""
626 String sdncAdapterWorkflowResponse =
627 """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
628 xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
629 <sdncadapterworkflow:response-data>
630 <tag0:CallbackHeader xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
631 <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>
632 <tag0:ResponseCode>200</tag0:ResponseCode>
633 <tag0:ResponseMessage>OK</tag0:ResponseMessage>
634 </tag0:CallbackHeader>
635 <tag0:RequestData xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
636 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
637 xsi:type="xs:string"><output xmlns="com:att:sdnctl:vnf"><svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id><response-code>200</response-code><ack-final-indicator>Y</ack-final-indicator><network-information><network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id></network-information><service-information><service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type><service-instance-id>MNS-25180-L-01-dmz_direct_net_1</service-instance-id><subscriber-name>notsurewecare</subscriber-name></service-information></output></tag0:RequestData>
638 </sdncadapterworkflow:response-data>
639 </aetgt:SDNCAdapterWorkflowResponse>"""
642 String sdncAdapterWorkflowResponse_Error =
643 """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1"
644 xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
645 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
646 xmlns="com:att:sdnctl:vnf">
647 <sdncadapterworkflow:response-data>
648 <tag0:RequestData xsi:type="xs:string">
650 <response-code>400</response-code>
651 <response-message>Error writing to l3-netework</response-message>
652 <ack-final-indicator>Y</ack-final-indicator>
653 <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>
656 </sdncadapterworkflow:response-data>
657 </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
660 String rollbackSDNCRequest =
661 """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
662 xmlns:ns5="http://org.onap/so/request/types/v1"
663 xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
664 <sdncadapter:RequestHeader>
665 <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
666 <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
667 <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>
668 <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
669 <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
670 </sdncadapter:RequestHeader>
671 <aetgt:SDNCRequestData>
672 <request-information>
673 <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
674 <request-action>CreateNetworkInstance</request-action>
679 </request-information>
680 <service-information>
681 <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
682 <service-type>MSO-dev-service-type</service-type>
683 <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
684 <subscriber-name>MSO_1610_dev</subscriber-name>
685 </service-information>
686 <network-information>
687 <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
688 <network-type>CONTRAIL_EXTERNAL</network-type>
689 <onap-model-information>
690 <model-invariant-uuid>invariant-uuid</model-invariant-uuid>
691 <model-customization-uuid>customization-uuid</model-customization-uuid>
692 <model-uuid>uuid</model-uuid>
693 <model-version>version</model-version>
694 <model-name>CONTRAIL_EXTERNAL</model-name>
695 </onap-model-information>
696 </network-information>
697 <network-request-information>
698 <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
699 <network-type>CONTRAIL_EXTERNAL</network-type>
700 <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
701 <tenant>7dd5365547234ee8937416c65507d266</tenant>
702 <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
703 </network-request-information>
704 </aetgt:SDNCRequestData>
705 </aetgt:SDNCAdapterWorkflowRequest>"""
707 String rollbackNetworkRequest =
708 """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.onap.so/network">
710 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
711 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
713 <networkType>CONTRAIL_EXTERNAL</networkType>
714 <networkCreated>true</networkCreated>
715 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
716 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
718 <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
722 </NetworkAdapter:rollbackNetwork>"""
728 static void initEnv() {
729 MockEnvironment mockEnvironment = mock(MockEnvironment.class)
730 when(mockEnvironment.getProperty("mso.workflow.global.default.aai.version")).thenReturn("14")
731 when(mockEnvironment.getProperty("mso.workflow.global.default.aai.namespace")).thenReturn("defaultTestNamespace")
732 when(mockEnvironment.getProperty("aai.endpoint")).thenReturn("http://localhost:8090")
733 UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
734 urnPropertiesReader.setEnvironment(mockEnvironment)
738 static void cleanupEnv() {
739 UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
740 urnPropertiesReader.setEnvironment(null)
746 MockitoAnnotations.initMocks(this)
749 public void initializeVariables (DelegateExecution mockExecution) {
751 verify(mockExecution).setVariable(Prefix + "messageId", "")
752 verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "")
753 verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "")
754 verify(mockExecution).setVariable(Prefix + "networkRequest", "")
755 verify(mockExecution).setVariable(Prefix + "networkInputs", "")
756 verify(mockExecution).setVariable(Prefix + "networkOutputs", "")
757 verify(mockExecution).setVariable(Prefix + "requestId", "")
758 verify(mockExecution).setVariable(Prefix + "source", "")
759 verify(mockExecution).setVariable(Prefix + "networkId", "")
761 verify(mockExecution).setVariable(Prefix + "isPONR", false)
763 // AAI query Cloud Region
764 verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","")
765 verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","")
766 verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","")
767 verify(mockExecution).setVariable(Prefix + "cloudRegionPo","")
768 verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","")
769 verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", false)
772 verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest","")
773 verify(mockExecution).setVariable(Prefix + "queryIdAAIResponse", "")
774 verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "")
776 // AAI query vpn binding
777 verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest","")
778 verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", "")
779 verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
780 verify(mockExecution).setVariable(Prefix + "vpnBindings", null)
781 verify(mockExecution).setVariable(Prefix + "vpnCount", 0)
782 verify(mockExecution).setVariable(Prefix + "routeCollection", "")
784 // AAI query network policy
785 verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
786 verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
787 verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
788 verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", null)
789 verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)
790 verify(mockExecution).setVariable(Prefix + "networkCollection", "")
792 // AAI query route table reference
793 verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
794 verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
795 verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
796 verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", null)
797 verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)
798 verify(mockExecution).setVariable(Prefix + "tableRefCollection", "")
802 verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest","")
803 verify(mockExecution).setVariable(Prefix + "requeryIdAAIResponse", "")
804 verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "")
806 // AAI update contrail
807 verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest","")
808 verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest","")
809 verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", "")
810 verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
812 verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", "")
813 verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", "")
814 verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")
815 //verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")
816 verify(mockExecution).setVariable(Prefix + "networkReturnCode", "")
817 //verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")
818 verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", false)
820 verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", "")
821 verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", "")
822 verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")
823 //verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")
824 verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "")
825 //verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")
826 verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", false)
827 verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
829 verify(mockExecution).setVariable(Prefix + "isVnfBindingPresent", false)
830 verify(mockExecution).setVariable(Prefix + "Success", false)
831 verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "")
833 verify(mockExecution).setVariable(Prefix + "isException", false)
838 public void preProcessRequest_NetworkRequest() {
840 println "************ preProcessRequest_Payload ************* "
841 ExecutionEntity mockExecution = setupMock()
842 // Initialize prerequisite variables
843 when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
844 when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
845 when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
846 when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")
847 when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)
848 when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
849 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
850 when(mockExecution.getVariable("mso.adapters.po.auth")).
851 thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C")
852 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
855 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
856 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
858 verify(mockExecution).setVariable("prefix", Prefix + "")
860 //verify variable initialization
861 initializeVariables(mockExecution)
864 verify(mockExecution).setVariable("action", "UPDATE")
865 verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequest)
866 verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
867 verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputs)
868 verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
869 verify(mockExecution).setVariable(Prefix + "source", "VID")
870 verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic dGVzdDp0ZXN0")
871 verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic dGVzdDp0ZXN0")
872 verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4")
873 verify(mockExecution).setVariable(Prefix + "networkOutputs", """<network-outputs>
874 \t <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
875 \t <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
876 \t </network-outputs>""")
877 verify(mockExecution).setVariable(Prefix + "networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
878 verify(mockExecution).setVariable(Prefix + "networkName", "MNS-25180-L-01-dmz_direct_net_1")
882 public void preProcessRequest_vPERNetworkRequest() {
884 String networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111",
885 "modelName": "CONTRAIL_EXTERNAL",
886 "modelType": "CONTRAIL_EXTERNAL",
888 "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222",
889 "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764"
892 println "************ preProcessRequest_Payload ************* "
894 ExecutionEntity mockExecution = setupMock()
896 // Initialize prerequisite variables
897 when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
898 when(mockExecution.getVariable("action")).thenReturn("UPDATE")
900 when(mockExecution.getVariable("disableRollback")).thenReturn("true")
901 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
902 when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
903 when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4") // optional
904 when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1") // optional
905 when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
906 when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL")
907 when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP")
908 when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266")
909 when(mockExecution.getVariable("failIfExists")).thenReturn("false")
910 when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)
911 when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")
913 when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type")
914 when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678")
915 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
917 when(mockExecution.getVariable("mso.adapters.po.auth")).
918 thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C")
919 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
921 when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
922 when(mockExecution.getVariable("mso.adapters.sdnc.endpoint")).
923 thenReturn("http://localhost:8090/SDNCAdapter")
924 when(mockExecution.getVariable("mso.adapters.network.rest.endpoint")).
925 thenReturn("http://localhost:8090/networks/NetworkAdapter")
926 when(mockExecution.getVariable("mso.adapters.sdnc.resource.endpoint")).
927 thenReturn("http://localhost:8090/SDNCAdapterRpc")
929 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
930 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
932 verify(mockExecution).setVariable("prefix", Prefix + "")
934 //verify variable initialization
935 initializeVariables(mockExecution)
938 verify(mockExecution).setVariable("action", "UPDATE")
939 verify(mockExecution).setVariable(Prefix + "networkRequest", expectedVperNetworkRequest)
940 verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
941 verify(mockExecution).setVariable(Prefix + "networkInputs", expectedVperNetworkInputs)
942 verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
943 verify(mockExecution).setVariable(Prefix + "source", "VID")
944 verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic dGVzdDp0ZXN0")
945 verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic dGVzdDp0ZXN0")
946 verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4")
947 verify(mockExecution).setVariable(eq(Prefix + "networkOutputs"), eq("""<network-outputs>
948 \t <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
949 \t <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
950 \t </network-outputs>"""))
952 verify(mockExecution).setVariable(Prefix + "networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
953 verify(mockExecution).setVariable(Prefix + "networkName", "MNS-25180-L-01-dmz_direct_net_1")
958 public void preProcessRequest_MissingNetworkId() {
960 println "************ preProcessRequest_MissingName() ************* "
962 WorkflowException missingNameWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Variable 'network-id' value/element is missing.")
964 ExecutionEntity mockExecution = setupMock()
965 // Initialize prerequisite variables
966 when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
967 when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
968 when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)
969 when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)
970 when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
971 when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
972 when(mockExecution.getVariable("vnfId")).thenReturn("")
973 when(mockExecution.getVariable("volumeGroupId")).thenReturn("")
974 //when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")
975 when(mockExecution.getVariable("serviceType")).thenReturn("MOG")
976 when(mockExecution.getVariable("networkType")).thenReturn("modelName")
977 when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)
978 when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
980 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
981 when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
982 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
983 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
984 when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
985 when(mockExecution.getVariable("disableRollback")).thenReturn("true")
987 // preProcessRequest(DelegateExecution execution)
988 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
990 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
991 } catch (Exception ex) {
992 println " Test End - Handle catch-throw BpmnError()! "
995 verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")
996 verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
998 //verify variable initialization
999 initializeVariables(mockExecution)
1001 verify(mockExecution).setVariable("action", "UPDATE")
1002 verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingNetworkId)
1003 verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
1004 verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputsMissingNetworkId)
1005 verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1006 verify(mockExecution).setVariable(Prefix + "source", "VID")
1007 verify(mockExecution).setVariable(Prefix + "networkOutputs", "")
1009 verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingNameWorkflowException))
1015 public void preProcessRequest_MissingCloudRegion() {
1017 println "************ preProcessRequest_MissingCloudRegion() ************* "
1019 WorkflowException missingCloudRegionWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "requestDetails has missing 'aic-cloud-region' value/element.")
1021 ExecutionEntity mockExecution = setupMock()
1022 // Initialize prerequisite variables
1023 when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1024 when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1025 when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)
1026 when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)
1027 when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
1028 when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1029 when(mockExecution.getVariable("vnfId")).thenReturn("")
1030 when(mockExecution.getVariable("volumeGroupId")).thenReturn("")
1031 when(mockExecution.getVariable("networkId")).thenReturn("networkId")
1032 when(mockExecution.getVariable("serviceType")).thenReturn("MOG")
1033 when(mockExecution.getVariable("networkType")).thenReturn("modelName")
1035 when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest_MissingCloudRegion)
1036 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1037 when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
1038 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1039 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1040 when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
1041 when(mockExecution.getVariable("disableRollback")).thenReturn("true")
1043 // preProcessRequest(DelegateExecution execution)
1044 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1046 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
1047 } catch (Exception ex) {
1048 println " Test End - Handle catch-throw BpmnError()! "
1050 // check the sequence of variable invocation
1051 //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
1052 //preDebugger.printInvocations(mockExecution)
1054 verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")
1055 verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1057 //verify variable initialization
1058 initializeVariables(mockExecution)
1060 verify(mockExecution).setVariable("action", "UPDATE")
1061 verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingCloudRegion)
1062 verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
1063 verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputMissingCloudRegion)
1064 verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1065 verify(mockExecution).setVariable(Prefix + "source", "VID")
1067 verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingCloudRegionWorkflowException))
1072 public void prepareUpdateNetworkRequest() {
1074 println "************ prepareNetworkRequest ************* "
1075 ExecutionEntity mockExecution = setupMock()
1076 // Initialize prerequisite variables
1077 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedVperNetworkRequest)
1078 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(getContrailL3Network())
1079 when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")
1080 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")
1081 when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")
1082 when(mockExecution.getVariable(Prefix + "routeCollection")).
1083 thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
1084 when(mockExecution.getVariable(Prefix + "networkCollection")).
1085 thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
1086 when(mockExecution.getVariable(Prefix + "tableRefCollection")).
1087 thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")
1088 when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1089 when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")
1091 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1092 DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)
1094 verify(mockExecution).setVariable("prefix", Prefix + "")
1095 verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest)
1100 public void prepareUpdateNetworkRequest_NoPhysicalname() {
1102 println "************ prepareNetworkRequest ************* "
1103 ExecutionEntity mockExecution = setupMock()
1104 // Initialize prerequisite variables
1105 when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1106 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")
1107 when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")
1109 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(NetworkRequest_noPhysicalName)
1110 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).
1111 thenReturn(getContrailL3Network())
1112 when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")
1113 when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")
1115 when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
1116 when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
1117 when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("")
1119 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1120 DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)
1122 // verify set prefix = Prefix + ""
1123 verify(mockExecution).setVariable("prefix", Prefix + "")
1124 verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest_noPhysicalName)
1128 public void prepareSDNCRequest() {
1130 println "************ prepareSDNCRequest ************* "
1132 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1133 // Initialize prerequisite variables
1134 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1135 when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
1136 when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1137 when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(
1138 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1139 when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1140 when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1141 when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")
1142 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1143 when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn(
1144 "https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")
1146 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1147 DoUpdateNetworkInstance.prepareSDNCRequest(mockExecution)
1149 // verify set prefix = Prefix + ""
1150 verify(mockExecution).setVariable("prefix", Prefix + "")
1151 verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", changeAssignSDNCRequest)
1156 public void prepareSDNCRollbackRequest() {
1158 println "************ prepareSDNCRollbackRequest ************* "
1162 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1163 // Initialize prerequisite variables
1164 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1165 when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
1166 when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1167 when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(assignResponse)
1168 when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1169 when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1170 when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")
1171 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1172 when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")
1174 // preProcessRequest(DelegateExecution execution)
1175 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1176 DoUpdateNetworkInstance.prepareSDNCRollbackRequest(mockExecution)
1178 // verify set prefix = Prefix + ""
1179 verify(mockExecution).setVariable("prefix", Prefix + "")
1180 verify(mockExecution).setVariable(Prefix + "WorkflowException", null)
1181 verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRollbackRequest)
1186 public void callRESTQueryAAINetworkId_200() {
1188 println "************ callRESTQueryAAINetworkId ************* "
1191 MockGetNetworkByIdWithDepth(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1192 "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
1194 ExecutionEntity mockExecution = setupMock()
1195 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1197 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1198 DoUpdateNetworkInstance.callRESTQueryAAINetworkId(mockExecution)
1200 verify(mockExecution).setVariable("prefix", Prefix)
1201 verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "200")
1202 verify(mockExecution).setVariable(eq(Prefix + "queryIdAAIResponse"), isA(AAIResultWrapper.class))
1206 public void callRESTQueryAAICloudRegion30_200() {
1208 println "************ callRESTQueryAAICloudRegion30_200 ************* "
1211 MockGetNetworkCloudRegion(wireMockRule, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml", "RDM2WAGPLCP");
1213 ExecutionEntity mockExecution = setupMock()
1214 when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1215 when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)
1216 when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1217 when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1218 when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1219 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1220 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1221 when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1222 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1223 when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1225 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1226 DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1228 verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1229 verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")
1230 verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1234 public void callRESTQueryAAICloudRegion25_200() {
1236 println "************ callRESTQueryAAICloudRegion25_200 ************* "
1239 MockGetNetworkCloudRegion(wireMockRule, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
1241 ExecutionEntity mockExecution = setupMock()
1242 when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1243 when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)
1244 when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1245 when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1246 when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1247 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1248 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1249 when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1250 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1251 when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1253 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1254 DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1256 verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1257 verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1261 public void callRESTQueryAAICloudRegion_NotFound() {
1263 println "************ callRESTQueryAAICloudRegionFake ************* "
1266 MockGetNetworkCloudRegion_404(wireMockRule, "MDTWNJ21");
1268 ExecutionEntity mockExecution = setupMock()
1269 when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1270 when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestFakeRegion)
1271 when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1272 when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1273 when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1274 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1275 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1276 when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1277 when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1278 when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1280 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1281 DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1283 verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1284 verify(mockExecution, atLeast(1)).setVariable(Prefix + "queryCloudRegionReturnCode", "404")
1285 verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21")
1286 verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25")
1287 verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1291 public void callRESTQueryAAINetworkVpnBinding_200() {
1293 println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1295 ExecutionEntity mockExecution = setupMock()
1296 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1297 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAIResponseEmptyUri.json")))
1299 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1300 DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1302 verify(mockExecution).setVariable("prefix", Prefix + "")
1303 verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
1304 verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse",
1305 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1306 xmlns="defaultTestNamespacev14"\n contentType="text/xml">\n <vpn-binding>
1307 <global-route-target/>\n </vpn-binding>\n</rest:payload>""")
1308 verify(mockExecution).setVariable(Prefix + "routeCollection", "<routeTargets/>")
1312 public void callRESTQueryAAINetworkVpnBindingList_200() {
1314 println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1318 MockGetNetworkVpnBindingWithDepth(wireMockRule,
1319 "BuildingBlocks/Network/queryAAIVpnBindingTestResponseWithRoutes.json",
1320 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2")
1322 ExecutionEntity mockExecution = setupMock()
1323 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1324 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1326 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1327 DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1329 verify(mockExecution).setVariable("prefix", Prefix + "")
1330 verify(mockExecution).setVariable(Prefix + "routeCollection", """<routeTargets>
1331 <routeTarget>2001:051111</routeTarget>\n <routeTargetRole>EXPORT</routeTargetRole>\n</routeTargets>
1332 <routeTargets>\n <routeTarget>1000:051113</routeTarget>\n <routeTargetRole>IMPORT</routeTargetRole>\n</routeTargets>\n""")
1337 public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() {
1339 println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1342 MockGetNetworkVpnBindingWithDepth(wireMockRule,
1343 "BuildingBlocks/Network/queryAAIVpnBindingTestResponseWithRoutes.json",
1344 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2");
1346 ExecutionEntity mockExecution = setupMock()
1347 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1348 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1350 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1351 DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1353 verify(mockExecution).setVariable("prefix", Prefix + "")
1354 verify(mockExecution).setVariable(Prefix + "routeCollection",
1355 """<routeTargets>\n <routeTarget>2001:051111</routeTarget>\n <routeTargetRole>EXPORT</routeTargetRole>
1356 </routeTargets>\n<routeTargets>\n <routeTarget>1000:051113</routeTarget>\n <routeTargetRole>IMPORT</routeTargetRole>
1357 </routeTargets>\n""")
1361 public void callRESTQueryAAINetworkVpnBinding_NotPresent() {
1363 println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* "
1367 MockGetNetworkVpnBindingWithDepth(wireMockRule,
1368 "BuildingBlocks/Network/queryAAIVpnBindingTestResponse.json",
1369 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2")
1371 ExecutionEntity mockExecution = setupMock()
1372 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1373 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1375 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1376 DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1378 verify(mockExecution).setVariable("prefix", Prefix + "")
1379 verify(mockExecution).setVariable(Prefix + "routeCollection", "")
1383 public void callRESTQueryAAINetworkTableRef_200() {
1385 println "************ callRESTQueryAAINetworkTableRef_200 ************* "
1388 ExecutionEntity mockExecution = setupMock()
1389 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1390 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1392 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1393 DoUpdateNetworkInstance.callRESTQueryAAINetworkTableRef(mockExecution)
1395 verify(mockExecution).setVariable("prefix", Prefix + "")
1396 verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)
1397 verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
1398 verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse",
1399 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1400 xmlns="defaultTestNamespacev14"\n contentType="text/xml">\n <route-table-references>
1401 <route-table-reference-fqdn/>\n </route-table-references>\n</rest:payload>""")
1402 verify(mockExecution).setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
1406 public void callRESTQueryAAINetworkPolicy_200() {
1408 println "************ callRESTQueryAAINetworkPolicy_200 ************* "
1412 ExecutionEntity mockExecution = setupMock()
1413 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1414 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1416 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1417 DoUpdateNetworkInstance.callRESTQueryAAINetworkPolicy(mockExecution)
1419 verify(mockExecution).setVariable("prefix", Prefix + "")
1420 verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)
1421 verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
1422 verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse",
1423 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1424 xmlns="defaultTestNamespacev14"\n contentType="text/xml">\n <network-policy>
1425 <network-policy-fqdn/>\n </network-policy>\n</rest:payload>""")
1426 verify(mockExecution).setVariable(Prefix + "networkCollection", "<policyFqdns/>")
1431 public void callRESTReQueryAAINetworkId_200() {
1433 println "************ callRESTReQueryAAINetworkId ************* "
1436 MockGetNetworkByIdWithDepth(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1437 "BuildingBlocks/Network/queryAAINetworkTestResponse.json", "1");
1439 ExecutionEntity mockExecution = setupMock()
1440 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1442 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1443 DoUpdateNetworkInstance.callRESTReQueryAAINetworkId(mockExecution)
1445 verify(mockExecution).setVariable("prefix", Prefix + "")
1446 verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
1447 verify(mockExecution).setVariable(eq(Prefix + "requeryIdAAIResponse"), isA(AAIResultWrapper.class))
1448 verify(mockExecution).setVariable(Prefix + "networkOutputs", """<network-outputs>
1449 <network-id>467e3349-bec1-4922-bcb1-d0bb041bce30</network-id>
1450 <network-name>vprobes_pktinternal_net_4_1806</network-name>
1451 </network-outputs>""")
1456 public void callRESTUpdateContrailAAINetworkREST_200() {
1458 println "************ callRESTUpdateContrailAAINetwork ************* "
1461 MockPostNetwork(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
1462 MockPostNetworkSubnet(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "209f62cf-cf0c-42f8-b13c-f038b92ef108")
1463 MockPostNetworkSubnet(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "971bc608-1aff-47c0-923d-92e43b699f01")
1465 ExecutionEntity mockExecution = setupMock()
1466 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1467 when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1468 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAIResponseEmptyUri.json")))
1469 when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
1471 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1472 DoUpdateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution)
1474 verify(mockExecution).setVariable("prefix", Prefix + "")
1475 verify(mockExecution).setVariable(Prefix + "isPONR", true)
1480 public void validateUpdateNetworkResponseREST() {
1482 println "************ validateNetworkResponse ************* "
1484 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1485 // Initialize prerequisite variables
1486 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1487 when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
1488 when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200')
1490 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1491 DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)
1493 verify(mockExecution).setVariable("prefix", Prefix + "")
1494 verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", updateNetworkResponseREST)
1495 verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", true)
1496 verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", updateRollbackNetworkRequest)
1500 public void validateUpdateNetworkResponseREST_Error() {
1502 println "************ validateNetworkResponse ************* "
1504 WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")
1506 ExecutionEntity mockExecution = setupMock()
1507 // Initialize prerequisite variables
1508 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1509 when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(networkException500)
1510 when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('500')
1512 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1514 DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)
1515 } catch (Exception ex) {
1516 println " Test End - Handle catch-throw BpmnError()! "
1519 verify(mockExecution).setVariable("prefix", Prefix + "")
1520 verify(mockExecution, atLeast(1)).setVariable(eq("WorkflowException"), refEq(workflowException))
1525 public void validateSDNCResponse() {
1527 println "************ validateSDNCResponse ************* "
1529 ExecutionEntity mockExecution = setupMock()
1530 // Initialize prerequisite variables
1531 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1532 when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)
1533 when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1534 when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
1535 when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")
1536 when(mockExecution.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
1538 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1539 DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)
1541 verify(mockExecution).setVariable("prefix", Prefix)
1542 verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
1543 verify(mockExecution).setVariable(Prefix + "sdncRequestDataResponseCode", "200")
1544 verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", true)
1545 verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", sdncAdapterWorkflowResponse)
1546 verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)
1549 @Test(expected = BpmnError.class)
1550 public void validateSDNCResponse_Error() {
1552 println "************ validateSDNCResponse ************* "
1553 ExecutionEntity mockExecution = setupMock()
1554 // Initialize prerequisite variables
1555 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1556 when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error)
1557 when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1558 when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)
1559 when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")
1560 when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true)
1562 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1564 DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)
1565 } catch (BpmnError ex) {
1566 verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
1567 println " Graceful Exit! - " + ex.getMessage()
1573 public void prepareRollbackData() {
1575 println "************ prepareRollbackData() ************* "
1577 WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")
1579 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1580 // Initialize prerequisite variables
1581 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1582 when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)
1583 when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackNetworkRequest)
1584 when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
1586 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1587 DoUpdateNetworkInstance.prepareRollbackData(mockExecution)
1589 verify(mockExecution).setVariable("prefix", Prefix)
1594 public void postProcessResponse() {
1596 println "************ postProcessResponse() ************* "
1597 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1598 // Initialize prerequisite variables
1599 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1600 when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false)
1601 when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
1602 when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)
1603 when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackSDNCRequest)
1604 when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1605 when(mockExecution.getVariable("mso-request-id")).thenReturn("requestId")
1607 // preProcessRequest(DelegateExecution execution)
1608 DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1609 DoUpdateNetworkInstance.postProcessResponse(mockExecution)
1611 // verify(mockExecution, atLeast(3)).getVariable("isDebugLogEnabled")
1612 verify(mockExecution, atLeast(3)).setVariable("prefix", Prefix)
1613 verify(mockExecution).setVariable(Prefix + "Success", true)
1617 private static L3Network getContrailL3Network() {
1619 HostRoutes routes1 = new HostRoutes()
1620 routes1.getHostRoute().add(new HostRoute(routePrefix: "172.20.1.0/24", nextHop: "10.102.200.1"))
1621 routes1.getHostRoute().add(new HostRoute(routePrefix: "10.102.0.0/16", nextHop: "10.102.200.1"))
1622 routes1.getHostRoute().add(new HostRoute(routePrefix: "192.168.2.0/25", nextHop: "10.102.200.1"))
1624 Subnet subnet1 = new Subnet(networkStartAddress: "107.239.52.0", cidrMask: "24", dhcpEnabled: true,
1625 gatewayAddress: "107.239.52.1", ipVersion: "4", subnetId: "57e9a1ff-d14f-4071-a828-b19ae98eb2fc",
1626 subnetName: "subnetName", ipAssignmentDirection: "true", hostRoutes: routes1)
1627 Subnets subnets = new Subnets()
1628 subnets.getSubnet().add(subnet1)
1630 SegmentationAssignments segments = new SegmentationAssignments()
1631 segments.getSegmentationAssignment().add(new SegmentationAssignment(segmentationId: "414"))
1632 segments.getSegmentationAssignment().add(new SegmentationAssignment(segmentationId: "415"))
1634 return new L3Network(
1635 networkName: "MNS-25180-L-01-dmz_direct_net_1",
1636 networkType: "CONTRAIL_EXTERNAL",
1637 networkTechnology: "Contrail",
1638 networkId: "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1639 orchestrationStatus: "pending-create",
1640 physicalNetworkName: "networkName",
1641 heatStackId: "ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326",
1642 isSharedNetwork: true,
1644 segmentationAssignments: segments
1648 private ExecutionEntity setupMock() {
1650 ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)
1651 when(mockProcessDefinition.getKey()).thenReturn("DoUpdateNetworkInstance")
1652 RepositoryService mockRepositoryService = mock(RepositoryService.class)
1653 when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)
1654 when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoUpdateNetworkInstance")
1655 ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)
1656 when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)
1658 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1659 // Initialize prerequisite variables
1661 when(mockExecution.getProcessDefinitionId()).thenReturn("DoUpdateNetworkInstance")
1662 when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)
1663 when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)
1665 return mockExecution