diff options
Diffstat (limited to 'mso-catalog-db')
5 files changed, 87 insertions, 41 deletions
diff --git a/mso-catalog-db/pom.xml b/mso-catalog-db/pom.xml index 08e9719f50..6a4a6774e6 100644 --- a/mso-catalog-db/pom.xml +++ b/mso-catalog-db/pom.xml @@ -102,5 +102,10 @@ <artifactId>asm-xml</artifactId> <version>6.1</version> </dependency> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-common</artifactId> + <scope>test</scope> + </dependency> </dependencies> </project> diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java index 8754673f40..7f5907e9bf 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java @@ -124,37 +124,38 @@ public class CatalogDbClient { private static final String SEARCH = "/search"; private static final String URI_SEPARATOR = "/"; - private static final String SERVICE_MODEL_UUID = "serviceModelUUID"; - private static final String SERVICE_NAME = "serviceName"; - private static final String MODEL_UUID = "modelUUID"; - private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID"; - private static final String ACTION = "action"; - private static final String MODEL_NAME = "modelName"; - private static final String MODEL_VERSION = "modelVersion"; - private static final String MODEL_INVARIANT_UUID = "modelInvariantUUID"; - private static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID"; - private static final String NF_ROLE = "nfRole"; - private static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID"; - private static final String VNF_COMPONENT_TYPE = "vnfComponentType"; - private static final String BUILDING_BLOCK_NAME = "buildingBlockName"; - private static final String RESOURCE_TYPE = "resourceType"; - private static final String ORCHESTRATION_STATUS = "orchestrationStatus"; - private static final String TARGET_ACTION = "targetAction"; - private static final String REQUEST_SCOPE = "requestScope"; - private static final String IS_ALACARTE = "isALaCarte"; - private static final String CLOUD_OWNER = "cloudOwner"; - private static final String FLOW_NAME = "flowName"; - private static final String ERROR_MESSAGE = "errorMessage"; - private static final String SERVICE_ROLE = "serviceRole"; - private static final String SERVICE_TYPE = "serviceType"; - private static final String VNF_TYPE = "vnfType"; - private static final String ERROR_CODE = "errorCode"; - private static final String WORK_STEP = "workStep"; - private static final String CLLI = "clli"; - private static final String CLOUD_VERSION = "cloudVersion"; - private static final String HOMING_INSTANCE = "/homingInstance"; - private static final String ARTIFACT_UUID = "artifactUUID"; - private static final String SOURCE = "source"; + protected static final String SERVICE_MODEL_UUID = "serviceModelUUID"; + protected static final String SERVICE_NAME = "serviceName"; + protected static final String MODEL_UUID = "modelUUID"; + protected static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID"; + protected static final String ACTION = "action"; + protected static final String MODEL_NAME = "modelName"; + protected static final String MODEL_VERSION = "modelVersion"; + protected static final String MODEL_INVARIANT_UUID = "modelInvariantUUID"; + protected static final String VNF_RESOURCE_MODEL_UUID = "vnfResourceModelUUID"; + protected static final String PNF_RESOURCE_MODEL_UUID = "pnfResourceModelUUID"; + protected static final String NF_ROLE = "nfRole"; + protected static final String VF_MODULE_MODEL_UUID = "vfModuleModelUUID"; + protected static final String VNF_COMPONENT_TYPE = "vnfComponentType"; + protected static final String BUILDING_BLOCK_NAME = "buildingBlockName"; + protected static final String RESOURCE_TYPE = "resourceType"; + protected static final String ORCHESTRATION_STATUS = "orchestrationStatus"; + protected static final String TARGET_ACTION = "targetAction"; + protected static final String REQUEST_SCOPE = "requestScope"; + protected static final String IS_ALACARTE = "isALaCarte"; + protected static final String CLOUD_OWNER = "cloudOwner"; + protected static final String FLOW_NAME = "flowName"; + protected static final String ERROR_MESSAGE = "errorMessage"; + protected static final String SERVICE_ROLE = "serviceRole"; + protected static final String SERVICE_TYPE = "serviceType"; + protected static final String VNF_TYPE = "vnfType"; + protected static final String ERROR_CODE = "errorCode"; + protected static final String WORK_STEP = "workStep"; + protected static final String CLLI = "clli"; + protected static final String CLOUD_VERSION = "cloudVersion"; + protected static final String HOMING_INSTANCE = "/homingInstance"; + protected static final String ARTIFACT_UUID = "artifactUUID"; + protected static final String SOURCE = "source"; private static final String TARGET_ENTITY = "SO:CatalogDB"; private static final String ASTERISK = "*"; @@ -201,6 +202,7 @@ public class CatalogDbClient { private String findPnfResourceCustomizationByModelUuid = "/findPnfResourceCustomizationByModelUuid"; private String findWorkflowByArtifactUUID = "/findByArtifactUUID"; private String findWorkflowByModelUUID = "/findWorkflowByModelUUID"; + private String findWorkflowByPnfModelUUID = "/findWorkflowByPnfModelUUID"; private String findWorkflowBySource = "/findBySource"; private String findVnfResourceCustomizationByModelUuid = "/findVnfResourceCustomizationByModelUuid"; @@ -338,6 +340,7 @@ public class CatalogDbClient { findWorkflowByArtifactUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByArtifactUUID; findWorkflowByModelUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByModelUUID; + findWorkflowByPnfModelUUID = endpoint + WORKFLOW + SEARCH + findWorkflowByPnfModelUUID; findWorkflowBySource = endpoint + WORKFLOW + SEARCH + findWorkflowBySource; findVnfResourceCustomizationByModelUuid = @@ -817,7 +820,7 @@ public class CatalogDbClient { return client.get(uri); } - private <T> List<T> getMultipleResources(Client<T> client, URI uri) { + protected <T> List<T> getMultipleResources(Client<T> client, URI uri) { Iterable<T> iterator = client.getAll(uri); List<T> list = new ArrayList<>(); Iterator<T> it = iterator.iterator(); @@ -998,6 +1001,11 @@ public class CatalogDbClient { .queryParam(VNF_RESOURCE_MODEL_UUID, vnfResourceModelUUID).build().toString())); } + public List<Workflow> findWorkflowByPnfModelUUID(String pnfResourceModelUUID) { + return this.getMultipleResources(workflowClient, getUri(UriBuilder.fromUri(findWorkflowByPnfModelUUID) + .queryParam(PNF_RESOURCE_MODEL_UUID, pnfResourceModelUUID).build().toString())); + } + public List<Workflow> findWorkflowBySource(String source) { return this.getMultipleResources(workflowClient, getUri(UriBuilder.fromUri(findWorkflowBySource).queryParam(SOURCE, source).build().toString())); diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/NetworkResourceRepository.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/NetworkResourceRepository.java index eaeb4292fb..42d107c1ff 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/NetworkResourceRepository.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/NetworkResourceRepository.java @@ -23,9 +23,10 @@ package org.onap.so.db.catalog.data.repository; import org.onap.so.db.catalog.beans.NetworkResource; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; import org.springframework.stereotype.Repository; -@Repository +@RepositoryRestResource(collectionResourceRel = "networkResource", path = "networkResource") public interface NetworkResourceRepository extends JpaRepository<NetworkResource, String> { /** diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java index 8bcc60c8be..f1b399325e 100644 --- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java +++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/data/repository/WorkflowRepository.java @@ -39,10 +39,23 @@ public interface WorkflowRepository extends JpaRepository<Workflow, Integer> { * This operation is required by {@link org.onap.so.db.catalog.client.CatalogDbClient} to provide Workflow based on * model UUID without projection. * - * @param vnfResourceModelUUIDmodel UUID + * @param vnfResourceModelUUID UUID * @return List of Workflow */ @Query(value = "select b.* from vnf_resource_to_workflow a join workflow b where a.WORKFLOW_ID = b.ID and a.VNF_RESOURCE_MODEL_UUID = ?1", nativeQuery = true) List<Workflow> findWorkflowByModelUUID(String vnfResourceModelUUID); + + /** + * Used to fetch the @{link Workflow} by the Pnf Model UUID. + * + * This operation is required by {@link org.onap.so.db.catalog.client.CatalogDbClient} to provide Workflow based on + * pnf model UUID without projection. + * + * @param pnfResourceModelUUID UUID + * @return List of Workflow + */ + @Query(value = "select b.* from pnf_resource_to_workflow a join workflow b where a.WORKFLOW_ID = b.ID and a.PNF_RESOURCE_MODEL_UUID = ?1", + nativeQuery = true) + List<Workflow> findWorkflowByPnfModelUUID(String pnfResourceModelUUID); } diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java index b82c17dc84..66fc0f5dc5 100644 --- a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java +++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java @@ -19,26 +19,33 @@ */ package org.onap.so.db.catalog.client; + import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.verify; import java.util.ArrayList; +import java.util.List; import javax.persistence.EntityNotFoundException; -import org.junit.Before; +import javax.ws.rs.core.UriBuilder; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; import org.onap.so.db.catalog.beans.CvnfcCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; +import org.onap.so.db.catalog.beans.Workflow; +import uk.co.blackpepper.bowman.Client; +@RunWith(MockitoJUnitRunner.class) public class CatalogDbClientTest { + @Spy private CatalogDbClient catalogDbClient; - - @Before - public void init() { - catalogDbClient = new CatalogDbClient(); - } - @Rule public ExpectedException thrown = ExpectedException.none(); @@ -171,4 +178,16 @@ public class CatalogDbClientTest { assertTrue(aCvnfc.getModelCustomizationUUID().equals("a123")); } + @Test + public final void testFindWorkflowByPnfModelUUID() throws Exception { + String pnfResourceModelUUID = "f2d1f2b2-88bb-49da-b716-36ae420ccbff"; + + doReturn(new ArrayList()).when(catalogDbClient).getMultipleResources(any(), any()); + List<Workflow> results = catalogDbClient.findWorkflowByPnfModelUUID(pnfResourceModelUUID); + verify(catalogDbClient).getMultipleResources(any(Client.class), + eq(UriBuilder.fromUri("/findWorkflowByPnfModelUUID") + .queryParam(CatalogDbClient.PNF_RESOURCE_MODEL_UUID, pnfResourceModelUUID).build())); + + } + } |