fix issue : GSO-124
authorc00149107 <chenchuanyu@huawei.com>
Fri, 25 Nov 2016 03:12:02 +0000 (11:12 +0800)
committerc00149107 <chenchuanyu@huawei.com>
Fri, 25 Nov 2016 03:12:02 +0000 (11:12 +0800)
Change-Id: If9960955d0fa3e4af7f9a2331ec2678053ea5ed7
Signed-off-by: c00149107 <chenchuanyu@huawei.com>
servicegateway/deployment/src/main/release/etc/conf/restclient.json
servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/HttpCode.java
servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/impl/ServiceGatewayRoaModuleImpl.java
servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/impl/ServiceGatewayImpl.java
servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/ResponseUtils.java

index b30e05c..c7e61a5 100644 (file)
@@ -7,5 +7,5 @@
        "ConnectTimeout":"1000",\r
        "thread":"10",\r
        "idletimeout":"500000",\r
-       "timeout":"10000"\r
+       "timeout":"600000"\r
 }
\ No newline at end of file
index 2577903..473de72 100644 (file)
@@ -56,6 +56,8 @@ public class HttpCode {
      * Http response is ok.
      */
     public static final int RESPOND_OK = 200;
+    
+    public static final int CREATED_OK = 201;
 
     /**
      * Conflict
index bd91ff2..059e6fd 100644 (file)
@@ -124,6 +124,6 @@ public class ServiceGatewayRoaModuleImpl implements IServiceGatewayRoaModule {
        public void setServiceGateway(IServiceGateway serviceGateway) 
        {
                this.serviceGateway = serviceGateway;
-       }       
+       }
     
 }
index 4f592f5..aea5ee9 100644 (file)
@@ -22,12 +22,14 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.lang.StringUtils;
+import org.openo.baseservice.remoteservice.exception.ExceptionArgs;
 import org.openo.baseservice.remoteservice.exception.ServiceException;
 import org.openo.baseservice.roa.util.restclient.RestfulFactory;
 import org.openo.baseservice.roa.util.restclient.RestfulParametes;
 import org.openo.baseservice.roa.util.restclient.RestfulResponse;
 import org.openo.baseservice.util.RestUtils;
 import org.openo.gso.gui.servicegateway.constant.Constant;
+import org.openo.gso.gui.servicegateway.exception.HttpCode;
 import org.openo.gso.gui.servicegateway.service.inf.IServiceGateway;
 import org.openo.gso.gui.servicegateway.util.json.JsonUtil;
 import org.openo.gso.gui.servicegateway.util.validate.ValidateUtil;
@@ -90,13 +92,24 @@ public class ServiceGatewayImpl implements IServiceGateway {
                     getRestfulParameters(JsonUtil.marshal(requestBody)));
                LOGGER.info("Receive the cretation RESTful response from orchestrator.The status is:"+restfulRsp.getStatus()+" the content is:"+ 
                     restfulRsp.getResponseContent());
-            if (null != restfulRsp) {
+            if (null != restfulRsp) 
+            {
                 // Record the result of registration
                 // (201:success;415:Invalid Parameter;500:Internal Server Error)
-                LOGGER.info("restful call result:"+ restfulRsp.getStatus());
-                id = restfulRsp.getRespHeaderStr(Constant.SERVICE_ID);
-                id = (null == id) ? restfulRsp.getRespHeaderStr(Constant.NS_INSTANCE_ID) : id;
-                id = (null == id) ? restfulRsp.getRespHeaderStr(Constant.JOB_ID) : id;
+               LOGGER.info("restful call result:"+ restfulRsp.getStatus());
+               if(restfulRsp.getStatus() == HttpCode.RESPOND_ACCEPTED || restfulRsp.getStatus() == HttpCode.RESPOND_OK || restfulRsp.getStatus() == HttpCode.CREATED_OK)
+               {       
+                       Map<String,Object> rspBody = JsonUtil.unMarshal(restfulRsp.getResponseContent(),Map.class);
+                       id = (String)rspBody.get(Constant.SERVICE_ID);
+                       id = (null == id) ? (String)rspBody.get(Constant.NS_INSTANCE_ID) : id;
+                       id = (null == id) ? (String)rspBody.get(Constant.JOB_ID) : id;
+               }
+               else
+               {                       
+                       ExceptionArgs args = new ExceptionArgs();
+                    args.setDescArgs(new String[] {"Fail to create service:" + restfulRsp.getResponseContent()});              
+                    throw new ServiceException(ServiceException.DEFAULT_ID, restfulRsp.getStatus(), args);
+               }
             }
         } catch(ServiceException e) {
                LOGGER.error("service gateway create restful call result:", e);
@@ -164,13 +177,14 @@ public class ServiceGatewayImpl implements IServiceGateway {
                 restfulRsp = RestfulFactory.getRestInstance("http").post(gatewayUri,
                         getRestfulParameters(JsonUtil.marshal(requestBody)));
                 if (null != restfulRsp) {
-                    String jobId = restfulRsp.getRespHeaderStr(Constant.JOB_ID);
+                       Map<String,Object> rspBody = JsonUtil.unMarshal(restfulRsp.getResponseContent(),Map.class);
+                    String jobId = (String)rspBody.get(Constant.JOB_ID);
                     result.put(Constant.JOB_ID, jobId);
                 }
             }
             if (null != restfulRsp) {
-                LOGGER.info("restful call result:", restfulRsp.getStatus());
-                LOGGER.info("restful call content:", restfulRsp.getResponseContent());
+                LOGGER.info("restful call result: {}", restfulRsp.getStatus());
+                LOGGER.info("restful call content:{}", restfulRsp.getResponseContent());
             }
             return result;
         } catch(ServiceException e) {
index 05d4f0f..eb753aa 100644 (file)
@@ -16,6 +16,7 @@
 
 package org.openo.gso.gui.servicegateway.util.http;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -148,11 +149,10 @@ public class ResponseUtils {
             result.put(Constant.RESPONSE_STATUS_DESCRIPTION, status);
         } else {
             if((null != exception.getExceptionArgs()) && (null != exception.getExceptionArgs().getDescArgs())) {
-                result.put(Constant.RESPONSE_STATUS_DESCRIPTION, exception.getExceptionArgs().getDescArgs().toString());
+                result.put(Constant.RESPONSE_STATUS_DESCRIPTION, Arrays.asList(exception.getExceptionArgs().getDescArgs()).toString());
             }
         }
         result.put(Constant.RESPONSE_ERRORCODE, errorCode);
-
         return result;
     }