public static final String VNF_INSTANCE_GET = "/v2/vnfm/instances/%s";
+ public static final String VNF_CONFIGURATION_GET = "/v2/vnfm/configurations/%s";
+
public static final String VNF_SCALE = "/v2/vapps/instances/%s/scale";
public static final String VNF_GET_VMINFO = "/v2/vapps/instances/%s/vm";
package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf;
+import java.io.IOException;
+
+import org.apache.commons.io.IOUtils;
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;
return restJson;
}
+ public JSONObject getIp(JSONObject vnfmObject, String vnfId) throws IOException {
+ LOG.warn("function=getIp, msg=enter to getIp: {}", vnfId);
+ JSONObject restJson = new JSONObject();
+ restJson.put(Constant.RETCODE, Constant.REST_FAIL);
+
+ JSONObject queryResult = ResultRequestUtil.call(vnfmObject,
+ String.format(ParamConstants.VNF_CONFIGURATION_GET, vnfId), Constant.GET, null, Constant.CERTIFICATE);
+
+ int statusCode = queryResult.getInt(Constant.RETCODE);
+
+ if(statusCode == Constant.HTTP_OK || statusCode == Constant.HTTP_CREATED) {
+ if(null == (queryResult.get("data"))) {
+ LOG.warn("function=getIp, msg=query is null {}", queryResult.get("data"));
+ return restJson;
+ }
+ JSONObject config = JSONObject.fromObject(queryResult.getString("data"));
+ LOG.info("function=getIp, query configuration result: {}", config);
+ JSONObject vnfInfo = config.getJSONArray("configuration").getJSONObject(0);
+ JSONObject result = new JSONObject();
+ result.put("vnf_id", vnfInfo.getString("vnf_id"));
+ result.put("vnf_type", vnfInfo.getString("vnf_type"));
+ JSONArray inputs = vnfInfo.getJSONArray("inputs");
+
+ ClassLoader classLoader = getClass().getClassLoader();
+ String ipConfig = IOUtils.toString(classLoader.getResourceAsStream("ipConfig.json"));
+ LOG.info("ipConfig: {}", ipConfig);
+ JSONObject ipCon = JSONObject.fromObject(ipConfig);
+ String vnfType = vnfInfo.getString("vnf_type");
+ if(ipCon.containsKey(vnfType)) {
+ String ipKey = ipCon.getString(vnfInfo.getString("vnf_type"));
+ LOG.info("ipKey: {}", ipKey);
+ String ip = "";
+ for(int i = 0; i < inputs.size(); i++) {
+ JSONObject obj = inputs.getJSONObject(i);
+ if(obj.getString("key_name").equals(ipKey)) {
+ ip = obj.getString("value");
+ break;
+ }
+ }
+ result.put("ip", ip);
+ restJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
+ restJson.put("data", result);
+ }
+
+ } else {
+ LOG.error("function=getIp, msg=send get vnf msg to csm get wrong status: {}", statusCode);
+ }
+
+ return restJson;
+ }
+
@Override
public JSONObject getJob(JSONObject vnfmObject, String jobId) {
LOG.warn("function=getJob, msg=enter to get a job: {}", jobId);
int statusCode = healResult.getInt(Constant.RETCODE);
if(statusCode == Constant.HTTP_OK) {
-
+ LOG.info("healResult:{}", healResult);
restJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
} else {
LOG.error("function=healVnf, msg=send heal vnf msg to csm get wrong status: {}", statusCode);
package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.process;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
+import net.sf.json.JSONException;
+import net.sf.json.JSONObject;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import net.sf.json.JSONException;
-import net.sf.json.JSONObject;
+import java.io.IOException;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
* Provide function for instantiate or terminate VNF
* @return
* @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();
basicInfoJson.put("vnfProvider", "hw");
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;
package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.rest;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@GET
@Path("/{vnfmId}/vnfs/{vnfInstanceId}")
public String getVnf(@PathParam("vnfmId") String vnfmId, @Context HttpServletResponse resp,
- @PathParam("vnfInstanceId") String vnfInstanceId) {
+ @PathParam("vnfInstanceId") String vnfInstanceId) throws IOException {
LOG.warn("function=getVnf, msg=enter to get a vnf: vnfInstanceId: {}, vnfmId: {}", vnfInstanceId, vnfmId);
JSONObject restJson = new JSONObject();
}
restJson.remove(Constant.RETCODE);
+ LOG.info("function=getVnf, restJson: {}", restJson);
return restJson.toString();
}
--- /dev/null
+{\r
+ "vUGE": "MNG_IP",\r
+ "vUSN": "MNG_IP"\r
+}
\ No newline at end of file
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import java.io.IOException;
import java.util.Map;
import org.junit.Before;
}
@Test
- public void testGetVnf() {
+ public void testGetVnf() throws IOException {
new MockUp<VnfmUtil>() {
@Mock
}
@Test
- public void testGetVnfFail() {
+ public void testGetVnfFail() throws IOException {
new MockUp<VnfmUtil>() {
@Mock
}
@Test
- public void testGetVnfFail1() {
+ public void testGetVnfFail1() throws IOException {
new MockUp<VnfmUtil>() {
@Mock
package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.rest;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import mockit.Mock;
+import mockit.MockUp;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.process.VnfMgr;
-import mockit.Mock;
-import mockit.MockUp;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
public class VnfRoaTest {
}
@Test
- public void testGetVnfByVnfIdIsEmpty() throws ServiceException {
+ public void testGetVnfByVnfIdIsEmpty() throws IOException, ServiceException {
final JSONObject restJson = new JSONObject();
MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
HttpServletRequest mockInstance = proxyStub.getMockInstance();
}
@Test
- public void testGetVnfByVnfmIdIsEmpty() throws ServiceException {
+ public void testGetVnfByVnfmIdIsEmpty() throws IOException, ServiceException {
final JSONObject restJson = new JSONObject();
MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
HttpServletRequest mockInstance = proxyStub.getMockInstance();
}
@Test
- public void testGetVnfFail() throws ServiceException {
+ public void testGetVnfFail() throws IOException, ServiceException {
final JSONObject restJson = new JSONObject();
restJson.put("retCode", Constant.REST_FAIL);
MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
}
@Test
- public void testGetVnf() throws ServiceException {
+ public void testGetVnf() throws IOException, ServiceException {
final JSONObject restJson = new JSONObject();
restJson.put("retCode", Constant.REST_SUCCESS);
MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};