2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 # Copyright (c) 2020, CMCC Technologies Co., Ltd.
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.camunda.bpm.engine.delegate.BpmnError
24 import org.camunda.bpm.engine.delegate.DelegateExecution
25 import org.onap.aai.domain.yang.Relationship
26 import org.onap.aai.domain.yang.ServiceInstance
27 import org.onap.aai.domain.yang.SliceProfile
28 import org.onap.aaiclient.client.aai.AAIObjectType
29 import org.onap.aaiclient.client.aai.AAIResourcesClient
30 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper
31 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
32 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
33 import org.onap.so.beans.nsmf.AllocateAnNssi
34 import org.onap.so.beans.nsmf.AllocateCnNssi
35 import org.onap.so.beans.nsmf.AllocateTnNssi
36 import org.onap.so.beans.nsmf.AnSliceProfile
37 import org.onap.so.beans.nsmf.CnSliceProfile
38 import org.onap.so.beans.nsmf.EsrInfo
39 import org.onap.so.beans.nsmf.NssiResponse
40 import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest
41 import org.onap.so.beans.nsmf.ResponseDescriptor
42 import org.onap.so.beans.nsmf.ServiceInfo
43 import org.onap.so.beans.nsmf.SliceTaskInfo
44 import org.onap.so.beans.nsmf.SliceTaskParamsAdapter
45 import org.onap.so.beans.nsmf.TnSliceProfile
46 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
47 import org.onap.so.bpmn.common.scripts.ExceptionUtil
48 import org.onap.so.bpmn.core.json.JsonUtils
49 import org.slf4j.Logger
50 import org.slf4j.LoggerFactory
52 import javax.ws.rs.NotFoundException
54 import static org.apache.commons.lang3.StringUtils.isBlank
56 class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
58 private static final Logger logger = LoggerFactory.getLogger(DoAllocateNSIandNSSI.class);
60 ExceptionUtil exceptionUtil = new ExceptionUtil()
62 JsonUtils jsonUtil = new JsonUtils()
64 AAIResourcesClient client = getAAIClient()
67 * Pre Process the BPMN Flow Request
69 * generate the nsOperationKey
70 * generate the nsParameters
73 void preProcessRequest (DelegateExecution execution) {
75 logger.trace("Enter preProcessRequest()")
76 Map<String, Object> nssiMap = new HashMap<>()
77 execution.setVariable("nssiMap", nssiMap)
78 boolean isMoreNSSTtoProcess = true
79 execution.setVariable("isMoreNSSTtoProcess", isMoreNSSTtoProcess)
80 List<String> nsstSequence = new ArrayList<>(Arrays.asList("cn"))
81 execution.setVariable("nsstSequence", nsstSequence)
82 logger.trace("Exit preProcessRequest")
89 void retriveSliceOption(DelegateExecution execution) {
90 logger.trace("Enter retriveSliceOption() of DoAllocateNSIandNSSI")
92 boolean isNSIOptionAvailable
94 SliceTaskParamsAdapter sliceParams =
95 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
97 if(isBlank(sliceParams.getSuggestNsiId())) {
98 isNSIOptionAvailable = false
101 isNSIOptionAvailable = true
102 execution.setVariable('nsiServiceInstanceId', sliceParams.getSuggestNsiId())
103 execution.setVariable('nsiServiceInstanceName', sliceParams.getSuggestNsiName())
105 execution.setVariable("isNSIOptionAvailable", isNSIOptionAvailable)
106 logger.trace("Exit retriveSliceOption() of DoAllocateNSIandNSSI")
111 * create nsi instance in aai
114 void createNSIinAAI(DelegateExecution execution) {
115 logger.debug("Enter CreateNSIinAAI in DoAllocateNSIandNSSI()")
117 String sliceInstanceId = UUID.randomUUID().toString()
118 SliceTaskParamsAdapter sliceParams =
119 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
121 //set new nsiId to sliceParams suggestNsiId
122 sliceParams.setSuggestNsiId(sliceInstanceId)
124 ServiceInstance nsi = new ServiceInstance()
127 String sliceInstanceName = "nsi_"+execution.getVariable("sliceServiceInstanceName")
128 String serviceType = execution.getVariable("serviceType")
129 String serviceStatus = "deactivated"
130 String modelInvariantUuid = sliceParams.getNSTInfo().invariantUUID
131 String modelUuid = sliceParams.getNSTInfo().UUID
133 String uuiRequest = execution.getVariable("uuiRequest")
134 String serviceInstanceLocationid = jsonUtil.getJsonValue(uuiRequest, "service.parameters.requestInputs.plmnIdList")
135 String serviceRole = "nsi"
137 execution.setVariable("sliceInstanceId", sliceInstanceId)
138 nsi.setServiceInstanceId(sliceInstanceId)
139 nsi.setServiceInstanceName(sliceInstanceName)
140 nsi.setServiceType(serviceType)
141 nsi.setOrchestrationStatus(serviceStatus)
142 nsi.setModelInvariantId(modelInvariantUuid)
143 nsi.setModelVersionId(modelUuid)
144 nsi.setServiceInstanceLocationId(serviceInstanceLocationid)
145 nsi.setServiceRole(serviceRole)
149 AAIResourceUri nsiServiceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
150 execution.getVariable("globalSubscriberId"),
151 execution.getVariable("subscriptionServiceType"),
153 client.create(nsiServiceUri, nsi)
155 execution.setVariable("nsiServiceUri", nsiServiceUri)
157 } catch (BpmnError e) {
159 } catch (Exception ex) {
160 msg = "Exception in DoCreateSliceServiceInstance.instantiateSliceService. " + ex.getMessage()
162 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
165 logger.debug("Exit CreateNSIinAAI in DoAllocateNSIandNSSI()")
170 * create relationship between nsi and service profile instance
173 void createRelationship(DelegateExecution execution) {
175 String allottedResourceId = execution.getVariable("allottedResourceId")
176 SliceTaskParamsAdapter sliceParams =
177 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
179 AAIResourceUri nsiServiceUri = execution.getVariable("nsiServiceUri") as AAIResourceUri
180 logger.info("Creating Allotted resource relationship, nsiServiceUri: " + nsiServiceUri)
182 AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(
183 AAIObjectType.ALLOTTED_RESOURCE,
184 execution.getVariable("globalSubscriberId"),
185 execution.getVariable("subscriptionServiceType"),
186 sliceParams.suggestNsiId,
189 client.connect(allottedResourceUri, nsiServiceUri)
196 void updateRelationship(DelegateExecution execution) {
197 logger.debug("Enter update relationship in DoAllocateNSIandNSSI()")
198 //todo: allottedResourceId
199 String allottedResourceId = execution.getVariable("allottedResourceId")
200 //Need to check whether nsi exist : Begin
202 SliceTaskParamsAdapter sliceParams =
203 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
205 String nsiServiceInstanceID = sliceParams.getSuggestNsiId()
206 //sliceParams.setServiceId(nsiServiceInstanceID)
208 AAIResourceUri nsiServiceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
209 execution.getVariable("globalSubscriberId"),
210 execution.getVariable("subscriptionServiceType"),
211 nsiServiceInstanceID)
214 AAIResultWrapper wrapper = client.get(nsiServiceUri, NotFoundException.class)
215 Optional<ServiceInstance> si = wrapper.asBean(ServiceInstance.class)
217 if (!si.ifPresent()) {
218 String msg = "NSI suggested in the option doesn't exist. " + nsiServiceInstanceID
220 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
223 AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(
224 AAIObjectType.ALLOTTED_RESOURCE,
225 execution.getVariable("globalSubscriberId"),
226 execution.getVariable("subscriptionServiceType"),
227 sliceParams.suggestNsiId, //nsiId
230 client.connect(allottedResourceUri, nsiServiceUri)
232 execution.setVariable("sliceTaskParams", sliceParams)
233 }catch(BpmnError e) {
235 }catch (Exception ex){
236 String msg = "NSI suggested in the option doesn't exist. " + nsiServiceInstanceID
238 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
240 logger.debug("Exit update relationship in DoAllocateNSIandNSSI()")
244 * create RAN Slice Profile Instance
247 void createAnSliceProfileInstance(DelegateExecution execution) {
249 String globalSubscriberId = execution.getVariable("globalSubscriberId")
250 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
251 String serviceInstanceId = UUID.randomUUID().toString()
252 execution.setVariable("ranSliceProfileInstanceId", serviceInstanceId) //todo:
254 String serviceType = ""
255 String serviceRole = "slice-profile"
256 String oStatus = "deactivated"
258 SliceTaskParamsAdapter sliceParams =
259 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
260 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
261 sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
263 // create slice profile
264 ServiceInstance rspi = new ServiceInstance()
265 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
266 rspi.setServiceType(serviceType)
267 rspi.setServiceRole(serviceRole)
268 rspi.setOrchestrationStatus(oStatus)
269 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
270 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
271 rspi.setInputParameters(uuiRequest)
272 rspi.setWorkloadContext(useInterval)
273 rspi.setEnvironmentContext(sNSSAI_id)
275 //timestamp format YYYY-MM-DD hh:mm:ss
276 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
278 execution.setVariable("communicationServiceInstance", rspi)
280 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
282 subscriptionServiceType,
284 client.create(uri, rspi)
286 execution.setVariable("sliceTaskParams", sliceParams)
290 * create An Slice Profile
293 void createAnSliceProfile(DelegateExecution execution) {
295 String globalSubscriberId = execution.getVariable("globalSubscriberId")
296 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
297 //String serviceInstanceId = execution.getVariable("ranSliceProfileInstanceId")
299 SliceTaskParamsAdapter sliceParams =
300 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
301 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
302 AnSliceProfile anSliceProfile = sliceTaskInfo.sliceProfile
304 String profileId = UUID.randomUUID().toString()
305 anSliceProfile.setSliceProfileId(profileId)
307 SliceProfile sliceProfile = new SliceProfile()
308 sliceProfile.setProfileId(profileId)
309 sliceProfile.setCoverageAreaTAList(anSliceProfile.coverageAreaTAList as String)
311 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
313 subscriptionServiceType,
314 sliceTaskInfo.sliceInstanceId,
317 client.create(uri, sliceProfile)
318 execution.setVariable("sliceTaskParams", sliceParams)
322 * prepare AllocateAnNssi
325 void prepareAllocateAnNssi(DelegateExecution execution) {
328 SliceTaskParamsAdapter sliceParams =
329 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
330 SliceTaskInfo<AnSliceProfile> sliceTaskInfo = sliceParams.anSliceTaskInfo
332 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
334 AllocateAnNssi allocateAnNssi = new AllocateAnNssi()
335 allocateAnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
336 allocateAnNssi.nssiId = sliceTaskInfo.NSSTInfo.UUID
337 allocateAnNssi.nssiName = sliceTaskInfo.NSSTInfo.name
338 allocateAnNssi.sliceProfile = sliceTaskInfo.sliceProfile
339 allocateAnNssi.nsiInfo.nsiId = sliceParams.suggestNsiId
341 EsrInfo esrInfo = new EsrInfo()
342 //todo: vendor and network
343 esrInfo.setVendor(sliceTaskInfo.getVendor())
344 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
346 String globalSubscriberId = execution.getVariable("globalSubscriberId")
347 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
350 ServiceInfo serviceInfo = new ServiceInfo()
351 serviceInfo.globalSubscriberId = globalSubscriberId
352 serviceInfo.subscriptionServiceType = subscriptionServiceType
353 serviceInfo.nsiId = sliceParams.suggestNsiId
354 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
355 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
357 nbiRequest.setServiceInfo(serviceInfo)
358 nbiRequest.setEsrInfo(esrInfo)
359 nbiRequest.setAllocateAnNssi(allocateAnNssi)
361 execution.setVariable("AnAllocateNssiNbiRequest", nbiRequest)
362 execution.setVariable("anBHSliceTaskInfo", sliceTaskInfo)
367 * create RAN Slice Profile Instance
370 void createCnSliceProfileInstance(DelegateExecution execution) {
372 String globalSubscriberId = execution.getVariable("globalSubscriberId")
373 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
374 String serviceInstanceId = UUID.randomUUID().toString()
375 execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
377 String serviceType = ""
378 String serviceRole = "slice-profile"
379 String oStatus = "deactivated"
381 SliceTaskParamsAdapter sliceParams =
382 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
383 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
384 sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
386 // create slice profile
387 ServiceInstance rspi = new ServiceInstance()
388 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
389 rspi.setServiceType(serviceType)
390 rspi.setServiceRole(serviceRole)
391 rspi.setOrchestrationStatus(oStatus)
392 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
393 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
394 rspi.setInputParameters(uuiRequest)
395 rspi.setWorkloadContext(useInterval)
396 rspi.setEnvironmentContext(sNSSAI_id)
398 //timestamp format YYYY-MM-DD hh:mm:ss
399 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
401 execution.setVariable("communicationServiceInstance", rspi)
403 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
405 subscriptionServiceType,
407 client.create(uri, rspi)
408 execution.setVariable("sliceTaskParams", sliceParams)
412 * create An Slice Profile
415 void createCnSliceProfile(DelegateExecution execution) {
417 String globalSubscriberId = execution.getVariable("globalSubscriberId")
418 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
419 //String serviceInstanceId = execution.getVariable("ranSliceProfileInstanceId")
421 SliceTaskParamsAdapter sliceParams =
422 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
424 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
425 CnSliceProfile cnSliceProfile = sliceTaskInfo.sliceProfile
427 String profileId = UUID.randomUUID().toString()
428 cnSliceProfile.setSliceProfileId(profileId)
430 SliceProfile sliceProfile = new SliceProfile()
431 sliceProfile.setProfileId(profileId)
432 sliceProfile.setCoverageAreaTAList(cnSliceProfile.coverageAreaTAList as String)
434 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
436 subscriptionServiceType,
437 sliceTaskInfo.sliceInstanceId,
440 client.create(uri, sliceProfile)
441 execution.setVariable("sliceTaskParams", sliceParams)
445 * prepare AllocateCnNssi
448 void prepareAllocateCnNssi(DelegateExecution execution) {
451 SliceTaskParamsAdapter sliceParams =
452 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
453 SliceTaskInfo<CnSliceProfile> sliceTaskInfo = sliceParams.cnSliceTaskInfo
455 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
457 AllocateCnNssi allocateCnNssi = new AllocateCnNssi()
458 allocateCnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
459 allocateCnNssi.nssiId = sliceTaskInfo.NSSTInfo.UUID
460 allocateCnNssi.nssiName = sliceTaskInfo.NSSTInfo.name
461 allocateCnNssi.sliceProfile = sliceTaskInfo.sliceProfile
462 allocateCnNssi.nsiInfo.nsiId = sliceParams.suggestNsiId
464 EsrInfo esrInfo = new EsrInfo()
465 //todo: vendor and network
466 esrInfo.setVendor(sliceTaskInfo.getVendor())
467 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
469 String globalSubscriberId = execution.getVariable("globalSubscriberId")
470 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
473 ServiceInfo serviceInfo = new ServiceInfo()
474 serviceInfo.globalSubscriberId = globalSubscriberId
475 serviceInfo.subscriptionServiceType = subscriptionServiceType
476 serviceInfo.nsiId = sliceParams.suggestNsiId
477 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
478 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
480 nbiRequest.setServiceInfo(serviceInfo)
481 nbiRequest.setEsrInfo(esrInfo)
482 nbiRequest.setAllocateCnNssi(allocateCnNssi)
484 execution.setVariable("CnAllocateNssiNbiRequest", nbiRequest)
485 execution.setVariable("cnSliceTaskInfo", sliceTaskInfo)
490 * create TN Slice Profile Instance
493 void createTnBHSliceProfileInstance(DelegateExecution execution) {
494 String globalSubscriberId = execution.getVariable("globalSubscriberId")
495 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
497 String serviceType = ""
498 String serviceRole = "slice-profile"
499 String oStatus = "deactivated"
501 SliceTaskParamsAdapter sliceParams =
502 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
504 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
505 String serviceInstanceId = UUID.randomUUID().toString()
507 sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
508 //execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
510 // create slice profile
511 ServiceInstance rspi = new ServiceInstance()
512 rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
513 rspi.setServiceType(serviceType)
514 rspi.setServiceRole(serviceRole)
515 rspi.setOrchestrationStatus(oStatus)
516 rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
517 rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
518 rspi.setInputParameters(uuiRequest)
519 rspi.setWorkloadContext(useInterval)
520 rspi.setEnvironmentContext(sNSSAI_id)
522 //timestamp format YYYY-MM-DD hh:mm:ss
523 rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
525 execution.setVariable("communicationServiceInstance", rspi)
527 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
529 subscriptionServiceType,
531 client.create(uri, rspi)
533 execution.setVariable("sliceTaskParams", sliceParams)
537 * create An Slice Profile
540 void createTnBHSliceProfile(DelegateExecution execution) {
542 String globalSubscriberId = execution.getVariable("globalSubscriberId")
543 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
545 SliceTaskParamsAdapter sliceParams =
546 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
548 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
550 TnSliceProfile tnSliceProfile = sliceTaskInfo.sliceProfile
551 String profileId = UUID.randomUUID().toString()
552 tnSliceProfile.setSliceProfileId(profileId)
554 SliceProfile sliceProfile = new SliceProfile()
555 sliceProfile.setProfileId(profileId)
557 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SLICE_PROFILE,
559 subscriptionServiceType,
560 sliceTaskInfo.sliceInstanceId,
563 client.create(uri, sliceProfile)
565 execution.setVariable("sliceTaskParams", sliceParams)
569 * prepare AllocateCnNssi
572 void prepareAllocateTnBHNssi(DelegateExecution execution) {
575 SliceTaskParamsAdapter sliceParams =
576 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
577 SliceTaskInfo<TnSliceProfile> sliceTaskInfo = sliceParams.tnBHSliceTaskInfo
579 NssmfAdapterNBIRequest nbiRequest = new NssmfAdapterNBIRequest()
581 AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
582 //todo: AllocateTnNssi
583 allocateTnNssi.setTransportSliceNetworks()
584 allocateTnNssi.setNetworkSliceInfos()
587 //allocateTnNssi.networkSliceInfos
589 EsrInfo esrInfo = new EsrInfo()
590 esrInfo.setVendor(sliceTaskInfo.getVendor())
591 esrInfo.setNetworkType(sliceTaskInfo.getNetworkType())
593 String globalSubscriberId = execution.getVariable("globalSubscriberId")
594 String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
596 ServiceInfo serviceInfo = new ServiceInfo()
597 serviceInfo.globalSubscriberId = globalSubscriberId
598 serviceInfo.subscriptionServiceType = subscriptionServiceType
599 serviceInfo.nsiId = sliceParams.suggestNsiId
600 serviceInfo.serviceInvariantUuid = sliceTaskInfo.NSSTInfo.invariantUUID
601 serviceInfo.serviceUuid = sliceTaskInfo.NSSTInfo.UUID
603 nbiRequest.setServiceInfo(serviceInfo)
604 nbiRequest.setEsrInfo(esrInfo)
605 nbiRequest.setAllocateTnNssi(allocateTnNssi)
607 execution.setVariable("TnBHAllocateNssiNbiRequest", nbiRequest)
608 execution.setVariable("tnBHSliceTaskInfo", sliceTaskInfo)
612 * Update relationship between
614 * 2. Slice Profile and Service Profile
615 * 3. SliceProfile and NSSI
616 * 4. sliceProfile and endpoint
620 public void updateAnRelationship(DelegateExecution execution) {
622 SliceTaskParamsAdapter sliceParams =
623 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
625 ResponseDescriptor result = execution.getVariable("anNssiAllocateResult") as ResponseDescriptor
626 String nssiId = result.getNssiId()
627 String endPointId = result.getEndPointId()
628 String nsiId = sliceParams.getSuggestNsiId()
629 String sliceProfileInstanceId = sliceParams.anSliceTaskInfo.sliceInstanceId
630 String serviceProfileInstanceId = sliceParams.serviceId
633 updateRelationship(execution, nsiId, nssiId)
635 updateRelationship(execution, serviceProfileInstanceId, sliceProfileInstanceId)
637 updateRelationship(execution, sliceProfileInstanceId, nssiId)
639 updateRelationship(execution, sliceProfileInstanceId, endPointId)
645 * Update relationship between
647 * 2. Slice Profile and Service Profile
648 * 3. SliceProfile and NSSI
652 public void updateCnRelationship(DelegateExecution execution) {
654 SliceTaskParamsAdapter sliceParams =
655 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
657 NssiResponse result = execution.getVariable("cnNssiAllocateResult") as NssiResponse
658 String nssiId = result.getNssiId()
659 String nsiId = sliceParams.getSuggestNsiId()
660 String sliceProfileInstanceId = sliceParams.cnSliceTaskInfo.sliceInstanceId
661 String serviceProfileInstanceId = sliceParams.serviceId
664 updateRelationship(execution, nsiId, nssiId)
666 updateRelationship(execution, serviceProfileInstanceId, sliceProfileInstanceId)
668 updateRelationship(execution,sliceProfileInstanceId, nssiId)
674 * Update relationship between
676 * 2. Slice Profile and Service Profile
677 * 3. SliceProfile and NSSI
681 public void updateTnBHRelationship(DelegateExecution execution) {
682 SliceTaskParamsAdapter sliceParams =
683 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
685 NssiResponse result = execution.getVariable("tnBHNssiAllocateResult") as NssiResponse
686 String nssiId = result.getNssiId()
687 String nsiId = sliceParams.getSuggestNsiId()
688 String sliceProfileInstanceId = sliceParams.tnBHSliceTaskInfo.sliceInstanceId
689 String serviceProfileInstanceId = sliceParams.serviceId
692 updateRelationship(execution, nsiId, nssiId)
694 updateRelationship(execution, serviceProfileInstanceId, sliceProfileInstanceId)
696 updateRelationship(execution,sliceProfileInstanceId, nssiId)
700 * sourceId -> targetId
705 void updateRelationship(DelegateExecution execution, String sourceId, String targetId) {
707 Relationship relationship = new Relationship()
709 AAIResourceUri nsiServiceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
710 execution.getVariable("globalSubscriberId"),
711 execution.getVariable("subscriptionServiceType"),
714 logger.info("Creating Allotted resource relationship, nsiServiceUri: " + nsiServiceUri)
716 relationship.setRelatedLink(nsiServiceUri.build().toString())
718 AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
719 execution.getVariable("globalSubscriberId"),
720 execution.getVariable("subscriptionServiceType"),
721 sourceId).relationshipAPI()
722 client.create(uri, relationship)