aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Sandler <alexey.sandler@intl.att.com>2020-01-07 10:03:30 +0200
committerIttay Stern <ittay.stern@att.com>2020-01-07 08:11:45 +0000
commit6291d31b674ac0f1de86211ec801772f3de3abd1 (patch)
tree882b8af5eb9a30969835daa1238ea8ae968320d5
parent794218e76ef533adf10815c789c513721336ea4d (diff)
Add isInstantiationTemplateExists to service model list
During deploy from SDC added isInstantiationTemplateExists, that informs if template exists in service by model-service-id. Issue-ID: VID-739 Change-Id: I3de909c3976fe32cba25bcb39b9f35e566467760 Signed-off-by: Alexey Sandler <alexey.sandler@intl.att.com>
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/asdc/beans/Service.java12
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/services/InstantiationTemplatesService.java27
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/InstantiationTemplatesServiceTest.java68
3 files changed, 106 insertions, 1 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/asdc/beans/Service.java b/vid-app-common/src/main/java/org/onap/vid/asdc/beans/Service.java
index 0d37fb39e..092cfe4e2 100644
--- a/vid-app-common/src/main/java/org/onap/vid/asdc/beans/Service.java
+++ b/vid-app-common/src/main/java/org/onap/vid/asdc/beans/Service.java
@@ -76,6 +76,8 @@ public class Service {
private Collection<SubResource> resources;
private String orchestrationType;
+
+ private Boolean isInstantiationTemplateExists;
public static class ServiceBuilder {
@@ -204,6 +206,11 @@ public class Service {
return orchestrationType;
}
+ public Boolean getIsInstantiationTemplateExists() {
+ return isInstantiationTemplateExists;
+ }
+
+
public void setUuid(String uuid) {
this.uuid = uuid;
}
@@ -256,12 +263,17 @@ public class Service {
this.orchestrationType = orchestrationType;
}
+ public void setIsInstantiationTemplateExists(Boolean isInstantiationTemplateExists) {
+ this.isInstantiationTemplateExists = isInstantiationTemplateExists;
+ }
+
@Override
public String toString() {
return uuid;
}
@Override
+
public int hashCode() {
return UUID.fromString(getUuid()).hashCode();
}
diff --git a/vid-app-common/src/main/java/org/onap/vid/services/InstantiationTemplatesService.java b/vid-app-common/src/main/java/org/onap/vid/services/InstantiationTemplatesService.java
index aa0031104..c033fbd59 100644
--- a/vid-app-common/src/main/java/org/onap/vid/services/InstantiationTemplatesService.java
+++ b/vid-app-common/src/main/java/org/onap/vid/services/InstantiationTemplatesService.java
@@ -22,28 +22,38 @@ package org.onap.vid.services;
import static java.util.Collections.emptyMap;
import static java.util.Objects.requireNonNull;
+import static java.util.stream.Collectors.toList;
+import java.util.Collection;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import javax.inject.Inject;
+import org.onap.vid.asdc.beans.Service;
import org.onap.vid.dal.AsyncInstantiationRepository;
import org.onap.vid.model.ModelUtil;
import org.onap.vid.model.serviceInstantiation.BaseResource;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiationTemplate;
+import org.onap.vid.properties.Features;
import org.springframework.stereotype.Component;
+import org.togglz.core.manager.FeatureManager;
@Component
public class InstantiationTemplatesService {
private final ModelUtil modelUtil;
private final AsyncInstantiationRepository asyncInstantiationRepository;
+ private FeatureManager featureManager;
+
@Inject
public InstantiationTemplatesService(ModelUtil modelUtil,
- AsyncInstantiationRepository asyncInstantiationRepository) {
+ AsyncInstantiationRepository asyncInstantiationRepository,
+ FeatureManager featureManager) {
this.modelUtil = modelUtil;
this.asyncInstantiationRepository = asyncInstantiationRepository;
+ this.featureManager = featureManager;
}
public ServiceInstantiationTemplate getJobRequestAsTemplate(UUID jobId) {
@@ -64,4 +74,19 @@ public class InstantiationTemplatesService {
);
}
+ public Collection<Service> setOnEachServiceIsTemplateExists(Collection<Service> services){
+ if (!featureManager.isActive(Features.FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE)){
+ return services;
+ }
+
+ Set<String> serviceModelIdsFromDB = asyncInstantiationRepository.getAllTemplatesServiceModelIds();
+
+ return services.stream().map(it -> setTemplateExistForService(it, serviceModelIdsFromDB)).collect(toList());
+ }
+
+ protected Service setTemplateExistForService(Service service, Set<String> serviceModelIdsFromDb) {
+
+ service.setIsInstantiationTemplateExists(serviceModelIdsFromDb.contains(service.getUuid()));
+ return service;
+ }
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/InstantiationTemplatesServiceTest.java b/vid-app-common/src/test/java/org/onap/vid/services/InstantiationTemplatesServiceTest.java
index f09ea313c..0c66f9550 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/InstantiationTemplatesServiceTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/InstantiationTemplatesServiceTest.java
@@ -20,30 +20,45 @@
package org.onap.vid.services;
+import static java.lang.Boolean.FALSE;
+import static java.lang.Boolean.TRUE;
import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
+import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.anEmptyMap;
+import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.nullValue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import java.util.Collection;
import java.util.Map;
import java.util.UUID;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.onap.vid.asdc.beans.Service;
import org.onap.vid.dal.AsyncInstantiationRepository;
import org.onap.vid.model.ModelUtil;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiationTemplate;
import org.onap.vid.model.serviceInstantiation.Vnf;
+import org.onap.vid.properties.Features;
import org.onap.vid.testUtils.TestUtils;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import org.togglz.core.manager.FeatureManager;
public class InstantiationTemplatesServiceTest {
@@ -53,6 +68,9 @@ public class InstantiationTemplatesServiceTest {
@Mock
private ModelUtil modelUtil;
+ @Mock
+ private FeatureManager featureManager;
+
@InjectMocks
private InstantiationTemplatesService instantiationTemplatesService;
@@ -61,6 +79,11 @@ public class InstantiationTemplatesServiceTest {
TestUtils.initMockitoMocks(this);
}
+ @AfterMethod
+ public void resetMocks() {
+ reset(featureManager);
+ }
+
@Test
public void getJobRequestAsTemplate_whenIsCalled_asyncInstantiationRepositoryGetJobRequestIsInvoked() {
UUID jobId = UUID.randomUUID();
@@ -99,4 +122,49 @@ public class InstantiationTemplatesServiceTest {
assertThat(result, hasProperty("existingVRFCounterMap", anEmptyMap()));
}
+ @DataProvider
+ public static Object[][] isTemplatesExistsByGivenServiceUuid() {
+ return new Object[][]{{"1",TRUE},
+ {"3",FALSE}};
+ }
+
+ @Test(dataProvider = "isTemplatesExistsByGivenServiceUuid")
+ public void setInServicesTemplateValue_givenServiceWithServiceModelId_thenIsTemplateExistsIsEatherTrueOrFalse(String givenUuid, Boolean expectedTemplatesExist){
+
+ Service service = new Service();
+ service.setUuid(givenUuid);
+
+ Service newService = instantiationTemplatesService.setTemplateExistForService(service, ImmutableSet.of("1", "2"));
+ assertThat(newService.getIsInstantiationTemplateExists(), is(expectedTemplatesExist));
+ }
+
+ @Test
+ public void setTemplatesExistance_givenCollection__flagIsActive_thenSameCollectionReturnedWithTemplateExistsProperty(){
+ when(featureManager.isActive(Features.FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE)).thenReturn(true);
+ when(asyncInstantiationRepository.getAllTemplatesServiceModelIds()).thenReturn(ImmutableSet.of("1", "2"));
+ Collection<Service> actualCollection = instantiationTemplatesService.setOnEachServiceIsTemplateExists(createGivenCollection());
+ assertThat(actualCollection, containsInAnyOrder(
+ allOf(hasProperty("uuid", is("1")), hasProperty("isInstantiationTemplateExists", is(true))),
+ allOf(hasProperty("uuid", is("3")), hasProperty("isInstantiationTemplateExists", is(false)))
+ ));
+ }
+
+ @Test
+ public void setTemplatesExistance_givenCollection_flagIsNotActive_thenTemplatesExistNotAdded(){
+ when(featureManager.isActive(Features.FLAG_2004_CREATE_ANOTHER_INSTANCE_FROM_TEMPLATE)).thenReturn(false);
+ Collection<Service> actualCollection = instantiationTemplatesService.setOnEachServiceIsTemplateExists(createGivenCollection());
+ assertThat("was " + actualCollection, actualCollection, containsInAnyOrder(
+ allOf(hasProperty("uuid", is("1")), hasProperty("isInstantiationTemplateExists", nullValue())),
+ allOf(hasProperty("uuid", is("3")), hasProperty("isInstantiationTemplateExists", nullValue()))
+ ));
+ }
+
+ private Collection<Service> createGivenCollection(){
+ Service service1 = new Service();
+ Service service2 = new Service();
+ service1.setUuid("1");
+ service2.setUuid("3");
+ return ImmutableList.of(service1, service2);
+ }
+
}