aboutsummaryrefslogtreecommitdiffstats
path: root/adapters/mso-adapter-utils
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/mso-adapter-utils')
-rw-r--r--adapters/mso-adapter-utils/pom.xml20
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java23
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudIdentity.java27
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactory.java9
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/StackInfo.java115
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoCommonUtils.java2
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntry.java225
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java51
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtilsWithUpdate.java9
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoKeystoneUtils.java106
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoNeutronUtils.java60
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtils.java11
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java8
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java23
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java5
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java27
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactoryTest.java103
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodTest.java61
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/StackInfoTest.java98
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntryTest.java79
20 files changed, 485 insertions, 577 deletions
diff --git a/adapters/mso-adapter-utils/pom.xml b/adapters/mso-adapter-utils/pom.xml
index dd1159f6d1..cd0a688018 100644
--- a/adapters/mso-adapter-utils/pom.xml
+++ b/adapters/mso-adapter-utils/pom.xml
@@ -2,11 +2,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.openecomp.so</groupId>
+ <groupId>org.onap.so</groupId>
<artifactId>adapters</artifactId>
<version>1.2.0-SNAPSHOT</version>
</parent>
- <groupId>org.openecomp.so.adapters</groupId>
+ <groupId>org.onap.so.adapters</groupId>
<artifactId>mso-adapter-utils</artifactId>
<name>mso-adapter-utils</name>
<description>Common MSO utilities, including Openstack client wrappers.</description>
@@ -44,32 +44,44 @@
<dependencies>
<dependency>
+<!--
+ <groupId>org.onap.so.libs.openstack-java-sdk</groupId>
+-->
<groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>keystone-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
+<!--
+ <groupId>org.onap.so.libs.openstack-java-sdk</groupId>
+-->
<groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>heat-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
+<!--
+ <groupId>org.onap.so.libs.openstack-java-sdk</groupId>
+-->
<groupId>org.openecomp.so.libs.openstack-java-sdk</groupId>
<artifactId>quantum-client</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
+<!--
+ <groupId>org.onap.so.libs.openstack-java-sdk.client-connectors</groupId>
+-->
<groupId>org.openecomp.so.libs.openstack-java-sdk.client-connectors</groupId>
<artifactId>http-connector</artifactId>
<version>${openstack.version}</version>
</dependency>
<dependency>
- <groupId>org.openecomp.so</groupId>
+ <groupId>org.onap.so</groupId>
<artifactId>common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.openecomp.so</groupId>
+ <groupId>org.onap.so</groupId>
<artifactId>mso-catalog-db</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
index ef37f9f719..5d16a95e5f 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java
@@ -46,7 +46,6 @@ import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound;
*
* This class also contains methods to query cloud sites and/or identity
* services by ID.
- *
*/
@JsonRootName("cloud_config")
@@ -89,21 +88,20 @@ public class CloudConfig {
* individual entries to try and find one with a CLLI that matches the ID
* and an AIC version of 2.5.
*
- * @param id
- * the ID to match
- * @return a CloudSite, or null of no match found
+ * @param id the ID to match
+ * @return an Optional of CloudSite object.
*/
- public synchronized CloudSite getCloudSite(String id) {
- if (id != null) {
- if (cloudSites.containsKey(id)) {
- return cloudSites.get(id);
- }
- // check for id == CLLI now as well
- return getCloudSiteWithClli(id);
+ public synchronized Optional<CloudSite> getCloudSite(String id) {
+ if (id == null) {
+ return Optional.empty();
}
- return null;
+ if (cloudSites.containsKey(id)) {
+ return Optional.ofNullable(cloudSites.get(id));
+ }
+ return Optional.ofNullable(getCloudSiteWithClli(id));
}
+
private CloudSite getCloudSiteWithClli(String clli) {
Optional <CloudSite> cloudSiteOptional = cloudSites.values().stream().filter(cs ->
cs.getClli() != null && clli.equals(cs.getClli()) && (CLOUD_SITE_VERSION.equals(cs.getAic_version())))
@@ -111,7 +109,6 @@ public class CloudConfig {
return cloudSiteOptional.orElse(getDefaultCloudSite(clli));
}
- // TODO in future the result will be optional
private CloudSite getDefaultCloudSite(String clli) {
Optional<CloudSite> cloudSiteOpt = cloudSites.values().stream()
.filter(cs -> cs.getId().equalsIgnoreCase(DEFAULT_CLOUD_SITE_ID)).findAny();
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudIdentity.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudIdentity.java
index d0ba7e09fc..ba9a7d5007 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudIdentity.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudIdentity.java
@@ -23,28 +23,23 @@
package org.openecomp.mso.cloud;
-import java.io.IOException;
-import java.net.URISyntaxException;
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
import java.security.GeneralSecurityException;
-
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.openecomp.mso.openstack.exceptions.MsoAdapterException;
-import org.openecomp.mso.openstack.exceptions.MsoException;
-import org.openecomp.mso.openstack.utils.MsoKeystoneUtils;
-import org.openecomp.mso.openstack.utils.MsoTenantUtils;
-import org.openecomp.mso.openstack.utils.MsoTenantUtilsFactory;
import org.openecomp.mso.cloud.authentication.AuthenticationMethodFactory;
import org.openecomp.mso.cloud.authentication.AuthenticationWrapper;
import org.openecomp.mso.cloud.authentication.wrappers.RackspaceAPIKeyWrapper;
import org.openecomp.mso.cloud.authentication.wrappers.UsernamePasswordWrapper;
import org.openecomp.mso.logger.MessageEnum;
import org.openecomp.mso.logger.MsoLogger;
-
-import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
+import org.openecomp.mso.openstack.exceptions.MsoException;
+import org.openecomp.mso.openstack.utils.MsoKeystoneUtils;
+import org.openecomp.mso.openstack.utils.MsoTenantUtils;
+import org.openecomp.mso.openstack.utils.MsoTenantUtilsFactory;
import org.openecomp.mso.utils.CryptoUtils;
-import com.woorea.openstack.keystone.model.Authentication;
/**
* JavaBean JSON class for a CloudIdentity. This bean represents a cloud identity
@@ -143,15 +138,11 @@ public class CloudIdentity {
}
}
}
-
- public Authentication getAuthentication () throws MsoException {
+
+ public Authentication getAuthentication() {
if (this.getIdentityAuthenticationType() != null) {
- try {
return AuthenticationMethodFactory.getAuthenticationFor(this);
- } catch (IllegalAccessException | InstantiationException | ClassNotFoundException | IOException | URISyntaxException e) {
- throw new MsoAdapterException("Could not retrieve authentication for " + this.identityAuthenticationType, e);
- }
- } else { // Fallback
+ } else {
return new UsernamePassword(this.getMsoId(), this.getMsoPass());
}
}
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactory.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactory.java
index 85cb2967d6..c9be2c7949 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactory.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactory.java
@@ -23,18 +23,13 @@
package org.openecomp.mso.cloud.authentication;
-import java.io.IOException;
-import java.net.URISyntaxException;
+import com.woorea.openstack.keystone.model.Authentication;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-
import org.openecomp.mso.cloud.CloudIdentity;
-import com.woorea.openstack.keystone.model.Authentication;
-
/**
* This factory manages all the wrappers associated to authentication types.
- *
*/
public final class AuthenticationMethodFactory {
@@ -58,7 +53,7 @@ public final class AuthenticationMethodFactory {
}
}
- public static final synchronized Authentication getAuthenticationFor(CloudIdentity cloudIdentity) throws InstantiationException, IllegalAccessException, ClassNotFoundException, IOException, URISyntaxException {
+ public static final synchronized Authentication getAuthenticationFor(CloudIdentity cloudIdentity) {
if (cloudIdentity == null) {
throw new IllegalArgumentException("Cloud identity cannot be null");
}
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/StackInfo.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/StackInfo.java
index 83e1484257..600985e310 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/StackInfo.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/StackInfo.java
@@ -7,9 +7,9 @@
* 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.
@@ -20,136 +20,89 @@
package org.openecomp.mso.openstack.beans;
-
-import java.util.Map;
-import java.util.HashMap;
-
import com.woorea.openstack.heat.model.Stack;
+import java.util.HashMap;
+import java.util.Map;
/*
* This Java bean class relays Heat stack status information to ActiveVOS processes.
- *
+ *
* This bean is returned by all Heat-specific adapter operations (create, query, delete)
*/
-
public class StackInfo {
- // Set defaults for everything
private String name = "";
private String canonicalName = "";
- private HeatStatus status = HeatStatus.UNKNOWN;
- private String statusMessage = "";
- private Map<String,Object> outputs = new HashMap<String,Object>();
- private Map<String,Object> parameters = new HashMap<String,Object>();
-
- static Map<String,HeatStatus> HeatStatusMap;
- static {
- HeatStatusMap = new HashMap<String,HeatStatus>();
- HeatStatusMap.put("CREATE_IN_PROGRESS", HeatStatus.BUILDING);
- HeatStatusMap.put("CREATE_COMPLETE", HeatStatus.CREATED);
- HeatStatusMap.put("CREATE_FAILED", HeatStatus.FAILED);
- HeatStatusMap.put("DELETE_IN_PROGRESS", HeatStatus.DELETING);
- HeatStatusMap.put("DELETE_COMPLETE", HeatStatus.NOTFOUND);
- HeatStatusMap.put("DELETE_FAILED", HeatStatus.FAILED);
- HeatStatusMap.put("UPDATE_IN_PROGRESS", HeatStatus.UPDATING);
- HeatStatusMap.put("UPDATE_FAILED", HeatStatus.FAILED);
- HeatStatusMap.put("UPDATE_COMPLETE", HeatStatus.UPDATED);
- }
+ private HeatStatus status;
+ private Map<String, Object> outputs = new HashMap<>();
+ private Map<String,Object> parameters = new HashMap<>();
+ static private Map<String, HeatStatus> heatStatusMap;
- public StackInfo () {
+ static {
+ heatStatusMap = new HashMap<>();
+ heatStatusMap.put("CREATE_IN_PROGRESS", HeatStatus.BUILDING);
+ heatStatusMap.put("CREATE_COMPLETE", HeatStatus.CREATED);
+ heatStatusMap.put("CREATE_FAILED", HeatStatus.FAILED);
+ heatStatusMap.put("DELETE_IN_PROGRESS", HeatStatus.DELETING);
+ heatStatusMap.put("DELETE_COMPLETE", HeatStatus.NOTFOUND);
+ heatStatusMap.put("DELETE_FAILED", HeatStatus.FAILED);
+ heatStatusMap.put("UPDATE_IN_PROGRESS", HeatStatus.UPDATING);
+ heatStatusMap.put("UPDATE_FAILED", HeatStatus.FAILED);
+ heatStatusMap.put("UPDATE_COMPLETE", HeatStatus.UPDATED);
}
-
- public StackInfo (String name, HeatStatus status, String statusMessage, Map<String,Object> outputs) {
- this.name = name;
- this.canonicalName = name; // Don't have an ID, so just use name
- this.status = status;
- if (statusMessage != null) this.statusMessage = statusMessage;
- if (outputs != null) this.outputs = outputs;
- }
-
public StackInfo (String name, HeatStatus status) {
this.name = name;
this.canonicalName = name; // Don't have an ID, so just use name
this.status = status;
}
-
+
public StackInfo (Stack stack)
{
if (stack == null) {
this.status = HeatStatus.NOTFOUND;
return;
}
-
this.name = stack.getStackName();
this.canonicalName = stack.getStackName() + "/" + stack.getId();
if (stack.getStackStatus() == null) {
this.status = HeatStatus.INIT;
- } else if (HeatStatusMap.containsKey(stack.getStackStatus())) {
- this.status = HeatStatusMap.get(stack.getStackStatus());
+ } else if (heatStatusMap.containsKey(stack.getStackStatus())) {
+ this.status = heatStatusMap.get(stack.getStackStatus());
} else {
this.status = HeatStatus.UNKNOWN;
}
-
- this.statusMessage = stack.getStackStatusReason();
-
if (stack.getOutputs() != null) {
- this.outputs = new HashMap<String,Object>();
- for (Stack.Output output : stack.getOutputs()) {
- this.outputs.put(output.getOutputKey(), output.getOutputValue());
- }
+ this.outputs = new HashMap<>();
+ stack.getOutputs().forEach(output -> outputs.put(output.getOutputKey(), output.getOutputValue()));
}
-
+
this.parameters = stack.getParameters();
}
-
+
public String getName() {
return name;
}
-
+
public void setName (String name) {
this.name = name;
}
-
+
public String getCanonicalName() {
return canonicalName;
}
-
- public void setCanonicalName (String name) {
- this.canonicalName = name;
- }
-
+
public HeatStatus getStatus() {
return status;
}
-
- public void setStatus (HeatStatus status) {
- this.status = status;
- }
-
- public String getStatusMessage() {
- return statusMessage;
- }
-
- public void setStatusMessage (String statusMessage) {
- this.statusMessage = statusMessage;
- }
-
- public Map<String,Object> getOutputs () {
+
+ public Map<String, Object> getOutputs() {
return outputs;
}
-
- public void setOutputs (Map<String,Object> outputs) {
- this.outputs = outputs;
- }
-
+
public Map<String,Object> getParameters () {
return parameters;
}
-
- public void setParameters (Map<String,Object> parameters) {
- this.parameters = parameters;
- }
-
+
}
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoCommonUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoCommonUtils.java
index 269f6b0cdf..7d6de317ad 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoCommonUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoCommonUtils.java
@@ -129,6 +129,7 @@ public class MsoCommonUtils {
Thread.sleep (retryDelay * 1000L);
} catch (InterruptedException e1) {
logger.debug ("Thread interrupted while sleeping", e1);
+ Thread.currentThread().interrupt();
}
}
else
@@ -144,6 +145,7 @@ public class MsoCommonUtils {
Thread.sleep (retryDelay * 1000L);
} catch (InterruptedException e1) {
logger.debug ("Thread interrupted while sleeping", e1);
+ Thread.currentThread().interrupt();
}
}
else
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntry.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntry.java
index 3aa77c2c7a..69da437797 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntry.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntry.java
@@ -21,212 +21,83 @@
package org.openecomp.mso.openstack.utils;
-
-
-import java.util.HashSet;
-import java.util.ArrayList;
import java.util.Set;
-import org.openecomp.mso.db.catalog.beans.HeatTemplateParam;
import org.openecomp.mso.logger.MsoLogger;
public class MsoHeatEnvironmentEntry {
- private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
-
- private Set<MsoHeatEnvironmentParameter> parameters = null;
- private Set<MsoHeatEnvironmentResource> resources = null;
- private StringBuilder rawEntry = null;
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
+ private Set<MsoHeatEnvironmentParameter> parameters;
+ private String rawEntry;
private boolean valid = true;
- private String errorString = null;
- private StringBuilder resourceRegistryEntryRaw = null;
-
- public MsoHeatEnvironmentEntry() {
- super();
- }
-
- public MsoHeatEnvironmentEntry(StringBuilder sb) {
- this();
- this.rawEntry = sb;
- this.processRawEntry();
+ private String errorString;
+ private String resourceRegistryEntryRaw;
+
+ private MsoHeatEnvironmentEntry(String rawEntry) {
+ this.rawEntry = rawEntry;
}
-
- private void processRawEntry() {
- try {
- if (this.rawEntry == null || "".equals(this.rawEntry))
- return;
- byte[] b = this.rawEntry.toString().getBytes();
- MsoYamlEditorWithEnvt yaml = new MsoYamlEditorWithEnvt(b);
- this.parameters = yaml.getParameterListFromEnvt();
- //this.resources = yaml.getResourceListFromEnvt();
- StringBuilder sb = this.getResourceRegistryRawEntry();
- if (sb == null) {
- this.resourceRegistryEntryRaw = new StringBuilder("");
- } else {
- this.resourceRegistryEntryRaw = sb;
- }
- } catch (Exception e) {
- LOGGER.debug("Exception:", e);
- this.valid = false;
- this.errorString = e.getMessage();
- //e.printStackTrace();
- }
+
+ private MsoHeatEnvironmentEntry(Set<MsoHeatEnvironmentParameter> parameters, String rawEntry, boolean valid,
+ String errorString, String resourceRegistryEntryRaw) {
+ this.parameters = parameters;
+ this.rawEntry = rawEntry;
+ this.valid = valid;
+ this.errorString = errorString;
+ this.resourceRegistryEntryRaw = resourceRegistryEntryRaw;
}
-
+
public boolean isValid() {
return this.valid;
}
public String getErrorString() {
return this.errorString;
}
-
- public Set<MsoHeatEnvironmentParameter> getParameters() {
- return this.parameters;
- }
- public Set<MsoHeatEnvironmentResource> getResources() {
- return this.resources;
- }
- public void setParameters(Set<MsoHeatEnvironmentParameter> paramSet) {
- if (paramSet == null) {
- this.parameters = null;
- } else {
- this.parameters = paramSet;
- }
- }
- public void setResources(Set<MsoHeatEnvironmentResource> resourceSet) {
- if (resourceSet == null) {
- this.resources = null;
- } else {
- this.resources = resourceSet;
- }
- }
-
- public void addParameter(MsoHeatEnvironmentParameter hep) {
- if (this.parameters == null) {
- this.parameters = new HashSet<>();
- }
- this.parameters.add(hep);
- }
- public void addResource(MsoHeatEnvironmentResource her) {
- if (this.resources == null) {
- this.resources = new HashSet<>();
- }
- this.resources.add(her);
- }
-
- public int getNumberOfParameters() {
- return this.parameters.size();
- }
- public int getNumberOfResources() {
- return this.resources.size();
- }
-
- public boolean hasResources() {
- if (this.resources != null && this.resources.size() > 0) {
- return true;
- }
- return false;
- }
- public boolean hasParameters() {
- if (this.parameters != null && this.parameters.size() > 0) {
- return true;
- }
- return false;
- }
-
+
public boolean containsParameter(String paramName) {
- boolean contains = false;
if (this.parameters == null || this.parameters.size() < 1) {
return false;
}
if (this.parameters.contains(new MsoHeatEnvironmentParameter(paramName))) {
- contains = true;
- }
- return contains;
- }
-
- public boolean containsParameter(String paramName, String paramAlias) {
- if (this.containsParameter(paramName)) {
- return true;
- }
- if (this.containsParameter(paramAlias)) {
return true;
}
return false;
}
-
- public StringBuilder toFullStringExcludeNonParams(Set<HeatTemplateParam> params) {
- // Basically give back the envt - but exclude the params that aren't in the HeatTemplate
-
- StringBuilder sb = new StringBuilder();
- ArrayList<String> paramNameList = new ArrayList<String>(params.size());
- for (HeatTemplateParam htp : params) {
- paramNameList.add(htp.getParamName());
- }
-
- if (this.hasParameters()) {
- sb.append("parameters:\n");
- for (MsoHeatEnvironmentParameter hep : this.parameters) {
- String paramName = hep.getName();
- if (paramNameList.contains(paramName)) {
- // This parameter *is* in the Heat Template - so include it:
- sb.append(" " + hep.getName() + ": " + hep.getValue() + "\n");
- // New - 1607 - if any of the params mapped badly - JUST RETURN THE ORIGINAL ENVT!
- if (hep.getValue().startsWith("_BAD")) {
- return this.rawEntry;
- }
- }
- }
- sb.append("\n");
- }
-// if (this.hasResources()) {
-// sb.append("resource_registry:\n");
-// for (MsoHeatEnvironmentResource her : this.resources) {
-// sb.append(" \"" + her.getName() + "\": " + her.getValue() + "\n");
-// }
-// }
- sb.append("\n");
- sb.append(this.resourceRegistryEntryRaw);
- return sb;
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("MsoHeatEnvironmentEntry{");
+ sb.append("parameters=").append(parameters);
+ sb.append(", resourceRegistryEntryRaw='").append(resourceRegistryEntryRaw).append('\'');
+ sb.append('}');
+ return sb.toString();
+ }
+
+ public String getRawEntry() {
+ return rawEntry;
}
- public StringBuilder toFullString() {
- StringBuilder sb = new StringBuilder();
-
- if (this.hasParameters()) {
- sb.append("parameters:\n");
- for (MsoHeatEnvironmentParameter hep : this.parameters) {
- sb.append(" " + hep.getName() + ": " + hep.getValue() + "\n");
- }
- sb.append("\n");
+ private static String getResourceRegistryRawEntry(String rawEntry) {
+ int indexOf = rawEntry.indexOf("resource_registry:");
+ if (indexOf < 0) {
+ return "";
}
-// if (this.hasResources()) {
-// sb.append("resource_registry:\n");
-// for (MsoHeatEnvironmentResource her : this.resources) {
-// sb.append(" \"" + her.getName() + "\": " + her.getValue() + "\n");
-// }
-// }
- sb.append("\n");
- sb.append(this.resourceRegistryEntryRaw);
- return sb;
+ return rawEntry.substring(indexOf);
}
- public StringBuilder getRawEntry() {
- return this.rawEntry;
- }
-
- private StringBuilder getResourceRegistryRawEntry() {
-
- if (this.rawEntry == null) {
- return null;
+ public static MsoHeatEnvironmentEntry create(String rawEntry) {
+ if (rawEntry == null || rawEntry.isEmpty()) {
+ return new MsoHeatEnvironmentEntry(rawEntry);
}
-
- StringBuilder sb = new StringBuilder();
- int indexOf = this.rawEntry.indexOf("resource_registry:");
- if (indexOf < 0) { // no resource_registry:
- return null;
+ try {
+ Set<MsoHeatEnvironmentParameter> parameters = new MsoYamlEditorWithEnvt(rawEntry.getBytes())
+ .getParameterListFromEnvt();
+ return new MsoHeatEnvironmentEntry(parameters, rawEntry, true, null,
+ getResourceRegistryRawEntry(rawEntry));
+ } catch (Exception e) {
+ LOGGER.debug(String.format("An exception occurred during processing the following raw entry: %s", rawEntry),
+ e);
+ return new MsoHeatEnvironmentEntry(null, rawEntry, false, e.getMessage(), null);
}
- sb.append(this.rawEntry.substring(indexOf));
- return sb;
}
-
+
}
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java
index 08ea84d85d..20535e93c8 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java
@@ -258,7 +258,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
* @param cloudSiteId The cloud (may be a region) in which to create the stack.
* @param tenantId The Openstack ID of the tenant in which to create the Stack
* @param stackName The name of the stack to create
- * @param stackTemplate The Heat template
+ * @param heatTemplate The Heat template
* @param stackInputs A map of key/value inputs
* @param pollForCompletion Indicator that polling should be handled in Java vs. in the client
* @param environment An optional yaml-format string to specify environmental parameters
@@ -309,10 +309,8 @@ public class MsoHeatUtils extends MsoCommonUtils {
}
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
// This could throw MsoTenantNotFound or MsoOpenstackException (both propagated)
@@ -632,10 +630,8 @@ public class MsoHeatUtils extends MsoCommonUtils {
LOGGER.debug ("Query HEAT stack: " + stackName + " in tenant " + tenantId);
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
@@ -648,7 +644,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
} catch (MsoTenantNotFound e) {
// Tenant doesn't exist, so stack doesn't either
LOGGER.debug ("Tenant with id " + tenantId + "not found.", e);
- return new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ return new StackInfo (stackName, HeatStatus.NOTFOUND);
} catch (MsoException me) {
// Got an Openstack error. Propagate it
LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "OpenStack", "Openstack Exception on Token request: " + me, "Openstack", "", MsoLogger.ErrorCode.AvailabilityError, "Connection Exception");
@@ -662,7 +658,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
if (heatStack == null) {
// Stack does not exist. Return a StackInfo with status NOTFOUND
- StackInfo stackInfo = new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ StackInfo stackInfo = new StackInfo (stackName, HeatStatus.NOTFOUND);
return stackInfo;
}
@@ -696,10 +692,8 @@ public class MsoHeatUtils extends MsoCommonUtils {
String stackName,
boolean pollForCompletion) throws MsoException {
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
LOGGER.debug("Found: " + cloudSite.toString());
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
@@ -712,7 +706,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
} catch (MsoTenantNotFound e) {
// Tenant doesn't exist, so stack doesn't either
LOGGER.debug ("Tenant with id " + tenantId + "not found.", e);
- return new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ return new StackInfo (stackName, HeatStatus.NOTFOUND);
} catch (MsoException me) {
// Got an Openstack error. Propagate it
LOGGER.error (MessageEnum.RA_CONNECTION_EXCEPTION, "Openstack", "Openstack Exception on Token request: " + me, "Openstack", "", MsoLogger.ErrorCode.AvailabilityError, "Connection Exception");
@@ -724,7 +718,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
Stack heatStack = queryHeatStack (heatClient, stackName);
if (heatStack == null || "DELETE_COMPLETE".equals (heatStack.getStackStatus ())) {
// Not found. Return a StackInfo with status NOTFOUND
- return new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ return new StackInfo (stackName, HeatStatus.NOTFOUND);
}
// Delete the stack.
@@ -747,7 +741,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
} catch (OpenStackResponseException e) {
if (e.getStatus () == 404) {
// Not found. We are OK with this. Return a StackInfo with status NOTFOUND
- return new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ return new StackInfo (stackName, HeatStatus.NOTFOUND);
} else {
// Convert the OpenStackResponseException to an MsoOpenstackException
throw heatExceptionToMsoException (e, DELETE_STACK);
@@ -813,7 +807,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
}
// The stack is gone when this point is reached
- return new StackInfo (stackName, HeatStatus.NOTFOUND, null, null);
+ return new StackInfo (stackName, HeatStatus.NOTFOUND);
}
// Return the current status (if not polling, the delete may still be in progress)
@@ -838,11 +832,8 @@ public class MsoHeatUtils extends MsoCommonUtils {
*/
public List <StackInfo> queryAllStacks (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
-
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
Heat heatClient = getHeatClient (cloudSite, tenantId);
@@ -895,7 +886,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
public Map <String, Object> validateStackParams (Map <String, Object> inputParams,
HeatTemplate heatTemplate) throws IllegalArgumentException {
// Check that required parameters have been supplied for this template type
- String missingParams = null;
+ StringBuilder missingParams = null;
List <String> paramList = new ArrayList <> ();
// TODO: Enhance DB to support defaults for Heat Template parameters
@@ -903,9 +894,9 @@ public class MsoHeatUtils extends MsoCommonUtils {
for (HeatTemplateParam parm : heatTemplate.getParameters ()) {
if (parm.isRequired () && !inputParams.containsKey (parm.getParamName ())) {
if (missingParams == null) {
- missingParams = parm.getParamName ();
+ missingParams = new StringBuilder(parm.getParamName());
} else {
- missingParams += "," + parm.getParamName ();
+ missingParams.append("," + parm.getParamName());
}
}
paramList.add (parm.getParamName ());
@@ -950,8 +941,6 @@ public class MsoHeatUtils extends MsoCommonUtils {
* tenantID + cloudId so that it can be reused without reauthenticating with
* Openstack every time.
*
- * @param tenantName
- * @param cloudId
* @return an authenticated Heat object
*/
public Heat getHeatClient (CloudSite cloudSite, String tenantId) throws MsoException {
@@ -1038,8 +1027,6 @@ public class MsoHeatUtils extends MsoCommonUtils {
* the same Tenant Name is repeatedly used for creation/deletion.
* <p>
*
- * @param tenantName
- * @param cloudId
*/
public static void expireHeatClient (String tenantId, String cloudId) {
String cacheKey = cloudId + ":" + tenantId;
@@ -1561,7 +1548,7 @@ public class MsoHeatUtils extends MsoCommonUtils {
}
} else if ("boolean".equalsIgnoreCase(type)) {
String booleanString = inputs.get(key);
- Boolean aBool = new Boolean(booleanString);
+ Boolean aBool = Boolean.valueOf(booleanString);
if (alias)
newInputs.put(realName, aBool);
else
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtilsWithUpdate.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtilsWithUpdate.java
index dba52d4306..2465b30eca 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtilsWithUpdate.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtilsWithUpdate.java
@@ -21,7 +21,6 @@
package org.openecomp.mso.openstack.utils;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -160,7 +159,7 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
* @param tenantId The Openstack ID of the tenant in which to create the Stack
* @param cloudSiteId The cloud identifier (may be a region) in which to create the tenant.
* @param stackName The name of the stack to update
- * @param stackTemplate The Heat template
+ * @param heatTemplate The Heat template
* @param stackInputs A map of key/value inputs
* @param pollForCompletion Indicator that polling should be handled in Java vs. in the client
* @param environment An optional yaml-format string to specify environmental parameters
@@ -194,10 +193,8 @@ public class MsoHeatUtilsWithUpdate extends MsoHeatUtils {
}
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
// Get a Heat client. They are cached between calls (keyed by tenantId:cloudId)
// This could throw MsoTenantNotFound or MsoOpenstackException (both propagated)
Heat heatClient = getHeatClient (cloudSite, tenantId);
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoKeystoneUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoKeystoneUtils.java
index ee89840c50..be36d67e0b 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoKeystoneUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoKeystoneUtils.java
@@ -26,6 +26,7 @@ import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import org.openecomp.mso.cloud.CloudIdentity;
import org.openecomp.mso.cloud.CloudSite;
import org.openecomp.mso.logger.MsoAlarmLogger;
@@ -58,7 +59,7 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
// token will be used until it expires.
//
// The cache key is "cloudId"
- private static Map <String, KeystoneCacheEntry> adminClientCache = new HashMap <String, KeystoneCacheEntry> ();
+ private static Map <String, KeystoneCacheEntry> adminClientCache = new HashMap<>();
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
String msoPropID;
@@ -92,13 +93,12 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
Map <String, String> metadata,
boolean backout) throws MsoException {
// Obtain the cloud site information where we will create the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
+ Optional<CloudSite> cloudSiteOpt = cloudConfig.getCloudSite(cloudSiteId);
+ if (!cloudSiteOpt.isPresent()) {
LOGGER.error(MessageEnum.RA_CREATE_TENANT_ERR, "MSOCloudSite not found", "", "", MsoLogger.ErrorCode.DataError, "MSOCloudSite not found");
throw new MsoCloudSiteNotFound (cloudSiteId);
}
- Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
-
+ Keystone keystoneAdminClient = getKeystoneAdminClient(cloudSiteOpt.get());
Tenant tenant = null;
try {
// Check if the tenant already exists
@@ -129,7 +129,7 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
// Add MSO User to the tenant as a member and
// apply tenant metadata if supported by the cloud site
try {
- CloudIdentity cloudIdentity = cloudSite.getIdentityService ();
+ CloudIdentity cloudIdentity = cloudSiteOpt.get().getIdentityService ();
User msoUser = findUserByNameOrId (keystoneAdminClient, cloudIdentity.getMsoId ());
Role memberRole = findRoleByNameOrId (keystoneAdminClient, cloudIdentity.getMemberRole ());
@@ -197,10 +197,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
*/
public MsoTenant queryTenant (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
@@ -247,10 +245,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
*/
public MsoTenant queryTenantByName (String tenantName, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
try {
@@ -294,10 +290,8 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
*/
public boolean deleteTenant (String tenantId, String cloudSiteId) throws MsoException {
// Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
try {
@@ -326,59 +320,6 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
return true;
}
- /**
- * Delete the specified Tenant (by Name) in the given cloud. This method returns true or
- * false, depending on whether the tenant existed and was successfully deleted, or if
- * the tenant already did not exist. Both cases are treated as success (no Exceptions).
- * <p>
- * Note for the AIC Cloud (DCP/LCP): all admin requests go to the centralized identity
- * service in DCP. So deleting a tenant from one cloudSiteId will remove it from all
- * sites managed by that identity service.
- * <p>
- *
- * @param tenantName The name of the tenant to delete
- * @param cloudSiteId The cloud identifier from which to delete the tenant.
- * @return true if the tenant was deleted, false if the tenant did not exist.
- * @throws MsoOpenstackException If the Openstack API call returns an exception.
- */
- public boolean deleteTenantByName (String tenantName, String cloudSiteId) throws MsoException {
- // Obtain the cloud site information where we will query the tenant
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound (cloudSiteId);
- }
- Keystone keystoneAdminClient = getKeystoneAdminClient (cloudSite);
-
- try {
- // Need the Tenant ID to delete (can't directly delete by name)
- Tenant tenant = findTenantByName (keystoneAdminClient, tenantName);
- if (tenant == null) {
- // OK if tenant already doesn't exist.
- LOGGER.error(MessageEnum.RA_TENANT_NOT_FOUND, tenantName, cloudSiteId, "", "", MsoLogger.ErrorCode.DataError, "Tenant not found");
- return false;
- }
-
- // Execute the Delete. It has no return value.
- OpenStackRequest <Void> request = keystoneAdminClient.tenants ().delete (tenant.getId ());
- executeAndRecordOpenstackRequest (request, msoProps);
-
- LOGGER.debug ("Deleted Tenant " + tenant.getId () + " (" + tenant.getName () + ")");
-
- // Clear any cached clients. Not really needed, ID will not be reused.
- MsoHeatUtils.expireHeatClient (tenant.getId (), cloudSiteId);
- MsoNeutronUtils.expireNeutronClient (tenant.getId (), cloudSiteId);
- } catch (OpenStackBaseException e) {
- // Note: It doesn't seem to matter if tenant doesn't exist, no exception is thrown.
- // Convert Keystone OpenStackResponseException to MsoOpenstackException
- throw keystoneErrorToMsoException (e, "DeleteTenant");
- } catch (RuntimeException e) {
- // Catch-all
- throw runtimeExceptionToMsoException (e, "DeleteTenant");
- }
-
- return true;
- }
-
// -------------------------------------------------------------------
// PRIVATE UTILITY FUNCTIONS FOR USE WITHIN THIS CLASS
@@ -463,29 +404,6 @@ public class MsoKeystoneUtils extends MsoTenantUtils {
}
/*
- * Find a tenant (or query its existance) by its Name or Id. Check first against the
- * ID. If that fails, then try by name.
- *
- * @param adminClient an authenticated Keystone object
- *
- * @param tenantName the tenant name or ID to query
- *
- * @return a Tenant object or null if not found
- */
- public Tenant findTenantByNameOrId (Keystone adminClient, String tenantNameOrId) {
- if (tenantNameOrId == null) {
- return null;
- }
-
- Tenant tenant = findTenantById (adminClient, tenantNameOrId);
- if (tenant == null) {
- tenant = findTenantByName (adminClient, tenantNameOrId);
- }
-
- return tenant;
- }
-
- /*
* Find a tenant (or query its existance) by its Id.
*
* @param adminClient an authenticated Keystone object
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoNeutronUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoNeutronUtils.java
index ad3eae4b01..50a594663e 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoNeutronUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoNeutronUtils.java
@@ -7,9 +7,9 @@
* 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.
@@ -43,7 +43,6 @@ import org.openecomp.mso.openstack.exceptions.MsoIOException;
import org.openecomp.mso.openstack.exceptions.MsoNetworkAlreadyExists;
import org.openecomp.mso.openstack.exceptions.MsoNetworkNotFound;
import org.openecomp.mso.openstack.exceptions.MsoOpenstackException;
-import org.openecomp.mso.openstack.exceptions.MsoTenantNotFound;
import com.woorea.openstack.base.client.OpenStackBaseException;
import com.woorea.openstack.base.client.OpenStackConnectException;
import com.woorea.openstack.base.client.OpenStackRequest;
@@ -71,7 +70,7 @@ public class MsoNeutronUtils extends MsoCommonUtils
private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
private String msoPropID;
-
+
public enum NetworkType {
BASIC, PROVIDER, MULTI_PROVIDER
};
@@ -99,13 +98,11 @@ public class MsoNeutronUtils extends MsoCommonUtils
* @throws MsoCloudSiteNotFound Thrown if the cloudSite is invalid or unknown
*/
public NetworkInfo createNetwork (String cloudSiteId, String tenantId, NetworkType type, String networkName, String provider, List<Integer> vlans)
- throws MsoException, MsoNetworkAlreadyExists, MsoCloudSiteNotFound
+ throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound(cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
@@ -177,19 +174,15 @@ public class MsoNeutronUtils extends MsoCommonUtils
* @throws MsoOpenstackException Thrown if the Openstack API call returns an exception
* @throws MsoCloudSiteNotFound
*/
- public NetworkInfo queryNetwork (String networkNameOrId, String tenantId, String cloudSiteId)
- throws MsoException, MsoCloudSiteNotFound
+ public NetworkInfo queryNetwork(String networkNameOrId, String tenantId, String cloudSiteId) throws MsoException
{
LOGGER.debug("In queryNetwork");
// Obtain the cloud site information
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound(cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
-
// Check if the network exists and return its info
try {
Network network = findNetworkByNameOrId (neutronClient, networkNameOrId);
@@ -215,24 +208,20 @@ public class MsoNeutronUtils extends MsoCommonUtils
* Delete the specified Network (by ID) in the given cloud.
* If the network does not exist, success is returned.
* <p>
- * @param networkNameOrId The name or Openstack ID of the network to delete
- * @param cloudId The cloud identifier (may be a region) from which to delete the network.
+ * @param networkId Openstack ID of the network to delete
+ * @param tenantId The Openstack tenant.
+ * @param cloudSiteId The cloud identifier (may be a region) from which to delete the network.
* @return true if the network was deleted, false if the network did not exist
* @throws MsoOpenstackException If the Openstack API call returns an exception, this local
* exception will be thrown.
* @throws MsoCloudSiteNotFound
*/
- public boolean deleteNetwork (String networkId, String tenantId, String cloudSiteId)
- throws MsoException, MsoCloudSiteNotFound
+ public boolean deleteNetwork(String networkId, String tenantId, String cloudSiteId) throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound(cloudSiteId);
- }
-
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
-
try {
// Check that the network exists.
Network network = findNetworkById (neutronClient, networkId);
@@ -273,7 +262,7 @@ public class MsoNeutronUtils extends MsoCommonUtils
* to manage the virtual networking).
*
* @param cloudSiteId The cloud site ID (may be a region) in which to update the network.
- * @param the Openstack ID of the tenant in which to update the network
+ * @param tenantId Openstack ID of the tenant in which to update the network
* @param networkId The unique Openstack ID of the network to be updated
* @param type The network type (Basic, Provider, Multi-Provider)
* @param provider The provider network name. This should not change.
@@ -284,15 +273,12 @@ public class MsoNeutronUtils extends MsoCommonUtils
* @throws MsoCloudSiteNotFound
*/
public NetworkInfo updateNetwork (String cloudSiteId, String tenantId, String networkId, NetworkType type, String provider, List<Integer> vlans)
- throws MsoException, MsoNetworkNotFound, MsoCloudSiteNotFound
+ throws MsoException
{
// Obtain the cloud site information where we will create the stack
- CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId);
- if (cloudSite == null) {
- throw new MsoCloudSiteNotFound(cloudSiteId);
- }
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
Quantum neutronClient = getNeutronClient (cloudSite, tenantId);
-
// Check that the network exists
Network network = findNetworkById (neutronClient, networkId);
@@ -359,8 +345,7 @@ public class MsoNeutronUtils extends MsoCommonUtils
* @param tenantId - Openstack tenant ID
* @return an authenticated Quantum object
*/
- private Quantum getNeutronClient (CloudSite cloudSite, String tenantId)
- throws MsoTenantNotFound, MsoException
+ private Quantum getNeutronClient(CloudSite cloudSite, String tenantId) throws MsoException
{
String cloudId = cloudSite.getId();
@@ -440,9 +425,6 @@ public class MsoNeutronUtils extends MsoCommonUtils
* the KeystoneClient in case where a tenant is deleted. In that case,
* all cached credentials must be purged so that fresh authentication is
* done on subsequent calls.
- * <p>
- * @param tenantName
- * @param cloudId
*/
public static void expireNeutronClient (String tenantId, String cloudId) {
String cacheKey = cloudId + ":" + tenantId;
@@ -602,6 +584,6 @@ public class MsoNeutronUtils extends MsoCommonUtils
* This may be useful if cached credentials get out of sync.
*/
public static void neutronCacheReset () {
- neutronClientCache = new HashMap<String,NeutronCacheEntry>();
+ neutronClientCache = new HashMap<>();
}
}
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtils.java
index 4a19828897..2cd4597c18 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtils.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtils.java
@@ -21,27 +21,18 @@
package org.openecomp.mso.openstack.utils;
-import java.io.Serializable;
-import java.util.Calendar;
-import java.util.HashMap;
import java.util.Map;
-
import org.openecomp.mso.cloud.CloudConfig;
import org.openecomp.mso.cloud.CloudConfigFactory;
import org.openecomp.mso.cloud.CloudIdentity;
-import org.openecomp.mso.logger.MsoAlarmLogger;
-import org.openecomp.mso.logger.MsoLogger;
import org.openecomp.mso.logger.MessageEnum;
+import org.openecomp.mso.logger.MsoLogger;
import org.openecomp.mso.openstack.beans.MsoTenant;
-import org.openecomp.mso.openstack.exceptions.MsoAdapterException;
import org.openecomp.mso.openstack.exceptions.MsoCloudSiteNotFound;
import org.openecomp.mso.openstack.exceptions.MsoException;
-import org.openecomp.mso.openstack.exceptions.MsoOpenstackException;
-import org.openecomp.mso.openstack.exceptions.MsoTenantAlreadyExists;
import org.openecomp.mso.properties.MsoJavaProperties;
import org.openecomp.mso.properties.MsoPropertiesException;
import org.openecomp.mso.properties.MsoPropertiesFactory;
-import com.woorea.openstack.keystone.Keystone;
public abstract class MsoTenantUtils extends MsoCommonUtils {
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
index a659fb629e..e36d46841d 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoTenantUtilsFactory.java
@@ -26,6 +26,7 @@ import org.openecomp.mso.cloud.CloudIdentity;
import org.openecomp.mso.cloud.CloudSite;
import java.lang.reflect.InvocationTargetException;
+import org.openecomp.mso.openstack.exceptions.MsoCloudSiteNotFound;
public class MsoTenantUtilsFactory {
@@ -39,12 +40,11 @@ public class MsoTenantUtilsFactory {
}
//based on Cloud IdentityServerType returns ORM or KEYSTONE Utils
- public MsoTenantUtils getTenantUtils(String cloudSiteId) {
-
+ public MsoTenantUtils getTenantUtils(String cloudSiteId) throws MsoCloudSiteNotFound {
// Obtain the cloud site information
cloudConfig = cloudConfigFactory.getCloudConfig();
- CloudSite cloudSite = cloudConfig.getCloudSite (cloudSiteId);
-
+ CloudSite cloudSite = cloudConfig.getCloudSite(cloudSiteId).orElseThrow(
+ () -> new MsoCloudSiteNotFound(cloudSiteId));
return getTenantUtilsByServerType(cloudSite.getIdentityService().getIdentityServerType().toString());
}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
index 6bd78153b6..250211845f 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java
@@ -22,18 +22,15 @@ package org.openecomp.mso.adapter_utils.tests;
import static org.junit.Assert.assertTrue;
-import com.woorea.openstack.heat.model.Stack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.openecomp.mso.entity.MsoRequest;
-import org.openecomp.mso.openstack.beans.HeatStatus;
import org.openecomp.mso.openstack.beans.MsoTenant;
import org.openecomp.mso.openstack.beans.NetworkRollback;
import org.openecomp.mso.openstack.beans.Pool;
-import org.openecomp.mso.openstack.beans.StackInfo;
import org.openecomp.mso.openstack.beans.Subnet;
import org.openecomp.mso.openstack.beans.VnfRollback;
@@ -99,26 +96,6 @@ public class AdapterBeansTest {
}
@Test
- public final void stackInfoTest() {
- StackInfo stackInfo = new StackInfo();
- new StackInfo(new Stack());
- new StackInfo("name", HeatStatus.CREATED, "statusmessage", new HashMap<>());
- new StackInfo("name", HeatStatus.CREATED);
- stackInfo.setCanonicalName("Canonicalname");
- stackInfo.getCanonicalName();
- stackInfo.setName("name");
- stackInfo.getName();
- stackInfo.setOutputs(new HashMap<>());
- stackInfo.getOutputs();
- stackInfo.setParameters(new HashMap<>());
- stackInfo.getParameters();
- stackInfo.setStatus(HeatStatus.CREATED);
- stackInfo.getStatus();
- stackInfo.setStatusMessage("statusMessage");
- stackInfo.getStatusMessage();
- }
-
- @Test
public final void subnetTest() {
Subnet subnet = new Subnet();
subnet.setAllocationPools(new ArrayList<>());
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java
index 714bb66e18..62043e83b8 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/MsoHeatUtilsWithUpdateTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -68,8 +69,8 @@ public class MsoHeatUtilsWithUpdateTest {
cloudIdentity.setKeystoneUrl ("toto");
cloudIdentity.setMsoPass (CloudIdentity.encryptPassword ("mockId"));
cloudSite.setIdentityService (cloudIdentity);
- when (cloudConfig.getCloudSite ("cloud")).thenReturn (cloudSite);
- when (cloudConfig.getCloudSite ("none")).thenReturn (null);
+ when(cloudConfig.getCloudSite("cloud")).thenReturn (Optional.of(cloudSite));
+ when(cloudConfig.getCloudSite("none")).thenReturn (Optional.empty());
}
@Test
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
index a73e4359fc..1c2501e8e4 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.util.Optional;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -112,29 +113,29 @@ public class CloudConfigTest {
@Test
public void cloudSiteIsGotById_when_IdFound() throws MsoCloudIdentityNotFound {
CloudConfig con = createTestObject(cloudConfigJsonFilePath);
- CloudSite cloudSite = con.getCloudSite("MT");
- assertNotNull(cloudSite);
- assertEquals("regionOne", cloudSite.getRegionId());
- assertEquals("MT_KEYSTONE", cloudSite.getIdentityServiceId());
+ Optional<CloudSite> cloudSite = con.getCloudSite("MT");
+ assertTrue(cloudSite.isPresent());
+ assertEquals("regionOne", cloudSite.get().getRegionId());
+ assertEquals("MT_KEYSTONE", cloudSite.get().getIdentityServiceId());
}
@Test
public void cloudSiteIsGotByClli_when_IdNotFound() throws MsoCloudIdentityNotFound {
CloudConfig con = createTestObject(cloudConfigJsonFilePath);
- CloudSite cloudSite = con.getCloudSite("CS_clli");
- assertNotNull(cloudSite);
- assertEquals("clliRegion", cloudSite.getRegionId());
- assertEquals("CS_clli", cloudSite.getClli());
- assertEquals("CS_service", cloudSite.getIdentityServiceId());
+ Optional<CloudSite> cloudSite = con.getCloudSite("CS_clli");
+ assertTrue(cloudSite.isPresent());
+ assertEquals("clliRegion", cloudSite.get().getRegionId());
+ assertEquals("CS_clli", cloudSite.get().getClli());
+ assertEquals("CS_service", cloudSite.get().getIdentityServiceId());
}
@Test
public void cloudSiteIsGotByDefault_when_IdAndClliNotFound() throws MsoCloudIdentityNotFound {
CloudConfig con = createTestObject(cloudDefaultConfigJsonFilePath);
- CloudSite cloudSite = con.getCloudSite("not_existing_id");
- assertNotNull(cloudSite);
- assertEquals("not_existing_id", cloudSite.getId());
- assertEquals("not_existing_id", cloudSite.getRegionId());
+ Optional<CloudSite> cloudSite = con.getCloudSite("not_existing_id");
+ assertTrue(cloudSite.isPresent());
+ assertEquals("not_existing_id", cloudSite.get().getId());
+ assertEquals("not_existing_id", cloudSite.get().getRegionId());
}
@Test
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactoryTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactoryTest.java
new file mode 100644
index 0000000000..2cfce276d8
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodFactoryTest.java
@@ -0,0 +1,103 @@
+/*
+ * ============LICENSE_START==========================================
+ * ===================================================================
+ * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * 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============================================
+ *
+ * ECOMP and OpenECOMP are trademarks
+ * and service marks of AT&T Intellectual Property.
+ *
+ */
+
+package org.openecomp.mso.cloud.authentication;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import com.woorea.openstack.keystone.model.Authentication;
+import org.junit.Test;
+import org.openecomp.mso.cloud.CloudIdentity;
+import org.openecomp.mso.cloud.CloudIdentity.IdentityAuthenticationType;
+import org.openecomp.mso.cloud.authentication.wrappers.RackspaceAPIKeyWrapper;
+
+public class AuthenticationMethodFactoryTest {
+
+ private static final Class WRAPPER_CLASS = RackspaceAPIKeyWrapper.class;
+ private static final String AUTHENTICATION_TYPE = "authenticationTest";
+
+ @Test
+ public void register_NoExceptionThrown() throws IllegalAccessException, InstantiationException {
+ AuthenticationMethodFactory.register(AUTHENTICATION_TYPE, WRAPPER_CLASS);
+ }
+
+ @Test
+ public void register_throwExceptionWhenAuthTypeIsNull() throws InstantiationException, IllegalAccessException {
+ try {
+ AuthenticationMethodFactory.register(null, WRAPPER_CLASS);
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage()).isNotEmpty().contains("Authentication Type to register cannot be null "
+ + "or an empty name string");
+ }
+ }
+
+ @Test
+ public void register_throwExceptionWhenAuthTypeIsEmpty() throws InstantiationException, IllegalAccessException {
+ try {
+ AuthenticationMethodFactory.register("", WRAPPER_CLASS);
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage()).isNotEmpty().contains("Authentication Type to register cannot be null "
+ + "or an empty name string");
+ }
+ }
+
+ @Test
+ public void register_throwExceptionWhenWrapperIsNull() throws IllegalAccessException, InstantiationException {
+ try {
+ AuthenticationMethodFactory.register(AUTHENTICATION_TYPE, null);
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage()).isNotEmpty()
+ .contains("Wrapper Class to register for Authentication cannot be null");
+ }
+ }
+
+ @Test
+ public void getAuthentication_NoExceptionThrown() {
+ CloudIdentity cloudIdentity = new CloudIdentity();
+ cloudIdentity.setIdentityAuthenticationType(IdentityAuthenticationType.RACKSPACE_APIKEY);
+ cloudIdentity.setMsoId("msoIdTest");
+ cloudIdentity.setMsoPass("123");
+ Authentication result = AuthenticationMethodFactory.getAuthenticationFor(cloudIdentity);
+ assertThat(result).isNotNull();
+ }
+
+ @Test
+ public void getAuthentication_ThrowExWhenCloudSiteIsNull() {
+ try {
+ AuthenticationMethodFactory.getAuthenticationFor(null);
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage()).isNotEmpty().contains("Cloud identity cannot be null");
+ }
+ }
+
+ @Test
+ public void getAuthentication_ThrowExWhenIdentityAuthenticationTypeIsNotSet() {
+ try {
+ AuthenticationMethodFactory.getAuthenticationFor(new CloudIdentity());
+ } catch (IllegalArgumentException e) {
+ assertThat(e.getMessage()).isNotEmpty()
+ .contains("Cloud identity authentication type cannot be null or empty");
+ }
+ }
+
+}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodTest.java
index ccfede7297..b6c1c7373f 100644
--- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodTest.java
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/authentication/AuthenticationMethodTest.java
@@ -25,16 +25,11 @@ package org.openecomp.mso.cloud.authentication;
import static org.junit.Assert.assertTrue;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
+import com.woorea.openstack.keystone.model.Authentication;
+import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
import org.junit.Test;
import org.openecomp.mso.cloud.CloudIdentity;
import org.openecomp.mso.cloud.authentication.models.RackspaceAuthentication;
-import org.openecomp.mso.openstack.exceptions.MsoException;
-
-import com.woorea.openstack.keystone.model.Authentication;
-import com.woorea.openstack.keystone.model.authentication.UsernamePassword;
/**
* A few JUnit tests to evaluate the new factory that manages authentication
@@ -50,52 +45,15 @@ public class AuthenticationMethodTest {
public AuthenticationMethodTest() {
// TODO Auto-generated constructor stub
}
-
- @Test
- public void testCustomRackspaceAuth() {
- CloudIdentity ci = new CloudIdentity();
- ci.setIdentityAuthenticationType(CloudIdentity.IdentityAuthenticationType.RACKSPACE_APIKEY);
- ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
- ci.setMsoId("test");
-
- try {
- Authentication auth = AuthenticationMethodFactory.getAuthenticationFor(ci);
- assertTrue(RackspaceAuthentication.class.equals(auth.getClass()));
- } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | IOException
- | URISyntaxException e) {
- e.printStackTrace();
- }
- }
-
- @Test
- public void testCoreUsernamePasswordAuth() {
- CloudIdentity ci = new CloudIdentity();
- ci.setIdentityAuthenticationType(CloudIdentity.IdentityAuthenticationType.USERNAME_PASSWORD);
- ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
- ci.setMsoId("someuser");
-
- try {
- Authentication auth = AuthenticationMethodFactory.getAuthenticationFor(ci);
- assertTrue(UsernamePassword.class.equals(auth.getClass()));
- } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | IOException
- | URISyntaxException e) {
- e.printStackTrace();
- }
- }
-
+
@Test
public void testCustomRackspaceAuthFromCloudIdentity() {
CloudIdentity ci = new CloudIdentity();
ci.setIdentityAuthenticationType(CloudIdentity.IdentityAuthenticationType.RACKSPACE_APIKEY);
ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
ci.setMsoId("test");
-
- try {
- Authentication auth = ci.getAuthentication();
- assertTrue(RackspaceAuthentication.class.equals(auth.getClass()));
- } catch (MsoException e) {
- e.printStackTrace();
- }
+ Authentication auth = ci.getAuthentication();
+ assertTrue(RackspaceAuthentication.class.equals(auth.getClass()));
}
@Test
@@ -104,12 +62,7 @@ public class AuthenticationMethodTest {
ci.setIdentityAuthenticationType(CloudIdentity.IdentityAuthenticationType.USERNAME_PASSWORD);
ci.setMsoPass("FD205490A48D48475607C36B9AD902BF");
ci.setMsoId("someuser");
-
- try {
- Authentication auth = ci.getAuthentication();
- assertTrue(UsernamePassword.class.equals(auth.getClass()));
- } catch (MsoException e) {
- e.printStackTrace();
- }
+ Authentication auth = ci.getAuthentication();
+ assertTrue(UsernamePassword.class.equals(auth.getClass()));
}
}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/StackInfoTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/StackInfoTest.java
new file mode 100644
index 0000000000..9c7911ef89
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/StackInfoTest.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.mso.openstack.beans;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import com.woorea.openstack.heat.model.Stack;
+import java.io.IOException;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.junit.Test;
+
+public class StackInfoTest {
+
+ private static final String STACK_NAME = "stackNameTest";
+ private static final String STACK_STATUS = "CREATE_COMPLETE";
+ private static final String STACK_OUTPUT_KEY = "outputKeyTest";
+ private static final String STACK_OUTPUT_VALUE = "outputValueTest";
+ private static final String STACK_PARAM_KEY = "paramKeyTest";
+ private static final String STACK_PARAM_VALUE = "paramValueTest";
+
+ @Test
+ public void setStatusNotFoundWhenStackIsNull() {
+ StackInfo stackInfo = new StackInfo(null);
+ assertThat(stackInfo.getStatus()).isEqualTo(HeatStatus.NOTFOUND);
+ assertThat(stackInfo.getOutputs()).isEmpty();
+ assertThat(stackInfo.getParameters()).isEmpty();
+ }
+
+ @Test
+ public void createObjectWhenStackStatusIsNull() {
+ StackInfo stackInfo = new StackInfo(createStackWithStatus(null));
+ assertThat(stackInfo.getName()).isEqualTo(STACK_NAME);
+ assertThat(stackInfo.getOutputs()).isEmpty();
+ assertThat(stackInfo.getStatus()).isEqualTo(HeatStatus.INIT);
+ assertThat(stackInfo.getParameters()).hasSize(1).containsEntry(STACK_PARAM_KEY, STACK_PARAM_VALUE);
+ }
+
+ @Test
+ public void createObjectWhenStackStatusIsFound() {
+ StackInfo stackInfo = new StackInfo(createStackWithStatus(STACK_STATUS));
+ assertThat(stackInfo.getName()).isEqualTo(STACK_NAME);
+ assertThat(stackInfo.getOutputs()).isEmpty();
+ assertThat(stackInfo.getStatus()).isEqualTo(HeatStatus.CREATED);
+ assertThat(stackInfo.getParameters()).hasSize(1).containsEntry(STACK_PARAM_KEY, STACK_PARAM_VALUE);
+ }
+
+ @Test
+ public void createObjectWhenStackStatusIsUnknown() {
+ StackInfo stackInfo = new StackInfo(createStackWithStatus("unknownStatus"));
+ assertThat(stackInfo.getName()).isEqualTo(STACK_NAME);
+ assertThat(stackInfo.getOutputs()).isEmpty();
+ assertThat(stackInfo.getStatus()).isEqualTo(HeatStatus.UNKNOWN);
+ assertThat(stackInfo.getParameters()).hasSize(1).containsEntry(STACK_PARAM_KEY, STACK_PARAM_VALUE);
+ }
+
+ @Test
+ public void createStackWhenOutputsListIsNotNull() throws IOException {
+ StackInfo stackInfo = new StackInfo(createStackWithOutputs());
+ assertThat(stackInfo.getOutputs()).isNotEmpty().hasSize(1);
+ assertThat(stackInfo.getOutputs()).hasSize(1).containsEntry(STACK_OUTPUT_KEY, STACK_OUTPUT_VALUE);
+ }
+
+ private Stack createStackWithStatus(String stackStatus) {
+ Stack stack = new Stack();
+ stack.setStackName(STACK_NAME);
+ stack.setStackStatus(stackStatus);
+ stack.getParameters().put(STACK_PARAM_KEY, STACK_PARAM_VALUE);
+ return stack;
+ }
+
+ private Stack createStackWithOutputs() throws IOException {
+ String json = "{\"outputs\":[{\"output_key\" : \"" + STACK_OUTPUT_KEY + "\", \"output_value\" : \""
+ + STACK_OUTPUT_VALUE + "\" }]}";
+ JsonNode node = new ObjectMapper().readTree(json);
+ Stack stack = new ObjectMapper().readValue(node, Stack.class);
+ return stack;
+ }
+
+}
diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntryTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntryTest.java
new file mode 100644
index 0000000000..60faa760ba
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/utils/MsoHeatEnvironmentEntryTest.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.mso.openstack.utils;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Test;
+
+public class MsoHeatEnvironmentEntryTest {
+
+ private static final String PARAMETER_NAME = "keyTest";
+ private static final String VALUE_NAME = "valueTest";
+ private static final String NOT_EXISTING_PARAM = "notExistingParam";
+ private static final String RAW_ENTRY_WITH_NO_RESOURCE_REGISTRY = "parameters: {"
+ + PARAMETER_NAME + ": " + VALUE_NAME + "}";
+ private static final String RAW_ENTRY_WITH_RESOURCE_REGISTRY = "resource_registry: resourceTest";
+ private static final String RAW_ENTRY_INVALID = "invalidRawEntry";
+ private static final String WHITESPACE = " ";
+
+ @Test
+ public void createObjectWithNullStringBuilder() {
+ MsoHeatEnvironmentEntry testedObject = MsoHeatEnvironmentEntry.create(null);
+ assertThat(testedObject.getRawEntry()).isNull();
+ assertThat(testedObject.containsParameter(PARAMETER_NAME)).isFalse();
+ assertThat(testedObject.isValid()).isTrue();
+ }
+
+ @Test
+ public void toFullString_ResourceRegistryNotPresentInRawEntry() {
+ MsoHeatEnvironmentEntry testedObject = MsoHeatEnvironmentEntry.create(RAW_ENTRY_WITH_NO_RESOURCE_REGISTRY);
+ assertThat(testedObject.getRawEntry()).isEqualTo(RAW_ENTRY_WITH_NO_RESOURCE_REGISTRY);
+ assertThat(testedObject.isValid()).isTrue();
+ assertThat(testedObject.containsParameter(PARAMETER_NAME)).isTrue();
+ assertThat(testedObject.toString()).contains(PARAMETER_NAME).contains(VALUE_NAME);
+ }
+
+ @Test
+ public void toFullString_ResourceRegistryPresentInRawEntry() {
+ MsoHeatEnvironmentEntry testedObject = MsoHeatEnvironmentEntry.create(RAW_ENTRY_WITH_RESOURCE_REGISTRY);
+ assertThat(testedObject.getRawEntry()).isEqualTo(RAW_ENTRY_WITH_RESOURCE_REGISTRY);
+ assertThat(testedObject.containsParameter(PARAMETER_NAME)).isFalse();
+ assertThat(testedObject.isValid()).isTrue();
+ assertThat(testedObject.toString()).contains(RAW_ENTRY_WITH_RESOURCE_REGISTRY);
+ }
+
+ @Test
+ public void toFullString_ExceptionOccurred() {
+ MsoHeatEnvironmentEntry testedObject = MsoHeatEnvironmentEntry.create(RAW_ENTRY_INVALID);
+ assertThat(testedObject.getRawEntry()).isEqualTo(RAW_ENTRY_INVALID);
+ assertThat(testedObject.isValid()).isFalse();
+ assertThat(testedObject.getErrorString()).isNotNull().isNotEmpty();
+ }
+
+ @Test
+ public void checkIfContainsTheParameter() {
+ MsoHeatEnvironmentEntry testedObject = MsoHeatEnvironmentEntry.create(RAW_ENTRY_WITH_NO_RESOURCE_REGISTRY);
+ assertThat(testedObject.containsParameter(PARAMETER_NAME)).isTrue();
+ assertThat(testedObject.containsParameter(NOT_EXISTING_PARAM)).isFalse();
+ }
+
+}