From a76f5614e10f99658114ea1ff2eaf334e0df01c8 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Tue, 3 Jan 2023 16:15:39 +0000 Subject: Refactor Post instances to create and update ACM instances Issue-ID: POLICY-4493 Change-Id: I31c00e6d61a53dcd6a03a911a618f1c6495f2d38 Signed-off-by: FrancescoFioraEst --- ...AutomationCompositionInstantiationProvider.java | 33 +++++------ .../runtime/main/rest/InstantiationController.java | 33 ++++------- .../rest/stub/CommissioningControllerStub.java | 62 +++++++------------ .../rest/stub/InstantiationControllerStub.java | 69 +++++++--------------- .../acm/runtime/main/rest/stub/StubUtils.java | 16 ++--- .../src/main/resources/openapi/openapi.yaml | 2 +- ...mationCompositionInstantiationProviderTest.java | 38 +++--------- .../rest/InstantiationControllerTest.java | 25 +++----- .../rest/stub/InstantiationControllerStubTest.java | 8 +-- 9 files changed, 99 insertions(+), 187 deletions(-) (limited to 'runtime-acm') diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProvider.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProvider.java index b723dba7f..099c0e740 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProvider.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProvider.java @@ -37,7 +37,6 @@ import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; import org.onap.policy.clamp.models.acm.concepts.Participant; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider; @@ -102,29 +101,27 @@ public class AutomationCompositionInstantiationProvider { * Update automation composition. * * @param compositionId The UUID of the automation composition definition - * @param instanceId The UUID of the automation composition instance - * @param instanceUpdate the automation composition + * @param automationComposition the automation composition * @return the result of the update */ - public InstantiationResponse updateAutomationComposition(UUID compositionId, UUID instanceId, - InstantiationUpdate instanceUpdate) { - var automationComposition = automationCompositionProvider.getAutomationComposition(instanceId); - if (!compositionId.equals(automationComposition.getCompositionId())) { + public InstantiationResponse updateAutomationComposition(UUID compositionId, + AutomationComposition automationComposition) { + var instanceId = automationComposition.getInstanceId(); + var acToUpdate = automationCompositionProvider.getAutomationComposition(instanceId); + if (!compositionId.equals(acToUpdate.getCompositionId())) { throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, automationComposition.getCompositionId() + DO_NOT_MATCH + compositionId); } - if (instanceUpdate.getElements() != null) { - automationComposition.setElements(instanceUpdate.getElements()); - var validationResult = validateAutomationComposition(automationComposition); - if (!validationResult.isValid()) { - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, validationResult.getResult()); - } - automationComposition = automationCompositionProvider.updateAutomationComposition(automationComposition); - } - - if (instanceUpdate.getInstantiationCommand() != null) { - issueAutomationCompositionCommand(automationComposition, instanceUpdate.getInstantiationCommand()); + acToUpdate.setElements(automationComposition.getElements()); + acToUpdate.setName(automationComposition.getName()); + acToUpdate.setVersion(automationComposition.getVersion()); + acToUpdate.setDescription(automationComposition.getDescription()); + acToUpdate.setDerivedFrom(automationComposition.getDerivedFrom()); + var validationResult = validateAutomationComposition(acToUpdate); + if (!validationResult.isValid()) { + throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, validationResult.getResult()); } + automationComposition = automationCompositionProvider.updateAutomationComposition(acToUpdate); var response = new InstantiationResponse(); response.setInstanceId(instanceId); diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/InstantiationController.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/InstantiationController.java index 1ff7c019e..94c111e00 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/InstantiationController.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/InstantiationController.java @@ -31,7 +31,6 @@ import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AcInstanceStateUpdate; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; import org.springframework.context.annotation.Profile; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; @@ -59,10 +58,14 @@ public class InstantiationController extends AbstractRestController implements A public ResponseEntity createCompositionInstance(UUID compositionId, AutomationComposition automationComposition, UUID requestId) { - var response = provider.createAutomationComposition(compositionId, automationComposition); - return ResponseEntity - .created(createUri("/compositions/" + compositionId + "/instances/" + response.getInstanceId())) - .body(response); + if (automationComposition.getInstanceId() == null) { + var response = provider.createAutomationComposition(compositionId, automationComposition); + return ResponseEntity + .created(createUri("/compositions/" + compositionId + "/instances/" + response.getInstanceId())) + .body(response); + } else { + return ResponseEntity.ok().body(provider.updateAutomationComposition(compositionId, automationComposition)); + } } /** @@ -95,22 +98,6 @@ public class InstantiationController extends AbstractRestController implements A return ResponseEntity.ok().body(provider.getAutomationCompositions(compositionId, name, version)); } - /** - * Updates a automation composition. - * - * @param compositionId The UUID of the automation composition definition - * @param instanceId The UUID of the automation composition instance - * @param instanceUpdate the automation composition to update - * @param requestId request ID used in ONAP logging - * @return a response - */ - public ResponseEntity updateCompositionInstance(UUID compositionId, UUID instanceId, - InstantiationUpdate instanceUpdate, UUID requestId) { - - return ResponseEntity.ok() - .body(provider.updateAutomationComposition(compositionId, instanceId, instanceUpdate)); - } - /** * Deletes a automation composition definition. * @@ -127,8 +114,8 @@ public class InstantiationController extends AbstractRestController implements A } @Override - public ResponseEntity ompositionInstanceState(UUID compositionId, UUID instanceId, - @Valid AcInstanceStateUpdate body, UUID requestId) { + public ResponseEntity compositionInstanceState(UUID compositionId, UUID instanceId, + @Valid AcInstanceStateUpdate body, UUID requestId) { // TODO Auto-generated method stub return null; } diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/CommissioningControllerStub.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/CommissioningControllerStub.java index 833b3fa0b..98c71dc6f 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/CommissioningControllerStub.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/CommissioningControllerStub.java @@ -21,37 +21,24 @@ package org.onap.policy.clamp.acm.runtime.main.rest.stub; import java.util.UUID; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; +import lombok.RequiredArgsConstructor; import org.onap.policy.clamp.acm.runtime.main.rest.gen.AutomationCompositionDefinitionApi; import org.onap.policy.clamp.acm.runtime.main.web.AbstractRestController; import org.onap.policy.clamp.models.acm.messages.rest.commissioning.AcTypeStateUpdate; import org.onap.policy.clamp.models.acm.messages.rest.commissioning.CommissioningResponse; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @Profile("stub") -public class CommissioningControllerStub extends AbstractRestController - implements AutomationCompositionDefinitionApi { +@RequiredArgsConstructor +public class CommissioningControllerStub extends AbstractRestController implements AutomationCompositionDefinitionApi { - private static final Logger log = LoggerFactory.getLogger(CommissioningControllerStub.class); - - private StubUtils stubUtils = new StubUtils(); - - @Autowired - private HttpServletRequest request; + private final StubUtils stubUtils; @Value("${stub.deleteCompositionDefinitionResponse}") private String pathToResponseFile; @@ -69,44 +56,35 @@ public class CommissioningControllerStub extends AbstractRestController private String pathToPutUpdate; @Override - public ResponseEntity createCompositionDefinitions( - @Valid @RequestBody ToscaServiceTemplate body, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToPostResponse, CommissioningResponse.class, request, log); + public ResponseEntity createCompositionDefinitions(ToscaServiceTemplate body, + UUID xonaprequestid) { + var compositionId = body.getMetadata() != null ? body.getMetadata().get("compositionId") : null; + if (compositionId == null) { + return stubUtils.getResponse(pathToPostResponse, CommissioningResponse.class); + } else { + return stubUtils.getResponse(pathToPutUpdate, CommissioningResponse.class); + } } @Override - public ResponseEntity deleteCompositionDefinition( - @PathVariable("compositionId") UUID compositionId, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToResponseFile, CommissioningResponse.class, request, log); + public ResponseEntity deleteCompositionDefinition(UUID compositionId, UUID xonaprequestid) { + return stubUtils.getResponse(pathToResponseFile, CommissioningResponse.class); } @Override - public ResponseEntity getCompositionDefinition( - @PathVariable("compositionId") UUID compositionId, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToSingleDefinition, ToscaServiceTemplate.class, request, log); + public ResponseEntity getCompositionDefinition(UUID compositionId, UUID xonaprequestid) { + return stubUtils.getResponse(pathToSingleDefinition, ToscaServiceTemplate.class); } @Override - public ResponseEntity queryCompositionDefinitions( - @Valid @RequestParam(value = "name", required = false) String name, - @Valid @RequestParam(value = "version", required = false) String version, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToAllDefinitions, ToscaServiceTemplates.class, request, log); - } - - public ResponseEntity updateCompositionDefinition( - @PathVariable("compositionId") UUID compositionId, - @Valid @RequestBody ToscaServiceTemplate body, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToPutUpdate, CommissioningResponse.class, request, log); + public ResponseEntity queryCompositionDefinitions(String name, String version, + UUID xonaprequestid) { + return stubUtils.getResponse(pathToAllDefinitions, ToscaServiceTemplates.class); } @Override public ResponseEntity compositionDefinitionPriming(UUID compositionId, UUID requestId, - AcTypeStateUpdate body) { + AcTypeStateUpdate body) { // TODO Auto-generated method stub return null; } diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/InstantiationControllerStub.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/InstantiationControllerStub.java index ac34f227d..d0b190dd3 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/InstantiationControllerStub.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/InstantiationControllerStub.java @@ -21,37 +21,25 @@ package org.onap.policy.clamp.acm.runtime.main.rest.stub; import java.util.UUID; -import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import lombok.RequiredArgsConstructor; import org.onap.policy.clamp.acm.runtime.main.rest.gen.AutomationCompositionInstanceApi; import org.onap.policy.clamp.acm.runtime.main.web.AbstractRestController; import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AcInstanceStateUpdate; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @Profile("stub") +@RequiredArgsConstructor public class InstantiationControllerStub extends AbstractRestController implements AutomationCompositionInstanceApi { - private static final Logger log = LoggerFactory.getLogger(InstantiationControllerStub.class); - - private StubUtils stubUtils = new StubUtils(); - - @Autowired - private HttpServletRequest request; + private final StubUtils stubUtils; @Value("${stub.deleteCompositionInstanceResponse}") private String pathToResponseFile; @@ -69,50 +57,37 @@ public class InstantiationControllerStub extends AbstractRestController implemen private String pathToPutUpdate; @Override - public ResponseEntity createCompositionInstance( - @PathVariable("compositionId") UUID compositionId, - @Valid @RequestBody AutomationComposition body, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathPostIntance, InstantiationResponse.class, request, log); + public ResponseEntity createCompositionInstance(UUID compositionId, + AutomationComposition body, UUID xonaprequestid) { + if (body.getInstanceId() == null) { + return stubUtils.getResponse(pathPostIntance, InstantiationResponse.class); + } else { + return stubUtils.getResponse(pathToResponseFile, InstantiationResponse.class); + } } @Override - public ResponseEntity deleteCompositionInstance( - @PathVariable("compositionId") UUID compositionId, - @PathVariable("instanceId") UUID instanceId, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToResponseFile, InstantiationResponse.class, request, log); + public ResponseEntity deleteCompositionInstance(UUID compositionId, UUID instanceId, + UUID xonaprequestid) { + return stubUtils.getResponse(pathToResponseFile, InstantiationResponse.class); } @Override - public ResponseEntity getCompositionInstance( - @PathVariable("compositionId") UUID compositionId, - @PathVariable("instanceId") UUID instanceId, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToSingleIntance, AutomationComposition.class, request, log); + public ResponseEntity getCompositionInstance(UUID compositionId, UUID instanceId, + UUID xonaprequestid) { + return stubUtils.getResponse(pathToSingleIntance, AutomationComposition.class); } @Override - public ResponseEntity queryCompositionInstances( - @PathVariable("compositionId") UUID compositionId, - @Valid @RequestParam(value = "name", required = false) String name, - @Valid @RequestParam(value = "version", required = false) String version, - @RequestHeader(value = "X-onap-RequestId", required = false) UUID xonaprequestid) { - return stubUtils.getResponse(pathToAllIntances, AutomationCompositions.class, request, log); - } - - public ResponseEntity updateCompositionInstance( - UUID compositionId, - UUID instanceId, - InstantiationUpdate body, - UUID xonaprequestid) { - return stubUtils.getResponse(pathToResponseFile, InstantiationResponse.class, request, log); + public ResponseEntity queryCompositionInstances(UUID compositionId, String name, + String version, UUID xonaprequestid) { + return stubUtils.getResponse(pathToAllIntances, AutomationCompositions.class); } @Override - public ResponseEntity ompositionInstanceState(UUID compositionId, UUID instanceId, - @Valid AcInstanceStateUpdate body, UUID requestId) { + public ResponseEntity compositionInstanceState(UUID compositionId, UUID instanceId, + @Valid AcInstanceStateUpdate body, UUID requestId) { // TODO Auto-generated method stub return null; } -} \ No newline at end of file +} diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/StubUtils.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/StubUtils.java index 650426681..3a209a096 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/StubUtils.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/StubUtils.java @@ -22,13 +22,13 @@ package org.onap.policy.clamp.acm.runtime.main.rest.stub; import com.google.gson.Gson; import java.io.IOException; -import java.io.InputStream; import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Profile; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpStatus; @@ -40,21 +40,23 @@ import org.springframework.stereotype.Service; @Profile("stub") public class StubUtils { + private static final Logger log = LoggerFactory.getLogger(StubUtils.class); + private final HttpServletRequest request; + private static final StandardYamlCoder YAML_TRANSLATOR = new StandardYamlCoder(); private static final Gson JSON_TRANSLATOR = new Gson(); private static final String YAML = "application/yaml"; private static final String ACCEPT = "Accept"; - ResponseEntity getResponse(String path, Class clazz, - HttpServletRequest request, Logger log) { - String accept = request.getHeader(ACCEPT); - final ClassPathResource resource = new ClassPathResource(path); - try (InputStream inputStream = resource.getInputStream()) { + ResponseEntity getResponse(String path, Class clazz) { + var accept = request.getHeader(ACCEPT); + final var resource = new ClassPathResource(path); + try (var inputStream = resource.getInputStream()) { if (accept.contains(YAML)) { var targetObject = YAML_TRANSLATOR.decode(inputStream, clazz); return new ResponseEntity<>(targetObject, HttpStatus.OK); } else { - final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + final var string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); var targetObject = JSON_TRANSLATOR.fromJson(string, clazz); return new ResponseEntity<>(targetObject, HttpStatus.OK); } diff --git a/runtime-acm/src/main/resources/openapi/openapi.yaml b/runtime-acm/src/main/resources/openapi/openapi.yaml index 170e233c9..655ce7eeb 100644 --- a/runtime-acm/src/main/resources/openapi/openapi.yaml +++ b/runtime-acm/src/main/resources/openapi/openapi.yaml @@ -1316,7 +1316,7 @@ paths: description: This request manages deployment and locking of an automation composition instance. This endpoint can order deployment and undeployment of an AC Instance to participants and order unlocking and locking of AC instances on participants - operationId: ompositionInstanceState + operationId: compositionInstanceState parameters: - name : compositionId in: path diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java index c14d64069..cd6e021c5 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/AutomationCompositionInstantiationProviderTest.java @@ -40,7 +40,6 @@ import org.onap.policy.clamp.common.acm.exception.AutomationCompositionException import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider; @@ -117,32 +116,24 @@ class AutomationCompositionInstantiationProviderTest { assertThat(automationCompositionCreate) .isEqualTo(automationCompositionsGet.getAutomationCompositionList().get(0)); - var instanceUpdate = new InstantiationUpdate(); var automationCompositionUpdate = InstantiationUtils.getAutomationCompositionFromResource(AC_INSTANTIATION_UPDATE_JSON, "Crud"); automationCompositionUpdate.setCompositionId(compositionId); - instanceUpdate.setElements(automationCompositionUpdate.getElements()); when(acProvider.getAutomationComposition(automationCompositionUpdate.getInstanceId())) .thenReturn(automationCompositionUpdate); when(acProvider.updateAutomationComposition(automationCompositionUpdate)) .thenReturn(automationCompositionUpdate); - instantiationResponse = - instantiationProvider.updateAutomationComposition(automationCompositionUpdate.getCompositionId(), - automationCompositionUpdate.getInstanceId(), instanceUpdate); + instantiationResponse = instantiationProvider.updateAutomationComposition( + automationCompositionUpdate.getCompositionId(), automationCompositionUpdate); InstantiationUtils.assertInstantiationResponse(instantiationResponse, automationCompositionUpdate); verify(acProvider).updateAutomationComposition(automationCompositionUpdate); - var instanceUpdateCommand = new InstantiationUpdate(); var instantiationCommand = InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON); - instanceUpdateCommand.setInstantiationCommand(instantiationCommand); - instantiationResponse = - instantiationProvider.updateAutomationComposition(automationCompositionUpdate.getCompositionId(), - automationCompositionUpdate.getInstanceId(), instanceUpdateCommand); - InstantiationUtils.assertInstantiationResponse(instantiationResponse, automationCompositionUpdate); - + instantiationProvider.issueAutomationCompositionCommand(automationCompositionUpdate, + instantiationCommand); verify(supervisionHandler).triggerAutomationCompositionSupervision(automationCompositionUpdate); // in order to delete a automationComposition the state must be UNINITIALISED @@ -262,11 +253,8 @@ class AutomationCompositionInstantiationProviderTest { when(acProvider.getAutomationComposition(automationComposition.getInstanceId())) .thenReturn(automationComposition); - var instanceUpdate = new InstantiationUpdate(); - instanceUpdate.setElements(automationComposition.getElements()); - var instanceId = automationComposition.getInstanceId(); - assertThatThrownBy(() -> provider.updateAutomationComposition(compositionId, instanceId, instanceUpdate)) + assertThatThrownBy(() -> provider.updateAutomationComposition(compositionId, automationComposition)) .hasMessageMatching(AC_ELEMENT_NAME_NOT_FOUND); } @@ -288,17 +276,14 @@ class AutomationCompositionInstantiationProviderTest { assertThatThrownBy(() -> provider.createAutomationComposition(compositionId, automationComposition)) .hasMessageMatching(AC_DEFINITION_NOT_FOUND); - var instanceUpdate = new InstantiationUpdate(); - instanceUpdate.setElements(automationComposition.getElements()); - var instanceId = automationComposition.getInstanceId(); - assertThatThrownBy(() -> provider.updateAutomationComposition(compositionId, instanceId, instanceUpdate)) + assertThatThrownBy(() -> provider.updateAutomationComposition(compositionId, automationComposition)) .hasMessageMatching(AC_DEFINITION_NOT_FOUND); var wrongCompositionId = UUID.randomUUID(); assertThatThrownBy(() -> provider.createAutomationComposition(wrongCompositionId, automationComposition)) .hasMessageMatching(compositionId + DO_NOT_MATCH + wrongCompositionId); - assertThatThrownBy(() -> provider.updateAutomationComposition(wrongCompositionId, instanceId, instanceUpdate)) + assertThatThrownBy(() -> provider.updateAutomationComposition(wrongCompositionId, automationComposition)) .hasMessageMatching(compositionId + DO_NOT_MATCH + wrongCompositionId); } @@ -310,17 +295,12 @@ class AutomationCompositionInstantiationProviderTest { var acDefinitionProvider = mock(AcDefinitionProvider.class); var instantiationProvider = new AutomationCompositionInstantiationProvider(acProvider, supervisionHandler, participantProvider, acDefinitionProvider); - var instanceUpdate = new InstantiationUpdate(); - instanceUpdate.setInstantiationCommand(new InstantiationCommand()); var automationComposition = InstantiationUtils .getAutomationCompositionFromResource(AC_INSTANTIATION_AC_DEFINITION_NOT_FOUND_JSON, "AcNotFound"); when(acProvider.getAutomationComposition(automationComposition.getInstanceId())) .thenReturn(automationComposition); - var compositionId = automationComposition.getCompositionId(); - var instanceId = automationComposition.getInstanceId(); - assertThatThrownBy( - () -> instantiationProvider.updateAutomationComposition(compositionId, instanceId, instanceUpdate)) - .hasMessageMatching(ORDERED_STATE_INVALID); + assertThatThrownBy(() -> instantiationProvider.issueAutomationCompositionCommand(automationComposition, + new InstantiationCommand())).hasMessageMatching(ORDERED_STATE_INVALID); } } diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java index 9bc29d9ce..d3a3f3eb8 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/InstantiationControllerTest.java @@ -41,10 +41,10 @@ import org.onap.policy.clamp.acm.runtime.instantiation.InstantiationUtils; import org.onap.policy.clamp.acm.runtime.main.rest.InstantiationController; import org.onap.policy.clamp.acm.runtime.util.CommonTestData; import org.onap.policy.clamp.acm.runtime.util.rest.CommonRestController; +import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand; +import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AcInstanceStateUpdate; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider; import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionRepository; @@ -218,7 +218,6 @@ class InstantiationControllerTest extends CommonRestController { assertEquals(automationComposition, automationCompositionsQuery.getAutomationCompositionList().get(0)); } - @Disabled @Test void testUpdate() { var automationCompositionCreate = @@ -231,10 +230,8 @@ class InstantiationControllerTest extends CommonRestController { InstantiationUtils.getAutomationCompositionFromResource(AC_INSTANTIATION_UPDATE_JSON, "Update"); automationComposition.setCompositionId(compositionId); automationComposition.setInstanceId(response.getInstanceId()); - var instantiationUpdate = new InstantiationUpdate(); - instantiationUpdate.setElements(automationComposition.getElements()); - var invocationBuilder = super.sendRequest(getInstanceEndPoint(response.getInstanceId())); - var resp = invocationBuilder.put(Entity.json(automationComposition)); + var invocationBuilder = super.sendRequest(getInstanceEndPoint()); + var resp = invocationBuilder.post(Entity.json(automationComposition)); assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus()); var instResponse = resp.readEntity(InstantiationResponse.class); @@ -285,7 +282,7 @@ class InstantiationControllerTest extends CommonRestController { @Test void testCommand_NotFound1() { var invocationBuilder = super.sendRequest(getInstanceEndPoint(UUID.randomUUID())); - var resp = invocationBuilder.put(Entity.json(new InstantiationUpdate())); + var resp = invocationBuilder.post(Entity.json(new AutomationComposition())); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus()); } @@ -298,9 +295,9 @@ class InstantiationControllerTest extends CommonRestController { var instResponse = instantiationProvider.createAutomationComposition(compositionId, acFromRsc); - var command = new InstantiationUpdate(); - command.setInstantiationCommand(new InstantiationCommand()); - command.getInstantiationCommand().setOrderedState(null); + var command = new AcInstanceStateUpdate(); + command.setDeployOrder(null); + command.setLockOrder(null); var invocationBuilder = super.sendRequest(getInstanceEndPoint(instResponse.getInstanceId())); var resp = invocationBuilder.put(Entity.json(command)); @@ -320,9 +317,7 @@ class InstantiationControllerTest extends CommonRestController { participantProvider.saveParticipant(participant); } - var instantiationUpdate = new InstantiationUpdate(); - var command = InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON); - instantiationUpdate.setInstantiationCommand(command); + var instantiationUpdate = new AcInstanceStateUpdate(); var invocationBuilder = super.sendRequest(getInstanceEndPoint(instResponse.getInstanceId())); var resp = invocationBuilder.put(Entity.json(instantiationUpdate)); @@ -335,8 +330,6 @@ class InstantiationControllerTest extends CommonRestController { var automationCompositionsGet = instantiationProvider.getAutomationCompositions(compositionId, toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion()); assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1); - assertEquals(command.getOrderedState(), - automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState()); } private synchronized void deleteEntryInDB() { diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/stub/InstantiationControllerStubTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/stub/InstantiationControllerStubTest.java index afddc4d01..30c8ed173 100644 --- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/stub/InstantiationControllerStubTest.java +++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/instantiation/rest/stub/InstantiationControllerStubTest.java @@ -28,7 +28,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.onap.policy.clamp.acm.runtime.util.rest.CommonRestController; -import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationUpdate; +import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; +import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AcInstanceStateUpdate; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.web.server.LocalServerPort; @@ -44,7 +45,6 @@ class InstantiationControllerStubTest extends CommonRestController { private static final String INSTANTIATION_ENDPOINT = "instances"; private static final String COMPOSITION_ID = "1aeed185-a98b-45b6-af22-8d5d20485ea3"; private static final String INSTANCE_ID = "709c62b3-8918-41b9-a747-d21eb79c6c23"; - private static InstantiationUpdate instantiationUpdate = new InstantiationUpdate(); @LocalServerPort private int randomServerPort; @@ -79,7 +79,7 @@ class InstantiationControllerStubTest extends CommonRestController { + "/" + COMPOSITION_ID + "/" + INSTANTIATION_ENDPOINT + "/" + INSTANCE_ID); - var respPost = invocationBuilder.put(Entity.json(instantiationUpdate)); + var respPost = invocationBuilder.put(Entity.json(new AcInstanceStateUpdate())); assertThat(Response.Status.OK.getStatusCode()).isEqualTo(respPost.getStatus()); } @@ -88,7 +88,7 @@ class InstantiationControllerStubTest extends CommonRestController { var invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "/" + COMPOSITION_ID + "/" + INSTANTIATION_ENDPOINT); - var respPost = invocationBuilder.post(Entity.json(instantiationUpdate)); + var respPost = invocationBuilder.post(Entity.json(new AutomationComposition())); assertThat(Response.Status.OK.getStatusCode()).isEqualTo(respPost.getStatus()); } -- cgit 1.2.3-korg