X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=huawei%2Fvnfmadapter%2FVnfmadapterService%2Fservice%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fvnfm%2Fsvnfm%2Fvnfmadapter%2Fservice%2Fcsm%2Fvnf%2FVnfMgrVnfm.java;fp=huawei%2Fvnfmadapter%2FVnfmadapterService%2Fservice%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fvnfm%2Fsvnfm%2Fvnfmadapter%2Fservice%2Fcsm%2Fvnf%2FVnfMgrVnfm.java;h=42d5b8756bc89be1538647fd871c110f5f821eb8;hb=427ff5037a70052a524095fb6a1cba53dfb8e8f5;hp=185d31cbff155e25bac14d880f4da59db8f7b0f1;hpb=89ad26af6134b817ac2a04eb861d7c5a68f9885d;p=vfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm.git 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 185d31cb..42d5b875 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 @@ -51,6 +51,11 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { @Override public JSONObject scaleVnf(JSONObject vnfObject, JSONObject vnfmObject, String vnfmId, String vnfInstanceId) { LOG.warn("function=scaleVnf, msg=enter to scale a vnf"); + + JSONObject queryVms = ResultRequestUtil.call(vnfmObject, + String.format(ParamConstants.VNF_GET_VMINFO, vnfInstanceId), Constant.GET, null, Constant.CERTIFICATE); + LOG.info("function=scaleVnf, msg=query vms result=" + queryVms); + JSONObject restJson = new JSONObject(); restJson.put(Constant.RETCODE, Constant.REST_FAIL); String path = String.format(ParamConstants.VNF_SCALE, vnfInstanceId); @@ -61,7 +66,12 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { JSONObject scaleInfo = new JSONObject(); JSONArray vduList = new JSONArray(); JSONObject vdu = new JSONObject(); - vdu.put("vdu_type", this.getVduType(vnfmObject, vnfInstanceId)); + + if(vnfObject.containsKey("configedVduType")) { + vdu.put("vdu_type", vnfObject.getString("configedVduType")); + } else { + vdu.put("vdu_type", this.getVduType(vnfmObject, queryVms)); + } vdu.put("h_steps", vnfObject.get("numberOfSteps")); vduList.add(vdu); scaleInfo.put("vnf_id", vnfInstanceId); @@ -78,13 +88,18 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { try { // JSONObject additionalParam = vnfObject.getJSONObject("additionalParam"); // vmList = additionalParam.getJSONArray("vm_list"); - vmList = AdapterResourceManager.readScaleInVmIdFromJson().getJSONArray("vm_list"); + vmList = ScaleManager.beforeScaleIn(queryVms, vnfInstanceId); + if(vmList.isEmpty()) { + vmList = AdapterResourceManager.readScaleInVmIdFromJson().getJSONArray("vm_list"); + } } catch(JSONException e) { LOG.error("the param 'additionalParam' or 'vm_list' not found,please check it", e); } if(null != vmList && !vmList.isEmpty()) { scaleInfo.put("vm_list", vmList); } + } else if(scaleType == PARAM_ONE) { + ScaleManager.beforeScaleOut(queryVms, vnfInstanceId); } paramJson.put("scale_info", scaleInfo); JSONObject queryResult = @@ -118,13 +133,9 @@ public class VnfMgrVnfm implements InterfaceVnfMgr { return restJson; } - private String getVduType(JSONObject vnfmObject, String vnfInstanceId) { + private String getVduType(JSONObject vnfmObject, JSONObject queryResult) { String vduType = ""; try { - JSONObject queryResult = - ResultRequestUtil.call(vnfmObject, String.format(ParamConstants.VNF_GET_VMINFO, vnfInstanceId), - Constant.GET, null, Constant.CERTIFICATE); - LOG.info("getVduType result=" + queryResult); vduType = queryResult.getJSONObject("data").getJSONArray("vms").getJSONObject(0).getString("vdu_type"); } catch(Exception e) { LOG.error("get vdu_type failed.", e);