Fix service create request for so api 59/47159/1
authorzhangab <zhanganbing@chinamobile.com>
Fri, 11 May 2018 02:38:48 +0000 (10:38 +0800)
committerzhangab <zhanganbing@chinamobile.com>
Fri, 11 May 2018 02:38:56 +0000 (10:38 +0800)
Change-Id: I557432a1661a979aa2584b2d2955e4cabc7d5fad
Issue-ID: USECASEUI-115
Signed-off-by: zhangab <zhanganbing@chinamobile.com>
21 files changed:
server/src/main/java/org/onap/usecaseui/server/bean/lcm/ServiceTemplateInput.java
server/src/main/java/org/onap/usecaseui/server/constant/Constant.java
server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java
server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceLcmController.java
server/src/main/java/org/onap/usecaseui/server/dao/UsecaseuiDataSource.java
server/src/main/java/org/onap/usecaseui/server/hibernate/HibernateConfiguration.java
server/src/main/java/org/onap/usecaseui/server/service/InitializationService.java
server/src/main/java/org/onap/usecaseui/server/service/impl/InitializationServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/ServiceInstanceService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/ServiceLcmService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/aai/AAIService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/so/SOService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/so/bean/SaveOrUpdateOperationRsp.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceLcmService.java
server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceTemplateService.java
server/src/main/java/org/onap/usecaseui/server/util/ResponseUtil.java
server/src/main/java/org/onap/usecaseui/server/util/RestfulServices.java
server/src/main/java/org/onap/usecaseui/server/util/UuiCommonUtil.java [new file with mode: 0644]
server/src/test/java/org/onap/usecaseui/server/bean/lcm/ServiceTemplateInputTest.java
server/src/test/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceTemplateServiceTest.java

