summaryrefslogtreecommitdiffstats
path: root/adapters/mso-adapter-utils/src
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/mso-adapter-utils/src')
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java1
-rw-r--r--adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java76
-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/MsoHeatUtils.java12
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/adapter_utils/tests/AdapterBeansTest.java54
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java158
-rw-r--r--adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/StackInfoTest.java98
7 files changed, 322 insertions, 192 deletions
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
index 8e223b7bcb..3e4ea27d5f 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/HeatStatus.java
@@ -20,7 +20,6 @@
package org.openecomp.mso.openstack.beans;
-
/*
* Enum status values to mirror the Openstack Heat stack status values
*/
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
index 9f2c275670..2cda8f99e2 100644
--- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
+++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/beans/NetworkInfo.java
@@ -20,8 +20,6 @@
package org.openecomp.mso.openstack.beans;
-
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -35,7 +33,6 @@ import com.woorea.openstack.quantum.model.Segment;
*
* This bean is returned by all Network-specific adapter operations (create, query, delete)
*/
-
public class NetworkInfo {
// Set defaults for everything
private String name = "";
@@ -44,7 +41,6 @@ public class NetworkInfo {
private String provider = "";
private List<Integer> vlans = new ArrayList<>();
private List<String> subnets = new ArrayList<>();
- private String shared = "";
static Map<String,NetworkStatus> NetworkStatusMap;
static {
@@ -55,15 +51,6 @@ public class NetworkInfo {
NetworkStatusMap.put("ERROR", NetworkStatus.ERROR);
}
- public NetworkInfo () {
- }
-
- public NetworkInfo (String name, NetworkStatus status) {
- this.name = name;
- this.id = name; // Don't have an ID, so just use name
- this.status = status;
- }
-
/**
* Capture the data from a Neutron Network object.
*
@@ -75,41 +62,35 @@ public class NetworkInfo {
*
* @param network
*/
- public NetworkInfo (Network network)
- {
- if (network == null) {
- this.status = NetworkStatus.NOTFOUND;
- return;
+ public NetworkInfo(Network network) {
+ if (network != null) {
+ initFieldsWithDataFromNetwork(network);
+ } else {
+ status = NetworkStatus.NOTFOUND;
}
+ }
- this.name = network.getName();
- this.id = network.getId();
+ private void initFieldsWithDataFromNetwork(Network network){
+ name = network.getName();
+ id = network.getId();
- if (network.getStatus() == null) {
- // Can this happen on a newly created network?
- this.status = NetworkStatus.UNKNOWN;
- } else if (NetworkStatusMap.containsKey(network.getStatus())) {
- this.status = NetworkStatusMap.get(network.getStatus());
- } else {
- this.status = NetworkStatus.UNKNOWN;
+ if (network.getStatus() != null && NetworkStatusMap.containsKey(network.getStatus())) {
+ status = NetworkStatusMap.get(network.getStatus());
}
-
if (network.getProviderPhysicalNetwork() != null) {
- this.provider = network.getProviderPhysicalNetwork();
+ provider = network.getProviderPhysicalNetwork();
if ("vlan".equals(network.getProviderNetworkType())) {
- this.vlans.add(network.getProviderSegmentationId());
+ vlans.add(network.getProviderSegmentationId());
}
}
else if (network.getSegments() != null && !network.getSegments().isEmpty()) {
Segment s = network.getSegments().get(0);
- this.provider = s.getProviderPhysicalNetwork();
+ provider = s.getProviderPhysicalNetwork();
if ("vlan".equals(s.getProviderNetworkType())) {
- for (Segment s1 : network.getSegments()) {
- this.vlans.add(s1.getProviderSegmentationId());
- }
+ network.getSegments().forEach(segment -> vlans.add(segment.getProviderSegmentationId()));
}
}
- this.subnets = network.getSubnets();
+ subnets = network.getSubnets();
}
public String getName() {
@@ -156,22 +137,17 @@ public class NetworkInfo {
return subnets;
}
- public void setSubnets (List<String> subnets) {
- this.subnets = subnets;
- }
-
- public String getShared() {
- return shared;
- }
-
- public void setShared(String shared) {
- this.shared = shared;
- }
-
@Override
- public String toString () {
- return "Network: name=" + name + ",id=" + id + ",status=" + status +
- ",provider=" + provider + ",vlans=" + vlans + ",subnets=" + subnets + ",shared=" + shared;
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("NetworkInfo{");
+ sb.append("name='").append(name).append('\'');
+ sb.append(", id='").append(id).append('\'');
+ sb.append(", status=").append(status);
+ sb.append(", provider='").append(provider).append('\'');
+ sb.append(", vlans=").append(vlans);
+ sb.append(", subnets=").append(subnets);
+ sb.append('}');
+ return sb.toString();
}
}
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/MsoHeatUtils.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/openstack/utils/MsoHeatUtils.java
index a8ee3ad29e..acc6d72f63 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
@@ -644,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");
@@ -658,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;
}
@@ -706,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");
@@ -718,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.
@@ -741,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);
@@ -807,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)
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 f231c75211..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
@@ -26,21 +26,14 @@ 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.NetworkInfo;
import org.openecomp.mso.openstack.beans.NetworkRollback;
-import org.openecomp.mso.openstack.beans.NetworkStatus;
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;
-import com.woorea.openstack.heat.model.Stack;
-
public class AdapterBeansTest {
@Test
public final void msoTenantTest() {
@@ -58,33 +51,6 @@ public class AdapterBeansTest {
}
@Test
- public final void networkInfoTest() {
- NetworkInfo networkInfo = new NetworkInfo();
- networkInfo.setName("name");
- assertTrue(networkInfo.getName().equalsIgnoreCase("name"));
- networkInfo.setId("1");
- assertTrue(networkInfo.getId().equalsIgnoreCase("1"));
- networkInfo.setStatus(NetworkStatus.ACTIVE);
- assertTrue(networkInfo.getStatus().equals(NetworkStatus.ACTIVE));
- networkInfo.setProvider("provider");
- networkInfo.getProvider().equalsIgnoreCase("provider");
- List<Integer> al = new ArrayList<>();
- al.add(1);
- al.add(2);
- networkInfo.setVlans(al);
- assertTrue(networkInfo.getVlans() != null);
- networkInfo.setShared("shared");
- assertTrue(networkInfo.getShared().equalsIgnoreCase("shared"));
- List<String> als = new ArrayList<>();
- als.add("1");
- als.add("2");
- networkInfo.setSubnets(als);
- assertTrue(networkInfo.getSubnets() != null);
- new NetworkInfo("string", NetworkStatus.ACTIVE);
- assertTrue(networkInfo.toString() != null);
- }
-
- @Test
public final void networkRollbackTest() {
NetworkRollback networkRollback = new NetworkRollback();
networkRollback.setCloudId("cloudId");
@@ -130,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/openstack/beans/NetworkInfoTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java
new file mode 100644
index 0000000000..0f357e5555
--- /dev/null
+++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkInfoTest.java
@@ -0,0 +1,158 @@
+/*-
+ * ============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.quantum.model.Network;
+import com.woorea.openstack.quantum.model.Segment;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+
+public class NetworkInfoTest {
+
+ private static final String NETWORK_STATUS_ACTIVE = "ACTIVE";
+ private static final String NETWORK_STATUS_ID = "networkIdTest";
+ private static final String NETWORK_STATUS_NAME = "networkNameTest";
+ private static final String SUBNET_NAME = "subnetTest";
+ private static final String PROVIDER = "providerTest";
+ private static final String PROVIDER_NETWORK_TYPE_VLAN = "vlan";
+ private static final String PROVIDER_NETWORK_TYPE_OTHER = "providerTypeTest";
+ private static final Integer PROVIDER_SEGMENTATION_ID = 777;
+ private static final String PROVIDER_FOR_SEGMENT = "providerSegmentTest";
+ private static final Integer PROVIDER_SEGMENTATION_ID_FOR_SEGMENT = 123;
+
+ @Test
+ public void networkStatusUnknownWhenIsNullInNetwork() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(null));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
+ checkCommonPartWhenProviderIsNotPresent(networkInfo);
+ }
+
+ @Test
+ public void networkStatusUnknownWhenNotFoundInNetworkStatusMap() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetwork("notExistingNetworkStatus"));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.UNKNOWN);
+ checkCommonPartWhenProviderIsNotPresent(networkInfo);
+ }
+
+ @Test
+ public void setNetworkStatusWhenNetworkStatusFoundInNetworkStatusMap() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetwork(NETWORK_STATUS_ACTIVE));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+ checkCommonPartWhenProviderIsNotPresent(networkInfo);
+ }
+
+ @Test
+ public void setVLANProviderFromTheNetwork() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
+ PROVIDER_NETWORK_TYPE_VLAN));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+ assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
+ assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID);
+ checkCommonPart(networkInfo);
+ }
+
+ @Test
+ public void setOtherProviderFromTheNetwork() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithProvider(NETWORK_STATUS_ACTIVE, PROVIDER,
+ PROVIDER_NETWORK_TYPE_OTHER));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+ assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER);
+ assertThat(networkInfo.getVlans()).isEmpty();
+ checkCommonPart(networkInfo);
+ }
+
+ @Test
+ public void setVLANProviderFromTheNetworkSegments() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
+ prepareSegment(PROVIDER_NETWORK_TYPE_VLAN)));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+ assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
+ assertThat(networkInfo.getVlans()).hasSize(1).contains(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
+ checkCommonPart(networkInfo);
+ }
+
+ @Test
+ public void setOtherProviderFromTheNetworkSegments() {
+ NetworkInfo networkInfo = new NetworkInfo(prepareNetworkWithSegments(NETWORK_STATUS_ACTIVE,
+ prepareSegment(PROVIDER_NETWORK_TYPE_OTHER)));
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.ACTIVE);
+ assertThat(networkInfo.getProvider()).isEqualTo(PROVIDER_FOR_SEGMENT);
+ assertThat(networkInfo.getVlans()).isEmpty();
+ checkCommonPart(networkInfo);
+ }
+
+ @Test
+ public void setNetworkStatusNotFoundWhenNetworkIsNull() {
+ NetworkInfo networkInfo = new NetworkInfo(null);
+ assertThat(networkInfo.getStatus()).isEqualTo(NetworkStatus.NOTFOUND);
+ }
+
+ private void checkCommonPartWhenProviderIsNotPresent(NetworkInfo networkInfo) {
+ assertThat(networkInfo.getProvider()).isEmpty();
+ assertThat(networkInfo.getVlans()).isEmpty();
+ checkCommonPart(networkInfo);
+ }
+
+ private void checkCommonPart(NetworkInfo networkInfo) {
+ assertThat(networkInfo.getId()).isEqualTo(NETWORK_STATUS_ID);
+ assertThat(networkInfo.getName()).isEqualTo(NETWORK_STATUS_NAME);
+ assertThat(networkInfo.getSubnets()).hasSize(1).contains(SUBNET_NAME);
+ }
+
+ private Network prepareNetwork(String networkStatus) {
+ Network network = new Network();
+ network.setId(NETWORK_STATUS_ID);
+ network.setName(NETWORK_STATUS_NAME);
+ network.setStatus(networkStatus);
+ List<String> subnets = new ArrayList<>();
+ subnets.add(SUBNET_NAME);
+ network.setSubnets(subnets);
+ return network;
+ }
+
+ private Network prepareNetworkWithProvider(String networkStatus, String providerPhysicalNetwork, String providerNetworkType) {
+ Network network = prepareNetwork(networkStatus);
+ network.setProviderPhysicalNetwork(providerPhysicalNetwork);
+ network.setProviderNetworkType(providerNetworkType);
+ network.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID);
+ return network;
+ }
+
+ private Network prepareNetworkWithSegments(String networkStatus, Segment segment) {
+ Network network = prepareNetwork(networkStatus);
+ List<Segment> segments = new ArrayList<>();
+ segments.add(segment);
+ network.setSegments(segments);
+ return network;
+ }
+
+ private Segment prepareSegment(String providerNetworkType) {
+ Segment segment = new Segment();
+ segment.setProviderPhysicalNetwork(PROVIDER_FOR_SEGMENT);
+ segment.setProviderNetworkType(providerNetworkType);
+ segment.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID_FOR_SEGMENT);
+ return segment;
+ }
+
+}
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;
+ }
+
+}