package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.process;
+import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.ResultRequestUtil;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmUtil;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.impl.AdapterResourceManager;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
* <br/>
*
* @author
- * @version NFVO 0.5 Aug 24, 2016
+ * @version VFC 1.0 Aug 24, 2016
*/
public class VnfMgr {
this.vnfmDao = vnfmDao;
}
+ private String configedVduType;
+
+
+ /**
+ * @param configedVduType The configedVduType to set.
+ */
+ public void setConfigedVduType(String configedVduType) {
+ this.configedVduType = configedVduType;
+ }
+
/**
* Scale vnf
*
LOG.error("function=scaleVNF,can't find vnfm from db by vnfmId=" + vnfmId);
return restJson;
}
+ if(StringUtils.isNotEmpty(configedVduType)) {
+ vnfObject.put("configedVduType", configedVduType);
+ }
restJson = (new VnfMgrVnfm()).scaleVnf(vnfObject, vnfmObjcet, vnfmId, vnfInstanceId);
} catch(JSONException e) {
LOG.error("function=scaleVNF, msg=JSONException occurs, e={}.", e);
* @param vnfObject
* @param vnfmId
* @return
- * @since NFVO 0.5
+ * @since VFC 1.0
*/
public JSONObject addVnf(JSONObject vnfObject, String vnfmId) {
JSONObject restJson = new JSONObject();
* @param vnfmId
* @param vnfObject
* @return
- * @since NFVO 0.5
+ * @since VFC 1.0
*/
public JSONObject deleteVnf(String vnfId, String vnfmId, JSONObject vnfObject) {
LOG.warn("function=deleteVnf ,msg=enter to delete a vnf, vnfId:{}, vnfmId:{}", vnfId, vnfmId);
* @param vnfId
* @param vnfmId
* @return
- * @since NFVO 0.5
+ * @since VFC 1.0
*/
- public JSONObject getVnf(String vnfId, String vnfmId) {
+ public JSONObject getVnf(String vnfId, String vnfmId) throws IOException {
LOG.warn("function=getVnf ,msg=enter to get a vnf, vnfId:{}, vnfmId:{}", vnfId, vnfmId);
JSONObject restJson = new JSONObject();
restJson.put(Constant.RETCODE, Constant.REST_FAIL);
}
restJson = (new VnfMgrVnfm()).getVnf(vnfmObjcet, vnfId);
+ JSONObject ipObj = (new VnfMgrVnfm()).getIp(vnfmObjcet, vnfId);
- return restJson.getInt(Constant.RETCODE) == Constant.REST_FAIL ? restJson : getVnfBody(restJson);
+ return restJson.getInt(Constant.RETCODE) == Constant.REST_FAIL ? restJson : getVnfBody(restJson, ipObj);
} catch(JSONException e) {
LOG.error("function=getVnf, msg=JSONException occurs, e={}.", e);
return restJson;
}
- private JSONObject getVnfBody(JSONObject restJson) {
+ private JSONObject getVnfBody(JSONObject restJson, JSONObject ipObj) {
try {
JSONObject vnfInfoJson = new JSONObject();
JSONObject basicInfoJson = new JSONObject();
JSONObject retJson = restJson.getJSONArray("data").getJSONObject(0);
- basicInfoJson.put("vnfInstanceId", retJson.getString("id"));
- basicInfoJson.put("vnfInstanceName", retJson.getString("vapp_name"));
- basicInfoJson.put("vnfInstanceDescription", "vFW");
+ basicInfoJson.put("vnfInstanceId", retJson.getString("vnf_id"));
+ basicInfoJson.put("vnfInstanceName", retJson.getString("vnf_name"));
+ basicInfoJson.put("vnfInstanceDescription", "");
- Vnfm vnfm = vnfmDao.getVnfmById(retJson.getString("id"));
- basicInfoJson.put("vnfdId", vnfm == null ? "" : vnfm.getVnfdId());
- basicInfoJson.put("vnfdPackageId", vnfm == null ? "" : vnfm.getVnfPackageId());
- basicInfoJson.put("version", vnfm == null ? "" : vnfm.getVersion());
+ basicInfoJson.put(Constant.VNFDID, retJson.getString("vnfd_id"));
+ basicInfoJson.put("vnfdPackageId", retJson.getString("vnfd_id"));
+ basicInfoJson.put("version", "1.0");
basicInfoJson.put("vnfProvider", "hw");
- basicInfoJson.put("vnfType", retJson.get("vapp_type"));
+ basicInfoJson.put("vnfType", retJson.get("vnf_type"));
basicInfoJson.put("vnfStatus", retJson.getString(Constant.STATUS));
-
+ if(ipObj.getInt(Constant.RETCODE) == Constant.REST_SUCCESS) {
+ basicInfoJson.put("ipInfo", ipObj.getJSONObject("data"));
+ }
vnfInfoJson.put("vnfInfo", basicInfoJson);
vnfInfoJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
return vnfInfoJson;
private JSONObject transferVnfBody(JSONObject vnfObject, JSONObject resObject, String vnfmId) {
JSONObject restJson = new JSONObject();
JSONObject vappIfno = new JSONObject();
- restJson.put("vnfd_id", resObject.getString("vnfdId"));
+ restJson.put("vnfd_id", resObject.getString(Constant.VNFDID));
restJson.put("plan_id", resObject.getOrDefault("planId", ""));
restJson.put("plan_name", resObject.getOrDefault("planName", ""));
restJson.put("vapp_name", vnfObject.get("vnfInstanceName"));
restJson.put("project_id", vnfmId);
restJson.put("parameters", resObject.getJSONObject("parameters"));
+ if(resObject.containsKey("emsUuid")) {
+ restJson.put("emsUuid", resObject.getString("emsUuid"));
+ }
restJson.put("nfvo_id", "");
restJson.put("location", "");
restJson.put("vnfm_id", vnfmId);
* @param jobId
* @param vnfmId
* @return
- * @since NFVO 0.5
+ * @since VFC 1.0
*/
public JSONObject getJob(String jobId, String vnfmId) {
LOG.warn("function=getJob ,msg=enter to get a job, vnfId:{}", jobId);
*
* @param vnfObject
* @param resObject
- * @since NFVO 0.5
+ * @since VFC 1.0
*/
public void saveVnfInfo(JSONObject vnfObject, JSONObject resObject) {
LOG.warn("function=saveVnfInfo , vnfObject:{}", vnfObject);
Vnfm info = new Vnfm();
info.setId(vnfObject.getJSONObject("data").getString("vnfInstanceId"));
info.setVersion(resObject.getString("vnfdVersion"));
- info.setVnfdId(resObject.getString("vnfdId"));
+ info.setVnfdId(resObject.getString(Constant.VNFDID));
info.setVnfPackageId("");
try {
vnfmDao.insertVnfm(info);
restJson = (new VnfMgrVnfm()).healVnf(jsonObject, vnfmObjcet, vnfmId, vnfInstanceId);
return restJson;
}
+
+ public JSONObject getJobFromVnfm(String jobId, String vnfmId) {
+ LOG.warn("function=getJobFromVnfm, jobId:{}, vnfmId:{}", jobId, vnfmId);
+ JSONObject restJson = new JSONObject();
+ JSONObject vnfmObjcet = VnfmUtil.getVnfmById(vnfmId);
+ if(vnfmObjcet.isNullObject()) {
+ LOG.error("function=getJobFromVnfm, msg=vnfm not exists, vnfmId: {}", vnfmId);
+ return restJson;
+ }
+ restJson = (new VnfMgrVnfm()).getJobFromVnfm(vnfmObjcet, jobId);
+ return restJson;
+ }
+
+ public String transferToLcm(JSONObject restJson) {
+ LOG.warn("function=transferToLcm, restJson: {}", restJson);
+ JSONObject responseJson = new JSONObject();
+ JSONObject jobInfoJson = new JSONObject();
+ JSONObject jobInfo = restJson.getJSONObject("data").getJSONObject("job_info");
+ jobInfoJson.put("jobId", jobInfo.getString("job_id") + ":job");
+ String taskProgress = jobInfo.getString("task_progress_rate");
+ responseJson.put("progress", taskProgress);
+
+ int responseId = Integer.parseInt(taskProgress);
+ String taskStatus = jobInfo.getString("task_status");
+ if(taskStatus.equalsIgnoreCase("Successfully") || taskStatus.equalsIgnoreCase("finished")) {
+ responseJson.put("status", "finished");
+ responseId++;
+ } else if(taskStatus.equalsIgnoreCase("Failed")) {
+ responseJson.put("status", "error");
+ responseId++;
+ } else {
+ responseJson.put("status", "processing");
+ }
+ responseJson.put("errorCode", jobInfo.getString("error_code"));
+ responseJson.put("responseId", String.valueOf(responseId));
+ jobInfoJson.put("responsedescriptor", responseJson);
+ LOG.warn("function=getJobBody, jobInfoJson: {}", jobInfoJson);
+ return jobInfoJson.toString();
+ }
+
+ public JSONObject getVmsFromVnfm(String vnfmId, String vnfInstanceId) {
+ JSONObject restJson = new JSONObject();
+ JSONObject vnfmObjcet = VnfmUtil.getVnfmById(vnfmId);
+ if(vnfmObjcet.isNullObject()) {
+ LOG.error("function=getVmsFromVnfm, msg=vnfm not exists, vnfmId: {}", vnfmId);
+ restJson.put("message", "vnfm not exists");
+ return restJson;
+ }
+ String url = "";
+ if(vnfInstanceId == null) {
+ url = "/v2/vapps/instances/query/vms";
+ } else {
+ url = String.format("/v2/vapps/instances/%s/vm", vnfInstanceId);
+ }
+ restJson = ResultRequestUtil.call(vnfmObjcet, url, Constant.GET, null, Constant.CERTIFICATE);
+ LOG.info("function=getVmsFromVnfm, restJson: {}", restJson);
+ return restJson;
+ }
+
}