index 0e25e0d..37399d9 100644 (file)
@@ -38,9 +38,11 @@ public class ServiceTemplateInput {
     private String category;
 
     private String subcategory;
-
+    
+    private String customizationUuid;
+    
     private List<TemplateInput> inputs;
-
+    
     private List<ServiceTemplateInput> nestedTemplates;
 
     public ServiceTemplateInput(
@@ -52,6 +54,7 @@ public class ServiceTemplateInput {
             String description,
             String category,
             String subcategory,
+            String customizationUuid,
             List<TemplateInput> inputs) {
         this.invariantUUID = invariantUUID;
         this.uuid = uuid;
@@ -61,6 +64,7 @@ public class ServiceTemplateInput {
         this.description = description;
         this.category = category;
         this.subcategory = subcategory;
+        this.customizationUuid = customizationUuid;
         this.inputs = inputs;
         this.nestedTemplates = new ArrayList<>();
     }
@@ -96,8 +100,12 @@ public class ServiceTemplateInput {
     public String getSubcategory() {
         return subcategory;
     }
+    
+    public String getCustomizationUuid() {
+               return customizationUuid;
+       }
 
-    public List<TemplateInput> getInputs() {
+       public List<TemplateInput> getInputs() {
         return inputs;
     }
 
@@ -134,13 +142,14 @@ public class ServiceTemplateInput {
                 Objects.equals(description, that.description) &&
                 Objects.equals(category, that.category) &&
                 Objects.equals(subcategory, that.subcategory) &&
+                Objects.equals(customizationUuid, that.customizationUuid) &&
                 Objects.equals(inputs, that.inputs) &&
                 Objects.equals(nestedTemplates, that.nestedTemplates);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(invariantUUID, uuid, name, type, version, description, category, subcategory, inputs, nestedTemplates);
+        return Objects.hash(invariantUUID, uuid, name, type, version, description, category, subcategory,customizationUuid, inputs, nestedTemplates);
     }
 
     @Override
@@ -154,6 +163,7 @@ public class ServiceTemplateInput {
                 .add("description", description)
                 .add("category", category)
                 .add("subcategory", subcategory)
+                .add("customizationUuid", customizationUuid)
                 .add("inputs", inputs)
                 .add("nestedTemplates", nestedTemplates)
                 .toString();
index 9a818e4..472f540 100755 (executable)
@@ -1,4 +1,4 @@
-/*\r
+/**\r
  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.\r
  *\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
@@ -21,5 +21,6 @@ public final class Constant
 \r
     public static final String DATE_FORMAT= "yyyy-MM-dd HH:mm:ss";\r
 \r
+    public static final String RegEX_DATE_FORMAT = "[^0-9-:]";\r
 \r
 }\r
index e900365..715a2ac 100644 (file)
  */
 package org.onap.usecaseui.server.controller.lcm;
 
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
 import org.onap.usecaseui.server.service.lcm.ServiceInstanceService;
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.ServiceInstance;
+import org.onap.usecaseui.server.util.UuiCommonUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 
 @Controller
 @org.springframework.context.annotation.Configuration
@@ -52,7 +58,43 @@ public class ServiceInstanceController {
                 "list service instances with [customerId=%s, serviceType=%s]",
                 customerId,
                 serviceType));
-
         return serviceInstanceService.listServiceInstances(customerId, serviceType);
     }
+    @ResponseBody
+    @RequestMapping(value = {"/uui-lcm/getServiceInstanceById"}, method = RequestMethod.GET , produces = "application/json")
+    public String getServiceInstanceById(HttpServletRequest request){
+        String customerId = request.getParameter("customerId");
+        String serviceType = request.getParameter("serviceType");
+        String serviceId = request.getParameter("serviceId");
+        JSONArray result = new JSONArray();
+        String servicesString=serviceInstanceService.getRelationShipData(customerId, serviceType, serviceId);
+        if(!UuiCommonUtil.isNotNullOrEmpty(servicesString)){
+               return result.toString();
+        }
+        JSONObject services = JSONObject.parseObject(servicesString);
+        JSONArray relations =JSONObject.parseArray(JSONObject.parseObject(services.getString("relationship-list")).getString("relationship"));
+        for (int i = 0; i < relations.size(); i++) {
+               JSONObject relation = JSONObject.parseObject(relations.getString(i));
+               JSONArray relationShipData = JSONObject.parseArray(relation.getString("relationship-data"));
+               for (int j = 0; j < relationShipData.size(); j++) {
+                       JSONObject res = new JSONObject();
+                       JSONObject data = JSONObject.parseObject(relationShipData.getString(j));
+                       String relationshipKey=data.getString("relationship-key");
+                       String netWorkServiceId=data.getString("relationship-value");
+                       if("service-instance.service-instance-id".equals(relationshipKey)){
+                               JSONObject netWorkSerSring=JSONObject.parseObject(serviceInstanceService.getRelationShipData(customerId, serviceType, netWorkServiceId));
+                               if("NetworkService".equals(netWorkSerSring.get("service-type"))){
+                                       res.put("netWorkServiceId", netWorkSerSring.get("service-instance-id"));
+                                       res.put("netWorkServiceName", netWorkSerSring.get("service-instance-name"));
+                                       res.put("scaleType","");
+                                       res.put("aspectId","");
+                                       res.put("numberOfSteps","");
+                                       res.put("scalingDirection","");
+                                       result.add(res);
+                               }
+                       }
+               }
+               }
+        return result.toString() ;
+    }
 }
index 5c620cf..cb919a3 100644 (file)
@@ -18,6 +18,7 @@ package org.onap.usecaseui.server.controller.lcm;
 import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.DeleteOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.OperationProgressInformation;
+import org.onap.usecaseui.server.service.lcm.domain.so.bean.SaveOrUpdateOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.ServiceOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -77,7 +78,7 @@ public class ServiceLcmController {
      */
     @ResponseBody
     @RequestMapping(value = {"/uui-lcm/services/scaleServices/{serviceId}"}, method = RequestMethod.POST , produces = "application/json")
-    public DeleteOperationRsp scaleServices(@PathVariable(value = "serviceId") String serviceId, HttpServletRequest request){
+    public SaveOrUpdateOperationRsp scaleServices(@PathVariable(value = "serviceId") String serviceId, HttpServletRequest request){
         return serviceLcmService.scaleService(serviceId, request);
     }
     
@@ -95,7 +96,7 @@ public class ServiceLcmController {
      */
     @ResponseBody
     @RequestMapping(value = {"/uui-lcm/services/updateService/{serviceId}"}, method = RequestMethod.PUT , produces = "application/json")
-    public DeleteOperationRsp updateServices(@PathVariable(value = "serviceId") String serviceId, HttpServletRequest request){
-        return serviceLcmService.scaleService(serviceId, request);
+    public SaveOrUpdateOperationRsp updateServices(@PathVariable(value = "serviceId") String serviceId, HttpServletRequest request){
+        return serviceLcmService.updateService(serviceId, request);
     }
 }
index 475adc0..5716030 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/**
  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
index b47b2df..bb78503 100755 (executable)
@@ -1,4 +1,4 @@
-/*\r
+/**\r
  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.\r
  *\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
index 1775211..49fa8e3 100644 (file)
@@ -22,4 +22,6 @@ import java.util.List;
 public interface ServiceInstanceService {
 
     List<ServiceInstance> listServiceInstances(String customerId, String serviceType);
+    
+    String getRelationShipData(String customerId, String serviceType,String serviceId );
 }
index f2d993a..f69a33e 100644 (file)
@@ -17,6 +17,7 @@ package org.onap.usecaseui.server.service.lcm;
 
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.DeleteOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.OperationProgressInformation;
+import org.onap.usecaseui.server.service.lcm.domain.so.bean.SaveOrUpdateOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.ServiceOperation;
 
 import javax.servlet.http.HttpServletRequest;
@@ -29,7 +30,7 @@ public interface ServiceLcmService {
 
     DeleteOperationRsp terminateService(String serviceId, HttpServletRequest request);
     
-    DeleteOperationRsp scaleService(String serviceId,HttpServletRequest request);
+    SaveOrUpdateOperationRsp scaleService(String serviceId,HttpServletRequest request);
     
-    DeleteOperationRsp updateService(String serviceId,HttpServletRequest request);
+    SaveOrUpdateOperationRsp updateService(String serviceId,HttpServletRequest request);
 }
index d1ea681..267efce 100644 (file)
@@ -16,6 +16,8 @@
 package org.onap.usecaseui.server.service.lcm.domain.aai;
 
 import org.onap.usecaseui.server.service.lcm.domain.aai.bean.*;
+
+import okhttp3.ResponseBody;
 import retrofit2.Call;
 import retrofit2.http.GET;
 import retrofit2.http.Headers;
@@ -71,4 +73,13 @@ public interface AAIService {
     })
     @GET("/api/aai-externalSystem/v11/esr-thirdparty-sdnc-list")
     Call<SDNCControllerRsp> listSdncControllers();
+    
+    @Headers({
+        "X-TransactionId: 7777",
+        "X-FromAppId: uui",
+        "Authorization: Basic QUFJOkFBSQ==",
+        "Accept: application/json"
+       })
+       @GET("/api/aai-business/v11/customers/customer/{customerId}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{serviceId}")
+       Call<ResponseBody> getAAIServiceInstance(@Path("customerId") String customerId,@Path("service-type") String seviceType,@Path("serviceId") String serviceId);
 }
index fc41452..e4ea5b5 100644 (file)
@@ -18,6 +18,7 @@ package org.onap.usecaseui.server.service.lcm.domain.so;
 import okhttp3.RequestBody;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.DeleteOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.OperationProgressInformation;
+import org.onap.usecaseui.server.service.lcm.domain.so.bean.SaveOrUpdateOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.ServiceOperation;
 import retrofit2.Call;
 import retrofit2.http.*;
@@ -51,12 +52,12 @@ public interface SOService {
         "Accept: application/json"
     })
        @POST("/ecomp/mso/infra/e2eServiceInstances/v3/{serviceId}/scale")
-       Call<DeleteOperationRsp> scaleService(@Path("serviceId") String serviceId, @Body RequestBody body);
+       Call<SaveOrUpdateOperationRsp> scaleService(@Path("serviceId") String serviceId, @Body RequestBody body);
     
     @Headers({
         "Authorization: Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==",
         "Accept: application/json"
     })
        @PUT("/ecomp/mso/infra/e2eServiceInstances/v3/{serviceId}")
-       Call<DeleteOperationRsp> updateService(@Path("serviceId") String serviceId, @Body RequestBody body);
+       Call<SaveOrUpdateOperationRsp> updateService(@Path("serviceId") String serviceId, @Body RequestBody body);
 }
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/so/bean/SaveOrUpdateOperationRsp.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/so/bean/SaveOrUpdateOperationRsp.java
new file mode 100644 (file)
index 0000000..ed718e6
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+ * Copyright 2016-2017 CMCC Corporation.
+ *
+ * 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.
+ */
+package org.onap.usecaseui.server.service.lcm.domain.so.bean;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown=true)
+public class SaveOrUpdateOperationRsp {
+
+    private String operationId;
+
+    public String getOperationId() {
+        return operationId;
+    }
+
+    public void setOperationId(String operationId) {
+        this.operationId = operationId;
+    }
+}
index ff430a5..8cd7ab5 100644 (file)
@@ -25,6 +25,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Service;
+
+import okhttp3.ResponseBody;
 import retrofit2.Response;
 
 import java.io.IOException;
@@ -63,4 +65,21 @@ public class DefaultServiceInstanceService implements ServiceInstanceService {
             throw new AAIException("AAI is not available.", e);
         }
     }
+
+       @Override
+       public String getRelationShipData(String customerId, String serviceType, String serviceId) {
+        try {
+            Response<ResponseBody> response = aaiService.getAAIServiceInstance(customerId, serviceType,serviceId).execute();
+            if (response.isSuccessful()) {
+               String result=new String(response.body().bytes());
+                return result;
+            } else {
+                logger.info(String.format("Can not get service instances[code=%s, message=%s]", response.code(), response.message()));
+                return "";
+            }
+        } catch (IOException e) {
+            logger.error("list services instances occur exception");
+            throw new AAIException("AAI is not available.", e);
+        }
+       }
 }
index 6fc85b3..1e9895d 100644 (file)
  */
 package org.onap.usecaseui.server.service.lcm.impl;
 
-import okhttp3.RequestBody;
+import static org.onap.usecaseui.server.util.RestfulServices.create;
+import static org.onap.usecaseui.server.util.RestfulServices.extractBody;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+
 import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
 import org.onap.usecaseui.server.service.lcm.domain.so.SOService;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.DeleteOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.OperationProgressInformation;
+import org.onap.usecaseui.server.service.lcm.domain.so.bean.SaveOrUpdateOperationRsp;
 import org.onap.usecaseui.server.service.lcm.domain.so.bean.ServiceOperation;
 import org.onap.usecaseui.server.service.lcm.domain.so.exceptions.SOException;
+import org.onap.usecaseui.server.util.UuiCommonUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Service;
-import retrofit2.Response;
 
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.util.Collections;
-
-import static org.onap.usecaseui.server.util.RestfulServices.create;
-import static org.onap.usecaseui.server.util.RestfulServices.extractBody;
+import okhttp3.RequestBody;
+import retrofit2.Response;
 
 @Service("ServiceLcmService")
 @org.springframework.context.annotation.Configuration
@@ -55,15 +58,17 @@ public class DefaultServiceLcmService implements ServiceLcmService {
     @Override
     public ServiceOperation instantiateService(HttpServletRequest request) {
         try {
-            RequestBody requestBody = extractBody(request);
+               logger.info("so instantiate is starting");
+               RequestBody requestBody = extractBody(request);
             Response<ServiceOperation> response = soService.instantiateService(requestBody).execute();
+                       logger.info("so instantiate has finished");
             if (response.isSuccessful()) {
                 return response.body();
             } else {
-                logger.info(String.format("Can not instantiate service[code=%s, message=%s]", response.code(), response.message()));
+                logger.error(String.format("Can not instantiate service[code=%s, message=%s]", response.code(), response.message()));
                 throw new SOException("SO instantiate service failed!");
             }
-        } catch (IOException e) {
+        } catch (Exception e) {
             throw new SOException("SO Service is not available!", e);
         }
     }
@@ -75,7 +80,7 @@ public class DefaultServiceLcmService implements ServiceLcmService {
             if (response.isSuccessful()) {
                 return response.body();
             } else {
-                logger.info(String.format("Can not query operation process[code=%s, message=%s]", response.code(), response.message()));
+                logger.error(String.format("Can not query operation process[code=%s, message=%s]", response.code(), response.message()));
                 throw new SOException("SO query operation process failed!");
             }
         } catch (IOException e) {
@@ -86,12 +91,14 @@ public class DefaultServiceLcmService implements ServiceLcmService {
     @Override
     public DeleteOperationRsp terminateService(String serviceId, HttpServletRequest request) {
         try {
+               logger.info("so terminate is starting");
             RequestBody requestBody = extractBody(request);
             Response<DeleteOperationRsp> response = soService.terminateService(serviceId, requestBody).execute();
+                       logger.info("so terminate has finished");
             if (response.isSuccessful()) {
                 return response.body();
             } else {
-                logger.info(String.format("Can not terminate service[code=%s, message=%s]", response.code(), response.message()));
+                logger.error(String.format("Can not terminate service[code=%s, message=%s]", response.code(), response.message()));
                 throw new SOException("SO terminate service failed!");
             }
         } catch (IOException e) {
@@ -100,14 +107,16 @@ public class DefaultServiceLcmService implements ServiceLcmService {
     }
 
        @Override
-       public DeleteOperationRsp scaleService(String serviceId, HttpServletRequest request) {
+       public SaveOrUpdateOperationRsp scaleService(String serviceId, HttpServletRequest request) {
                try {
+                       logger.info("so scale is finished");
                        RequestBody requestBody = extractBody(request);
-                       Response<DeleteOperationRsp> response = soService.scaleService(serviceId,requestBody).execute();
+                       Response<SaveOrUpdateOperationRsp> response = soService.scaleService(serviceId,requestBody).execute();
+                       logger.info("so scale has finished");
                        if(response.isSuccessful()){
                                return response.body();
                        }else{
-                logger.info(String.format("Can not terminate service[code=%s, message=%s]", response.code(), response.message()));
+                logger.error(String.format("Can not scaleService service[code=%s, message=%s]", response.code(), response.message()));
                 throw new SOException("SO terminate service failed!");
                        }
                } catch (IOException e) {
@@ -116,14 +125,16 @@ public class DefaultServiceLcmService implements ServiceLcmService {
        }
 
        @Override
-       public DeleteOperationRsp updateService(String serviceId, HttpServletRequest request) {
+       public SaveOrUpdateOperationRsp updateService(String serviceId, HttpServletRequest request) {
                try {
+                       logger.info("so update is starting");
                        RequestBody requestBody = extractBody(request);
-                       Response<DeleteOperationRsp> response = soService.updateService(serviceId,requestBody).execute();
+                       Response<SaveOrUpdateOperationRsp> response = soService.updateService(serviceId,requestBody).execute();
+                       logger.info("so update has finished");
                        if(response.isSuccessful()){
                                return response.body();
                        }else{
-                logger.info(String.format("Can not terminate service[code=%s, message=%s]", response.code(), response.message()));
+                logger.error(String.format("Can not updateService service[code=%s, message=%s]", response.code(), response.message()));
                 throw new SOException("SO terminate service failed!");
                        }
                } catch (IOException e) {
index 1b4cd33..d78a853 100644 (file)
@@ -289,6 +289,7 @@ public class DefaultServiceTemplateService implements ServiceTemplateService {
         String description = tosca.getMetaData().getValue("description");
         String category = tosca.getMetaData().getValue("category");
         String subcategory = tosca.getMetaData().getValue("subcategory");
+        String customizationUuid = tosca.getMetaData().getValue("customizationUuid");
         if(subcategory == null) {
             subcategory = "";
         }
@@ -301,6 +302,7 @@ public class DefaultServiceTemplateService implements ServiceTemplateService {
                 description,
                 category,
                 subcategory,
+                customizationUuid,
                 new ArrayList<>());
     }
 
@@ -316,6 +318,7 @@ public class DefaultServiceTemplateService implements ServiceTemplateService {
         String description = nodeTemplate.getMetaData().getValue("description");
         String category = nodeTemplate.getMetaData().getValue("category");
         String subcategory = nodeTemplate.getMetaData().getValue("subcategory");
+        String customizationUuid = nodeTemplate.getMetaData().getValue("customizationUuid");
         if(subcategory == null) {
             subcategory = "";
         }
@@ -328,6 +331,7 @@ public class DefaultServiceTemplateService implements ServiceTemplateService {
                 description,
                 category,
                 subcategory,
+                customizationUuid,
                 new ArrayList<>());
     }
 
index 8e2f39c..9891bcf 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/**
  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
index 2d013dd..6441d0e 100644 (file)
  */
 package org.onap.usecaseui.server.util;
 
-import okhttp3.RequestBody;
-import okhttp3.MediaType;
-import retrofit2.Retrofit;
-import retrofit2.converter.jackson.JacksonConverterFactory;
+import java.io.IOException;
 
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
 
 public class RestfulServices {
 
+       private static final Logger logger = LoggerFactory.getLogger(RestfulServices.class);
+
     public static <T> T create(String baseUrl, Class<T> clazz) {
         Retrofit retrofit = new Retrofit.Builder()
                 .baseUrl(baseUrl)
@@ -58,6 +64,7 @@ public class RestfulServices {
             inStream = request.getInputStream();
             byte[] buffer = new byte[len];
             inStream.read(buffer, 0, len);
+            logger.info("The request body content is: "+new String(buffer));
             return RequestBody.create(MediaType.parse("application/json"), buffer);
         }finally {
             if (inStream != null) {
diff --git a/server/src/main/java/org/onap/usecaseui/server/util/UuiCommonUtil.java b/server/src/main/java/org/onap/usecaseui/server/util/UuiCommonUtil.java
new file mode 100644 (file)
index 0000000..f9a1e81
--- /dev/null
@@ -0,0 +1,116 @@
+/**
+ * Copyright 2016-2017 CMCC Corporation.
+ *
+ * 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.
+ */
+package org.onap.usecaseui.server.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Array;
+import java.util.Collection;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UuiCommonUtil {
+       
+       
+       private static final Logger logger = LoggerFactory.getLogger(UuiCommonUtil.class);
+       /**
+        * 
+         * getUUID
+         * 
+         * @Auther YYY
+         * @Date   2018/4/26
+         * @Title: getUUID
+         * @Description: 
+         * @return
+        */
+       public static String getUUID() {
+               UUID uuid = UUID.randomUUID();
+               String str = uuid.toString();
+               return str.substring(0, 8) + str.substring(9, 13)
+                               + str.substring(14, 18) + str.substring(19, 23)
+                               + str.substring(24);
+       }
+       
+       /**
+        * 
+         * isNotNullOrEmpty
+         * 
+         * @Auther YYY
+         * @Date   2018/5/4
+         * @Title: isNotNullOrEmpty
+         * @Description: 
+         * @param obj
+         * @return
+        */
+       public static boolean isNotNullOrEmpty(Object obj) {
+               if(null == obj) {
+                       return false;
+               }
+               if(obj instanceof Collection) {
+                       if (((Collection)obj).size() == 0) {
+                               return false;
+                       }
+               } else if (obj instanceof String) {
+                       if (((String)obj).trim().equals("")) {
+                               return false;
+                       }
+               } else if (obj instanceof Map) {
+                       if (((Map)obj).size() == 0) {
+                               return false;
+                       }
+               } else if (obj.getClass().isArray()) {
+                       if(Array.getLength(obj) == 0) {
+                               return false;
+                       }
+               } else if (obj instanceof StringBuffer) {
+                       if (((StringBuffer)obj).length() == 0) {
+                               return false;
+                       }
+               }
+               return true;
+       }
+       
+       /**
+        * 
+         * OutRequestBody
+         * 
+         * @Auther YYY
+         * @Date   2018/5/9
+         * @Title: OutRequestBody
+         * @Description: 
+         * @param request
+         * @return
+        */
+       public static String OutRequestBody(HttpServletRequest request){
+               BufferedReader br;
+               String str, wholeStr = "";
+               try {
+                       br = request.getReader();
+                       while((str = br.readLine()) != null){
+                       wholeStr += str;
+                       }
+               } catch (IOException e) {
+                       logger.error("exception occurred while performing UuiCommonUtil OutRequestBody.Details:"+ e.getMessage());
+                       e.printStackTrace();
+               }
+               return wholeStr;
+       }
+}
index 0d2d95d..2c93ee7 100644 (file)
@@ -34,7 +34,7 @@ public class ServiceTemplateInputTest {
        @Test
        public void testGetServiceTemplateInput() throws Exception {
                List<TemplateInput> inputs = new ArrayList<>();
-               ServiceTemplateInput sti = new ServiceTemplateInput("invariantUUID", "uuid", "name", "type", "version", "description", "category", "subcategory", inputs);
+               ServiceTemplateInput sti = new ServiceTemplateInput("invariantUUID", "uuid", "name", "type", "version", "description", "category", "subcategory","", inputs);
                sti.getInvariantUUID();
                sti.getUuid();
                sti.getName();
@@ -53,7 +53,7 @@ public class ServiceTemplateInputTest {
        public void testSetServiceTemplateInput() throws Exception {
                List<TemplateInput> tis = new ArrayList<>();
                TemplateInput ti = new TemplateInput("name", "type", "description", "isRequired", "defaultValue");
-               ServiceTemplateInput sti = new ServiceTemplateInput("invariantUUID", "uuid", "name", "type", "version", "description", "category", "subcategory", tis);
+               ServiceTemplateInput sti = new ServiceTemplateInput("invariantUUID", "uuid", "name", "type", "version", "description", "category", "subcategory","", tis);
                sti.addNestedTemplate(sti);
                sti.addInputs(tis);
                sti.addInput(ti);
index 250c698..ac0d269 100644 (file)
@@ -123,10 +123,10 @@ public class DefaultServiceTemplateServiceTest {
 
     private ServiceTemplateInput expectedServiceInputs(String uuid, String nodeUUID) {
         ServiceTemplateInput e2eServiceTemplateInput = new ServiceTemplateInput(
-                uuid, uuid, "VoLTE", "service","", "VoLTE", "service", "", Collections.EMPTY_LIST);
+                uuid, uuid, "VoLTE", "service","", "VoLTE", "service", "","", Collections.EMPTY_LIST);
         TemplateInput templateInput = new TemplateInput("field_name","field_type", "field_description", "true", "field_default");
         ServiceTemplateInput nodeTemplateInput = new ServiceTemplateInput(
-                nodeUUID, nodeUUID, "", "", "","", "service", "", Collections.singletonList(templateInput));
+                nodeUUID, nodeUUID, "", "", "","", "service", "","", Collections.singletonList(templateInput));
 //        e2eServiceTemplateInput.addNestedTemplate(nodeTemplateInput);
         return e2eServiceTemplateInput;
     }