Merge "Added fix for potential nullpointer exception"
[so.git] / bpmn / MSOCommonBPMN / src / main / groovy / org / onap / so / bpmn / common / scripts / OofUtils.groovy
index 197589e..46ecc7b 100644 (file)
@@ -33,10 +33,9 @@ import org.onap.so.bpmn.core.domain.ServiceInstance
 import org.onap.so.bpmn.core.domain.Subscriber
 import org.onap.so.bpmn.core.domain.VnfResource
 import org.onap.so.bpmn.core.json.JsonUtils
+import org.onap.so.client.HttpClient
 import org.onap.so.db.catalog.beans.CloudSite
-import org.onap.so.rest.APIResponse
-import org.onap.so.rest.RESTClient
-import org.onap.so.rest.RESTConfig
+import org.onap.so.utils.TargetEntity
 import org.springframework.http.HttpEntity
 import org.springframework.http.HttpHeaders
 import org.springframework.http.HttpMethod
@@ -159,6 +158,8 @@ class OofUtils {
                     utils.log("DEBUG", "Allotted Resource: " + resource.toString(),
                             isDebugEnabled)
                     def serviceResourceId = resource.getResourceId()
+                    def toscaNodeType = resource.getToscaNodeType()
+                    def resourceModuleName = toscaNodeType.substring(toscaNodeType.lastIndexOf(".") + 1)
                     def resourceModelInvariantId = resource.getModelInfo().getModelInvariantUuid()
                     def resourceModelVersionId = resource.getModelInfo().getModelUuid()
                     def resourceModelName = resource.getModelInfo().getModelName()
@@ -174,7 +175,7 @@ class OofUtils {
 
                     String demand =
                             "      {\n" +
-                                    "      \"resourceModuleName\": \"${resourceModelName}\",\n" +
+                                    "      \"resourceModuleName\": \"${resourceModuleName}\",\n" +
                                     "      \"serviceResourceId\": \"${serviceResourceId}\",\n" +
                                     "      \"tenantId\": \"${tenantId}\",\n" +
                                     "      \"resourceModelInfo\": {\n" +
@@ -200,6 +201,8 @@ class OofUtils {
                     utils.log("DEBUG", "VNF Resource: " + vnfResource.toString(),
                             isDebugEnabled)
                     ModelInfo vnfResourceModelInfo = vnfResource.getModelInfo()
+                    def toscaNodeType = vnfResource.getToscaNodeType()
+                    def resourceModuleName = toscaNodeType.substring(toscaNodeType.lastIndexOf(".") + 1)
                     def serviceResourceId = vnfResource.getResourceId()
                     def resourceModelInvariantId = vnfResourceModelInfo.getModelInvariantUuid()
                     def resourceModelName = vnfResourceModelInfo.getModelName()
@@ -212,7 +215,7 @@ class OofUtils {
 
                     String placementDemand =
                             "      {\n" +
-                                    "      \"resourceModuleName\": \"${resourceModelName}\",\n" +
+                                    "      \"resourceModuleName\": \"${resourceModuleName}\",\n" +
                                     "      \"serviceResourceId\": \"${serviceResourceId}\",\n" +
                                     "      \"tenantId\": \"${tenantId}\",\n" +
                                     "      \"resourceModelInfo\": {\n" +
@@ -504,26 +507,28 @@ class OofUtils {
         String auth = UrnPropertiesReader.getVariable("mso.db.auth", execution)
         String uri = "/cloudSite"
 
-        HttpHeaders headers = new HttpHeaders()
+       URL url = new URL(endpoint + uri)
+       HttpClient client = new HttpClient(url, MediaType.APPLICATION_JSON, TargetEntity.EXTERNAL)
+       client.addAdditionalHeader(HttpHeaders.AUTHORIZATION, auth)
+       client.addAdditionalHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
 
-        headers.set(HttpHeaders.AUTHORIZATION, auth)
-        headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
-        headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+        Response response = client.post(request.getBody().toString())
 
-        UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(endpoint + uri)
-        HttpEntity<CloudSite> request = new HttpEntity<CloudSite>(cloudSite, headers)
-        RESTConfig config = new RESTConfig(endpoint + uri)
-        RESTClient client = new RESTClient(config).addAuthorizationHeader(auth).
-                addHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON).addHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
-        APIResponse response = client.httpPost(request.getBody().toString())
-
-        int responseCode = response.getStatusCode()
+        int responseCode = response.getStatus()
         logDebug("CatalogDB response code is: " + responseCode, isDebugEnabled)
-        String syncResponse = response.getResponseBodyAsString()
+        String syncResponse = response.readEntity(String.class)
         logDebug("CatalogDB response is: " + syncResponse, isDebugEnabled)
 
         if(responseCode != 202){
             exceptionUtil.buildAndThrowWorkflowException(execution, responseCode, "Received a Bad Sync Response from CatalogDB.")
         }
     }
+
+     String getMsbHost(DelegateExecution execution) {
+         msbHost = UrnPropertiesReader.getVariable("mso.msb.host", execution, "msb-iag.onap")
+
+         Integer msbPort = UrnPropertiesReader.getVariable("mso.msb.port", execution, "80").toInteger()
+
+         return UriBuilder.fromPath("").host(msbHost).port(msbPort).scheme("http").build().toString()
+    }
 }