2 * Copyright 2016-2017 Huawei Technologies Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.impl;
19 import java.io.BufferedInputStream;
21 import java.io.FileInputStream;
22 import java.io.FileNotFoundException;
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.util.HashMap;
28 import org.apache.commons.httpclient.HttpMethod;
29 import org.apache.commons.httpclient.HttpStatus;
30 import org.apache.commons.net.ftp.FTPClient;
31 import org.apache.commons.net.ftp.FTPReply;
32 import org.apache.commons.net.ftp.FTPSClient;
33 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.DownloadCsarManager;
34 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmException;
35 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmUtil;
36 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient.RestfulResponse;
37 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient.SystemEnvVariablesFactory;
38 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.servicetoken.VNFRestfulUtil;
39 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.inf.IResourceManager;
40 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
41 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.UrlConstant;
42 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.connect.ConnectMgrVnfm;
43 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.connect.HttpRequests;
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
47 import net.sf.json.JSONArray;
48 import net.sf.json.JSONException;
49 import net.sf.json.JSONObject;
52 * Resource Manager adapter class.
56 * @version VFC 1.0 Sep 13, 2016
58 public class AdapterResourceManager implements IResourceManager {
60 private static final Logger LOG = LoggerFactory.getLogger(AdapterResourceManager.class);
62 private static final String VNFD_FILE_PATH = "vnfd_file_path";
65 public JSONObject uploadVNFPackage(JSONObject vnfpkge, Map<String, String> paramsMap) {
66 JSONObject resultObj = new JSONObject();
67 String vnfDescriptorId = paramsMap.get("vnfDescriptorId");
68 JSONObject vnfpkgJson = new JSONObject();
70 // if upper layer do not provide vnfpackage info,then get the
71 // vnfpackage info from JSON file.
72 if(vnfpkge == null || vnfpkge.isEmpty()) {
73 String vnfPkgInfo = readVfnPkgInfoFromJson();
74 vnfpkgJson = JSONObject.fromObject(vnfPkgInfo);
77 } catch(IOException e) {
78 LOG.error("function=uploadVNFPackage", e);
81 // check if parameters are null.
82 if(paramsMap == null || paramsMap.isEmpty()) {
83 resultObj.put(Constant.REASON, "csarid and vnfmid are null.");
84 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
88 String csarid = paramsMap.get("csarid");
89 String vnfmid = paramsMap.get("vnfmid");
92 if(null == csarid || "".equals(csarid)) {
93 resultObj.put(Constant.REASON, "csarid is null.");
94 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
97 if(null == vnfmid || "".equals(vnfmid)) {
98 resultObj.put(Constant.REASON, "vnfmid is null.");
99 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
103 // obtain CSAR package info
104 JSONObject csarobj = getVnfmCsarInfo(csarid);
105 String downloadUri = "";
106 String csarName = "";
107 if(Integer.valueOf(csarobj.get(Constant.RETCODE).toString()) == Constant.HTTP_OK) {
108 LOG.info("get CSAR info successful.", csarobj.get(Constant.RETCODE));
109 downloadUri = csarobj.getJSONObject("packageInfo").getString("downloadUrl");
110 csarName = csarobj.getJSONObject("packageInfo").getString("csarName");
112 LOG.error("get CSAR info fail.", csarobj.get(Constant.RETCODE));
113 resultObj.put(Constant.REASON, csarobj.get(Constant.REASON).toString());
114 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
117 String vnfdName = transferFromCsar(csarName);
118 JSONObject vnfpkg = vnfpkgJson.getJSONObject(vnfdName);
119 JSONObject csarTempObj = vnfpkg.getJSONObject("template");
120 String csarfilepath = csarTempObj.getString("csar_file_path");
121 String csarfilename = csarTempObj.getString("csar_file_name");
123 // download csar package and save in location.
124 JSONObject downloadObject = downloadCsar(downloadUri, csarfilepath + csarfilename);
126 if(Integer.valueOf(downloadObject.get(Constant.RETCODE).toString()) != Constant.REST_SUCCESS) {
127 LOG.error("download CSAR fail." + downloadObject.get(Constant.RETCODE));
128 resultObj.put(Constant.REASON, downloadObject.get(Constant.REASON).toString());
129 resultObj.put(Constant.RETCODE, downloadObject.get(Constant.RETCODE).toString());
132 LOG.info("download CSAR successful." + downloadObject.get(Constant.RETCODE));
134 // unzip csar package to location.
135 JSONObject unzipObject = unzipCSAR(csarfilepath + csarfilename, csarfilepath);
137 if(Integer.valueOf(unzipObject.get(Constant.RETCODE).toString()) != Constant.REST_SUCCESS) {
138 LOG.error("unzip CSAR fail.", unzipObject.get(Constant.RETCODE));
139 resultObj.put(Constant.REASON, unzipObject.get(Constant.REASON).toString());
140 resultObj.put(Constant.RETCODE, unzipObject.get(Constant.RETCODE).toString());
143 LOG.info("unzip CSAR successful.", unzipObject.get(Constant.RETCODE));
145 // upload vnfd to ftps server
146 // JSONObject uploadResJson = uploadCsar(csarTempObj, csarfilepath);
147 // LOG.info("upload Csar result: {}.", uploadResJson);
149 Map<String, String> vnfmMap = new HashMap<>();
150 vnfmMap.put("url", String.format(UrlConstant.REST_VNFMINFO_GET, vnfmid));
151 vnfmMap.put("methodType", Constant.GET);
153 // get VNFM connection info
154 // getVnfmConnInfo(vnfmMap)
155 JSONObject vnfmObject = VnfmUtil.getVnfmById(vnfmid);
156 LOG.info("get Vnfm Connection Info successful.");
158 String vnfmUrl = vnfmObject.getString("url");
159 String userName = vnfmObject.getString(Constant.USERNAME);
160 String password = vnfmObject.getString(Constant.PASSWORD);
162 // build VNFM connection and get token
163 ConnectMgrVnfm mgrVcmm = new ConnectMgrVnfm();
165 JSONObject connObject = new JSONObject();
166 connObject.put("url", vnfmUrl);
167 connObject.put(Constant.USERNAME, userName);
168 connObject.put(Constant.PASSWORD, password);
169 if(Constant.HTTP_OK != mgrVcmm.connect(vnfmObject, Constant.CERTIFICATE)) {
170 LOG.error("get Access Session fail.");
171 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
172 resultObj.put(Constant.REASON, "connect fail.");
175 LOG.info("get Access Session successful.");
176 String connToken = mgrVcmm.getAccessSession();
179 JSONObject cloudObject = getAllCloud(vnfmUrl, connToken);
182 if(!cloudObject.isEmpty() && cloudObject.get(Constant.RETCODE).equals(HttpStatus.SC_OK)) {
183 LOG.info("get all cloud successful.", cloudObject.get(Constant.RETCODE));
184 vimId = cloudObject.getString("vim_id");
186 LOG.error("get all cloud fail.", cloudObject.get(Constant.RETCODE));
190 // upload VNF package
191 // csarTempObj.put("vim_id", vimId);
192 vnfpkg.put("template", csarTempObj);
193 LOG.info("vnfpkg: " + vnfpkg);
195 JSONObject uploadPkgObject = upload(vnfpkg, vnfmUrl, connToken);
196 LOG.info("uploadPkgObject:" + uploadPkgObject);
197 if(!uploadPkgObject.isEmpty() && uploadPkgObject.get(Constant.RETCODE).equals(HttpStatus.SC_OK)) {
198 LOG.info("upload vnf package info successful.", uploadPkgObject.get(Constant.RETCODE));
199 vnfdid = uploadPkgObject.getString("id");
202 if(vnfdid == null || "".equals(vnfdid.trim())) {
203 JSONObject vnfdConf = readVnfdIdInfoFromJson();
204 LOG.info("vnfdName:" + vnfdName + ", vnfdConf=" + vnfdConf);
205 if(vnfdConf.containsKey(vnfdName)) {
206 vnfdid = vnfdConf.getString(vnfdName);
209 LOG.info("set vnfdId=" + vnfdid);
212 String vnfdVersion = "";
214 JSONObject vnfdVerObject =
215 getVnfdVersion(vnfmUrl, String.format(UrlConstant.URL_VNFDINFO_GET, vnfdid), connToken);
216 LOG.info("vnfdVerObject:" + vnfdVerObject);
217 if(!vnfdVerObject.isEmpty() && vnfdVerObject.get(Constant.RETCODE).equals(HttpStatus.SC_OK)) {
218 LOG.info("get vnfd version successful.", vnfdVerObject.get(Constant.RETCODE));
219 JSONArray verArr = vnfdVerObject.getJSONArray("templates");
220 JSONObject verTmpObj = verArr.getJSONObject(0);
222 vnfdVersion = verTmpObj.getString("vnfdVersion");
224 LOG.error("get vnfd version fail.", vnfdVerObject.get(Constant.RETCODE));
225 return vnfdVerObject;
228 // get vnfd plan info
229 String planName = "";
232 JSONObject vnfdPlanInfo = getVNFDPlanInfo(vnfmUrl, vnfdid, connToken);
233 LOG.info("vnfdPlanInfo:" + vnfdPlanInfo);
234 JSONObject inputsObj = new JSONObject();
235 if(!vnfdPlanInfo.isEmpty() && vnfdPlanInfo.get(Constant.RETCODE).equals(HttpStatus.SC_OK)) {
236 LOG.info("get vnfd plan info successful.", vnfdPlanInfo.get(Constant.RETCODE));
237 JSONObject planTmpObj = vnfdPlanInfo.getJSONObject("template");
238 String templateName = planTmpObj.getString("template_name").trim();
239 JSONArray topoTmpObj = planTmpObj.getJSONArray("topology_template");
241 JSONObject planObj = topoTmpObj.getJSONObject(0);
242 if("VNFD_vUGW".equals(templateName)) {
243 for(int i = 0; i < topoTmpObj.size(); i++) {
244 String name = topoTmpObj.getJSONObject(i).getString("plan_name").trim();
245 if("Normal_E9K".equals(name)) {
246 planObj = topoTmpObj.getJSONObject(i);
251 planName = planObj.getString("plan_name");
252 planId = planObj.getString("plan_id");
253 if(planObj.containsKey("inputs")) {
254 JSONArray inputs = planObj.getJSONArray("inputs");
255 for(int i = 0; i < inputs.size(); i++) {
256 JSONObject obj = inputs.getJSONObject(i);
257 obj.put("value", obj.getString("default"));
259 inputsObj.put("inputs", inputs);
260 inputsObj.put("External_network", new JSONArray());
263 LOG.error("get vnfd plan info fail.", vnfdPlanInfo.get(Constant.RETCODE));
268 resultObj.put(Constant.RETCODE, Constant.HTTP_OK);
269 resultObj.put("vnfdId", vnfdid);
270 resultObj.put("vnfdVersion", vnfdVersion);
271 resultObj.put("planName", planName);
272 resultObj.put("planId", planId);
273 resultObj.put("parameters", inputsObj);
274 LOG.info("resultObj:" + resultObj.toString());
279 private String transferFromCsar(String csarName) {
280 LOG.info("csarName: " + csarName);
281 if(csarName.toUpperCase().contains("HSS")) {
287 private JSONObject uploadCsar(JSONObject vnfpkg, String csarfilepath) {
288 LOG.info("vnfpkg: " + vnfpkg + "csarfilepath:" + csarfilepath);
289 JSONObject resJson = new JSONObject();
291 boolean flag = false;
292 FTPSClient ftpClient = new FTPSClient();
294 ftpClient.connect(vnfpkg.getString("ftp_server_ip"), 21);
295 ftpClient.login(vnfpkg.getString("ftp_username"), vnfpkg.getString("ftp_password"));
296 int replyCode = ftpClient.getReplyCode();
297 LOG.info("replyCode: " + replyCode);
298 if(!FTPReply.isPositiveCompletion(replyCode)) {
299 resJson.put("message", "Connect ftps server failed!");
303 ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
304 ftpClient.enterLocalPassiveMode();
305 ftpClient.makeDirectory(vnfpkg.getString(VNFD_FILE_PATH));
306 LOG.info("makeDirectory: " + ftpClient.makeDirectory(vnfpkg.getString(VNFD_FILE_PATH)));
307 ftpClient.changeWorkingDirectory(vnfpkg.getString(VNFD_FILE_PATH));
308 LOG.info("changeWorkingDirectory: " + ftpClient.changeWorkingDirectory(vnfpkg.getString(VNFD_FILE_PATH)));
309 String vnfdPath = csarfilepath + "Artifacts/Deployment/OTHER/";
310 LOG.info("vnfd_file_name: " + vnfdPath + vnfpkg.getString("vnfd_file_name"));
311 try (InputStream inputStream =
312 new FileInputStream(new File(vnfdPath + vnfpkg.getString("vnfd_file_name")))) {
313 flag = ftpClient.storeFile(vnfpkg.getString("vnfd_file_name"), inputStream);
315 resJson.put("message", "upload Csar success!");
317 } catch(Exception e) {
318 LOG.error("Exception: " + e);
322 } catch(Exception e) {
323 LOG.error("Exception: " + e);
325 if(ftpClient.isConnected()) {
327 ftpClient.disconnect();
328 } catch(IOException e) {
329 LOG.error("IOException: " + e);
336 private JSONObject sendRequest(Map<String, String> paramsMap) {
337 JSONObject resultObj = new JSONObject();
338 RestfulResponse rsp = VNFRestfulUtil.getRemoteResponse(paramsMap, "");
340 LOG.error("function=sendRequest, RestfulResponse is null");
341 resultObj.put(Constant.REASON, "RestfulResponse is null.");
342 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
345 String resultCreate = rsp.getResponseContent();
347 if(rsp.getStatus() == Constant.HTTP_OK) {
348 LOG.warn("function=sendRequest, msg= status={}, result={}.", rsp.getStatus(), resultCreate);
349 resultObj = JSONObject.fromObject(resultCreate);
350 resultObj.put(Constant.RETCODE, Constant.HTTP_OK);
353 LOG.error("function=sendRequest, msg=ESR return fail,status={}, result={}.", rsp.getStatus(), resultCreate);
354 resultObj.put(Constant.REASON, "ESR return fail.");
356 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
361 public JSONObject getVnfmCsarInfo(String csarid) {
362 JSONObject resultObj = new JSONObject();
364 if(null == csarid || "".equals(csarid)) {
365 resultObj.put(Constant.REASON, "csarid is null.");
366 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
370 Map<String, String> paramsMap = new HashMap<String, String>();
372 paramsMap.put("url", String.format(UrlConstant.REST_CSARINFO_GET, csarid));
373 paramsMap.put("methodType", Constant.GET);
375 return this.sendRequest(paramsMap);
379 public JSONObject downloadCsar(String url, String filePath) {
380 JSONObject resultObj = new JSONObject();
382 if(url == null || "".equals(url)) {
383 resultObj.put(Constant.REASON, "url is null.");
384 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
387 if(filePath == null || "".equals(filePath)) {
388 resultObj.put(Constant.REASON, "downloadUrl filePath is null.");
389 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
393 String status = DownloadCsarManager.download(url, filePath);
395 if(Constant.DOWNLOADCSAR_SUCCESS.equals(status)) {
396 resultObj.put(Constant.REASON, "download csar file successfully.");
397 resultObj.put(Constant.RETCODE, Constant.REST_SUCCESS);
399 resultObj.put(Constant.REASON, "download csar file failed.");
400 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
406 public JSONObject getAllCloud(String url, String conntoken) {
407 JSONObject resultObj = new JSONObject();
408 JSONArray resArray = new JSONArray();
410 if(url == null || url.equals("")) {
411 url = "http://" + Constant.LOCAL_HOST + ":31943";
415 HttpMethod httpMethodCloud = null;
418 new HttpRequests.Builder(Constant.CERTIFICATE).setUrl(url.trim(), UrlConstant.URL_ALLCLOUD_NEW_GET)
419 .addHeader(Constant.HEADER_AUTH_TOKEN, conntoken).setParams("").get().execute();
421 int statusCode = httpMethodCloud.getStatusCode();
423 String result = httpMethodCloud.getResponseBodyAsString();
425 if(statusCode == HttpStatus.SC_OK) {
426 JSONObject vimInfo = JSONObject.fromObject(result);
427 resArray = vimInfo.getJSONArray("vim_info");
428 resultObj = resArray.getJSONObject(0);
429 resultObj.put(Constant.RETCODE, statusCode);
431 LOG.error("uploadVNFPackage get allcloud failed, code:" + statusCode + " re:" + result);
432 resultObj.put(Constant.RETCODE, statusCode);
433 resultObj.put(Constant.REASON, "get allcloud failed. code:" + statusCode + " re:" + result);
436 } catch(JSONException e) {
437 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get allcloud JSONException e={}.", e);
438 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
439 resultObj.put(Constant.REASON, "get allcloud failed and JSONException." + e.getMessage());
441 } catch(VnfmException e) {
442 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get allcloud VnfmException e={}.", e);
443 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
444 resultObj.put(Constant.REASON, "get allcloud failed and VnfmException." + e.getMessage());
446 } catch(IOException e) {
447 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get allcloud IOException e={}.", e);
448 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
449 resultObj.put(Constant.REASON, "get allcloud failed and IOException." + e.getMessage());
456 * Upload vnfpackage<br>
464 public JSONObject upload(JSONObject vnfpackage, String vnfmurl, String conntoken) {
465 JSONObject resultObj = new JSONObject();
466 HttpMethod httpMethodVnf = null;
469 httpMethodVnf = new HttpRequests.Builder(Constant.CERTIFICATE)
470 .setUrl(vnfmurl.trim(), UrlConstant.URL_VNFPACKAGE_POST).setParams(vnfpackage.toString())
471 .addHeader(Constant.HEADER_AUTH_TOKEN, conntoken).post().execute();
473 int statusCodeUp = httpMethodVnf.getStatusCode();
475 String resultUp = httpMethodVnf.getResponseBodyAsString();
477 if(statusCodeUp == HttpStatus.SC_CREATED || statusCodeUp == HttpStatus.SC_OK) {
478 LOG.info("uploadVNFPackage upload VNF package successful, code:" + statusCodeUp + " re:" + resultUp);
479 resultObj = JSONObject.fromObject(resultUp);
480 resultObj.put(Constant.RETCODE, statusCodeUp);
482 LOG.error("uploadVNFPackage upload VNF package failed, code:" + statusCodeUp + " re:" + resultUp);
483 resultObj.put(Constant.RETCODE, statusCodeUp);
484 resultObj.put("data", "upload VNF package failed, code:" + statusCodeUp + " re:" + resultUp);
487 } catch(JSONException e) {
488 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage upload VNF package JSONException e={}.", e);
489 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
490 resultObj.put(Constant.REASON, "upload VNF package failed and JSONException." + e.getMessage());
492 } catch(VnfmException e) {
493 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage upload VNF package VnfmException e={}.", e);
494 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
495 resultObj.put(Constant.REASON, "upload VNF package failed and VnfmException." + e.getMessage());
497 } catch(IOException e) {
498 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage upload VNF package IOException e={}.", e);
499 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
500 resultObj.put(Constant.REASON, "upload VNF package failed and IOException." + e.getMessage());
507 * Find vnfd version.<br>
514 public JSONObject getVnfdVersion(String prefixUrl, String serviceUrl, String conntoken) {
515 JSONObject resultObj = new JSONObject();
516 HttpMethod httpMethodVnfd = null;
518 httpMethodVnfd = new HttpRequests.Builder(Constant.CERTIFICATE).setUrl(prefixUrl.trim(), serviceUrl)
519 .setParams("").addHeader(Constant.HEADER_AUTH_TOKEN, conntoken).get().execute();
521 int statusCodeVnfd = httpMethodVnfd.getStatusCode();
523 String resultVnfd = httpMethodVnfd.getResponseBodyAsString();
524 LOG.info("getVnfdVersion result:" + resultVnfd);
525 if(statusCodeVnfd == HttpStatus.SC_OK) {
526 resultObj = JSONObject.fromObject(resultVnfd);
527 resultObj.put(Constant.RETCODE, statusCodeVnfd);
529 LOG.error("uploadVNFPackage vnfd version failed, code:" + statusCodeVnfd + " re:" + resultVnfd);
530 resultObj.put(Constant.RETCODE, statusCodeVnfd);
531 resultObj.put("data", "get vnfd version failed, code:" + statusCodeVnfd + " re:" + resultVnfd);
534 } catch(JSONException e) {
535 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get vnfd version JSONException e={}.", e);
536 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
537 resultObj.put(Constant.REASON, "get vnfd version failed and JSONException." + e.getMessage());
539 } catch(VnfmException e) {
540 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get vnfd version VnfmException e={}.", e);
541 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
542 resultObj.put(Constant.REASON, "get vnfd version failed and VnfmException." + e.getMessage());
544 } catch(IOException e) {
545 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get vnfd version IOException e={}.", e);
546 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
547 resultObj.put(Constant.REASON, "get vnfd version failed and IOException." + e.getMessage());
554 * Find VNFM connection information.<br>
560 public JSONObject getVnfmConnInfo(Map<String, String> paramsMap) {
561 return this.sendRequest(paramsMap);
565 public JSONObject getVNFDPlanInfo(String url, String vnfdid, String conntoken) {
566 JSONObject resultObj = new JSONObject();
568 HttpMethod httpMethodPlan = null;
570 httpMethodPlan = new HttpRequests.Builder(Constant.CERTIFICATE)
571 .setUrl(url.trim(), String.format(UrlConstant.URL_VNFDPLANINFO_GET, vnfdid)).setParams("")
572 .addHeader(Constant.HEADER_AUTH_TOKEN, conntoken).get().execute();
574 int statusCode = httpMethodPlan.getStatusCode();
576 String result = httpMethodPlan.getResponseBodyAsString();
577 LOG.info("getVNFDPlanInfo result=" + result);
578 if(statusCode == HttpStatus.SC_OK) {
579 resultObj = JSONObject.fromObject(result);
580 resultObj.put(Constant.RETCODE, statusCode);
582 LOG.error("uploadVNFPackage get VNFDPlanInfo failed, code:" + statusCode + " re:" + result);
583 resultObj.put(Constant.RETCODE, statusCode);
584 resultObj.put(Constant.REASON, "get VNFDPlanInfo failed. code:" + statusCode + " re:" + result);
587 } catch(JSONException e) {
588 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get VNFDPlanInfo JSONException e={}.", e);
589 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
590 resultObj.put(Constant.REASON, "get VNFDPlanInfo failed and JSONException." + e.getMessage());
592 } catch(VnfmException e) {
593 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get VNFDPlanInfo VnfmException e={}.", e);
594 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
595 resultObj.put(Constant.REASON, "get VNFDPlanInfo failed and VnfmException." + e.getMessage());
597 } catch(IOException e) {
598 LOG.error("function=uploadVNFPackage, msg=uploadVNFPackage get VNFDPlanInfo IOException e={}.", e);
599 resultObj.put(Constant.RETCODE, Constant.HTTP_INNERERROR);
600 resultObj.put(Constant.REASON, "get VNFDPlanInfo failed and IOException." + e.getMessage());
607 * Get VNF package information.<br>
610 * @throws IOException
613 public static String readVfnPkgInfoFromJson() throws IOException {
614 String fileContent = "";
616 String fileName = SystemEnvVariablesFactory.getInstance().getAppRoot()
617 + System.getProperty(Constant.FILE_SEPARATOR) + "etc" + System.getProperty(Constant.FILE_SEPARATOR)
618 + "vnfpkginfo" + System.getProperty(Constant.FILE_SEPARATOR) + Constant.VNFPKGINFO;
620 try (InputStream ins = new FileInputStream(fileName)) {
621 try (BufferedInputStream bins = new BufferedInputStream(ins)) {
622 byte[] contentByte = new byte[ins.available()];
623 int num = bins.read(contentByte);
626 fileContent = new String(contentByte);
629 } catch(FileNotFoundException e) {
630 LOG.error(fileName + "is not found!", e);
636 private static JSONObject readVnfdIdInfoFromJson() {
637 JSONObject jsonObject = new JSONObject();
639 String fileContent = "";
641 String fileName = SystemEnvVariablesFactory.getInstance().getAppRoot()
642 + System.getProperty(Constant.FILE_SEPARATOR) + "etc" + System.getProperty(Constant.FILE_SEPARATOR)
643 + "vnfpkginfo" + System.getProperty(Constant.FILE_SEPARATOR) + "vnfd_ids.json";
645 try (InputStream ins = new FileInputStream(fileName)) {
646 try (BufferedInputStream bins = new BufferedInputStream(ins)) {
647 byte[] contentByte = new byte[ins.available()];
648 int num = bins.read(contentByte);
651 fileContent = new String(contentByte);
653 if(fileContent != null) {
654 jsonObject = JSONObject.fromObject(fileContent).getJSONObject("vnfdIds");
657 } catch(Exception e) {
658 LOG.error(fileName + " read error!", e);
665 * @param fileName filePath
668 public JSONObject unzipCSAR(String fileName, String filePath) {
669 LOG.info("fileName: " + fileName + ", filePath: " + filePath);
670 JSONObject resultObj = new JSONObject();
672 if(fileName == null || "".equals(fileName)) {
673 resultObj.put(Constant.REASON, "fileName is null.");
674 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
677 if(filePath == null || "".equals(filePath)) {
678 resultObj.put(Constant.REASON, "unzipCSAR filePath is null.");
679 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);
683 int status = DownloadCsarManager.unzipCSAR(fileName, filePath);
685 if(Constant.UNZIP_SUCCESS == status) {
686 resultObj.put(Constant.REASON, "unzip csar file successfully.");
687 resultObj.put(Constant.RETCODE, Constant.REST_SUCCESS);
689 resultObj.put(Constant.REASON, "unzip csar file failed.");
690 resultObj.put(Constant.RETCODE, Constant.REST_FAIL);