From ec1a7fc99e21cf716b906fac5b2696ae62f3e9ad Mon Sep 17 00:00:00 2001 From: liuqian Date: Fri, 4 May 2018 14:25:32 +0800 Subject: query jobId support CSM17 Change-Id: Ide24abc8acc6f4e63b24e979b58d963b9f491bbf Issue-ID: VFC-868 Signed-off-by: liuqian --- .../vnfmadapter/service/csm/vnf/VnfMgrVnfm.java | 41 +++++++++++++++++--- .../svnfm/vnfmadapter/service/rest/VnfRoa.java | 45 ++++++++++++++++------ 2 files changed, 70 insertions(+), 16 deletions(-) (limited to 'huawei') diff --git a/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/csm/vnf/VnfMgrVnfm.java b/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/csm/vnf/VnfMgrVnfm.java index eb081d10..e57d23f4 100644 --- a/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/csm/vnf/VnfMgrVnfm.java +++ b/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/csm/vnf/VnfMgrVnfm.java @@ -19,6 +19,7 @@ package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf; import java.io.IOException; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.ResultRequestUtil; import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant; import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.ParamConstants; @@ -90,7 +91,13 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { if(statusCode == Constant.HTTP_CREATED || statusCode == Constant.HTTP_OK) { restJson.put(Constant.RETCODE, Constant.REST_SUCCESS); - restJson.put("data", queryResult.getJSONObject("data").getJSONObject("scale_info")); + // restJson.put("data", + // queryResult.getJSONObject("data").getJSONObject("scale_info")); + JSONObject appInfo = queryResult.getJSONObject("data").getJSONObject("scale_info"); + JSONObject resultObj = new JSONObject(); + // resultObj.put(Constant.JOBID, vnfInstanceId + "_" + Constant.PUT); + handleResponse(resultObj, appInfo, vnfInstanceId, Constant.PUT); + restJson.put("data", resultObj); } else { LOG.error("function=scaleVnf, msg=send create vnf msg to csm get wrong status: " + statusCode); } @@ -144,8 +151,10 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { restJson.put(Constant.RETCODE, Constant.REST_SUCCESS); JSONObject appInfo = JSONObject.fromObject(queryResult.getString("data")).getJSONObject("app_info"); JSONObject resultObj = new JSONObject(); - resultObj.put("vnfInstanceId", appInfo.getString("id")); - resultObj.put(Constant.JOBID, appInfo.getString("id") + "_" + Constant.POST); + // resultObj.put("vnfInstanceId", appInfo.getString("id")); + // resultObj.put(Constant.JOBID, appInfo.getString("id") + "_" + Constant.POST); + String vnfInstanceId = appInfo.getString("id"); + handleResponse(resultObj, appInfo, vnfInstanceId, Constant.POST); restJson.put("data", resultObj); } else { LOG.error("function=createVnf, msg=send create vnf msg to csm get wrong status: " + statusCode); @@ -158,6 +167,17 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { return restJson; } + private void handleResponse(JSONObject result, JSONObject returnObj, String vnfInstanceId, String type) { + String jobId = ""; + if(returnObj.containsKey("job_id")) { + jobId = returnObj.getString("job_id") + ":job"; + } else { + jobId = vnfInstanceId + "_" + type + ":no"; + } + result.put("vnfInstanceId", vnfInstanceId); + result.put(Constant.JOBID, jobId); + } + @Override public JSONObject removeVnf(JSONObject vnfmObject, String vnfId, JSONObject vnfObject) { LOG.warn("function=removeVnf, msg=enter to remove a vnf: {}", vnfId); @@ -172,7 +192,16 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { if(statusCode == Constant.HTTP_NOCONTENT || statusCode == Constant.HTTP_OK) { restJson.put(Constant.RETCODE, Constant.REST_SUCCESS); - restJson.put("data", JSONObject.fromObject(queryResult.getString("data"))); + // restJson.put("data", JSONObject.fromObject(queryResult.getString("data"))); + JSONObject appInfo = new JSONObject(); + if(queryResult.containsKey("data") && StringUtils.isNotEmpty(queryResult.getString("data"))) + { + appInfo = JSONObject.fromObject(queryResult.getString("data")); + } + JSONObject resultObj = new JSONObject(); + // resultObj.put(Constant.JOBID, vnfId + "_" + Constant.DELETE); + handleResponse(resultObj, appInfo, vnfId, Constant.DELETE); + restJson.put("data", resultObj); } else { LOG.error("function=removeVnf, msg=send remove vnf msg to csm get wrong status: {}", statusCode); } @@ -276,7 +305,7 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { return restJson; } restJson.put(Constant.RETCODE, Constant.REST_SUCCESS); - restJson.put("data", JSONObject.fromObject(queryResult.getString("data")).getJSONArray("basic")); + restJson.put("data", JSONObject.fromObject(queryResult.getString("data")).getJSONArray("vnf_list")); } else { LOG.error("function=getJob, msg=send get vnf msg to csm get wrong status: {}", statusCode); } @@ -327,6 +356,7 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { public JSONObject getJobFromVnfm(JSONObject vnfmObjcet, String jobId) { LOG.warn("function=getJobFromVnfm, jobId: {}", jobId); + JSONObject restJson = new JSONObject(); restJson.put(Constant.RETCODE, Constant.REST_FAIL); @@ -347,4 +377,5 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { return restJson; } + } diff --git a/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/rest/VnfRoa.java b/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/rest/VnfRoa.java index 95515eed..6dd4cdbf 100644 --- a/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/rest/VnfRoa.java +++ b/huawei/vnfmadapter/VnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/svnfm/vnfmadapter/service/rest/VnfRoa.java @@ -262,6 +262,20 @@ public class VnfRoa { public String getJob(@PathParam("jobId") String jobId, @PathParam("vnfmId") String vnfmId, @Context HttpServletResponse resp, @QueryParam("@responseId") String responseId) { LOG.warn("function=getJob, msg=enter to get a job: jobId: {}, responseId: {}", jobId, responseId); + return getJob(jobId, vnfmId, resp); + } + + /** + *
+ * common getJob method + * + * @param jobId + * @param vnfmId + * @param resp + * @return + * @since VFC 1.0 + */ + private String getJob(String jobId, String vnfmId, HttpServletResponse resp) { JSONObject restJson = new JSONObject(); if(StringUtils.isEmpty(jobId) || StringUtils.isEmpty(vnfmId)) { @@ -276,7 +290,7 @@ public class VnfRoa { return restJson.toString(); } - return getJobBody(restJson); + return getJobBody(restJson, jobId); } /** @@ -323,12 +337,12 @@ public class VnfRoa { return restJson.toString(); } - private String getJobBody(JSONObject restJson) { + private String getJobBody(JSONObject restJson, String jobId) { LOG.warn("function=getJobBody, restJson: {}", restJson); JSONObject responseJson = new JSONObject(); JSONObject jobInfoJson = new JSONObject(); JSONObject retJson = restJson.getJSONArray("data").getJSONObject(0); - jobInfoJson.put("jobId", retJson.getString("id")); + jobInfoJson.put("jobId", jobId); responseJson.put("progress", progressItem.get(retJson.getString(Constant.STATUS))); responseJson.put("status", jobstatusItem.get(retJson.getString(Constant.STATUS))); responseJson.put("errorCode", "null"); @@ -395,14 +409,23 @@ public class VnfRoa { public String getJobFromVnfm(@PathParam("jobId") String jobId, @PathParam("vnfmId") String vnfmId, @Context HttpServletResponse resp, @QueryParam("@responseId") String responseId) { LOG.warn("function=getJobFromVnfm, msg=enter to get a job: jobId: {}, responseId: {}", jobId, responseId); - JSONObject restJson = vnfMgr.getJobFromVnfm(jobId, vnfmId); - - if(restJson.getInt(Constant.RETCODE) == Constant.REST_FAIL) { - LOG.error("function=getJobFromVnfm, msg=getJobFromVnfm fail"); - resp.setStatus(Constant.HTTP_INNERERROR); - return restJson.toString(); + String[] temps = jobId.split(":"); + String tmpJobId = temps[0]; + String flag = temps[1]; + LOG.warn("function=getJobFromVnfm, tmpJobId: {}, flag: {}", tmpJobId, flag); + + if(flag.equalsIgnoreCase("no")) { + return getJob(tmpJobId, vnfmId, resp); + } else { + JSONObject restJson = vnfMgr.getJobFromVnfm(tmpJobId, vnfmId); + + if(restJson.getInt(Constant.RETCODE) == Constant.REST_FAIL) { + LOG.error("function=getJobFromVnfm, msg=getJobFromVnfm fail"); + resp.setStatus(Constant.HTTP_INNERERROR); + return restJson.toString(); + } + + return vnfMgr.transferToLcm(restJson); } - - return vnfMgr.transferToLcm(restJson); } } -- cgit 1.2.3-korg