From b60470ebdd206c190c7ca29d294670ec5f9744b4 Mon Sep 17 00:00:00 2001 From: "Smokowski, Steven" Date: Tue, 20 Oct 2020 10:14:33 -0400 Subject: Update code to filter null or empty images Update code to filter null or empty images Issue-ID: SO-3314 Signed-off-by: Benjamin, Max (mb388a) Change-Id: I9b8ad005b96df0006f723bb54bbfe475e5892d2c --- .../org/onap/so/heatbridge/HeatBridgeImpl.java | 2 +- .../org/onap/so/heatbridge/HeatBridgeImplTest.java | 30 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java index 6a62a5de61..45b29244d1 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java @@ -245,7 +245,7 @@ public class HeatBridgeImpl implements HeatBridgeApi { @Override public List extractOpenstackImagesFromServers(final List servers) { Objects.requireNonNull(osClient, ERR_MSG_NULL_OS_CLIENT); - return servers.stream().map(Server::getImage) + return servers.stream().filter(s -> s.getImage() != null).map(Server::getImage) .filter(distinctByProperty(org.openstack4j.model.compute.Image::getId)).collect(Collectors.toList()); } diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/heatbridge/HeatBridgeImplTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/heatbridge/HeatBridgeImplTest.java index 531496cc8f..ebc7c3a81e 100644 --- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/heatbridge/HeatBridgeImplTest.java +++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/heatbridge/HeatBridgeImplTest.java @@ -102,6 +102,8 @@ import org.openstack4j.model.network.Port; import org.openstack4j.model.network.Subnet; import org.openstack4j.openstack.heat.domain.HeatResource; import org.openstack4j.openstack.heat.domain.HeatResource.Resources; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; @@ -118,6 +120,8 @@ public class HeatBridgeImplTest { private static final String TENANT_ID = "7320ec4a5b9d4589ba7c4412ccfd290f"; private static final ObjectMapper MAPPER = new ObjectMapper(); + private static Logger logger = LoggerFactory.getLogger(HeatBridgeImplTest.class); + @Mock private OpenstackClient osClient; @@ -138,6 +142,12 @@ public class HeatBridgeImplTest { @Mock private Server server; + @Mock + private Server server2; + + @Mock + private Image image; + @Mock private AAIDSLQueryClient dSLQueryClient; @@ -626,6 +636,25 @@ public class HeatBridgeImplTest { verify(osClient, times(5)).getNetworkById(anyString()); } + + @Test + public void testExtractOpenstackImagesFromServers() throws HeatBridgeException { + // Arrange + List serverList = new ArrayList<>(); + serverList.add(server); + serverList.add(server2); + when(server.getImage()).thenReturn(null); + when(server.getImage()).thenReturn(image); + when(image.getId()).thenReturn("imageId"); + // Act + + List images = heatbridge.extractOpenstackImagesFromServers(serverList); + + + // Assert + assertEquals(1, images.size()); + } + private List extractTestStackResources() { List stackResources = null; try { @@ -638,6 +667,7 @@ public class HeatBridgeImplTest { return stackResources; } + private String readTestResourceFile(String filePath) { String content = null; String pathname = Objects.requireNonNull(getClass().getClassLoader().getResource(filePath)).getFile(); -- cgit 1.2.3-korg