summaryrefslogtreecommitdiffstats
path: root/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap
diff options
context:
space:
mode:
authoryufei_zhou <yufei.zhou@nokia-sbell.com>2017-09-28 02:39:00 -0700
committeryufei_zhou <yufei.zhou@nokia-sbell.com>2017-09-28 02:39:00 -0700
commit5163db790f73ceaec4f08d5b41e03a862f7a8818 (patch)
treed7578752b27175777e39f7df673a439c9f6715ec /nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap
parent16e4b6bdec169b97015752958a94d3ed0ad8c02a (diff)
Add MSB service register funtion
Change-Id: I2ffe7634052c93ce3c287aa996877610f3a46f4c Issue-ID: VFC-53 Signed-off-by: yufei_zhou <yufei.zhou@nokia-sbell.com>
Diffstat (limited to 'nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap')
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/common/bo/AdaptorEnv.java13
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/constant/CommonConstants.java5
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/impl/MsbMgmrImpl.java168
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/inf/IMsbMgmr.java22
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/service/MsgServiceRegister.java40
-rw-r--r--nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/vnfmdriver/controller/VnfmDriverController.java2
6 files changed, 249 insertions, 1 deletions
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/common/bo/AdaptorEnv.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/common/bo/AdaptorEnv.java
index 93454329..343e517e 100644
--- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/common/bo/AdaptorEnv.java
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/common/bo/AdaptorEnv.java
@@ -23,16 +23,23 @@ import org.springframework.stereotype.Component;
public class AdaptorEnv {
@Value("${nslcmApiUriFront}")
private String nslcmApiUriFront;
+
@Value("${catalogApiUriFront}")
private String catalogApiUriFront;
+
@Value("${cbamApiUriFront}")
private String cbamApiUriFront;
+ @Value("${msbApiUriFront}")
+ private String msbApiUriFront;
+
//for retrieving token from CBAM
@Value("${grantType}")
private String grantType;
+
@Value("${clientId}")
private String clientId;
+
@Value("${clientSecret}")
private String clientSecret;
@@ -72,5 +79,11 @@ public class AdaptorEnv {
public void setClientSecret(String clientSecret) {
this.clientSecret = clientSecret;
}
+ public String getMsbApiUriFront() {
+ return msbApiUriFront;
+ }
+ public void setMsbApiUriFront(String msbApiUriFront) {
+ this.msbApiUriFront = msbApiUriFront;
+ }
}
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/constant/CommonConstants.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/constant/CommonConstants.java
index c145e28c..22c06ef0 100644
--- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/constant/CommonConstants.java
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/constant/CommonConstants.java
@@ -57,4 +57,9 @@ public class CommonConstants {
public static final String CBAM_OPERATION_STATUS_START = "start";
public static final String CBAM_OPERATION_STATUS_FINISH = "finished";
+
+ //MSB
+ public static final String MSB_REGISTER_SERVICE_PATH = "/api/microservices/v1/services";
+// public static final String MSB_REGISTER_SERVICE_PATH = "/api/microservices/v1/services/{serviceName}/version/{version}/nodes/{ip}/{port}";
+ public static final String MSB_UNREGISTER_SERVICE_PATH = "/api/microservices/v1/services/%s/version/%s/nodes/%s/%s";
}
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/impl/MsbMgmrImpl.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/impl/MsbMgmrImpl.java
new file mode 100644
index 00000000..ed85fcfc
--- /dev/null
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/impl/MsbMgmrImpl.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright 2016-2017, Nokia Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+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 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.constant.CommonConstants;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpRequestProcessor;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.inf.IMsbMgmr;
+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;
+
+@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;
+
+ @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);
+ } catch (IOException e) {
+ logger.error("Failed to read vfcadaptor info! ", e);
+ }
+
+ }
+
+ 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);
+ }
+
+ }
+
+ 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 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;
+ }
+
+}
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/inf/IMsbMgmr.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/inf/IMsbMgmr.java
new file mode 100644
index 00000000..aaabc3f2
--- /dev/null
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/inf/IMsbMgmr.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016-2017, Nokia Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.inf;
+
+public interface IMsbMgmr {
+ public void register();
+ public void unregister();
+}
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/service/MsgServiceRegister.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/service/MsgServiceRegister.java
new file mode 100644
index 00000000..5f52297d
--- /dev/null
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/msb/service/MsgServiceRegister.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2016-2017, Nokia Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.service;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.msb.inf.IMsbMgmr;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+@Component
+public class MsgServiceRegister implements ApplicationRunner{
+ private static final Logger logger = LogManager.getLogger("MsgServiceRegister");
+
+ @Autowired
+ private IMsbMgmr msbMgmr;
+
+ @Override
+ public void run(ApplicationArguments arg0) {
+ msbMgmr.register();
+ logger.info("nokia vnfm driver successfully registered on the MSB");
+ }
+
+}
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/vnfmdriver/controller/VnfmDriverController.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/vnfmdriver/controller/VnfmDriverController.java
index a3aee38e..39b6b3f6 100644
--- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/vnfmdriver/controller/VnfmDriverController.java
+++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/vnfmdriver/controller/VnfmDriverController.java
@@ -47,7 +47,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import com.google.gson.Gson;
@Controller
-@RequestMapping(value = "/nokiavnfm/v1")
+@RequestMapping(value = "/api/nokiavnfmdriver/v1")
public class VnfmDriverController {
private static final Logger logger = LogManager.getLogger("VnfmDriverController");