summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/main/groovy/org
diff options
context:
space:
mode:
authorRob Daugherty <rd472p@att.com>2018-10-12 15:11:07 +0000
committerGerrit Code Review <gerrit@onap.org>2018-10-12 15:11:07 +0000
commitd6c21ac6f38474841d3b9ced0524fe7671ae8682 (patch)
treeac5a12fd0acdc5e0f07fe5089637b7da279e37bc /bpmn/MSOCommonBPMN/src/main/groovy/org
parentea7f1ce7584deb1e4896ffcddb8c45e64422a9d0 (diff)
parent6ba0a22bc952232d14d2d24c5f73a42aae2791a9 (diff)
Merge "Dynamic Cloud Owner Support"
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/main/groovy/org')
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy336
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessor.groovy4
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtils.groovy64
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupName.groovy79
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenant.groovy15
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModule.groovy82
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroup.groovy29
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CustomE2EPutService.groovy283
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModule.groovy103
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy24
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy12
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericGetVnf.groovy275
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericPutService.groovy282
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/NetworkUtils.groovy76
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/PrepareUpdateAAIVfModule.groovy171
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnf.groovy17
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModule.groovy18
17 files changed, 336 insertions, 1534 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
index 3e451a5a4a..2f4e70c893 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AaiUtil.groovy
@@ -19,15 +19,24 @@
*/
package org.onap.so.bpmn.common.scripts
+import java.util.regex.Matcher
+import java.util.regex.Pattern
+
+import javax.ws.rs.core.UriBuilder
+
import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.UrnPropertiesReader;
+import org.onap.so.client.aai.AAIVersion
+import org.onap.so.client.aai.entities.uri.AAIUri
+import org.onap.so.logger.MessageEnum
+import org.onap.so.logger.MsoLogger
+import org.onap.so.openpojo.rules.HasToStringRule
import org.onap.so.rest.APIResponse;
import org.onap.so.rest.RESTClient
import org.onap.so.rest.RESTConfig
-import org.springframework.web.util.UriUtils
-import org.onap.so.logger.MsoLogger
+@Deprecated
class AaiUtil {
private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, AaiUtil.class);
@@ -43,124 +52,13 @@ class AaiUtil {
public AaiUtil(AbstractServiceTaskProcessor taskProcessor) {
this.taskProcessor = taskProcessor
}
- public AaiUtil() {
- }
-
- public String getNetworkGenericVnfEndpoint(DelegateExecution execution) {
- String endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- def uri = getNetworkGenericVnfUri(execution)
- msoLogger.debug('AaiUtil.getNetworkGenericVnfEndpoint() - AAI endpoint: ' + endpoint + uri)
- return endpoint + uri
- }
- public String getNetworkGenericVnfUri(DelegateExecution execution) {
- def uri = getUri(execution, 'generic-vnf')
- msoLogger.debug('AaiUtil.getNetworkGenericVnfUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkVpnBindingUri(DelegateExecution execution) {
- def uri = getUri(execution, 'vpn-binding')
- msoLogger.debug('AaiUtil.getNetworkVpnBindingUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkPolicyUri(DelegateExecution execution) {
- def uri = getUri(execution, 'network-policy')
- msoLogger.debug('AaiUtil.getNetworkPolicyUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkTableReferencesUri(DelegateExecution execution) {
- def uri = getUri(execution, 'route-table-reference')
- msoLogger.debug('AaiUtil.getNetworkTableReferencesUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkVceUri(DelegateExecution execution) {
- def uri = getUri(execution, 'vce')
- msoLogger.debug('AaiUtil.getNetworkVceUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkL3NetworkUri(DelegateExecution execution) {
- def uri = getUri(execution, 'l3-network')
- msoLogger.debug('AaiUtil.getNetworkL3NetworkUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getNetworkDeviceUri(DelegateExecution execution) {
- def uri = getUri(execution, 'device')
- msoLogger.debug('AaiUtil.getNetworkDeviceUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getBusinessCustomerUri(DelegateExecution execution) {
- def uri = getUri(execution, 'customer')
- msoLogger.debug('AaiUtil.getBusinessCustomerUri() - AAI URI: ' + uri)
- return uri
- }
-
public String getBusinessSPPartnerUri(DelegateExecution execution) {
def uri = getUri(execution, 'sp-partner')
msoLogger.debug('AaiUtil.getBusinessSPPartnerUri() - AAI URI: ' + uri)
return uri
}
- public String getAAIServiceInstanceUri(DelegateExecution execution) {
- String uri = getBusinessCustomerUri(execution)
-
- uri = uri +"/" + execution.getVariable("globalSubscriberId") + "/service-subscriptions/service-subscription/" + UriUtils.encode(execution.getVariable("serviceType"),"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(execution.getVariable("serviceInstanceId"),"UTF-8")
-
- msoLogger.debug('AaiUtil.getAAIRequestInputUri() - AAI URI: ' + uri)
- return uri
- }
-
- //public String getBusinessCustomerUriv7(DelegateExecution execution) {
- // //def uri = getUri(execution, BUSINESS_CUSTOMERV7)
- // def uri = getUri(execution, 'Customer')
- // msoLogger.debug('AaiUtil.getBusinessCustomerUriv7() - AAI URI: ' + uri)
- // return uri
- //}
-
- public String getCloudInfrastructureCloudRegionEndpoint(DelegateExecution execution) {
- String endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- def uri = getCloudInfrastructureCloudRegionUri(execution)
- msoLogger.debug('AaiUtil.getCloudInfrastructureCloudRegionEndpoint() - AAI endpoint: ' + endpoint + uri)
- return endpoint + uri
- }
-
- public String getCloudInfrastructureCloudRegionUri(DelegateExecution execution) {
- def uri = getUri(execution, 'cloud-region')
- msoLogger.debug('AaiUtil.getCloudInfrastructureCloudRegionUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getCloudInfrastructureTenantUri(DelegateExecution execution) {
- def uri = getUri(execution, 'tenant')
- msoLogger.debug('AaiUtil.getCloudInfrastructureTenantUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getSearchNodesQueryUri(DelegateExecution execution) {
- def uri = getUri(execution, 'nodes-query')
- msoLogger.debug('AaiUtil.getSearchNodesQueryUri() - AAI URI: ' + uri)
- return uri
- }
-
- public String getSearchNodesQueryEndpoint(DelegateExecution execution) {
- String endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- def uri = getSearchNodesQueryUri(execution)
- msoLogger.debug('AaiUtil.getSearchNodesQueryEndpoint() - AAI endpoint: ' + endpoint + uri)
- return endpoint + uri
- }
-
- public String getSearchGenericQueryUri(DelegateExecution execution) {
- def uri = getUri(execution, 'generic-query')
- msoLogger.debug('AaiUtil.getSearchGenericQueryUri() - AAI URI: ' + uri)
- return uri
- }
-
public String getVersion(DelegateExecution execution, resourceName, processKey) {
def versionWithResourceKey = "mso.workflow.default.aai.${resourceName}.version"
def versionWithProcessKey = "mso.workflow.custom.${processKey}.aai.version"
@@ -186,53 +84,13 @@ class AaiUtil {
(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 9999, "Internal Error: One of the following should be defined in MSO URN properties file: ${versionWithResourceKey}, ${versionWithProcessKey}, ${DEFAULT_VERSION_KEY}")
}
- public String getMainProcessKey(DelegateExecution execution) {
- DelegateExecution exec = execution
-
- while (true) {
- DelegateExecution parent = exec.getSuperExecution()
-
- if (parent == null) {
- parent = exec.getParent()
-
- if (parent == null) {
- break
- }
- }
-
- exec = parent
- }
-
- return execution.getProcessEngineServices().getRepositoryService()
- .getProcessDefinition(exec.getProcessDefinitionId()).getKey()
+ public String createAaiUri(AAIUri uri) {
+ return createAaiUri(AAIVersion.valueOf('V' + UrnPropertiesReader.getVariable(DEFAULT_VERSION_KEY)), uri)
}
-
- public String getUri(DelegateExecution execution, resourceName) {
-
- def processKey = getMainProcessKey(execution)
-
- //set namespace
- setNamespace(execution)
-
- // Check for flow+resource specific first
- def key = "mso.workflow.${processKey}.aai.${resourceName}.uri"
- def uri = UrnPropertiesReader.getVariable(key, execution)
- if(uri) {
- msoLogger.debug("AaiUtil.getUri() - using flow+resource specific key: ${key}=${uri}")
- return uri
- }
-
- // Check for versioned key
- def version = getVersion(execution, resourceName, processKey)
- key = "mso.workflow.default.aai.v${version}.${resourceName}.uri"
- uri = UrnPropertiesReader.getVariable(key, execution)
-
- if(uri) {
- msoLogger.debug("AaiUtil.getUri() - using versioned URI key: ${key}=${uri}")
- return uri
- }
-
- (new ExceptionUtil()).buildAndThrowWorkflowException(execution, 9999, 'Internal Error: AAI URI entry for ' + key + ' not defined in the MSO URN properties file')
+ public String createAaiUri(AAIVersion version, AAIUri uri) {
+ String endpoint = UrnPropertiesReader.getVariable("aai.endpoint")
+ String result = UriBuilder.fromUri(endpoint).path('aai').path(version.toString()).build().toString()
+ return UriBuilder.fromUri(result + uri.build().toString()).build().toString()
}
public String setNamespace(DelegateExecution execution) {
@@ -243,6 +101,18 @@ class AaiUtil {
}
}
+ public String getNamespace() {
+ return getNamespace(AAIVersion.valueOf('V' + UrnPropertiesReader.getVariable(DEFAULT_VERSION_KEY)))
+ }
+
+ public String getNamespace(AAIVersion version) {
+ String namespace = UrnPropertiesReader.getVariable(AAI_NAMESPACE_STRING_KEY)
+ if (namespace == null) {
+ throw new Exception('Internal Error: AAI Namespace has not been set yet. A getUri() method needs to be invoked first.')
+ }
+
+ return namespace + version
+ }
/**
* This method can be used for getting the building namespace out of uri.
* NOTE: A getUri() method needs to be invoked first.
@@ -253,12 +123,11 @@ class AaiUtil {
*
* @return namespace
*/
-
public String getNamespaceFromUri(String uri) {
- if (aaiNamespace == null) {
+ String namespace = UrnPropertiesReader.getVariable(AAI_NAMESPACE_STRING_KEY)
+ if (namespace == null) {
throw new Exception('Internal Error: AAI Namespace has not been set yet. A getUri() method needs to be invoked first.')
}
- String namespace = aaiNamespace
if(uri!=null){
String version = getVersionFromUri(uri)
return namespace + "v"+version
@@ -296,16 +165,13 @@ class AaiUtil {
* @return version
*/
private String getVersionFromUri(String uri) {
- def version = ""
- def savedVersion = ""
- for (int x=2; x<6; x++) {
- version = uri.substring(uri.indexOf("v")+1, uri.indexOf("v")+x)
- if (!Character.isDigit(version.charAt(version.size()-1))) {
- break
- }
- savedVersion = version
+
+ Matcher versionRegEx = Pattern.compile("/v(\\d+)").matcher(uri)
+ if (versionRegEx.find()) {
+ return versionRegEx.group(1);
}
- return savedVersion
+
+ return "";
}
@@ -336,7 +202,7 @@ class AaiUtil {
if (basicAuthCred != null && !"".equals(basicAuthCred)) {
client.addAuthorizationHeader(basicAuthCred)
}
- apiResponse = client.get()
+ apiResponse = client.httpGet()
msoLogger.trace("COMPLETED Execute AAI Get Process ")
}catch(Exception e){
@@ -682,129 +548,5 @@ class AaiUtil {
return 0
}
}
+}
- private def getPInterface(DelegateExecution execution, String aai_uri) {
-
- String namespace = getNamespaceFromUri(execution, aai_uri)
- String aai_endpoint = execution.getVariable("URN_aai_endpoint")
- String serviceAaiPath = aai_endpoint + aai_uri
-
- APIResponse response = executeAAIGetCall(execution, serviceAaiPath)
- return new XmlParser().parseText(response.getResponseBodyAsString())
- }
-
- // This method checks if interface is remote
- private def isPInterfaceRemote(DelegateExecution execution, String uri) {
- if(uri.contains("ext-aai-network")) {
- return true
- } else {
- return false
- }
- }
-
- // This method returns Local and remote TPs information from AAI
- public Map getTPsfromAAI(DelegateExecution execution) {
- Map tpInfo = [:]
-
- String aai_uri = '/aai/v14/network/logical-links'
-
- String aai_endpoint = execution.getVariable("URN_aai_endpoint")
- String serviceAaiPath = aai_endpoint + aai_uri
-
- APIResponse response = executeAAIGetCall(execution, serviceAaiPath)
-
- def logicalLinks = new XmlParser().parseText(response.getResponseBodyAsString())
-
- logicalLinks."logical-link".each { link ->
- def isRemoteLink = false
- def pInterfaces = []
- def relationship = link."relationship-list"."relationship"
- relationship.each { rel ->
- if ("ext-aai-network".compareToIgnoreCase("${rel."related-to"[0]?.text()}") == 0) {
- isRemoteLink = true
- }
- if ("p-interface".compareToIgnoreCase("${rel."related-to"[0]?.text()}") == 0) {
- pInterfaces.add(rel)
- }
- }
-
- // if remote link then process
- if (isRemoteLink) {
-
- // find remote p interface
- def localTP = null
- def remoteTP = null
-
- def pInterface0 = pInterfaces[0]
- def pIntfUrl = "${pInterface0."related-link"[0].text()}"
-
- if (isRemotePInterface(execution, pIntfUrl)) {
- remoteTP = pInterfaces[0]
- localTP = pInterfaces[1]
- } else {
- localTP = pInterfaces[0]
- remoteTP = pInterfaces[1]
- }
-
- if (localTP != null && remoteTP != null) {
-
- // give local tp
- def tpUrl = "${localTP."related-link"[0]?.text()}"
- def intfLocal = getPInterface(execution, "${localTP?."related-link"[0]?.text()}")
- tpInfo.put("local-access-node-id", tpUrl.split("/")[6])
-
- def networkRef = "${intfLocal."network-ref"[0]?.text()}".split("/")
- if (networkRef.size() == 6) {
- tpInfo.put("local-access-provider-id", networkRef[1])
- tpInfo.put("local-access-client-id", networkRef[3])
- tpInfo.put("local-access-topology-id", networkRef[5])
- }
- def ltpIdStr = tpUrl?.substring(tpUrl?.lastIndexOf("/") + 1)
- if (ltpIdStr?.contains("-")) {
- tpInfo.put("local-access-ltp-id", ltpIdStr?.substring(ltpIdStr?.lastIndexOf("-") + 1))
- }
-
- // give remote tp
- tpUrl = "${remoteTP."related-link"[0]?.text()}"
- def intfRemote = getPInterface(execution, "${remoteTP."related-link"[0].text()}")
- tpInfo.put("remote-access-node-id", tpUrl.split("/")[6])
-
- def networkRefRemote = "${intfRemote."network-ref"[0]?.text()}".split("/")
-
- if (networkRefRemote.size() == 6) {
- tpInfo.put("remote-access-provider-id", networkRefRemote[1])
- tpInfo.put("remote-access-client-id", networkRefRemote[3])
- tpInfo.put("remote-access-topology-id", networkRefRemote[5])
- }
- def ltpIdStrR = tpUrl?.substring(tpUrl?.lastIndexOf("/") + 1)
- if (ltpIdStrR?.contains("-")) {
- tpInfo.put("remote-access-ltp-id", ltpIdStrR?.substring(ltpIdStr?.lastIndexOf("-") + 1))
- }
- return tpInfo
- }
- }
-
- }
- return tpInfo
- }
-
- // this method check if pInterface is remote
- private def isRemotePInterface(DelegateExecution execution, String uri) {
- def aai_uri = uri.substring(0, uri.indexOf("/p-interfaces"))
-
- String namespace = getNamespaceFromUri(execution, aai_uri)
- String aai_endpoint = execution.getVariable("URN_aai_endpoint")
- String serviceAaiPath = aai_endpoint + aai_uri
-
- APIResponse response = executeAAIGetCall(execution, serviceAaiPath)
- def pnf = new XmlParser().parseText(response.getResponseBodyAsString())
-
- def relationship = pnf."relationship-list"."relationship"
- relationship.each {
- if ("ext-aai-network".compareToIgnoreCase("${it."related-to"[0]?.text()}") == 0) {
- return true
- }
- }
- return false
- }
-} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessor.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessor.groovy
index 0692e5022a..9e71313e09 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessor.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessor.groovy
@@ -32,6 +32,7 @@ import org.onap.so.bpmn.common.workflow.context.WorkflowCallbackResponse
import org.onap.so.bpmn.common.workflow.context.WorkflowContextHolder
import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIResourcesClient
import org.springframework.web.util.UriUtils
public abstract class AbstractServiceTaskProcessor implements ServiceTaskProcessor {
@@ -763,4 +764,7 @@ public abstract class AbstractServiceTaskProcessor implements ServiceTaskProcess
(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
}
}
+ public AAIResourcesClient getAAIClient(){
+ return new AAIResourcesClient();
+ }
} \ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtils.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtils.groovy
index b054c0f934..e4bc5f8fa2 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtils.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtils.groovy
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,11 +22,17 @@ package org.onap.so.bpmn.common.scripts
import static org.apache.commons.lang3.StringUtils.*;
+import javax.ws.rs.NotFoundException
+
import org.apache.commons.lang3.*
import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.onap.so.bpmn.core.UrnPropertiesReader
import org.onap.so.bpmn.core.WorkflowException
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
import org.onap.so.logger.MessageEnum
import org.onap.so.logger.MsoLogger
import org.onap.so.rest.APIResponse;
@@ -102,7 +108,7 @@ class AllottedResourceUtils {
// setsVariable aaiARGetResponse
public String getARbyId (DelegateExecution execution, String allottedResourceId) {
msoLogger.trace("getARbyId ")
- String arLink = getARLinkbyId(execution, allottedResourceId)
+ AAIResourceUri arLink = getARLinkbyId(execution, allottedResourceId)
String ar = null
if (!isBlank(arLink))
{
@@ -111,7 +117,7 @@ class AllottedResourceUtils {
msoLogger.trace(" Exit GetARbyId - AR:" + ar)
return ar;
}
-
+
public String getPSIFmARLink(DelegateExecution execution, String arLink)
{
// Path: /aai/{version}/business/customers/customer/{cust}/service-subscriptions/service-subscription/{subs}/service-instances/service-instance/{psiid}/allotted-resources/allotted-resource/{arid}
@@ -129,39 +135,17 @@ class AllottedResourceUtils {
msoLogger.trace("getARLinkbyId ")
String arLink = null
try {
- AaiUtil aaiUriUtil = new AaiUtil(taskProcessor)
- String aaiNQUri = aaiUriUtil.getSearchNodesQueryEndpoint(execution)
- String aaiEndpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- String aaiUrl = "${aaiNQUri}?search-node-type=allotted-resource&filter=id:EQUALS:${allottedResourceId}"
-
- msoLogger.debug("getARLinkbyId url: \n" + aaiUrl)
-
- APIResponse response = aaiUriUtil.executeAAIGetCall(execution, aaiUrl)
- int responseCode = response.getStatusCode()
- msoLogger.debug(" GET AR response code is: " + responseCode)
-
- String aaiResponse = response.getResponseBodyAsString()
- msoLogger.debug("GET AR:" + aaiResponse)
- if(responseCode == 200 || responseCode == 202){
- msoLogger.debug("GET AR Received a Good Response Code")
- if(utils.nodeExists(aaiResponse, "result-data")){
- msoLogger.debug("Query for AllottedResource Url Response Does Contain Data" )
- arLink = utils.getNodeText(aaiResponse, "resource-link")
- }else{
- msoLogger.debug("GET AR Response Does NOT Contain Data" )
- }
- }else if(responseCode == 404){
- msoLogger.debug("GET AR received a Not Found (404) Response")
- }
- else{
- msoLogger.debug(" GET AR received a Bad Response: \n" + aaiResponse)
- buildAAIErrorResponse(execution, aaiResponse, "Error retrieving AR from AAI")
- }
- }catch(Exception e){
+ AAIResourcesClient client = new AAIResourcesClient()
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.ALLOTTED_RESOURCE, allottedResourceId)
+ AaiUtil aaiUtil = new AaiUtil()
+ arLink = aaiUtil.createAaiUri(uri)
+ } catch (NotFoundException e) {
+ msoLogger.debug("GET AR received a Not Found (404) Response")
+ } catch(Exception e){
msoLogger.debug(" Error encountered within GetAaiAR" + e.getMessage())
exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error in GetARbyId" + e.getMessage())
}
- msoLogger.trace(" Exit GetARLinkbyId - Link:" + arLink)
+ msoLogger.debug(" ***** Exit GetARLinkbyId ***** Link:" + arLink)
return arLink
}
@@ -185,7 +169,7 @@ class AllottedResourceUtils {
}
arUrl = "${aai_endpoint}" + arEndpoint
-
+
msoLogger.debug("GET AR Aai Path is: \n" + arUrl)
APIResponse response = aaiUriUtil.executeAAIGetCall(execution, arUrl)
@@ -229,13 +213,13 @@ class AllottedResourceUtils {
{
execution.setVariable("aaiARGetResponse", ar)
execution.setVariable("aaiARPath", arUrl)
-
+
String resourceVersion = null
if (utils.nodeExists(ar, "resource-version")) {
resourceVersion = utils.getNodeText(ar, "resource-version")
execution.setVariable("aaiARResourceVersion", resourceVersion)
}
-
+
String orchStatus = null
if (utils.nodeExists(ar, "orchestration-status")) {
orchStatus= utils.getNodeText(ar, "orchestration-status")
@@ -285,7 +269,7 @@ class AllottedResourceUtils {
}
msoLogger.trace("Exit updateAROrchStatus ")
}
-
+
//Sets Variable "wasDeleted"
public void deleteAR(DelegateExecution execution, String aaiARPath){
msoLogger.trace(" deleteAR - aaiARPath:" + aaiARPath)
@@ -294,14 +278,14 @@ class AllottedResourceUtils {
APIResponse response = aaiUriUtil.executeAAIDeleteCall(execution, aaiARPath)
int responseCode = response.getStatusCode()
execution.setVariable("deleteARResponseCode", responseCode)
-
+
msoLogger.debug(" Delete AR response code:" + responseCode)
String aaiResponse = response.getResponseBodyAsString()
execution.setVariable("aaiARDeleteResponse", aaiResponse)
msoLogger.debug("Delete AR Response:" + aaiResponse)
-
+
//Process Response
if(responseCode == 204){
msoLogger.debug(" Delete AR Received a Good Response")
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupName.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupName.groovy
index bcd740eae9..c309c3bb68 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupName.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupName.groovy
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,15 +19,20 @@
*/
package org.onap.so.bpmn.common.scripts
+import javax.ws.rs.core.UriBuilder
+
import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import org.onap.so.rest.APIResponse
+import org.onap.aai.domain.yang.VolumeGroup
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.constants.Defaults
import org.onap.so.logger.MessageEnum
import org.onap.so.logger.MsoLogger
public class ConfirmVolumeGroupName extends AbstractServiceTaskProcessor{
private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, ConfirmVolumeGroupName.class);
-
+
def Prefix="CVGN_"
ExceptionUtil exceptionUtil = new ExceptionUtil()
@@ -37,7 +42,7 @@ public class ConfirmVolumeGroupName extends AbstractServiceTaskProcessor{
execution.setVariable("CVGN_volumeGroupName",null)
execution.setVariable("CVGN_aicCloudRegion", null)
execution.setVariable("CVGN_volumeGroupGetEndpoint",null)
-
+
// ConfirmVolumeGroupName workflow response variable placeholders
execution.setVariable("CVGN_volumeGroupNameMatches", false)
execution.setVariable("CVGN_queryVolumeGroupResponseCode",null)
@@ -51,43 +56,31 @@ public class ConfirmVolumeGroupName extends AbstractServiceTaskProcessor{
def volumeGroupId = execution.getVariable("ConfirmVolumeGroupName_volumeGroupId")
def volumeGroupName= execution.getVariable("ConfirmVolumeGroupName_volumeGroupName")
def aicCloudRegion = execution.getVariable("ConfirmVolumeGroupName_aicCloudRegion")
-
+
initProcessVariables(execution)
execution.setVariable("CVGN_volumeGroupId", volumeGroupId)
execution.setVariable("CVGN_volumeGroupName", volumeGroupName)
execution.setVariable("CVGN_aicCloudRegion", aicCloudRegion)
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getCloudInfrastructureCloudRegionUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- msoLogger.debug("AAI URI: " + aai_uri)
- execution.setVariable("CVGN_volumeGroupGetEndpoint","${aai_uri}/${aicCloudRegion}/volume-groups/volume-group/" +
- volumeGroupId)
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER.toString(), aicCloudRegion, volumeGroupId)
+ execution.setVariable("CVGN_volumeGroupGetEndpoint", uri)
}
-
+
// send a GET request to AA&I to retrieve the Volume information based on volume-group-id
// expect a 200 response with the information in the response body or a 404 if the volume group id does not exist
public void queryAAIForVolumeGroupId(DelegateExecution execution) {
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("CVGN_volumeGroupGetEndpoint")
-
+ AAIResourceUri resourceUri = execution.getVariable("CVGN_volumeGroupGetEndpoint")
+
try {
- msoLogger.debug("invoking GET call to AAI endpoint :"+System.lineSeparator()+endPoint)
- msoLogger.debug("queryAAIForVolumeGroupId() endpoint-" + endPoint)
- msoLogger.debug("ConfirmVolumeGroup sending GET call to AAI Endpoint: " + endPoint)
-
- AaiUtil aaiUtil = new AaiUtil(this)
- APIResponse response = aaiUtil.executeAAIGetCall(execution, endPoint)
- def responseData = response.getResponseBodyAsString()
- def responseStatusCode = response.getStatusCode()
- execution.setVariable("CVGN_queryVolumeGroupResponseCode", responseStatusCode)
- execution.setVariable("CVGN_queryVolumeGroupResponse", responseData)
-
- msoLogger.debug("Response code:" + responseStatusCode)
- msoLogger.debug("Response:" + responseData)
- msoLogger.debug("Response code:" + responseStatusCode)
- msoLogger.debug("Response:" + System.lineSeparator()+responseData)
+ Optional<VolumeGroup> volumeGroupOp = getAAIClient().get(VolumeGroup.class, resourceUri)
+ if(volumeGroupOp.isPresent()){
+ execution.setVariable("CVGN_queryVolumeGroupResponseCode", 200)
+ execution.setVariable("CVGN_queryVolumeGroupResponse", volumeGroupOp.get())
+ }else{
+ execution.setVariable("CVGN_queryVolumeGroupResponseCode", 404)
+ execution.setVariable("CVGN_queryVolumeGroupResponse", "Volume Group not Found!")
+ }
} catch (Exception ex) {
- // ex.printStackTrace()
msoLogger.debug("Exception occurred while executing AAI GET:" + ex.getMessage())
execution.setVariable("CVGN_queryVolumeGroupResponseCode", 500)
execution.setVariable("CVGN_queryVolumeGroupResponse", "AAI GET Failed:" + ex.getMessage())
@@ -100,17 +93,17 @@ public class ConfirmVolumeGroupName extends AbstractServiceTaskProcessor{
public void checkAAIQueryResult(DelegateExecution execution) {
def result = execution.getVariable("CVGN_queryVolumeGroupResponse")
- if (execution.getVariable("CVGN_queryVolumeGroupResponseCode") == 404) {
+ def actualVolumeGroupName = ""
+ if (execution.getVariable("CVGN_queryVolumeGroupResponseCode") == 404) {
msoLogger.debug('volumeGroupId does not exist in AAI')
}
else if (execution.getVariable("CVGN_queryVolumeGroupResponseCode") == 200) {
+ VolumeGroup volumeGroup = execution.getVariable("CVGN_queryVolumeGroupResponse")
+ if(volumeGroup.getVolumeGroupName()!=null){
+ actualVolumeGroupName = volumeGroup.getVolumeGroupName()
+ }
msoLogger.debug("volumeGroupId exists in AAI")
}
- def xml = execution.getVariable("CVGN_queryVolumeGroupResponse")
- def actualVolumeGroupName = ""
- if (utils.nodeExists(xml, "volume-group-name")) {
- actualVolumeGroupName = utils.getNodeText(xml, "volume-group-name")
- }
execution.setVariable("CVGN_volumeGroupNameMatches", false)
def volumeGroupName = execution.getVariable("CVGN_volumeGroupName")
@@ -134,4 +127,10 @@ public class ConfirmVolumeGroupName extends AbstractServiceTaskProcessor{
exceptionUtil.buildAndThrowWorkflowException(execution, 1002, errorNotAssociated)
}
-} \ No newline at end of file
+ // sends a successful WorkflowResponse
+ public void reportSuccess(DelegateExecution execution) {
+ msoLogger.debug("Sending 200 back to the caller")
+ def responseXML = ""
+ execution.setVariable("WorkflowResponse", responseXML)
+ }
+}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenant.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenant.groovy
index c0ed81c553..13904c372d 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenant.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenant.groovy
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -37,6 +37,10 @@ import org.w3c.dom.NodeList
import org.xml.sax.InputSource
import org.onap.so.logger.MessageEnum
import org.onap.so.logger.MsoLogger
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.constants.Defaults
/**
* Vnf Module Subflow for confirming the volume group belongs
@@ -63,13 +67,10 @@ class ConfirmVolumeGroupTenant extends AbstractServiceTaskProcessor{
String incomingGroupName = execution.getVariable("volumeGroupName")
String incomingTenantId = execution.getVariable("tenantId")
def aicCloudRegion = execution.getVariable("aicCloudRegion")
- String aai = UrnPropertiesReader.getVariable("aai.endpoint", execution)
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getCloudInfrastructureCloudRegionUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
-
- String path = aai + "${aai_uri}/${aicCloudRegion}/volume-groups/volume-group/" + volumeGroupId
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER.toString(), aicCloudRegion, volumeGroupId)
+ String path = aaiUriUtil.createAaiUri(uri)
APIResponse queryAAIForVolumeGroupResponse = aaiUriUtil.executeAAIGetCall(execution, path)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModule.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModule.groovy
index 84dd70682d..3bbc4bd110 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModule.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModule.groovy
@@ -22,6 +22,10 @@ package org.onap.so.bpmn.common.scripts
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.RollbackData
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.client.graphinventory.entities.uri.Depth
import org.onap.so.logger.MessageEnum
import org.onap.so.logger.MsoLogger
import org.onap.so.rest.APIResponse
@@ -67,8 +71,6 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
execution.setVariable("CAAIVfMod_deleteGenericVnfResponse","")
execution.setVariable("CAAIVfMod_deleteVfModuleResponseCode",null)
execution.setVariable("CAAIVfMod_deleteVfModuleResponse","")
-// execution.setVariable("CAAIVfMod_ResponseCode",null)
-// execution.setVariable("CAAIVfMod_ErrorResponse","")
execution.setVariable("CreateAAIVfModuleResponse","")
execution.setVariable("RollbackData", null)
@@ -158,38 +160,38 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
execution.setVariable("CAAIVfMod_moduleModelName",execution.getVariable("vfModuleModelName"))
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String aaiNamespace = aaiUriUtil.getNamespaceFromUri(execution, aai_uri)
+ String aaiNamespace = aaiUriUtil.getNamespace()
msoLogger.debug('AAI namespace is: ' + aaiNamespace)
-
- execution.setVariable("CAAIVfMod_aaiNamespace","${aaiNamespace}")
- if (vnfId == null || vnfId.isEmpty()) {
- // TBD - assert that the vnfName is not empty
- execution.setVariable("CAAIVfMod_genericVnfGetEndpoint",
- "${aai_uri}/?vnf-name=" +
- UriUtils.encode(vnfName,"UTF-8") + "&depth=1")
- } else {
- execution.setVariable("CAAIVfMod_genericVnfGetEndpoint",
- "${aai_uri}/" + UriUtils.encode(vnfId,"UTF-8") + "?depth=1")
- }
+ execution.setVariable("CAAIVfMod_aaiNamespace","${aaiNamespace}")
- msoLogger.debug("CreateAAIVfModule VNF PUT Endpoint: ${aai_uri}/")
- execution.setVariable("CAAIVfMod_genericVnfPutEndpoint","${aai_uri}/")
}
// send a GET request to AA&I to retrieve the Generic VNF/VF Module information based on a Vnf Name
// expect a 200 response with the information in the response body or a 404 if the Generic VNF does not exist
public void queryAAIForGenericVnf(DelegateExecution execution) {
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("CAAIVfMod_genericVnfGetEndpoint")
+
+ AaiUtil aaiUtil = new AaiUtil(this)
+ AAIResourceUri uri
+
+ def vnfId = execution.getVariable("CAAIVfMod_vnfId")
+ def vnfName = execution.getVariable("CAAIVfMod_vnfName")
+
+ if (vnfId == null || vnfId.isEmpty()) {
+ uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "")
+ uri.queryParam("vnf-name", vnfName)
+ } else {
+ uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ }
+
+ uri.depth(Depth.ONE)
+ String endPoint = aaiUtil.createAaiUri(uri)
try {
msoLogger.debug("queryAAIForGenericVnf() endpoint-" + endPoint)
msoLogger.debug("invoking GET call to AAI endpoint :"+System.lineSeparator()+endPoint)
msoLogger.debug("CreateAAIVfModule sending GET call to AAI Endpoint: " + endPoint)
- AaiUtil aaiUtil = new AaiUtil(this)
APIResponse response = aaiUtil.executeAAIGetCall(execution, endPoint)
def responseData = response.getResponseBodyAsString()
def statusCode = response.getStatusCode()
@@ -238,18 +240,8 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
public void createGenericVnf(DelegateExecution execution) {
// TBD - is this how we want to generate the Id for the new Generic VNF?
def newVnfId = UUID.randomUUID().toString()
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) +
- execution.getVariable("CAAIVfMod_genericVnfPutEndpoint") + newVnfId
- // update the flow execution with the new Vnf Id
execution.setVariable("CAAIVfMod_vnfId",newVnfId)
-
- // AaiUriUtil aaiUriUtil = new AaiUriUtil(this)
- // def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- // msoLogger.debug('AAI URI is: ' + aai_uri)
- // String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
- // msoLogger.debug('AAI namespace is: ' + namespace)
-
-
+
String payload = """<generic-vnf xmlns="${execution.getVariable("CAAIVfMod_aaiNamespace")}">
<vnf-id>${MsoUtils.xmlEscape(newVnfId)}</vnf-id>
<vnf-name>${MsoUtils.xmlEscape(execution.getVariable("CAAIVfMod_vnfName"))}</vnf-name>
@@ -262,11 +254,14 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
execution.setVariable("CAAIVfMod_createGenericVnfPayload", payload)
try {
+ AaiUtil aaiUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, newVnfId)
+ String endPoint = aaiUtil.createAaiUri(uri)
+
msoLogger.debug("createGenericVnf() endpoint-" + endPoint)
msoLogger.debug("invoking PUT call to AAI with payload:"+System.lineSeparator()+payload)
msoLogger.debug("Sending PUT call to AAI with Endpoint /n" + endPoint + " with payload /n" + payload)
- AaiUtil aaiUtil = new AaiUtil(this);
APIResponse response = aaiUtil.executeAAIPutCall(execution, endPoint, payload);
def responseData = response.getResponseBodyAsString()
def responseStatusCode = response.getStatusCode()
@@ -293,10 +288,9 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
if (newModuleId == null || newModuleId.isEmpty()) {
newModuleId = UUID.randomUUID().toString()
}
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("CAAIVfMod_genericVnfPutEndpoint")
- // need to append the existing Vnf Id or the one generated in createGenericVnf() to the url
- endPoint = endPoint + UriUtils.encode(execution.getVariable("CAAIVfMod_vnfId"), "UTF-8") +
- "/vf-modules/vf-module/" + newModuleId;
+
+ String vnfId = execution.getVariable("CAAIVfMod_vnfId")
+
int moduleIndex = 0
if (!isBaseModule) {
def aaiVnfResponse = execution.getVariable("CAAIVfMod_queryGenericVnfResponse")
@@ -342,11 +336,15 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
execution.setVariable("CAAIVfMod_createVfModulePayload", payload)
try {
+
+ AaiUtil aaiUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, newModuleId)
+ String endPoint = aaiUtil.createAaiUri(uri)
+
msoLogger.debug("createVfModule() endpoint-" + endPoint)
msoLogger.debug("invoking PUT call to AAI with payload:"+System.lineSeparator()+payload)
msoLogger.debug("CreateAAIVfModule sending PUT call to AAI with endpoint /n" + endPoint + " with payload /n " + payload)
- AaiUtil aaiUtil = new AaiUtil(this)
APIResponse response = aaiUtil.executeAAIPutCall(execution, endPoint, payload)
def responseData = response.getResponseBodyAsString()
def statusCode = response.getStatusCode()
@@ -554,9 +552,6 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
msoLogger.debug("RollbackData:" + rollbackData)
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- msoLogger.debug("CreateAAIVfModule rollback AAI URI: " + aai_uri)
if (rollbackData != null) {
if (rollbackData.hasType("VFMODULE")) {
@@ -566,9 +561,7 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
def isBaseModule = rollbackData.get("VFMODULE", "isBaseModule")
execution.setVariable("DAAIVfMod_vnfId", vnfId)
execution.setVariable("DAAIVfMod_vfModuleId", vfModuleId)
- execution.setVariable("DAAIVfMod_genericVnfEndpoint", "${aai_uri}/" + vnfId)
- execution.setVariable("DAAIVfMod_vfModuleEndpoint", "${aai_uri}/" + vnfId +
- "/vf-modules/vf-module/" + vfModuleId)
+
DeleteAAIVfModule dvm = new DeleteAAIVfModule()
// query A&AI to get the needed information for the delete(s)
dvm.queryAAIForGenericVnf(execution)
@@ -581,13 +574,14 @@ public class CreateAAIVfModule extends AbstractServiceTaskProcessor{
if (isOneOf(responseCode, 200, 204)) {
msoLogger.debug("Received " + responseCode + " to VF Module rollback request")
-// execution.setVariable("RollbackResult", "SUCCESS")
} else {
msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, "Received " + responseCode + " to VF Module rollback request", "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, rollbackData + System.lineSeparator() + "Response: " + response);
}
// a new Generic VNF was created that needs to be rolled back
if (isBaseModule.equals("true")) {
+ dvm.queryAAIForGenericVnf(execution)
+ dvm.parseForResourceVersion(execution)
dvm.deleteGenericVnf(execution)
responseCode = execution.getVariable("DAAIVfMod_deleteGenericVnfResponseCode")
response = execution.getVariable("DAAIVfMod_deleteGenericVnfResponse")
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroup.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroup.groovy
index ec691f299e..cc1be47029 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroup.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroup.groovy
@@ -23,6 +23,9 @@ package org.onap.so.bpmn.common.scripts
import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
import org.onap.so.rest.APIResponse
import org.onap.so.logger.MessageEnum
import org.onap.so.logger.MsoLogger
@@ -76,6 +79,9 @@ public class CreateAAIVfModuleVolumeGroup extends AbstractServiceTaskProcessor {
def aicCloudRegion = getRequiredNodeText(execution, xml,'aic-cloud-region')
execution.setVariable('CAAIVfModVG_aicCloudRegion', aicCloudRegion)
+ def cloudOwner = getRequiredNodeText(execution, xml,'cloud-owner')
+ execution.setVariable('CAAIVfModVG_cloudOwner', cloudOwner)
+
def volumeGroupId = getRequiredNodeText(execution, xml,'volume-group-id')
execution.setVariable('CAAIVfModVG_volumeGroupId', volumeGroupId)
@@ -105,12 +111,10 @@ public class CreateAAIVfModuleVolumeGroup extends AbstractServiceTaskProcessor {
def vnfId = execution.getVariable('CAAIVfModVG_vnfId')
def vfModuleId = execution.getVariable('CAAIVfModVG_vfModuleId')
- // Construct endpoint
AaiUtil aaiUtil = new AaiUtil(this)
- def aai_uri = aaiUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + URLEncoder.encode(vnfId, "UTF-8") + '/vf-modules/vf-module/' + URLEncoder.encode(vfModuleId, "UTF-8")
-
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ String endPoint = aaiUtil.createAaiUri(uri)
+
try {
msoLogger.debug('sending GET to AAI endpoint \'' + endPoint + '\'')
msoLogger.debug("aaiResponse GET TO AAI Endpoint: " + endPoint)
@@ -166,17 +170,16 @@ public class CreateAAIVfModuleVolumeGroup extends AbstractServiceTaskProcessor {
// Construct payload by creating a Volume Group relationhip and inserting it into the VF Module
def aicCloudRegion = execution.getVariable('CAAIVfModVG_aicCloudRegion')
+ def cloudOwner = execution.getVariable('CAAIVfModVG_cloudOwner')
def volumeGroupId = execution.getVariable('CAAIVfModVG_volumeGroupId')
- def Node vgRelationshipNode = createVolumeGroupRelationshipNode(aicCloudRegion, volumeGroupId)
+ def Node vgRelationshipNode = createVolumeGroupRelationshipNode(cloudOwner, aicCloudRegion, volumeGroupId)
insertVolumeGroupRelationshipNode(vfModuleNode, vgRelationshipNode)
def payload = utils.nodeToString(vfModuleNode)
- // Construct endpoint
AaiUtil aaiUtil = new AaiUtil(this)
- def aai_uri = aaiUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + URLEncoder.encode(vnfId, "UTF-8") + '/vf-modules/vf-module/' + URLEncoder.encode(vfModuleId, "UTF-8")
-
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ String endPoint = aaiUtil.createAaiUri(uri)
+
try {
msoLogger.debug("CreateAAIVfModuleVolume Sendind PUT to AAI Endpoint \n " + endPoint + " with payload \n " + payload)
msoLogger.debug('sending PUT to AAI endpoint \'' + endPoint + '\'' + 'with payload \n' + payload)
@@ -212,12 +215,12 @@ public class CreateAAIVfModuleVolumeGroup extends AbstractServiceTaskProcessor {
* @param volumeGroupId Volume Group ID to use in the Volume Group relationship
* @return a Node representing the new Volume Group relationship
*/
- private Node createVolumeGroupRelationshipNode(String aicCloudRegion, String volumeGroupId) {
+ private Node createVolumeGroupRelationshipNode(String cloudOwner, String aicCloudRegion, String volumeGroupId) {
def Node relatedTo = new Node(null, 'related-to', 'volume-group')
def Node relationshipKeyCO = new Node(null, 'relationship-key', 'cloud-region.cloud-owner')
- def Node relationshipValueCO = new Node(null, 'relationship-value', 'att-aic')
+ def Node relationshipValueCO = new Node(null, 'relationship-value', cloudOwner)
def Node relationshipDataCO = new Node(null, 'relationship-data')
relationshipDataCO.append(relationshipKeyCO)
relationshipDataCO.append(relationshipValueCO)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CustomE2EPutService.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CustomE2EPutService.groovy
deleted file mode 100644
index 43d540cc74..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/CustomE2EPutService.groovy
+++ /dev/null
@@ -1,283 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.common.scripts
-
-import static org.apache.commons.lang3.StringUtils.*;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.apache.commons.codec.binary.Base64
-import org.apache.commons.lang3.*
-
-import org.onap.so.bpmn.core.json.JsonUtils
-import org.onap.so.bpmn.core.WorkflowException
-import org.onap.so.rest.APIResponse;
-import org.onap.so.rest.RESTClient
-import org.onap.so.rest.RESTConfig
-
-import java.net.URLEncoder;
-import org.springframework.web.util.UriUtils
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
-
-/**
- * This class supports the GenericPutService Sub Flow.
- * This Generic sub flow can be used by any flow for the
- * goal of creating a Service Instance or Service-Subscription in AAI. Upon successful completion of
- * this sub flow the GENPS_SuccessIndicator will be true.
- * The calling flow must set the GENPS_type variable as "service-instance"
- * or "service-subscription".
- * A MSOWorkflowException will be thrown Upon unsuccessful
- * completion or if an error occurs within this flow.
- * Please map variables to the corresponding variable names
- * below.
- *
- *
- * Incoming Required Variables:
- * @param - GENPS_requestId
- * @param - GENPS_type - Required field. This will be required field populated as service-instance or service-subscription
- * @param - GENPS_globalSubscriberId - Required field
- * @param - GENPS_serviceType - Required Field
- * @param - GENPS_payload - Required Field This will be the payload that needs to be sent.
- *
- * @param - GENPS_serviceInstanceId - Conditional Field. Required for service-instance.
- * @param - GENPS_allottedResourceId - Conditional Field. Required for allotted-resource.
- * @param - GENPS_tunnelXconnectId - Conditional Field. Required for tunnel-xconnect.
- *
- * @param - GENPS_serviceResourceVersion - Conditional Field. Needs to be provided only in case of update for both service-instance and service subscription. The calling flows
- * should check if a service-instance or servic-subscription exists by calling the subflow GenericGetService. if it exists then resourceversion should be
- * obtained from aai and sent as an input parameter.
- *
- * Outgoing Variables:
- * @param - GENPS_SuccessIndicator
- * @param - WorkflowException
- *
- *
- */
-
-
-class CustomE2EPutService extends AbstractServiceTaskProcessor{
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CustomE2EPutService.class);
-
- String Prefix = "GENPS_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
-
-
- public void preProcessRequest(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericPutService PreProcessRequest Process")
-
- execution.setVariable("GENPS_SuccessIndicator", false)
-
- try{
- // Get Variables
- String requestId = execution.getVariable("GENPS_requestId")
- msoLogger.debug("Incoming GENPS_requestId is: " + requestId)
-
- String globalSubscriberId = execution.getVariable("GENPS_globalSubscriberId")
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- String serviceType = execution.getVariable("GENPS_serviceType")
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- String tunnelXconnectId = execution.getVariable("GENPS_tunnelXconnectId")
- String type = execution.getVariable("GENPS_type")
-
- if(type != null){
- msoLogger.debug("Incoming GENPS_type is: " + type)
- if(type.equalsIgnoreCase("service-instance")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId)){
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- }
- }else if(type.equalsIgnoreCase("service-subscription")){
- if(isBlank(serviceType) || isBlank(globalSubscriberId)){
- msoLogger.debug("Incoming ServiceType or GlobalSubscriberId is null. These variables are required to create a service-subscription.")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming ServiceType or GlobalCustomerId is null. These variables are required to Get a service-subscription.")
- }else{
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- }
- }else if(type.equalsIgnoreCase("allotted-resource")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId) || isBlank(allottedResourceId)){
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- }
- }else if(type.equalsIgnoreCase("tunnel-xconnect")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId) || isBlank(allottedResourceId) || isBlank(tunnelXconnectId)){
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Tunnel Xconnect Id is: " + tunnelXconnectId)
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Tunnel Xconnect Id is: " + tunnelXconnectId)
- }
- }else{
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Type is Invalid. Please Specify Type as service-instance or service-subscription")
- }
- }else{
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Incoming GENPS_type is null. Variable is Required.")
- }
-
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericPutService PreProcessRequest method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in GenericPutService PreProcessRequest")
-
- }
- msoLogger.trace("COMPLETED GenericPutService PreProcessRequest Process ")
-
- }
-
-
-
- /**
- * This method executes a Put call to AAI for the provided
- * service instance.
- *
- * @param - execution
- *
- */
- public void putServiceInstance(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericPutService PutServiceInstance method")
- try {
- String type = execution.getVariable("GENPS_type")
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String aai_uri = aaiUriUtil.getBusinessCustomerUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String namespace = aaiUriUtil.getNamespaceFromUri(execution, aai_uri)
- msoLogger.debug('AAI namespace is: ' + namespace)
-
- String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- String serviceAaiPath = ""
- String payload = execution.getVariable("GENPS_payload")
- execution.setVariable("GENPS_payload", payload)
- msoLogger.debug("Incoming GENPS_payload is: " + payload)
- msoLogger.debug(payload)
-
- String serviceType = execution.getVariable("GENPS_serviceType")
- msoLogger.debug(" Incoming GENPS_serviceType is: " + serviceType)
- String globalSubscriberId = execution.getVariable("GENPS_globalSubscriberId")
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
-
- // This IF clause is if we need to create a new Service Instance
- if(type.equalsIgnoreCase("service-instance")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + URLEncoder.encode(serviceInstanceId,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8")
-
- }else if(type.equalsIgnoreCase("service-subscription")){
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8")
- }else if(type.equalsIgnoreCase("allotted-resource")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- msoLogger.debug(" Incoming GENPS_allottedResourceId is: " + allottedResourceId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8") + "/allotted-resources/allotted-resource/" + UriUtils.encode(allottedResourceId,"UTF-8")
- }else if(type.equalsIgnoreCase("tunnel-xconnect")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- msoLogger.debug(" Incoming GENPS_allottedResourceId is: " + allottedResourceId)
- String tunnelXconnectId = execution.getVariable("GENPS_tunnelXconnectId")
- msoLogger.debug(" Incoming GENPS_tunnelXconnectId is: " + tunnelXconnectId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8") + "/allotted-resources/allotted-resource/" + UriUtils.encode(allottedResourceId,"UTF-8") + "/tunnel-xconnects/tunnel-xconnect/" + UriUtils.encode(tunnelXconnectId,"UTF-8")
- }
-
- String resourceVersion = execution.getVariable("GENPS_serviceResourceVersion")
- msoLogger.debug("Incoming Resource Version is: " + resourceVersion)
- if(resourceVersion !=null){
- serviceAaiPath = serviceAaiPath +'?resource-version=' + UriUtils.encode(resourceVersion,"UTF-8")
- }
-
- execution.setVariable("GENPS_putServiceInstanceAaiPath", serviceAaiPath)
- msoLogger.debug("PUT Service Instance AAI Path is: " + "\n" + serviceAaiPath)
-
- APIResponse response = aaiUriUtil.executeAAIPutCall(execution, serviceAaiPath, payload)
- int responseCode = response.getStatusCode()
- execution.setVariable("GENPS_putServiceInstanceResponseCode", responseCode)
- msoLogger.debug(" Put Service Instance response code is: " + responseCode)
-
- String aaiResponse = response.getResponseBodyAsString()
- execution.setVariable("GENPS_putServiceInstanceResponse", aaiResponse)
-
-
- //Process Response
- if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
- //200 OK 201 CREATED 202 ACCEPTED
- {
- msoLogger.debug("PUT Service Instance Received a Good Response")
- execution.setVariable("GENPS_SuccessIndicator", true)
- }
-
- else{
- msoLogger.debug("Put Generic Service Instance Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
- }
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericPutService PutServiceInstance method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured During Put Service Instance")
- }
- msoLogger.trace("COMPLETED GenericPutService PutServiceInstance Process")
- }
-
-
-
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModule.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModule.groovy
index bb9846c112..178b4d1695 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModule.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModule.groovy
@@ -22,6 +22,10 @@ package org.onap.so.bpmn.common.scripts
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.client.graphinventory.entities.uri.Depth
import org.onap.so.rest.APIResponse
import org.onap.so.rest.RESTClient;
import org.onap.so.rest.RESTConfig;
@@ -41,8 +45,6 @@ public class DeleteAAIVfModule extends AbstractServiceTaskProcessor{
execution.setVariable("DAAIVfMod_genVnfRsrcVer",null)
execution.setVariable("DAAIVfMod_vfModuleId",null)
execution.setVariable("DAAIVfMod_vfModRsrcVer",null)
- execution.setVariable("DAAIVfMod_genericVnfEndpoint",null)
- execution.setVariable("DAAIVfMod_vfModuleEndpoint",null)
execution.setVariable("DAAIVfMod_moduleExists",false)
execution.setVariable("DAAIVfMod_isBaseModule", false)
execution.setVariable("DAAIVfMod_isLastModule", false)
@@ -69,79 +71,55 @@ public class DeleteAAIVfModule extends AbstractServiceTaskProcessor{
def vfModuleId = utils.getNodeText(xml,"vf-module-id")
execution.setVariable("DAAIVfMod_vnfId", vnfId)
execution.setVariable("DAAIVfMod_vfModuleId", vfModuleId)
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
-
- execution.setVariable("DAAIVfMod_genericVnfEndpoint", "${aai_uri}/" + vnfId)
- execution.setVariable("DAAIVfMod_vfModuleEndpoint", "${aai_uri}/" + vnfId +
- "/vf-modules/vf-module/" + vfModuleId)
}
// send a GET request to AA&I to retrieve the Generic Vnf/Vf Module information based on a Vnf Id
// expect a 200 response with the information in the response body or a 404 if the Generic Vnf does not exist
public void queryAAIForGenericVnf(DelegateExecution execution) {
- def delModuleId = execution.getVariable("DAAIVfMod_vfModuleId")
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("DAAIVfMod_genericVnfEndpoint") + "?depth=1"
- msoLogger.debug("DeleteAAIVfModule endPoint: " + endPoint)
- def aaiRequestId = utils.getRequestID()
+
+ def vnfId = execution.getVariable("DAAIVfMod_vnfId")
- RESTConfig config = new RESTConfig(endPoint);
- msoLogger.debug("queryAAIForGenericVnf() endpoint-" + endPoint)
- def responseData = ""
try {
- RESTClient client = new RESTClient(config).addHeader("X-TransactionId", aaiRequestId).addHeader("X-FromAppId", "MSO").
- addHeader("Accept","application/xml");
- String basicAuthCred = utils.getBasicAuth(UrnPropertiesReader.getVariable("aai.auth", execution),UrnPropertiesReader.getVariable("mso.msoKey", execution))
-
- if (basicAuthCred != null && !"".equals(basicAuthCred)) {
- client.addAuthorizationHeader(basicAuthCred)
- }
- msoLogger.debug("invoking GET call to AAI endpoint :"+System.lineSeparator()+endPoint)
- APIResponse response = client.httpGet()
- msoLogger.debug("DeleteAAIVfModule - invoking httpGet to AAI")
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ uri.depth(Depth.ONE)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
+
+ APIResponse response = aaiUriUtil.executeAAIGetCall(execution, endPoint)
+
+ msoLogger.debug('Response code:' + response.getStatusCode())
+ msoLogger.debug('Response:' + response.getResponseBodyAsString())
- responseData = response.getResponseBodyAsString()
execution.setVariable("DAAIVfMod_queryGenericVnfResponseCode", response.getStatusCode())
- execution.setVariable("DAAIVfMod_queryGenericVnfResponse", responseData)
- msoLogger.debug("AAI Response: " + responseData)
- msoLogger.debug("Response code:" + response.getStatusCode())
- msoLogger.debug("Response:" + System.lineSeparator()+responseData)
+ execution.setVariable("DAAIVfMod_queryGenericVnfResponse", response.getResponseBodyAsString())
+
} catch (Exception ex) {
msoLogger.debug("Exception occurred while executing AAI GET:" + ex.getMessage())
execution.setVariable("DAAIVfMod_queryGenericVnfResponse", "AAI GET Failed:" + ex.getMessage())
exceptionUtil.buildAndThrowWorkflowException(execution, 5000, "Internal Error - Occured during queryAAIForGenericVnf")
-
}
}
// construct and send a DELETE request to A&AI to delete a Generic Vnf
// note: to get here, all the modules associated with the Generic Vnf must already be deleted
public void deleteGenericVnf(DelegateExecution execution) {
- def aaiRequestId = utils.getRequestID()
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("DAAIVfMod_genericVnfEndpoint") +
- "/?resource-version=" + execution.getVariable("DAAIVfMod_genVnfRsrcVer")
- msoLogger.debug("AAI endPoint: " + endPoint)
- RESTConfig config = new RESTConfig(endPoint);
- msoLogger.debug("deleteGenericVnf() endpoint-" + endPoint)
- def responseData = ""
+
try {
- RESTClient client = new RESTClient(config).addHeader("X-TransactionId", aaiRequestId).addHeader("X-FromAppId", "MSO").
- addHeader("Accept","application/xml");
+ String vnfId = execution.getVariable("DAAIVfMod_vnfId")
+ String resourceVersion = execution.getVariable("DAAIVfMod_genVnfRsrcVer")
- String basicAuthCred = utils.getBasicAuth(UrnPropertiesReader.getVariable("aai.auth", execution),UrnPropertiesReader.getVariable("mso.msoKey", execution))
-
- if (basicAuthCred != null && !"".equals(basicAuthCred)) {
- client.addAuthorizationHeader(basicAuthCred)
- }
- APIResponse response = client.httpDelete()
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ uri.resourceVersion(resourceVersion)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
+
+ APIResponse response = aaiUriUtil.executeAAIDeleteCall(execution, endPoint)
- responseData = response.getResponseBodyAsString()
+ def responseData = response.getResponseBodyAsString()
execution.setVariable("DAAIVfMod_deleteGenericVnfResponseCode", response.getStatusCode())
execution.setVariable("DAAIVfMod_deleteGenericVnfResponse", responseData)
msoLogger.debug("Response code:" + response.getStatusCode())
- msoLogger.debug("Response:" + System.lineSeparator()+responseData)
+ msoLogger.debug("Response:" + System.lineSeparator() + responseData)
} catch (Exception ex) {
ex.printStackTrace()
msoLogger.debug("Exception occurred while executing AAI DELETE:" + ex.getMessage())
@@ -151,32 +129,25 @@ public class DeleteAAIVfModule extends AbstractServiceTaskProcessor{
// construct and send a DELETE request to A&AI to delete the Base or Add-on Vf Module
public void deleteVfModule(DelegateExecution execution) {
- def endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + execution.getVariable("DAAIVfMod_vfModuleEndpoint") +
- "/?resource-version=" + execution.getVariable("DAAIVfMod_vfModRsrcVer")
- def aaiRequestId = utils.getRequestID()
-
- RESTConfig config = new RESTConfig(endPoint);
- msoLogger.debug("deleteVfModule() endpoint-" + endPoint)
def responseData = ""
try {
- RESTClient client = new RESTClient(config).addHeader("X-TransactionId", aaiRequestId).addHeader("X-FromAppId", "MSO").
- addHeader("Accept","application/xml");
+ String vnfId = execution.getVariable("DAAIVfMod_vnfId")
+ String vfModuleId = execution.setVariable("DAAIVfMod_vfModuleId")
+ String resourceVersion = execution.getVariable("DAAIVfMod_vfModRsrcVer")
- String basicAuthCred = utils.getBasicAuth(UrnPropertiesReader.getVariable("aai.auth", execution),UrnPropertiesReader.getVariable("mso.msoKey", execution))
-
- if (basicAuthCred != null && !"".equals(basicAuthCred)) {
- client.addAuthorizationHeader(basicAuthCred)
- }
- APIResponse response = client.httpDelete()
+ AaiUtil aaiUriUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ uri.resourceVersion(resourceVersion)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
- msoLogger.debug("DeleteAAIVfModule - invoking httpDelete to AAI")
+ APIResponse response = aaiUriUtil.executeAAIDeleteCall(execution, endPoint)
responseData = response.getResponseBodyAsString()
execution.setVariable("DAAIVfMod_deleteVfModuleResponseCode", response.getStatusCode())
execution.setVariable("DAAIVfMod_deleteVfModuleResponse", responseData)
msoLogger.debug("DeleteAAIVfModule - AAI Response" + responseData)
msoLogger.debug("Response code:" + response.getStatusCode())
- msoLogger.debug("Response:" + System.lineSeparator()+responseData)
+ msoLogger.debug("Response:" + System.lineSeparator() + responseData)
} catch (Exception ex) {
ex.printStackTrace()
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
index 7d4adaea58..3096bedda6 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtil.groovy
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP - SO
* ================================================================================
- * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -31,11 +31,11 @@ import java.util.regex.Matcher
import java.util.regex.Pattern
class ExternalAPIUtil {
-
+
String Prefix="EXTAPI_"
public MsoUtils utils = new MsoUtils()
-
+
ExceptionUtil exceptionUtil = new ExceptionUtil()
private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, ExternalAPIUtil.class)
@@ -71,16 +71,16 @@ class ExternalAPIUtil {
"\t\t\t\"serviceCharacteristic\": [ \n" +
"<_requestInputs_> \n" +
"\t\t\t] \n" +
- "\t\t}\n" +
+ "\t\t}\n" +
"\t}]\n" +
"}"
-
+
public static final String RequestInputsTemplate =
"{ \n" +
"\t\"name\": <inputName>, \n" +
"\t\"value\": { \n" +
"\t\t\"serviceCharacteristicValue\": <inputValue> \n" +
- "\t} \n" +
+ "\t} \n" +
"}"
public ExternalAPIUtil() {
@@ -93,11 +93,11 @@ class ExternalAPIUtil {
// msoLogger.debug("ExternalAPIUtil.getUri: " + uri)
// return uri
// }
-//
+//
// exceptionUtil.buildAndThrowWorkflowException(execution, 9999, 'ExternalAPI URI not find')
// }
-
- public String setTemplate(String template, Map<String, String> valueMap) {
+
+ public String setTemplate(String template, Map<String, String> valueMap) {
msoLogger.debug("ExternalAPIUtil setTemplate", true);
StringBuffer result = new StringBuffer();
@@ -143,7 +143,7 @@ class ExternalAPIUtil {
if (basicAuthCred != null && !"".equals(basicAuthCred)) {
client.addAuthorizationHeader(basicAuthCred)
}
- apiResponse = client.get()
+ apiResponse = client.httpGet()
msoLogger.debug( "======== COMPLETED Execute ExternalAPI Get Process ======== ")
}catch(Exception e){
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
index 5cdcd0d5bf..78d147e819 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenerateVfModuleName.groovy
@@ -30,6 +30,10 @@ import org.springframework.web.util.UriUtils
import org.onap.so.bpmn.core.json.JsonUtils
import org.onap.so.bpmn.core.WorkflowException
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.client.graphinventory.entities.uri.Depth
import org.onap.so.rest.APIResponse;
import org.onap.so.rest.RESTClient
import org.onap.so.rest.RESTConfig
@@ -73,11 +77,11 @@ public class GenerateVfModuleName extends AbstractServiceTaskProcessor{
def vnfId = execution.getVariable('vnfId')
def personaModelId = execution.getVariable('personaModelId')
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
+ AaiUtil aaiUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ uri.depth(Depth.ONE)
+ String endPoint = aaiUtil.createAaiUri(uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"
msoLogger.debug("AAI endPoint: " + endPoint)
try {
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericGetVnf.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericGetVnf.groovy
deleted file mode 100644
index 01d8e9b8d5..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericGetVnf.groovy
+++ /dev/null
@@ -1,275 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.common.scripts
-
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import static org.onap.so.bpmn.common.scripts.GenericUtils.*;
-
-import org.apache.commons.lang3.*
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.onap.so.rest.APIResponse
-import org.springframework.web.util.UriUtils
-import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
-
-
-
-
-/**
- * TODO: Support getting vnf type = vpe
- *
- * This class supports the GenericGetVnf Sub Flow.
- * This Generic sub flow can be used by any flow for accomplishing
- * the goal of getting a Vnf Object (from AAI). The flow currently
- * supports the querying of 2 types of Vnfs, generic-vnf and vce. The
- * type must be provided by the calling flow and the type should
- * be mapped to the variable GENGV_type. The type should either be
- * "generic-vnf" or "vce". If the Vnf Id is not provided by the calling
- * flow then this sub flow will execute the query to get the
- * Vnf using the Vnf Name. Therefore, the calling flow must provide
- * either the Vnf Id or Vnf Name.
- *
- * Upon successful completion of this sub flow the
- * GENGV_SuccessIndicator will be true and the query response payload
- * will be set to GENGV_vnf. An MSOWorkflowException will
- * be thrown upon unsuccessful completion or if an error occurs
- * at any time during this sub flow. Please map variables
- * to the corresponding variable names below.
- *
- * Note - if this sub flow receives a Not Found (404) response
- * from AAI at any time this will be considered an acceptable
- * successful response however the GENGV_FoundIndicator
- * set to false. This will allow the calling flow to distinguish
- * between the two success scenarios, "Success where Vnf is found"
- * and "Success where Vnf is NOT found".
- *
- *
- * Variable Mapping Below
- *
- * In Mapping Variables:
- * @param - GENGV_vnfId or @param - GENGV_vnfName
- * @param - GENGV_type
- *
- * Out Mapping Variables:
- * @param - GENGV_vnf
- * @param - GENGV_SuccessIndicator
- * @param - GENGV_FoundIndicator
- * @param - WorkflowException
- *
- *
- */
-class GenericGetVnf extends AbstractServiceTaskProcessor{
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, GenericGetVnf.class);
-
-
- String Prefix = "GENGV_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
-
- /**
- * This method validates the incoming variables and
- * determines the subsequent event based on which
- * variables the calling flow provided.
- *
- * @param - execution
- */
- public void preProcessRequest(DelegateExecution execution) {
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericGetVnf PreProcessRequest Process")
-
- execution.setVariable("GENGV_getVnfByName", false)
- execution.setVariable("GENGV_SuccessIndicator", false)
- execution.setVariable("GENGV_FoundIndicator", false)
-
- try{
- // Get Variables
- String vnfId = execution.getVariable("GENGV_vnfId")
- msoLogger.debug("Incoming Vnf Id is: " + vnfId)
- String vnfName = execution.getVariable("GENGV_vnfName")
- msoLogger.debug("Incoming Vnf Name is: " + vnfName)
-
- if(isBlank(vnfId) && isBlank(vnfName)){
- msoLogger.debug("Incoming Vnf Name and Vnf Id are null. At least one is required!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Vnf Name and Vnf Id are null. At least one is required.")
- }else{
- if(isBlank(vnfId)){
- execution.setVariable("GENGV_getVnfByName", true)
- }
- }
-
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.debug(" Error encountered within GenericGetVnf PreProcessRequest method!" + e)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in GenericGetVnf PreProcessRequest")
-
- }
- msoLogger.trace("COMPLETED GenericGetVnf PreProcessRequest Process ")
- }
-
- /**
- * This method executes a GET call to AAI to obtain the
- * Vnf using the Vnf Name
- *
- * @param - execution
- */
- public void getVnfByName(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericGetVnf GetVnfByName Process")
- try {
- String vnfName = execution.getVariable("GENGV_vnfName")
- msoLogger.debug("Getting Vnf by Vnf Name: " + vnfName)
- String type = execution.getVariable("GENGV_type")
- msoLogger.debug("Type of Vnf Getting is: " + type)
-
- String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- AaiUtil aaiUriUtil = new AaiUtil(this)
-
- //Determine Type of Vnf Querying For.
- def aai_uri = ""
- if(type.equals("generic-vnf")){
- aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- }else if(type.equals("vce")){
- aai_uri = aaiUriUtil.getNetworkVceUri(execution)
- }else{
- msoLogger.debug("Invalid Incoming GENGV_type")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Invalid Incoming GENGV_type")
- }
-
- String getVnfPath = "${aai_endpoint}${aai_uri}?vnf-name=" + UriUtils.encode(vnfName, "UTF-8") + "&depth=1"
-
- execution.setVariable("GENGV_getVnfPath", getVnfPath)
- msoLogger.debug("Get Vnf Url is: " + getVnfPath)
-
- APIResponse response = aaiUriUtil.executeAAIGetCall(execution, getVnfPath)
- int responseCode = response.getStatusCode()
- execution.setVariable("GENGV_getVnfResponseCode", responseCode)
- msoLogger.debug(" GET Vnf response code is: " + responseCode)
-
- String aaiResponse = response.getResponseBodyAsString()
- execution.setVariable("GENGV_getVnfResponse", aaiResponse)
-
- //Process Response
- if(responseCode == 200){
- msoLogger.debug("GET Vnf Received a Good Response")
- if(utils.nodeExists(aaiResponse, type)){
- msoLogger.debug("GET Vnf Response Contains a Vnf")
- execution.setVariable("GENGV_FoundIndicator", true)
- execution.setVariable("GENGV_vnf", aaiResponse)
- execution.setVariable("WorkflowResponse", aaiResponse)
- }else{
- msoLogger.debug("GET Vnf Response Does NOT Contain a Vnf")
- }
-
- }else if(responseCode == 404){
- msoLogger.debug("GET Vnf Received a Not Found (404) Response")
- }else{
- msoLogger.debug("GET Vnf Received a Bad Response: \n" + aaiResponse)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
- }
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericGetVnf GetVnfByName method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured During GetVnfByName")
- }
- msoLogger.trace("COMPLETED GenericGetVnf GetVnfByName Process")
- }
-
- /**
- * This method executes a GET call to AAI to obtain the
- * Vnf using the Vnf Id
- *
- * @param - execution
- */
- public void getVnfById(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericGetVnf GetVnfById Process")
- try {
- String vnfId = execution.getVariable("GENGV_vnfId")
- msoLogger.debug("Getting Vnf by Vnf Id: " + vnfId)
- String type = execution.getVariable("GENGV_type")
- msoLogger.debug("Type of Vnf Getting is: " + type)
-
- String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- AaiUtil aaiUriUtil = new AaiUtil(this)
-
- //Determine Type of Vnf Querying For.
- def aai_uri = ""
- if(type.equals("generic-vnf")){
- aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- }else if(type.equals("vce")){
- aai_uri = aaiUriUtil.getNetworkVceUri(execution)
- }else if(type.equals("vpe")){
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "GenericGetVnf does not yet support getting type of vnf = vpe")
- }else{
- msoLogger.debug("Invalid Incoming GENGV_type")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Invalid Incoming GENGV_type")
- }
- msoLogger.debug("Using AAI Uri: " + aai_uri)
-
- String getVnfPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"
- msoLogger.debug("GET Vnf Endpoint is: " + getVnfPath)
-
- execution.setVariable("GENGV_getVnfPath", getVnfPath)
- msoLogger.debug("Get Vnf Url is: " + getVnfPath)
-
- APIResponse response = aaiUriUtil.executeAAIGetCall(execution, getVnfPath)
- int responseCode = response.getStatusCode()
- execution.setVariable("GENGV_getVnfResponseCode", responseCode)
- msoLogger.debug(" GET Vnf response code is: " + responseCode)
-
- String aaiResponse = response.getResponseBodyAsString()
- execution.setVariable("GENGV_getVnfResponse", aaiResponse)
-
- //Process Response
- if(responseCode == 200){
- msoLogger.debug("GET Vnf Received a Good Response")
- if(utils.nodeExists(aaiResponse, type)){
- msoLogger.debug("GET Vnf Response Contains a Vnf")
- execution.setVariable("GENGV_FoundIndicator", true)
- execution.setVariable("GENGV_vnf", aaiResponse)
- execution.setVariable("WorkflowResponse", aaiResponse)
- }else{
- msoLogger.debug("GET Vnf Response Does NOT Contain a Vnf")
- }
-
- }else if(responseCode == 404){
- msoLogger.debug("GET Vnf Received a Not Found (404) Response")
- }else{
- msoLogger.debug("GET Vnf Received a BAD REST Response: \n" + aaiResponse)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
- }
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericGetVnf GetVnfById method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured During GetVnfById")
- }
- msoLogger.trace("COMPLETED GenericGetVnf GetVnfById Process")
- }
-
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericPutService.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericPutService.groovy
deleted file mode 100644
index 8cc756d412..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/GenericPutService.groovy
+++ /dev/null
@@ -1,282 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.bpmn.common.scripts
-
-import org.onap.so.bpmn.core.UrnPropertiesReader
-
-import static org.apache.commons.lang3.StringUtils.*;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.apache.commons.codec.binary.Base64
-import org.apache.commons.lang3.*
-
-import org.onap.so.bpmn.core.json.JsonUtils
-import org.onap.so.bpmn.core.WorkflowException
-import org.onap.so.rest.APIResponse;
-import org.onap.so.rest.RESTClient
-import org.onap.so.rest.RESTConfig
-
-import java.net.URLEncoder;
-import org.springframework.web.util.UriUtils
-import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
-
-
-
-/**
- * This class supports the GenericPutService Sub Flow.
- * This Generic sub flow can be used by any flow for the
- * goal of creating a Service Instance or Service-Subscription in AAI. Upon successful completion of
- * this sub flow the GENPS_SuccessIndicator will be true.
- * The calling flow must set the GENPS_type variable as "service-instance"
- * or "service-subscription".
- * A MSOWorkflowException will be thrown Upon unsuccessful
- * completion or if an error occurs within this flow.
- * Please map variables to the corresponding variable names
- * below.
- *
- *
- * Incoming Required Variables:
- * @param - GENPS_requestId
- * @param - GENPS_type - Required field. This will be required field populated as service-instance or service-subscription
- * @param - GENPS_globalSubscriberId - Required field
- * @param - GENPS_serviceType - Required Field
- * @param - GENPS_payload - Required Field This will be the payload that needs to be sent.
- *
- * @param - GENPS_serviceInstanceId - Conditional Field. Required for service-instance.
- * @param - GENPS_allottedResourceId - Conditional Field. Required for allotted-resource.
- * @param - GENPS_tunnelXconnectId - Conditional Field. Required for tunnel-xconnect.
- *
- * @param - GENPS_serviceResourceVersion - Conditional Field. Needs to be provided only in case of update for both service-instance and service subscription. The calling flows
- * should check if a service-instance or servic-subscription exists by calling the subflow. if it exists then resourceversion should be
- * obtained from aai and sent as an input parameter.
- *
- * Outgoing Variables:
- * @param - GENPS_SuccessIndicator
- * @param - WorkflowException
- *
- *
- */
-
-
-class GenericPutService extends AbstractServiceTaskProcessor{
- private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, GenericPutService.class);
-
-
- String Prefix = "GENPS_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
-
-
- public void preProcessRequest(DelegateExecution execution) {
- execution.setVariable("isDebugLogEnabled","true")
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericPutService PreProcessRequest Process")
-
- execution.setVariable("GENPS_SuccessIndicator", false)
-
- try{
- // Get Variables
- String requestId = execution.getVariable("GENPS_requestId")
- msoLogger.debug("Incoming GENPS_requestId is: " + requestId)
-
- String globalSubscriberId = execution.getVariable("GENPS_globalSubscriberId")
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- String serviceType = execution.getVariable("GENPS_serviceType")
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- String tunnelXconnectId = execution.getVariable("GENPS_tunnelXconnectId")
- String type = execution.getVariable("GENPS_type")
-
- if(type != null){
- msoLogger.debug("Incoming GENPS_type is: " + type)
- if(type.equalsIgnoreCase("service-instance")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId)){
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- }
- }else if(type.equalsIgnoreCase("service-subscription")){
- if(isBlank(serviceType) || isBlank(globalSubscriberId)){
- msoLogger.debug("Incoming ServiceType or GlobalSubscriberId is null. These variables are required to create a service-subscription.")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming ServiceType or GlobalCustomerId is null. These variables are required to Get a service-subscription.")
- }else{
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- }
- }else if(type.equalsIgnoreCase("allotted-resource")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId) || isBlank(allottedResourceId)){
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- }
- }else if(type.equalsIgnoreCase("tunnel-xconnect")){
- if(isBlank(globalSubscriberId) || isBlank(serviceType) || isBlank(serviceInstanceId) || isBlank(allottedResourceId) || isBlank(tunnelXconnectId)){
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Tunnel Xconnect Id is: " + tunnelXconnectId)
- msoLogger.debug("Incoming Required Variable is missing or null!")
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Required Variable is Missing or Null!")
- }else{
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
- msoLogger.debug("Incoming Service Instance Id is: " + serviceInstanceId)
- msoLogger.debug("Incoming Service Type is: " + serviceType)
- msoLogger.debug("Incoming Allotted Resource Id is: " + allottedResourceId)
- msoLogger.debug("Incoming Tunnel Xconnect Id is: " + tunnelXconnectId)
- }
- }else{
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Incoming Type is Invalid. Please Specify Type as service-instance or service-subscription")
- }
- }else{
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Incoming GENPS_type is null. Variable is Required.")
- }
-
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericPutService PreProcessRequest method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in GenericPutService PreProcessRequest")
-
- }
- msoLogger.trace("COMPLETED GenericPutService PreProcessRequest Process ")
-
- }
-
- /**
- * This method executes a Put call to AAI for the provided
- * service instance.
- *
- * @param - execution
- *
- */
- public void putServiceInstance(DelegateExecution execution){
- execution.setVariable("prefix",Prefix)
- msoLogger.trace("STARTED GenericPutService PutServiceInstance method")
- try {
- String type = execution.getVariable("GENPS_type")
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String aai_uri = aaiUriUtil.getBusinessCustomerUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String namespace = aaiUriUtil.getNamespaceFromUri(execution, aai_uri)
- msoLogger.debug('AAI namespace is: ' + namespace)
-
- String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
- String serviceAaiPath = ""
- String payload = execution.getVariable("GENPS_payload")
- execution.setVariable("GENPS_payload", payload)
- msoLogger.debug("Incoming GENPS_payload is: " + payload)
- msoLogger.debug(payload)
-
- String serviceType = execution.getVariable("GENPS_serviceType")
- msoLogger.debug(" Incoming GENPS_serviceType is: " + serviceType)
-
- String globalSubscriberId = execution.getVariable("GENPS_globalSubscriberId")
- msoLogger.debug("Incoming Global Subscriber Id is: " + globalSubscriberId)
-
- // This IF clause is if we need to create a new Service Instance
- if(type.equalsIgnoreCase("service-instance")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + URLEncoder.encode(serviceInstanceId,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8")
-
- }else if(type.equalsIgnoreCase("service-subscription")){
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8")
- }else if(type.equalsIgnoreCase("allotted-resource")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- msoLogger.debug(" Incoming GENPS_allottedResourceId is: " + allottedResourceId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8") + "/allotted-resources/allotted-resource/" + UriUtils.encode(allottedResourceId,"UTF-8")
- }else if(type.equalsIgnoreCase("tunnel-xconnect")){
-
- String serviceInstanceId = execution.getVariable("GENPS_serviceInstanceId")
- msoLogger.debug(" Incoming GENPS_serviceInstanceId is: " + serviceInstanceId)
- String allottedResourceId = execution.getVariable("GENPS_allottedResourceId")
- msoLogger.debug(" Incoming GENPS_allottedResourceId is: " + allottedResourceId)
- String tunnelXconnectId = execution.getVariable("GENPS_tunnelXconnectId")
- msoLogger.debug(" Incoming GENPS_tunnelXconnectId is: " + tunnelXconnectId)
-
- // serviceAaiPath = "${aai_endpoint}${aai_uri}/" + URLEncoder.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + URLEncoder.encode(serviceType,"UTF-8")
- serviceAaiPath = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(globalSubscriberId,"UTF-8") + "/service-subscriptions/service-subscription/" + UriUtils.encode(serviceType,"UTF-8") + "/service-instances/service-instance/" + UriUtils.encode(serviceInstanceId,"UTF-8") + "/allotted-resources/allotted-resource/" + UriUtils.encode(allottedResourceId,"UTF-8") + "/tunnel-xconnects/tunnel-xconnect/" + UriUtils.encode(tunnelXconnectId,"UTF-8")
- }
-
- String resourceVersion = execution.getVariable("GENPS_serviceResourceVersion")
- msoLogger.debug("Incoming Resource Version is: " + resourceVersion)
- if(resourceVersion !=null){
- serviceAaiPath = serviceAaiPath +'?resource-version=' + UriUtils.encode(resourceVersion,"UTF-8")
- }
-
- execution.setVariable("GENPS_putServiceInstanceAaiPath", serviceAaiPath)
- msoLogger.debug("PUT Service Instance AAI Path is: " + "\n" + serviceAaiPath)
- APIResponse response = aaiUriUtil.executeAAIPutCall(execution, serviceAaiPath, payload)
- int responseCode = response.getStatusCode()
- execution.setVariable("GENPS_putServiceInstanceResponseCode", responseCode)
- msoLogger.debug(" Put Service Instance response code is: " + responseCode)
-
- String aaiResponse = response.getResponseBodyAsString()
- execution.setVariable("GENPS_putServiceInstanceResponse", aaiResponse)
-
- //Process Response
- if(responseCode == 200 || responseCode == 201 || responseCode == 202 )
- //200 OK 201 CREATED 202 ACCEPTED
- {
- msoLogger.debug("PUT Service Instance Received a Good Response")
- execution.setVariable("GENPS_SuccessIndicator", true)
- }
-
- else{
- msoLogger.debug("Put Generic Service Instance Received a Bad Response Code. Response Code is: " + responseCode)
- exceptionUtil.MapAAIExceptionToWorkflowExceptionGeneric(execution, aaiResponse, responseCode)
- throw new BpmnError("MSOWorkflowException")
- }
- }catch(BpmnError b){
- msoLogger.debug("Rethrowing MSOWorkflowException")
- throw b
- }catch(Exception e){
- msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, " Error encountered within GenericPutService PutServiceInstance method!" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "");
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured During Put Service Instance")
- }
- msoLogger.trace("COMPLETED GenericPutService PutServiceInstance Process")
- }
-
-}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/NetworkUtils.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/NetworkUtils.groovy
index 2e5499c158..1e8569c3e7 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/NetworkUtils.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/NetworkUtils.groovy
@@ -20,43 +20,29 @@
package org.onap.so.bpmn.common.scripts;
-import org.apache.commons.lang3.*
-
-import groovy.xml.XmlUtil
-import org.onap.so.bpmn.core.UrnPropertiesReader
-
+import javax.ws.rs.core.UriBuilder
import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerFactory
-import javax.xml.transform.TransformerException
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
-import org.camunda.bpm.engine.delegate.BpmnError
+import org.apache.commons.lang3.*
import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.w3c.dom.Document
-import org.w3c.dom.Element
-
-import org.w3c.dom.NamedNodeMap
-import org.w3c.dom.Node
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource
+import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
import org.onap.so.logger.MsoLogger
-
-import org.onap.so.logger.MessageEnum
-
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor;
import org.w3c.dom.Document
import org.w3c.dom.Element
-import org.w3c.dom.NamedNodeMap
import org.w3c.dom.Node
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource
+import groovy.xml.XmlUtil
+
/**
* This groovy class supports the any Network processes that need the methods defined here.
@@ -332,41 +318,9 @@ class NetworkUtils {
return requestPayload
}
-
- def String createCloudRegionVolumeRequest(groupId, volumeName, vnfType, tenantId, cloudRegion, namespace, modelCustomizationId) {
-
- String requestPayload =
- """<volume-group xmlns="${namespace}">
- <volume-group-id>${MsoUtils.xmlEscape(groupId)}</volume-group-id>
- <volume-group-name>${MsoUtils.xmlEscape(volumeName)}</volume-group-name>
- <heat-stack-id></heat-stack-id>
- <vnf-type>${MsoUtils.xmlEscape(vnfType)}</vnf-type>
- <orchestration-status>Pending</orchestration-status>
- <vf-module-model-customization-id>${MsoUtils.xmlEscape(modelCustomizationId)}</vf-module-model-customization-id>
- <relationship-list>
- <relationship>
- <related-to>tenant</related-to>
- <relationship-data>
- <relationship-key>tenant.tenant-id</relationship-key>
- <relationship-value>${MsoUtils.xmlEscape(tenantId)}</relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>cloud-region.cloud-owner</relationship-key>
- <relationship-value>att-aic</relationship-value>
- </relationship-data>
- <relationship-data>
- <relationship-key>cloud-region.cloud-region-id</relationship-key>
- <relationship-value>${MsoUtils.xmlEscape(cloudRegion)}</relationship-value>
- </relationship-data>
- </relationship>
- </relationship-list>
- </volume-group>"""
-
- return requestPayload
- }
-
- def String createCloudRegionVolumeRequest(groupId, volumeName, vnfType, vnfId, tenantId, cloudRegion, namespace, modelCustomizationId) {
-
+
+ def String createCloudRegionVolumeRequest(groupId, volumeName, vnfType, vnfId, tenantId, cloudOwner, cloudRegion, namespace, modelCustomizationId) {
+
String requestPayload =
"""<volume-group xmlns="${namespace}">
<volume-group-id>${MsoUtils.xmlEscape(groupId)}</volume-group-id>
@@ -391,7 +345,7 @@ class NetworkUtils {
</relationship-data>
<relationship-data>
<relationship-key>cloud-region.cloud-owner</relationship-key>
- <relationship-value>att-aic</relationship-value>
+ <relationship-value>${cloudOwner}</relationship-value>
</relationship-data>
<relationship-data>
<relationship-key>cloud-region.cloud-region-id</relationship-key>
@@ -858,10 +812,8 @@ class NetworkUtils {
if (utils.getNodeText(relationshipXml, 'related-to') == "cloud-region") {
def relatedLink = utils.getNodeText(relationshipXml, 'related-link')
if (relatedLink != null || relatedLink != "") {
- lcpCloudRegion = relatedLink.substring(relatedLink.indexOf("/att-aic/")+9, relatedLink.length())
- if (lcpCloudRegion.contains('/')) {
- lcpCloudRegion = relatedLink.substring(relatedLink.indexOf("/att-aic/")+9, relatedLink.length()-1)
- }
+ AAIResourceUri aaiUri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.CLOUD_REGION, UriBuilder.fromUri(relatedLink).build())
+ lcpCloudRegion = aaiUri.getURIKeys().getOrDefault("cloud-region", "")
}
}
}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/PrepareUpdateAAIVfModule.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/PrepareUpdateAAIVfModule.groovy
index a6f8ff469d..e182ae3300 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/PrepareUpdateAAIVfModule.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/PrepareUpdateAAIVfModule.groovy
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,8 +22,17 @@ package org.onap.so.bpmn.common.scripts
import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.camunda.bpm.model.dmn.instance.OrganizationUnit
+import org.hibernate.engine.jdbc.Size.LobMultiplier
import org.onap.so.bpmn.core.WorkflowException
+import org.onap.aai.domain.yang.GenericVnf
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.AAIResourcesClient
+import org.onap.so.client.aai.entities.AAIResultWrapper
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.client.graphinventory.entities.uri.Depth
import org.onap.so.rest.APIResponse
import org.onap.so.rest.RESTClient
import org.onap.so.rest.RESTConfig
@@ -36,12 +45,12 @@ import org.onap.so.logger.MsoLogger
public class PrepareUpdateAAIVfModule extends VfModuleBase {
private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, PrepareUpdateAAIVfModule.class);
-
+
ExceptionUtil exceptionUtil = new ExceptionUtil()
private MsoUtils utils = new MsoUtils()
/**
* Initialize the flow's variables.
- *
+ *
* @param execution The flow's execution instance.
*/
public void initProcessVariables(DelegateExecution execution) {
@@ -58,11 +67,11 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
execution.setVariable('PUAAIVfMod_updateVfModuleResponseCode', null)
execution.setVariable('PUAAIVfMod_updateVfModuleResponse', '')
execution.setVariable('PUAAIVfMod_outVfModule', null)
- }
-
+ }
+
/**
* Check for missing elements in the received request.
- *
+ *
* @param execution The flow's execution instance.
*/
public void preProcessRequest(DelegateExecution execution) {
@@ -75,15 +84,15 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
def xml = execution.getVariable('PrepareUpdateAAIVfModuleRequest')
msoLogger.debug('Received request xml:\n' + xml)
msoLogger.debug("PrepareUpdateAAIVfModule Request : " + xml)
-
+
initProcessVariables(execution)
-
+
def vnfId = getRequiredNodeText(execution, xml,'vnf-id')
execution.setVariable('PUAAIVfMod_vnfId', vnfId)
def vfModuleId = getRequiredNodeText(execution, xml,'vf-module-id')
execution.setVariable('PUAAIVfMod_vfModuleId', vfModuleId)
-
+
def orchestrationStatus = getRequiredNodeText(execution, xml,'orchestration-status')
execution.setVariable('PUAAIVfMod_orchestrationStatus', orchestrationStatus)
@@ -95,11 +104,11 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in preProcessRequest(): ' + e.getMessage())
}
}
-
+
/**
* Using the received vnfId, query AAI to get the corresponding Generic VNF.
* A 200 response is expected with the Generic VNF in the response body.
- *
+ *
* @param execution The flow's execution instance.
*/
public void getGenericVnf(DelegateExecution execution) {
@@ -110,40 +119,16 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
try {
def vnfId = execution.getVariable('PUAAIVfMod_vnfId')
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
-
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"
-
- msoLogger.debug("PrepareUpdateAAIVfModule: AAI endPoint : " + endPoint)
- String basicAuthCred = utils.getBasicAuth(UrnPropertiesReader.getVariable("aai.auth", execution),UrnPropertiesReader.getVariable("mso.msoKey", execution))
+
+
try {
- RESTConfig config = new RESTConfig(endPoint);
- def responseData = ''
- String aaiRequestId = utils.getRequestID()
- RESTClient client = new RESTClient(config).
- addHeader('X-TransactionId', aaiRequestId).
- addHeader('X-FromAppId', 'MSO').
- addHeader('Content-Type', 'application/xml').
- addHeader('Accept','application/xml');
- if (basicAuthCred != null && !"".equals(basicAuthCred)) {
- client.addAuthorizationHeader(basicAuthCred)
- }
- msoLogger.debug('sending GET to AAI endpoint \'' + endPoint + '\'')
- APIResponse response = client.httpGet()
- msoLogger.debug("PrepareUpdateAAIVfModule: - invoking httpGet to AAI")
-
- responseData = response.getResponseBodyAsString()
- execution.setVariable('PUAAIVfMod_getVnfResponseCode', response.getStatusCode())
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ AAIResourcesClient resourceClient = new AAIResourcesClient()
+ AAIResultWrapper wrapper = resourceClient.get(uri.depth(Depth.ONE))
+ GenericVnf responseData = wrapper.asBean(GenericVnf.class).get()
+
execution.setVariable('PUAAIVfMod_getVnfResponse', responseData)
-
- msoLogger.debug("PrepareUpdateAAIVfModule: AAI Response : " + responseData)
- msoLogger.debug("PrepareUpdateAAIVfModule: AAI ResponseCode : " + response.getStatusCode())
-
- msoLogger.debug('Response code:' + response.getStatusCode())
- msoLogger.debug('Response:' + System.lineSeparator() + responseData)
+
} catch (Exception ex) {
msoLogger.error(ex);
msoLogger.debug('Exception occurred while executing AAI GET:' + ex.getMessage())
@@ -158,13 +143,13 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in getGenericVnf(): ' + e.getMessage())
}
}
-
+
/**
* Validate the VF Module. That is, confirm that a VF Module with the input VF Module ID
* exists in the retrieved Generic VNF. Then, check to make sure that if that VF Module
* is the base VF Module and it's not the only VF Module for this Generic VNF, that we're not
* attempting to delete it.
- *
+ *
* @param execution The flow's execution instance.
*/
public void validateVfModule(DelegateExecution execution) {
@@ -172,22 +157,30 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
'execution=' + execution.getId() +
')'
msoLogger.trace('Entered ' + method)
-
+
try {
- def genericVnf = execution.getVariable('PUAAIVfMod_getVnfResponse')
+ GenericVnf genericVnf = execution.getVariable('PUAAIVfMod_getVnfResponse')
def vnfId = execution.getVariable('PUAAIVfMod_vnfId')
def vfModuleId = execution.getVariable('PUAAIVfMod_vfModuleId')
- def vnfName = getNodeTextForce(genericVnf, 'vnf-name')
+ def vnfName = genericVnf.getVnfName()
execution.setVariable('PUAAIVfMod_vnfName', vnfName)
- def VfModule vfModule = findVfModule(genericVnf, vfModuleId)
- if (vfModule == null) {
+
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ AAIResourcesClient resourceClient = new AAIResourcesClient()
+
+
+
+ // def VfModule vfModule = findVfModule(genericVnf, vfModuleId)
+ if (!resourceClient.exists(uri)) {
def String msg = 'VF Module \'' + vfModuleId + '\' does not exist in Generic VNF \'' + vnfId + '\''
execution.setVariable('PUAAIVfMod_vfModuleValidationError', msg)
execution.setVariable('PUAAIVfMod_vfModuleOK', false)
} else {
+ AAIResultWrapper wrapper = resourceClient.get(uri)
+ org.onap.aai.domain.yang.VfModule vfModule = wrapper.asBean(org.onap.aai.domain.yang.VfModule.class)
+
def orchestrationStatus = execution.getVariable('PUAAIVfMod_orchestrationStatus')
- msoLogger.debug('VF Module \'' + vfModuleId + '\': isBaseVfModule=' + vfModule.isBaseVfModule() +', isOnlyVfModule=' + vfModule.isOnlyVfModule() + ', new orchestration-status=' + orchestrationStatus)
- if (vfModule.isBaseVfModule() && !vfModule.isOnlyVfModule() && orchestrationStatus.equals('pending-delete')) {
+ if (vfModule.isBaseVfModule && genericVnf.getVfModules().getVfModule().size() > 1 && vfModule.getOrchestrationStatus().equals('pending-delete')) {
def String msg = 'Orchestration status for VF Module \'' + vfModuleId +
'\' cannot be set to \'pending-delete\' since it is the base VF Module and it\'s not the only VF Module in Generic VNF \'' + vnfId + '\''
execution.setVariable('PUAAIVfMod_vfModuleValidationError', msg)
@@ -197,7 +190,7 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
execution.setVariable('PUAAIVfMod_vfModuleOK', true)
}
}
-
+
msoLogger.trace('Exited ' + method)
} catch (BpmnError e) {
throw e;
@@ -206,10 +199,10 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in validateVfModule(): ' + e.getMessage())
}
}
-
+
/**
* Construct and send a PATCH request to AAI to update the VF Module.
- *
+ *
* @param execution The flow's execution instance.
*/
public void updateVfModule(DelegateExecution execution) {
@@ -217,39 +210,33 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
'execution=' + execution.getId() +
')'
msoLogger.trace('Entered ' + method)
-
+
try {
// Construct payload
- def VfModule vfModule = (VfModule) execution.getVariable('PUAAIVfMod_vfModule')
- def Node newVfModuleNode = vfModule.getNode().clone()
+ org.onap.aai.domain.yang.VfModule vfModule = execution.getVariable('PUAAIVfMod_vfModule')
+
def orchestrationStatus = execution.getVariable('PUAAIVfMod_orchestrationStatus')
- def Node orchestrationStatusNode = utils.getChildNode(newVfModuleNode, 'orchestration-status')
- if (orchestrationStatusNode == null) {
- // Node doesn't exist, this should never happen, right?
- new Node(newVfModuleNode, 'orchestration-status', orchestrationStatus)
- } else {
- // Node already exists, just give it a new value
- orchestrationStatusNode.setValue(orchestrationStatus)
- }
- def VfModule newVfModule = new VfModule(newVfModuleNode, vfModule.isOnlyVfModule())
+
+ vfModule.setOrchestrationStatus(orchestrationStatus)
+
//def payload = utils.nodeToString(newVfModuleNode)
-
+
// Construct endpoint
def vnfId = execution.getVariable('PUAAIVfMod_vnfId')
def vfModuleId = execution.getVariable('PUAAIVfMod_vfModuleId')
-
+
def payload = """{
"vf-module-id": "${vfModuleId}",
"orchestration-status": "${orchestrationStatus}"
}"""
-
+
msoLogger.debug("VfModule payload : " + payload)
- AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
-
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "/vf-modules/vf-module/" + UriUtils.encode(vfModuleId, "UTF-8")
+ AaiUtil aaiUtil = new AaiUtil(this)
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ uri.depth(Depth.ONE)
+ String endPoint = aaiUtil.createAaiUri(uri)
+
msoLogger.debug("PrepareUpdateAAIVfModule: AAI endPoint : " + endPoint)
String basicAuthCred = utils.getBasicAuth(UrnPropertiesReader.getVariable("aai.auth", execution),UrnPropertiesReader.getVariable("mso.msoKey", execution))
try {
@@ -275,16 +262,16 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
msoLogger.debug('Response:' + System.lineSeparator() + responseData)
msoLogger.debug("PrepareUpdateAAIVfModule: AAI Response : " + responseData)
msoLogger.debug("PrepareUpdateAAIVfModule: AAI ResponseCode : " + response.getStatusCode())
-
+
// Set the output for this flow. The updated VfModule is an output, the generic VNF name, and for
// backward compatibilty, the heat-stack-id is an output
- execution.setVariable('PUAAIVfMod_outVfModule', newVfModule)
+ execution.setVariable('PUAAIVfMod_outVfModule', vfModule)
def vnfName = execution.getVariable('PUAAIVfMod_vnfName')
msoLogger.debug('Output PUAAIVfMod_vnfName set to ' + vnfName)
// TODO: Should deprecate use of processKey+Response variable for the response. Will use "WorkflowResponse" instead
- execution.setVariable('WorkflowResponse', newVfModule)
- msoLogger.debug('Output PUAAIVfMod_outVfModule set for VF Module Id \'' + newVfModule.getElementText('vf-module-id') + '\'')
- def heatStackId = newVfModule.getElementText('heat-stack-id')
+ execution.setVariable('WorkflowResponse', vfModule)
+
+ def heatStackId = vfModule.getHeatStackId()
execution.setVariable('PUAAIVfMod_heatStackId', heatStackId)
msoLogger.debug('Output PUAAIVfMod_heatStackId set to \'' + heatStackId + '\'')
} catch (Exception ex) {
@@ -299,12 +286,12 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
} catch (Exception e) {
msoLogger.error(e)
exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in updateVfModule(): ' + e.getMessage())
- }
+ }
}
-
+
/**
* Generates a WorkflowException if the AAI query returns a response code other than 200.
- *
+ *
* @param execution The flow's execution instance.
*/
public void handleVnfNotFound(DelegateExecution execution) {
@@ -318,13 +305,13 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
WorkflowException exception = new WorkflowException(processKey, 5000,
execution.getVariable('PUAAIVfMod_getVnfResponse'))
execution.setVariable('WorkflowException', exception)
-
+
msoLogger.trace('Exited ' + method)
}
-
+
/**
* Generates a WorkflowException if the VF Module does not pass validation.
- *
+ *
* @param execution The flow's execution instance.
*/
public void handleVfModuleValidationError(DelegateExecution execution) {
@@ -332,21 +319,21 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
'execution=' + execution.getId() +
')'
msoLogger.trace('Entered ' + method)
-
+
def String errorMsg = 'VF Module validation error: ' + execution.getVariable('PUAAIVfMod_vfModuleValidationError')
msoLogger.error(errorMsg);
msoLogger.debug("PrepareUpdateAAIVfModule: Error Message : " + errorMsg)
-
+
String processKey = getProcessKey(execution);
WorkflowException exception = new WorkflowException(processKey, 5000, errorMsg)
execution.setVariable('WorkflowException', exception)
msoLogger.trace('Exited ' + method)
}
-
+
/**
* Generates a WorkflowException if updating a VF Module in AAI returns a response code other than 200.
- *
+ *
* @param execution The flow's execution instance.
*/
public void handleUpdateVfModuleFailure(DelegateExecution execution) {
@@ -360,7 +347,7 @@ public class PrepareUpdateAAIVfModule extends VfModuleBase {
WorkflowException exception = new WorkflowException(processKey, 5000,
execution.getVariable('PUAAIVfMod_updateVfModuleResponse'))
execution.setVariable('WorkflowException', exception)
-
+
msoLogger.trace('Exited ' + method)
}
}
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnf.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnf.groovy
index 7d7b9e103f..3e7c4f2d49 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnf.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnf.groovy
@@ -24,6 +24,10 @@ import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.client.graphinventory.entities.uri.Depth
import org.onap.so.rest.APIResponse
import org.springframework.web.util.UriUtils
import org.onap.so.logger.MessageEnum
@@ -129,10 +133,10 @@ public class UpdateAAIGenericVnf extends AbstractServiceTaskProcessor {
// Construct endpoint
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"
-
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ uri.depth(Depth.ONE)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
+
try {
msoLogger.debug('sending GET to AAI endpoint \'' + endPoint + '\'')
msoLogger.debug("Sending GET to AAI endpoint: " + endPoint)
@@ -246,9 +250,8 @@ public class UpdateAAIGenericVnf extends AbstractServiceTaskProcessor {
// Construct endpoint
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + UriUtils.encode(vnfId, "UTF-8")
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
try {
msoLogger.debug('sending PATCH to AAI endpoint \'' + endPoint + '\'' + 'with payload \n' + payload)
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModule.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModule.groovy
index 68b2df213a..c455ae90ce 100644
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModule.groovy
+++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModule.groovy
@@ -24,6 +24,9 @@ import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
import org.onap.so.bpmn.core.WorkflowException
import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
import org.onap.so.rest.APIResponse
import org.springframework.web.util.UriUtils
import org.onap.so.logger.MessageEnum
@@ -104,12 +107,10 @@ public class UpdateAAIVfModule extends AbstractServiceTaskProcessor {
def vnfId = execution.getVariable('UAAIVfMod_vnfId')
def vfModuleId = execution.getVariable('UAAIVfMod_vfModuleId')
- // Construct endpoint
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + UriUtils.encode(vnfId, "UTF-8") + '/vf-modules/vf-module/' + UriUtils.encode(vfModuleId, "UTF-8")
-
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
+
try {
msoLogger.debug('sending GET to AAI endpoint \'' + endPoint + '\'')
msoLogger.debug("UpdateAAIVfModule sending GET to AAI endpoint: " + endPoint)
@@ -202,12 +203,9 @@ public class UpdateAAIVfModule extends AbstractServiceTaskProcessor {
}
"""
-
- // Construct endpoint
AaiUtil aaiUriUtil = new AaiUtil(this)
- def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- msoLogger.debug('AAI URI is: ' + aai_uri)
- String endPoint = UrnPropertiesReader.getVariable("aai.endpoint", execution) + aai_uri + '/' + UriUtils.encode(vnfId, "UTF-8") + '/vf-modules/vf-module/' + UriUtils.encode(vfModuleId, "UTF-8")
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId)
+ String endPoint = aaiUriUtil.createAaiUri(uri)
try {
msoLogger.debug('sending PATCH to AAI endpoint \'' + endPoint + '\'' + 'with payload \n' + payload)