Update LCM notify part
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / msb / impl / MsbMgmrImpl.java
index ed85fcf..e89eabe 100644 (file)
 
 package org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.impl;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.InputStream;
+import java.util.HashMap;
 
 import org.apache.http.client.ClientProtocolException;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.bo.AdaptorEnv;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.util.CommonUtil;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonConstants;
-import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpRequestProcessor;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpClientProcessorInf;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpResult;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.bo.MsbServiceInfo;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.inf.IMsbMgmr;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import com.google.gson.Gson;
+
 @Component
 public class MsbMgmrImpl implements IMsbMgmr {
-       private static final Logger logger = LogManager.getLogger("MsbMgmrImpl");
-       @Autowired 
-       private HttpClientBuilder httpClientBuilder;
-       
-       @Autowired 
-       private AdaptorEnv adaptorEnv;
-       
-       @Value("${serviceName}")
-       private String serviceName;
-       
-       @Value("${version}")
-       private String version;
-       
-       @Value("${url}")
-       private String url;
-       
-       @Value("${protocol}")
-       private String protocol;
-       
-       @Value("${visualRange}")
-       private String visualRange;
-       
-       @Value("${ip}")
-       private String ip;
-       
-       @Value("${port}")
-       private String port;
-       
-       @Value("${ttl}")
-       private String ttl;
+       private static final Logger logger = LoggerFactory.getLogger(MsbMgmrImpl.class);
+
+       @Autowired
+       AdaptorEnv adaptorEnv;
+
+       @Autowired
+       HttpClientProcessorInf httpClientProcessor;
+
+       private Gson gson = new Gson();
 
        @Override
        public void register() {
-               String httpPath = CommonConstants.MSB_REGISTER_SERVICE_PATH;
-               RequestMethod method = RequestMethod.POST;
-               
+
                try {
-                       String jsonStr = readVfcAdaptorInfoFromJsonFile();
-                       String registerResponse = operateHttpTask(jsonStr, httpPath, method);
-                       logger.info("registerResponse is ", registerResponse); 
+                       String url = adaptorEnv.getMsbApiUriFront() + CommonConstants.MSB_REGISTER_SERVICE_PATH;
+                       HashMap<String, String> map = new HashMap<>();
+                       map.put(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
+
+                       String bodyPostStr = readVfcAdaptorInfoFromJsonFile();
+                       
+                       logger.info("MSB register content is: " + bodyPostStr);
+
+                       HttpResult httpResult = httpClientProcessor.process(url, RequestMethod.POST, map, bodyPostStr);
+                       String responseStr = httpResult.getContent();
+
+                       logger.info("MsbMgmrImpl -> register, responseStr is " + responseStr);
+                       
+                       if(httpResult.getStatusCode() == 201)
+                       {
+                               logger.info("MsbMgmrImpl -> register, Successfully ");
+                       }
+                       else
+                       {
+                               logger.error("MsbMgmrImpl -> register Error, statusCode = " + httpResult.getStatusCode());
+                       }
+
                } catch (IOException e) {
-                       logger.error("Failed to read vfcadaptor info! ", e);
+                       logger.error("IOException Failed to register nokia vnfm driver! ", e);
                }
-                       
+
+       }
+
+       private String readVfcAdaptorInfoFromJsonFile() throws IOException {
+               String filePath = "/etc/adapterInfo/vnfmadapterinfo.json";
+               String fileContent = CommonUtil.getJsonStrFromFile(filePath);
+
+               return fileContent;
        }
-       
-       public String readVfcAdaptorInfoFromJsonFile()  throws IOException {
-        InputStream ins = null;
-        BufferedInputStream bins = null;
-        String fileContent = "";
-        String fileName = getAppRoot() + "/etc/adapterInfo/vnfmadapterinfo.json";
-
-        try {
-            ins = new FileInputStream(fileName);
-            bins = new BufferedInputStream(ins);
-
-            byte[] contentByte = new byte[ins.available()];
-            int num = bins.read(contentByte);
-
-            if(num > 0) {
-                fileContent = new String(contentByte);
-            }
-        } catch(FileNotFoundException e) {
-               logger.error(fileName + "is not found!", e);
-        } finally {
-            if(ins != null) {
-                ins.close();
-            }
-            if(bins != null) {
-                bins.close();
-            }
-        }
-
-        return fileContent;
-    }
 
        @Override
        public void unregister() {
-               String httpPath = String.format(CommonConstants.MSB_UNREGISTER_SERVICE_PATH, serviceName, version, ip, port);
-               RequestMethod method = RequestMethod.DELETE;
-               
                try {
-                       String jsonStr = readVfcAdaptorInfoFromJsonFile();
-                       String registerResponse = operateHttpTask(jsonStr, httpPath, method);
-                       logger.info("unregisterResponse is ", registerResponse); 
-               } catch (IOException e) {
-                       logger.error("Failed to unregister! ", e);
+                       String url = adaptorEnv.getMsbApiUriFront() + String.format(CommonConstants.MSB_UNREGISTER_SERVICE_PATH);
+
+                       HttpResult httpResult = httpClientProcessor.process(url, RequestMethod.DELETE, null, null);
+                       String responseStr = httpResult.getContent();
+
+                       logger.info("MsbMgmrImpl -> unregister, responseStr is " + responseStr);
+                       if(httpResult.getStatusCode() == 204)
+                       {
+                               logger.info("MsbMgmrImpl -> register, Successfully ");
+                       }
+                       else
+                       {
+                               logger.error("MsbMgmrImpl -> register Error, statusCode = " + httpResult.getStatusCode());
+                       }
+
+               } catch (Exception e) {
+                       logger.error("IOException Failed to unregister nokia vnfm driver! ", e);
+               }
+
+       }
+
+       public String getServiceUrlInMsbBySeriveNameAndVersion(String serviceName, String version) throws ClientProtocolException, IOException {
+               String url = adaptorEnv.getMsbApiUriFront() + String.format(CommonConstants.MSB_QUERY_SERVICE_PATH, serviceName, version);
+
+               HttpResult httpResult = httpClientProcessor.process(url, RequestMethod.GET, null, null);
+
+               String responseStr = httpResult.getContent();
+               logger.info("MsbMgmrImpl -> getServiceUrlInMsbBySeriveNameAndVersion, responseStr is " + responseStr);
+               String serviceUrl = "";
+               if(httpResult.getStatusCode() == 200)
+               {
+                       MsbServiceInfo serviceInfo = gson.fromJson(responseStr, MsbServiceInfo.class);
+                       if (null == serviceInfo) {
+                               logger.error("There is no service in MSB for serviceName = {} and version = {}", serviceName, version);
+                       }
+                       
+                       serviceUrl = serviceInfo.getUrl();
+                       logger.info("Service Url in MSB for serviceName = {} and version = {} is {}", serviceName, version, serviceUrl);
+               }
+               else
+               {
+                       logger.error("MsbMgmrImpl -> getServiceUrlInMsbBySeriveNameAndVersion Error, statusCode = " + httpResult.getStatusCode());
                }
 
+
+               return serviceUrl;
+       }
+
+       public void setAdaptorEnv(AdaptorEnv env) {
+               this.adaptorEnv = env;
        }
-       
-       public String operateHttpTask(String httpBodyObj, String httpPath, RequestMethod method) throws ClientProtocolException, IOException {
-               String url=adaptorEnv.getMsbApiUriFront() + httpPath;
-               HttpRequestProcessor processor = new HttpRequestProcessor(httpClientBuilder, method);
-               processor.addHdeader(CommonConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
-               
-               processor.addPostEntity(httpBodyObj);
-               
-               String responseStr = processor.process(url);
-               
-               return responseStr;
+
+       public static final void main(String[] args) {
+               MsbMgmrImpl impl = new MsbMgmrImpl();
+               impl.register();
        }
-       
-    public String getAppRoot() {
-        String appRoot = null;
-        appRoot = System.getProperty("catalina.base");
-        if(appRoot != null) {
-            appRoot = getCanonicalPath(appRoot);
-        }
-        return appRoot;
-    }
-
-    private String getCanonicalPath(final String inPath) {
-        String path = null;
-        try {
-            if(inPath != null) {
-                final File file = new File(inPath);
-                path = file.getCanonicalPath();
-            }
-        } catch(final IOException e) {
-            logger.error("file.getCanonicalPath() IOException:", e);
-        }
-        return path;
-    }
 
 }