2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 Huawei Technologies Co., Ltd. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License")
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.infrastructure.scripts
23 import org.apache.commons.lang3.StringUtils
24 import org.camunda.bpm.engine.delegate.BpmnError
25 import org.camunda.bpm.engine.delegate.DelegateExecution
26 import org.onap.aai.domain.yang.Relationship
27 import org.onap.aai.domain.yang.ServiceInstance
28 import org.onap.aai.domain.yang.SliceProfile
29 import org.onap.aaiclient.client.aai.AAIObjectType
30 import org.onap.aaiclient.client.aai.AAIResourcesClient
31 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper
32 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
33 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
34 import org.onap.so.beans.nsmf.*
35 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
36 import org.onap.so.bpmn.common.scripts.ExceptionUtil
37 import org.onap.so.bpmn.common.scripts.NssmfAdapterUtils
38 import org.onap.so.bpmn.core.json.JsonUtils
39 import org.slf4j.Logger
40 import org.slf4j.LoggerFactory
42 import javax.ws.rs.NotFoundException
44 class DoAllocateNSIandNSSIV2 extends AbstractServiceTaskProcessor{
46 private static final Logger logger = LoggerFactory.getLogger( DoAllocateNSIandNSSIV2.class);
48 ExceptionUtil exceptionUtil = new ExceptionUtil()
50 JsonUtils jsonUtil = new JsonUtils()
52 private NssmfAdapterUtils nssmfAdapterUtils = new NssmfAdapterUtils(httpClientFactory, jsonUtil)
54 AAIResourcesClient client = getAAIClient()
57 * Pre Process the BPMN Flow Request
59 * generate the nsOperationKey
60 * generate the nsParameters
63 void preProcessRequest (DelegateExecution execution) {
65 logger.trace("Enter preProcessRequest()")
66 Map<String, Object> nssiMap = new HashMap<>()
67 execution.setVariable("nssiMap", nssiMap)
68 boolean isMoreNSSTtoProcess = true
69 execution.setVariable("isMoreNSSTtoProcess", isMoreNSSTtoProcess)
70 List<String> nsstSequence = new ArrayList<>(Arrays.asList("cn"))
71 execution.setVariable("nsstSequence", nsstSequence)
72 logger.trace("Exit preProcessRequest")
79 void retriveSliceOption(DelegateExecution execution) {
80 logger.trace("Enter retriveSliceOption() of DoAllocateNSIandNSSI")
82 boolean isNSIOptionAvailable
84 SliceTaskParamsAdapter sliceParams =
85 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
88 // Map<String, Object> nstSolution = execution.getVariable("nstSolution") as Map
89 // String modelUuid = nstSolution.get("UUID")
90 // String modelInvariantUuid = nstSolution.get("invariantUUID")
91 // String serviceModelInfo = """{
92 // "modelInvariantUuid":"${modelInvariantUuid}",
93 // "modelUuid":"${modelUuid}",
96 // execution.setVariable("serviceModelInfo", serviceModelInfo)
98 // execution.setVariable("sliceParams", sliceParams)
99 // }catch (Exception ex) {
100 // logger.debug( "Unable to get the task information from request DB: " + ex)
101 // exceptionUtil.buildAndThrowWorkflowException(execution, 401, "Unable to get task information from request DB.")
104 if(StringUtils.isBlank(sliceParams.getSuggestNsiId())) {
105 isNSIOptionAvailable = false
108 isNSIOptionAvailable = true
109 execution.setVariable('nsiServiceInstanceId', sliceParams.getSuggestNsiId())
110 execution.setVariable('nsiServiceInstanceName', sliceParams.getSuggestNsiName())
112 execution.setVariable("isNSIOptionAvailable", isNSIOptionAvailable)
113 logger.trace("Exit retriveSliceOption() of DoAllocateNSIandNSSI")
118 * create nsi instance in aai
121 void createNSIinAAI(DelegateExecution execution) {
122 logger.debug("Enter CreateNSIinAAI in DoAllocateNSIandNSSI()")
124 String sliceInstanceId = UUID.randomUUID().toString()
125 SliceTaskParamsAdapter sliceParams =
126 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
128 sliceParams.setServiceId(sliceInstanceId)
130 ServiceInstance nsi = new ServiceInstance()
133 String sliceInstanceName = "nsi_"+execution.getVariable("sliceServiceInstanceName")
134 String serviceType = execution.getVariable("serviceType")
135 String serviceStatus = "deactivated"
136 String modelInvariantUuid = sliceParams.getNSTInfo().invariantUUID
137 String modelUuid = sliceParams.getNSTInfo().UUID
139 String uuiRequest = execution.getVariable("uuiRequest")
140 String serviceInstanceLocationid = jsonUtil.getJsonValue(uuiRequest, "service.parameters.requestInputs.plmnIdList")
141 String serviceRole = "nsi"
143 execution.setVariable("sliceInstanceId", sliceInstanceId)
144 nsi.setServiceInstanceId(sliceInstanceId)
145 nsi.setServiceInstanceName(sliceInstanceName)
146 nsi.setServiceType(serviceType)
147 nsi.setOrchestrationStatus(serviceStatus)
148 nsi.setModelInvariantId(modelInvariantUuid)
149 nsi.setModelVersionId(modelUuid)
150 nsi.setServiceInstanceLocationId(serviceInstanceLocationid)
151 nsi.setServiceRole(serviceRole)
155 AAIResourceUri nsiServiceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
156 execution.getVariable("globalSubscriberId"),
157 execution.getVariable("subscriptionServiceType"),
159 client.create(nsiServiceUri, nsi)
161 execution.setVariable("nsiServiceUri", nsiServiceUri.build().toString())
163 } catch (BpmnError e) {
165 } catch (Exception ex) {
166 msg = "Exception in DoCreateSliceServiceInstance.instantiateSliceService. " + ex.getMessage()
168 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
171 logger.debug("Exit CreateNSIinAAI in DoAllocateNSIandNSSI()")
176 * create relationship between nsi and service profile instance
179 void createRelationship(DelegateExecution execution) {
181 Relationship relationship = new Relationship()
182 String nsiServiceUri = execution.getVariable("nsiServiceUri") as String
183 logger.info("Creating Allotted resource relationship, nsiServiceUri: " + nsiServiceUri)
185 relationship.setRelatedLink(nsiServiceUri)
187 AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(
188 AAIObjectType.ALLOTTED_RESOURCE,
189 execution.getVariable("globalSubscriberId"),
190 execution.getVariable("subscriptionServiceType"),
191 execution.getVariable("sliceServiceInstanceId"),
192 execution.getVariable("allottedResourceId"))
194 client.create(allottedResourceUri, relationship)
201 void updateRelationship(DelegateExecution execution) {
202 logger.debug("Enter update relationship in DoAllocateNSIandNSSI()")
203 String allottedResourceId = execution.getVariable("allottedResourceId")
204 //Need to check whether nsi exist : Begin
206 SliceTaskParamsAdapter sliceParams =
207 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
209 String nsiServiceInstanceID = sliceParams.getSuggestNsiId()
210 sliceParams.setServiceId(nsiServiceInstanceID)
212 AAIResourceUri nsiServiceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
213 execution.getVariable("globalSubscriberId"),
214 execution.getVariable("subscriptionServiceType"),
215 nsiServiceInstanceID)
218 AAIResultWrapper wrapper = client.get(nsiServiceUri, NotFoundException.class)
219 Optional<ServiceInstance> si = wrapper.asBean(ServiceInstance.class)
221 if (!si.ifPresent()) {
222 String msg = "NSI suggested in the option doesn't exist. " + nsiServiceInstanceID
224 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
227 AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.ALLOTTED_RESOURCE,
228 execution.getVariable("globalSubscriberId"),
229 execution.getVariable("subscriptionServiceType"),
230 execution.getVariable("sliceServiceInstanceId"),
233 client.connect(allottedResourceUri, nsiServiceUri)
235 execution.setVariable("sliceParams", sliceParams)
236 }catch(BpmnError e) {
238 }catch (Exception ex){
239 String msg = "NSI suggested in the option doesn't exist. " + nsiServiceInstanceID
241 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
243 logger.debug("Exit update relationship in DoAllocateNSIandNSSI()")
247 * create RAN Slice Profile Instance
250 void createAnSliceProfileInstance(DelegateExecution execution) {
252 String globalSubscriberId = execution.getVariable("globalSubscriberId")
253 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
254 String serviceInstanceId = UUID.randomUUID().toString()
255 execution.setVariable("ranSliceProfileInstanceId", serviceInstanceId) //todo:
257 String serviceType = ""
258 String serviceRole = "slice-profile"
259 String oStatus = "deactivated"
261 SliceTaskParamsAdapter sliceParams =
262 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
263 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
264 sliceTaskInfo.setServiceInstanceId(serviceInstanceId)
266 // create slice profile
267 ServiceInstance rspi = new ServiceInstance()
268 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
269 rspi.setServiceType(serviceType)
270 rspi.setServiceRole(serviceRole)
271 rspi.setOrchestrationStatus(oStatus)
272 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
273 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
274 rspi.setInputParameters(uuiRequest)
275 rspi.setWorkloadContext(useInterval)
276 rspi.setEnvironmentContext(sNSSAI_id)
278 //timestamp format YYYY-MM-DD hh:mm:ss
279 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
281 execution.setVariable("communicationServiceInstance", rspi)
283 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
285 subscriptionServiceType,
287 client.create(uri, rspi)
289 execution.setVariable("sliceParams", sliceParams)
293 * create An Slice Profile
296 void createAnSliceProfile(DelegateExecution execution) {
298 String globalSubscriberId = execution.getVariable("globalSubscriberId")
299 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
300 //String serviceInstanceId = execution.getVariable("ranSliceProfileInstanceId")
302 SliceTaskParamsAdapter sliceParams =
303 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
304 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
305 AnSliceProfile anSliceProfile = sliceTaskInfo.sliceProfile
307 String profileId = UUID.randomUUID().toString()
308 anSliceProfile.setSliceProfileId(profileId)
310 SliceProfile sliceProfile = new SliceProfile()
311 sliceProfile.setProfileId(profileId)
312 sliceProfile.setCoverageAreaTAList(anSliceProfile.coverageAreaTAList as String)
314 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
316 subscriptionServiceType,
317 sliceTaskInfo.serviceInstanceId,
320 client.create(uri, sliceProfile)
321 execution.setVariable("sliceParams", sliceParams)
325 * prepare AllocateAnNssi
328 void prepareAllocateAnNssi(DelegateExecution execution) {
331 SliceTaskParamsAdapter sliceParams =
332 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
333 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
335 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
337 AllocateAnNssi allocateAnNssi = new AllocateAnNssi()
338 allocateAnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
339 allocateAnNssi.nssiId = sliceTaskInfo.NSSTInfo.UUID
340 allocateAnNssi.nssiName = sliceTaskInfo.NSSTInfo.name
341 allocateAnNssi.sliceProfile = sliceTaskInfo.sliceProfile
342 allocateAnNssi.nsiInfo.nsiId = sliceParams
344 EsrInfo esrInfo = new EsrInfo()
345 //todo: vendor and network
346 esrInfo.setVendor(sliceTaskInfo.getVendor())
347 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
349 String globalSubscriberId = execution.getVariable("globalSubscriberId")
350 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
353 ServiceInfo serviceInfo = new ServiceInfo()
354 serviceInfo.globalSubscriberId = globalSubscriberId
355 serviceInfo.subscriptionServiceType = subscriptionServiceType
356 serviceInfo.nsiId = sliceParams.serviceId
357 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
358 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
360 nbiRequest.setServiceInfo(serviceInfo)
361 nbiRequest.setEsrInfo(esrInfo)
362 nbiRequest.setAllocateAnNssi(allocateAnNssi)
364 execution.setVariable("AnAllocateNssiNbiRequest", nbiRequest)
365 execution.setVariable("anBHSliceTaskInfo", sliceTaskInfo)
370 * create RAN Slice Profile Instance
373 void createCnSliceProfileInstance(DelegateExecution execution) {
375 String globalSubscriberId = execution.getVariable("globalSubscriberId")
376 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
377 String serviceInstanceId = UUID.randomUUID().toString()
378 execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
380 String serviceType = ""
381 String serviceRole = "slice-profile"
382 String oStatus = "deactivated"
384 SliceTaskParamsAdapter sliceParams =
385 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
386 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
387 sliceTaskInfo.setServiceInstanceId(serviceInstanceId)
389 // create slice profile
390 ServiceInstance rspi = new ServiceInstance()
391 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
392 rspi.setServiceType(serviceType)
393 rspi.setServiceRole(serviceRole)
394 rspi.setOrchestrationStatus(oStatus)
395 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
396 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
397 rspi.setInputParameters(uuiRequest)
398 rspi.setWorkloadContext(useInterval)
399 rspi.setEnvironmentContext(sNSSAI_id)
401 //timestamp format YYYY-MM-DD hh:mm:ss
402 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
404 execution.setVariable("communicationServiceInstance", rspi)
406 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
408 subscriptionServiceType,
410 client.create(uri, rspi)
411 execution.setVariable("sliceParams", sliceParams)
415 * create An Slice Profile
418 void createCnSliceProfile(DelegateExecution execution) {
420 String globalSubscriberId = execution.getVariable("globalSubscriberId")
421 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
422 //String serviceInstanceId = execution.getVariable("ranSliceProfileInstanceId")
424 SliceTaskParamsAdapter sliceParams =
425 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
427 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
428 CnSliceProfile cnSliceProfile = sliceTaskInfo.sliceProfile
430 String profileId = UUID.randomUUID().toString()
431 cnSliceProfile.setSliceProfileId(profileId)
433 SliceProfile sliceProfile = new SliceProfile()
434 sliceProfile.setProfileId(profileId)
435 sliceProfile.setCoverageAreaTAList(cnSliceProfile.coverageAreaTAList as String)
437 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
439 subscriptionServiceType,
440 sliceTaskInfo.serviceInstanceId,
443 client.create(uri, sliceProfile)
444 execution.setVariable("sliceParams", sliceParams)
448 * prepare AllocateCnNssi
451 void prepareAllocateCnNssi(DelegateExecution execution) {
454 SliceTaskParamsAdapter sliceParams =
455 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
456 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
458 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
460 AllocateCnNssi allocateCnNssi = new AllocateCnNssi()
461 allocateCnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
462 allocateCnNssi.nssiId = sliceTaskInfo.NSSTInfo.UUID
463 allocateCnNssi.nssiName = sliceTaskInfo.NSSTInfo.name
464 allocateCnNssi.sliceProfile = sliceTaskInfo.sliceProfile
465 allocateCnNssi.nsiInfo.nsiId = sliceParams
467 EsrInfo esrInfo = new EsrInfo()
468 //todo: vendor and network
469 esrInfo.setVendor(sliceTaskInfo.getVendor())
470 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
472 String globalSubscriberId = execution.getVariable("globalSubscriberId")
473 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
476 ServiceInfo serviceInfo = new ServiceInfo()
477 serviceInfo.globalSubscriberId = globalSubscriberId
478 serviceInfo.subscriptionServiceType = subscriptionServiceType
479 serviceInfo.nsiId = sliceParams.serviceId
480 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
481 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
483 nbiRequest.setServiceInfo(serviceInfo)
484 nbiRequest.setEsrInfo(esrInfo)
485 nbiRequest.setAllocateCnNssi(allocateCnNssi)
487 execution.setVariable("CnAllocateNssiNbiRequest", nbiRequest)
488 execution.setVariable("cnSliceTaskInfo", sliceTaskInfo)
493 * create TN Slice Profile Instance
496 void createTnBHSliceProfileInstance(DelegateExecution execution) {
497 String globalSubscriberId = execution.getVariable("globalSubscriberId")
498 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
500 String serviceType = ""
501 String serviceRole = "slice-profile"
502 String oStatus = "deactivated"
504 SliceTaskParamsAdapter sliceParams =
505 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
507 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
508 String serviceInstanceId = UUID.randomUUID().toString()
510 sliceTaskInfo.setServiceInstanceId(serviceInstanceId)
511 //execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
513 // create slice profile
514 ServiceInstance rspi = new ServiceInstance()
515 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
516 rspi.setServiceType(serviceType)
517 rspi.setServiceRole(serviceRole)
518 rspi.setOrchestrationStatus(oStatus)
519 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
520 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
521 rspi.setInputParameters(uuiRequest)
522 rspi.setWorkloadContext(useInterval)
523 rspi.setEnvironmentContext(sNSSAI_id)
525 //timestamp format YYYY-MM-DD hh:mm:ss
526 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
528 execution.setVariable("communicationServiceInstance", rspi)
530 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
532 subscriptionServiceType,
534 client.create(uri, rspi)
536 execution.setVariable("sliceParams", sliceParams)
540 * create An Slice Profile
543 void createTnBHSliceProfile(DelegateExecution execution) {
545 String globalSubscriberId = execution.getVariable("globalSubscriberId")
546 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
547 String serviceInstanceId = execution.getVariable("ranSliceProfileInstanceId")
549 SliceTaskParamsAdapter sliceParams =
550 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
552 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
554 TnSliceProfile tnSliceProfile = sliceTaskInfo.sliceProfile
555 String profileId = UUID.randomUUID().toString()
556 tnSliceProfile.setSliceProfileId(profileId)
558 SliceProfile sliceProfile = new SliceProfile()
559 sliceProfile.setProfileId(profileId)
561 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
563 subscriptionServiceType,
567 client.create(uri, sliceProfile)
569 execution.setVariable("sliceParams", sliceParams)
573 * prepare AllocateCnNssi
576 void prepareAllocateTnBHNssi(DelegateExecution execution) {
579 SliceTaskParamsAdapter sliceParams =
580 execution.getVariable("sliceParams") as SliceTaskParamsAdapter
581 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
583 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
585 AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
586 //todo: AllocateTnNssi
587 //allocateTnNssi.networkSliceInfos
589 EsrInfo esrInfo = new EsrInfo()
590 //todo: vendor and network
591 esrInfo.setVendor(sliceTaskInfo.getVendor())
592 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
594 String globalSubscriberId = execution.getVariable("globalSubscriberId")
595 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
598 ServiceInfo serviceInfo = new ServiceInfo()
599 serviceInfo.globalSubscriberId = globalSubscriberId
600 serviceInfo.subscriptionServiceType = subscriptionServiceType
601 serviceInfo.nsiId = sliceParams.serviceId
602 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
603 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
605 nbiRequest.setServiceInfo(serviceInfo)
606 nbiRequest.setEsrInfo(esrInfo)
607 nbiRequest.setAllocateTnNssi(allocateTnNssi)
609 execution.setVariable("TnBHAllocateNssiNbiRequest", nbiRequest)
610 execution.setVariable("tnBHSliceTaskInfo", sliceTaskInfo)