aboutsummaryrefslogtreecommitdiffstats
path: root/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org
diff options
context:
space:
mode:
authorDunietz, Irwin <id1681@att.com>2020-01-16 15:13:14 -0500
committerTakamune Cho <takamune.cho@att.com>2020-01-29 19:44:48 +0000
commitb5fe8a69e90b950c07dc11af481eab7e9bab52c6 (patch)
tree3da81ce60554e65b93776b9aea647f3c6d8679ab /appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org
parent9b32cb60360a2a2973c621053510718de0072111 (diff)
Change code in appc dispatcher for new LCMs in R6
Also introduce some minor improvements to robustness, efficiency, & formatting. Issue-ID: APPC-1789 Signed-off-by: Dunietz, Irwin <id1681@att.com> Change-Id: I82d970c2f7cde6c8dab1222af86ea70ce93b7e50
Diffstat (limited to 'appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org')
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/impl/MDSALStoreImpl.java103
-rw-r--r--appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/operation/ConfigOperationRequestFormatter.java23
2 files changed, 75 insertions, 51 deletions
diff --git a/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/impl/MDSALStoreImpl.java b/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/impl/MDSALStoreImpl.java
index babf59577..91252240d 100644
--- a/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/impl/MDSALStoreImpl.java
+++ b/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/impl/MDSALStoreImpl.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* ================================================================================
@@ -11,15 +11,14 @@
* 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.
- *
* ============LICENSE_END=========================================================
*/
@@ -135,12 +134,13 @@ public class MDSALStoreImpl implements MDSALStore {
@Override
public void storeYangModuleOnLeader(String yang, String moduleName) throws MDSALStoreException {
+ String msg;
try {
String leader = getLeaderNode();
- if (Constants.SELF.equals(leader)){
+ if (Constants.SELF.equals(leader)) {
logger.debug("Current node is a leader.");
- }else{
- logger.debug("Attempting to load yang module on Leader: " + leader );
+ } else {
+ logger.debug("Attempting to load yang module on Leader: " + leader);
String inputJson = createInputJson(yang, moduleName);
RestClientInvoker remoteClient = getRemoteClient(leader);
HttpResponse response = remoteClient.doPost(Constants.YANG_LOADER_PATH, inputJson);
@@ -154,11 +154,13 @@ public class MDSALStoreImpl implements MDSALStore {
}
}
} catch (APPCException e) {
- logger.error("Error loading Yang on Leader. Error message: " + e.getMessage());
- throw new MDSALStoreException("Error loading Yang on Leader. Error message: " + e.getMessage(), e);
+ msg = "Error loading Yang on Leader. Error message: " + e.getMessage();
+ logger.error(msg);
+ throw new MDSALStoreException(msg, e);
} catch (IOException e) {
- logger.error("Error reading response from remote client. Error message: " + e.getMessage());
- throw new MDSALStoreException("Error reading response from remote client. Error message: " + e.getMessage(), e);
+ msg = "Error reading response from remote client. Error message: " + e.getMessage();
+ logger.error(msg);
+ throw new MDSALStoreException(msg, e);
}
}
@@ -170,11 +172,13 @@ public class MDSALStoreImpl implements MDSALStore {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.addMixIn(StoreYangInput.class, MixIn.class);
String inputJson = objectMapper.writer().withRootName("input").writeValueAsString(input);
- logger.debug("Input JSON :" + inputJson);
+ logger.debug("Input JSON: " + inputJson);
return inputJson;
} catch (JsonProcessingException e) {
- logger.error(String.format("Error creating JSON input using yang: %s. Error message: %s",yang ,e.getMessage()));
- throw new MDSALStoreException(String.format("Error creating JSON input using yang: %s. Error message: %s",yang ,e.getMessage()), e);
+ String msg = String.format("Error creating JSON input using yang: %s. Error message: %s",
+ yang, e.getMessage());
+ logger.error(msg);
+ throw new MDSALStoreException(msg, e);
}
}
@@ -182,24 +186,30 @@ public class MDSALStoreImpl implements MDSALStore {
if (remoteClientMap.containsKey(leader)) {
return remoteClientMap.get(leader);
} else {
+ String msg;
Configuration configuration = ConfigurationFactory.getConfiguration();
Properties properties = configuration.getProperties();
if (properties != null) {
try {
- URL configUrl = new URL(properties.getProperty(Constants.CONFIG_URL_PROPERTY, Constants.CONFIG_URL_DEFAULT));
+ URL configUrl =
+ new URL(properties.getProperty(Constants.CONFIG_URL_PROPERTY,
+ Constants.CONFIG_URL_DEFAULT));
String user = properties.getProperty(Constants.CONFIG_USER_PROPERTY);
String password = properties.getProperty(Constants.CONFIG_PASS_PROPERTY);
- RestClientInvoker remoteClient = getRestClientInvoker(new URL(configUrl.getProtocol(), leader, configUrl.getPort(), ""));
+ RestClientInvoker remoteClient =
+ getRestClientInvoker(new URL(configUrl.getProtocol(), leader, configUrl.getPort(), ""));
remoteClient.setAuthentication(user, password);
remoteClientMap.put(leader, remoteClient);
return remoteClient;
} catch (MalformedURLException e) {
- logger.error("Error initializing remote RestConf client: " + e.getMessage(), e);
- throw new MDSALStoreException("Error initializing Remote RestConf client: " + e.getMessage(), e);
+ msg = "Error initializing remote RestConf client: " + e.getMessage();
+ logger.error(msg, e);
+ throw new MDSALStoreException(msg, e);
}
} else {
- logger.error("Error initializing Remote RestConf client. Could not read appc properties");
- throw new MDSALStoreException("Error initializing Remote RestConf client. Could not read appc properties");
+ msg = "Error initializing remote RestConf client. Could not read appc properties";
+ logger.error(msg);
+ throw new MDSALStoreException(msg);
}
}
}
@@ -224,7 +234,7 @@ public class MDSALStoreImpl implements MDSALStore {
try {
String path = requestFormatter.buildPath(module, org.onap.appc.Constants.YANG_BASE_CONTAINER,
org.onap.appc.Constants.YANG_VNF_CONFIG_LIST, requestId, org.onap.appc.Constants.YANG_VNF_CONFIG);
- logger.debug("Configuration Path : " + path);
+ logger.debug("Configuration Path: " + path);
HttpResponse response = client.doPut(path, configJson);
int httpCode = response.getStatusLine().getStatusCode();
String respBody = IOUtils.toString(response.getEntity().getContent());
@@ -252,7 +262,8 @@ public class MDSALStoreImpl implements MDSALStore {
}
}
logger.error("Failed to load config JSON to MD SAL store. " + errorMessage.toString());
- throw new MDSALStoreException("Failed to load config JSON to MD SAL store. Error Message: " + errorMessage.toString());
+ throw new MDSALStoreException("Failed to load config JSON to MD SAL store. Error Message: "
+ + errorMessage.toString());
} catch (IOException e) {
logger.error("Failed to process error response from RestConf: " + e.getMessage());
throw new MDSALStoreException("Failed to process RestConf response. Error Message: " + e.toString(), e);
@@ -263,17 +274,23 @@ public class MDSALStoreImpl implements MDSALStore {
Manifest manifest = new Manifest();
manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, Constants.MANIFEST_VALUE_VERSION);
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_NAME), bundleInfo.getName());
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_SYMBOLIC_NAME), bundleInfo.getName());
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_DESCRIPTION), bundleInfo.getDescription());
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_MANIFEST_VERSION), Constants.MANIFEST_VALUE_BUNDLE_MAN_VERSION);
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_VERSION), String.valueOf(bundleInfo.getVersion()));
- manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_BLUEPRINT), Constants.MANIFEST_VALUE_BUNDLE_BLUEPRINT);
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_NAME),
+ bundleInfo.getName());
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_SYMBOLIC_NAME),
+ bundleInfo.getName());
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_DESCRIPTION),
+ bundleInfo.getDescription());
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_MANIFEST_VERSION),
+ Constants.MANIFEST_VALUE_BUNDLE_MAN_VERSION);
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_VERSION),
+ String.valueOf(bundleInfo.getVersion()));
+ manifest.getMainAttributes().put(new Attributes.Name(Constants.MANIFEST_ATTR_BUNDLE_BLUEPRINT),
+ Constants.MANIFEST_VALUE_BUNDLE_BLUEPRINT);
byte[] retunValue;
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- JarOutputStream jarOutputStream = new JarOutputStream(outputStream, manifest)) {
+ JarOutputStream jarOutputStream = new JarOutputStream(outputStream, manifest)) {
jarOutputStream.putNextEntry(new JarEntry("META-INF/yang/"));
jarOutputStream.putNextEntry(new JarEntry("META-INF/yang/" + bundleInfo.getName() + ".yang"));
jarOutputStream.write(yang.getBytes());
@@ -287,7 +304,8 @@ public class MDSALStoreImpl implements MDSALStore {
retunValue = outputStream.toByteArray();
} catch (Exception e) {
logger.error("Error creating bundle jar: " + bundleInfo.getName() + ". Error message: " + e.getMessage());
- throw new MDSALStoreException("Error creating bundle jar: " + bundleInfo.getName() + " " + e.getMessage(), e);
+ throw new MDSALStoreException("Error creating bundle jar: " + bundleInfo.getName() + " " + e.getMessage(),
+ e);
}
return retunValue;
}
@@ -299,7 +317,7 @@ public class MDSALStoreImpl implements MDSALStore {
int httpCode = response.getStatusLine().getStatusCode();
String respBody = IOUtils.toString(response.getEntity().getContent());
logger.debug(String.format("Get node status returned Code: %s. Response: %s ", httpCode, respBody));
- if (httpCode == 200 && mapper.readTree(respBody).get(Constants.JSON_RESPONSE_VALUE) !=null ) {
+ if (httpCode == 200 && mapper.readTree(respBody).get(Constants.JSON_RESPONSE_VALUE) != null) {
JsonNode responseValue = mapper.readTree(respBody).get(Constants.JSON_RESPONSE_VALUE);
String leaderShard = responseValue.get("Leader").asText();
if (shardName.equals(leaderShard)) {
@@ -309,7 +327,8 @@ public class MDSALStoreImpl implements MDSALStore {
String[] peers = responseValue.get("PeerAddresses").asText().split(",");
for (String peer : peers) {
if (peer.trim().startsWith(leaderShard)) {
- String leader = peer.substring(peer.indexOf('@') + 1, peer.indexOf(':', peer.indexOf('@')));
+ String leader =
+ peer.substring(peer.indexOf('@') + 1, peer.indexOf(':', peer.indexOf('@')));
logger.debug(String.format("Node %s is a leader", leader));
return leader;
}
@@ -322,7 +341,7 @@ public class MDSALStoreImpl implements MDSALStore {
throw new MDSALStoreException("Error while retrieving leader node.");
}
} catch (IOException | APPCException e) {
- logger.error(String.format("Error while retrieving leader Node. Error message : %s ", e.getMessage()), e);
+ logger.error(String.format("Error while retrieving leader Node. Error message: %s ", e.getMessage()), e);
throw new MDSALStoreException(e);
}
}
@@ -337,18 +356,22 @@ public class MDSALStoreImpl implements MDSALStore {
JsonNode responseValue = mapper.readTree(respBody).get(Constants.JSON_RESPONSE_VALUE);
if (responseValue != null && responseValue.get(Constants.JSON_RESPONSE_MEMBER_NAME) != null) {
String name = responseValue.get(Constants.JSON_RESPONSE_MEMBER_NAME).asText();
- logger.debug("Node name : " + name);
+ logger.debug("Node name: " + name);
return name;
- }else{
- logger.error(String.format("Error while retrieving node name from response. Response body: %s.", respBody));
- throw new MDSALStoreException(String.format("Error while retrieving node name from response. Response body: %s.", respBody));
+ } else {
+ String msg = String.format("Error while retrieving node name from response. Response body: %s.",
+ respBody);
+ logger.error(msg);
+ throw new MDSALStoreException(msg);
}
} else {
- logger.error(String.format("Error while retrieving node name. Error code: %s. Error response: %s.", httpCode, respBody));
- throw new MDSALStoreException(String.format("Error while retrieving node name. Error code: %s. Error response: %s.", httpCode, respBody));
+ String msg = String.format("Error while retrieving node name. Error code: %s. Error response: %s.",
+ httpCode, respBody);
+ logger.error(msg);
+ throw new MDSALStoreException(msg);
}
} catch (IOException | APPCException e) {
- logger.error("Error while getting node name " + e.getMessage(), e);
+ logger.error("Error while getting node name: " + e.getMessage(), e);
throw new MDSALStoreException(e);
}
}
diff --git a/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/operation/ConfigOperationRequestFormatter.java b/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/operation/ConfigOperationRequestFormatter.java
index e565f2052..0e7474635 100644
--- a/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/operation/ConfigOperationRequestFormatter.java
+++ b/appc-dg/appc-dg-shared/appc-dg-mdsal-store/appc-dg-mdsal-bundle/src/main/java/org/onap/appc/mdsal/operation/ConfigOperationRequestFormatter.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP : APPC
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Copyright (C) 2017 Amdocs
* ================================================================================
@@ -11,15 +11,14 @@
* 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.
- *
* ============LICENSE_END=========================================================
*/
@@ -28,7 +27,8 @@ package org.onap.appc.mdsal.operation;
import org.onap.appc.mdsal.impl.Constants;
/**
- * Creates request url path for config actions based on parameter like module name , container-name and sub modules if any.
+ * Creates request url path for config actions based on parameter like module name, container name,
+ * and sub modules if any.
*/
public class ConfigOperationRequestFormatter {
@@ -39,15 +39,16 @@ public class ConfigOperationRequestFormatter {
* @param subModules - sub module /container names as string in varargs ( String ) format
* @return - resultant path in String format
*/
- public String buildPath(String module, String containerName , String... subModules ) {
-
- StringBuilder path = new StringBuilder( Constants.CONFIG_PATH + Constants.URL_BACKSLASH + module + ":" + containerName + Constants.URL_BACKSLASH);
- if(subModules.length >0){
- for(String subModule : subModules){
+ public String buildPath(String module, String containerName, String... subModules) {
+ StringBuilder path =
+ new StringBuilder(Constants.CONFIG_PATH + Constants.URL_BACKSLASH + module
+ + ":" + containerName + Constants.URL_BACKSLASH);
+ if (subModules.length > 0) {
+ for (String subModule : subModules) {
path.append(subModule);
path.append("/");
}
}
- return path.toString();
+ return path.toString();
}
}