Merge "Fix CVE-2018-1271, CVE-2018-10237"
[vfc/nfvo/driver/vnfm/svnfm.git] / huawei / vnfmadapter / VnfmadapterService / service / src / main / java / org / onap / vfc / nfvo / vnfm / svnfm / vnfmadapter / service / rest / VnfRoa.java
index 6dd4cdb..e56eef1 100644 (file)
@@ -262,7 +262,7 @@ 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);
+        return getJobProcess(jobId, vnfmId, resp, jobId);
     }
 
     /**
@@ -275,7 +275,7 @@ public class VnfRoa {
      * @return
      * @since VFC 1.0
      */
-    private String getJob(String jobId, String vnfmId, HttpServletResponse resp) {
+    private String getJobProcess(String jobId, String vnfmId, HttpServletResponse resp, String orgJobId) {
         JSONObject restJson = new JSONObject();
 
         if(StringUtils.isEmpty(jobId) || StringUtils.isEmpty(vnfmId)) {
@@ -285,12 +285,12 @@ public class VnfRoa {
 
         restJson = vnfMgr.getJob(jobId, vnfmId);
         if(restJson.getInt(Constant.RETCODE) == Constant.REST_FAIL) {
-            LOG.error("function=getJob, msg=getJob fail");
+            LOG.error("function=getJobProcess, msg=getJob fail");
             resp.setStatus(Constant.HTTP_INNERERROR);
             return restJson.toString();
         }
 
-        return getJobBody(restJson, jobId);
+        return getJobBody(restJson, orgJobId);
     }
 
     /**
@@ -302,7 +302,7 @@ public class VnfRoa {
      *            "affectedvm": {
      *            "vmid": "804cca71 - 9ae9 - 4511 - 8e30 - d1387718caff",
      *            "vduid": "vdu_100",
-     *            "vmname": "ZTE_SSS_111_PP_2_L"
+     *            "vmname": "SBC_111_PP_2_L"
      *            }
      *            }
      * @param resp
@@ -333,10 +333,26 @@ public class VnfRoa {
         }
 
         restJson.remove(Constant.RETCODE);
-        restJson.put("jobId", vnfInstanceId + "_post");
+        //restJson.put("jobId", vnfInstanceId + "_post");
+        restJson.put("jobId", vnfInstanceId + ":heal");
         return restJson.toString();
     }
 
+    private String getHealJobBody(String jobId) {
+       LOG.warn("function=getHealJobBody");
+       JSONObject responseJson = new JSONObject();
+       JSONObject jobInfoJson = new JSONObject();
+        jobInfoJson.put("jobId", jobId);
+       responseJson.put("progress", "100");
+        responseJson.put("status", "finished");
+        responseJson.put("errorCode", "null");
+        responseJson.put("responseId", "100");
+        jobInfoJson.put("responsedescriptor", responseJson);
+        
+        LOG.warn("function=getJobBody, jobInfoJson: {}", jobInfoJson);
+        return jobInfoJson.toString();
+    }
+    
     private String getJobBody(JSONObject restJson, String jobId) {
         LOG.warn("function=getJobBody, restJson: {}", restJson);
         JSONObject responseJson = new JSONObject();
@@ -411,11 +427,16 @@ public class VnfRoa {
         LOG.warn("function=getJobFromVnfm, msg=enter to get a job: jobId: {}, responseId: {}", jobId, responseId);
         String[] temps = jobId.split(":");
         String tmpJobId = temps[0];
-        String flag = temps[1];
+        String flag = "";
+        if(temps.length > 1) {
+            flag = temps[1];
+        }
         LOG.warn("function=getJobFromVnfm, tmpJobId: {}, flag: {}", tmpJobId, flag);
 
         if(flag.equalsIgnoreCase("no")) {
-            return getJob(tmpJobId, vnfmId, resp);
+            return getJobProcess(tmpJobId, vnfmId, resp, jobId);
+        } else if (flag.equalsIgnoreCase("heal")){
+            return getHealJobBody(jobId);
         } else {
             JSONObject restJson = vnfMgr.getJobFromVnfm(tmpJobId, vnfmId);