diff options
author | FrancescoFioraEst <francesco.fiora@est.tech> | 2023-01-04 17:04:37 +0000 |
---|---|---|
committer | FrancescoFioraEst <francesco.fiora@est.tech> | 2023-01-06 08:52:36 +0000 |
commit | 026cfefbe02cfc87c04f13d4b5ce7085f3ee360b (patch) | |
tree | 23566f2de245403b1fd0cc31978bced13eaec3ea /models/src/main | |
parent | bce4edfb6a9140a07d12470d977352d7b3a4105c (diff) |
Refactor register deregister a Participant and Supervise Participants
Refactor register deregister a Participant and Supervise
Participants using ON_LINE/OFF_LINE as Participant Status.
Issue-ID: POLICY-4497
Change-Id: If9c5b92131c99132c18340e56334fb9453745526
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'models/src/main')
6 files changed, 34 insertions, 168 deletions
diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/Participant.java b/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/Participant.java index 1a8fbc409..6a523fa75 100644 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/Participant.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/Participant.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021-2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,10 +39,7 @@ public class Participant extends ToscaEntity implements Comparable<Participant> private ToscaConceptIdentifier definition = new ToscaConceptIdentifier(PfConceptKey.getNullKey()); @NonNull - private ParticipantState participantState = ParticipantState.UNKNOWN; - - @NonNull - private ParticipantHealthStatus healthStatus = ParticipantHealthStatus.UNKNOWN; + private ParticipantState participantState = ParticipantState.ON_LINE; @NonNull private ToscaConceptIdentifier participantType = new ToscaConceptIdentifier(); @@ -71,7 +68,6 @@ public class Participant extends ToscaEntity implements Comparable<Participant> super(otherParticipant); this.definition = new ToscaConceptIdentifier(otherParticipant.definition); this.participantState = otherParticipant.participantState; - this.healthStatus = otherParticipant.healthStatus; this.participantType = otherParticipant.participantType; } } diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantHealthStatus.java b/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantHealthStatus.java deleted file mode 100644 index f8cc0a852..000000000 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantHealthStatus.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.clamp.models.acm.concepts; - -/** - * Class to hold the possible values for health status of Participant. - */ -public enum ParticipantHealthStatus { - - /** - * Participant is healthy and working fine. - */ - HEALTHY, - - /** - * Participant is not healthy. - */ - NOT_HEALTHY, - - /** - * Participant is currently under test state and performing tests. - */ - TEST_IN_PROGRESS, - - /** - * The health status of the Participant is unknown. - */ - UNKNOWN, - - /** - * The health status of the Participant is off line. - */ - OFF_LINE -} diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantState.java b/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantState.java index 4ab42c697..30dc69a06 100644 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantState.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantState.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021-2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,36 +25,12 @@ package org.onap.policy.clamp.models.acm.concepts; */ public enum ParticipantState { /** - * Participant state is unknown. + * Participant state is online. */ - UNKNOWN, + ON_LINE, /** - * Participant is passive, automation composition element execution is always rejected. + * Participant is offline, automation composition element execution is always rejected. */ - PASSIVE, - - /** - * Automation composition element execution execution proceeds, but changes to domain state or context are not - * carried out. The participant returns an indication that it is running in SAFE mode together with the action it - * would have performed if it was operating in ACTIVE mode. - */ - SAFE, - - /** - * Automation composition element execution execution proceeds and changes to domain and state are carried out in a - * test environment. The participant returns an indication that it is running in TEST mode together with the action - * it has performed on the test environment. - */ - TEST, - - /** - * Automation composition element execution is executed in the live environment by the participant. - */ - ACTIVE, - - /** - * Automation composition element execution has been terminated. - */ - TERMINATED + OFF_LINE } diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/ParticipantStatus.java b/models/src/main/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/ParticipantStatus.java index 1d57c24e8..31a42c548 100644 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/ParticipantStatus.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/ParticipantStatus.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021-2022 Nordix Foundation. + * Copyright (C) 2021-2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ import lombok.Setter; import lombok.ToString; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionInfo; import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition; -import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus; import org.onap.policy.clamp.models.acm.concepts.ParticipantState; import org.onap.policy.models.base.PfUtils; @@ -41,7 +40,6 @@ public class ParticipantStatus extends ParticipantMessage { // State and health status of the participant private ParticipantState state; - private ParticipantHealthStatus healthStatus; // A list of ParticipantDefinition updates, returned in response to ParticipantStatusReq only private List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>(); @@ -66,7 +64,6 @@ public class ParticipantStatus extends ParticipantMessage { super(source); this.state = source.state; - this.healthStatus = source.healthStatus; this.participantDefinitionUpdates = PfUtils.mapList(source.participantDefinitionUpdates, ParticipantDefinition::new); this.automationCompositionInfoList = diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaParticipant.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaParticipant.java index 143499c0d..aec2d32d3 100644 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaParticipant.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaParticipant.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021-2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,7 +34,6 @@ import lombok.EqualsAndHashCode; import lombok.NonNull; import org.apache.commons.lang3.ObjectUtils; import org.onap.policy.clamp.models.acm.concepts.Participant; -import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus; import org.onap.policy.clamp.models.acm.concepts.ParticipantState; import org.onap.policy.common.parameters.annotations.NotNull; import org.onap.policy.models.base.PfAuthorative; @@ -80,10 +79,6 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa private ParticipantState participantState; @Column - @NotNull - private ParticipantHealthStatus healthStatus; - - @Column private String description; /** @@ -99,7 +94,7 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa * @param key the key */ public JpaParticipant(@NonNull final PfConceptKey key) { - this(key, new PfConceptKey(), ParticipantState.PASSIVE, ParticipantHealthStatus.UNKNOWN); + this(key, new PfConceptKey(), ParticipantState.ON_LINE); } /** @@ -108,14 +103,12 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa * @param key the key * @param definition the TOSCA definition of the participant * @param participantState the state of the participant - * @param healthStatus the health state of the participant */ public JpaParticipant(@NonNull final PfConceptKey key, @NonNull final PfConceptKey definition, - @NonNull final ParticipantState participantState, @NonNull ParticipantHealthStatus healthStatus) { + @NonNull final ParticipantState participantState) { this.key = key; this.definition = definition; this.participantState = participantState; - this.healthStatus = healthStatus; } /** @@ -128,7 +121,6 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa this.key = new PfConceptKey(copyConcept.key); this.definition = new PfConceptKey(copyConcept.definition); this.participantState = copyConcept.participantState; - this.healthStatus = copyConcept.healthStatus; this.description = copyConcept.description; this.participantType = copyConcept.participantType; } @@ -150,7 +142,6 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa participant.setVersion(key.getVersion()); participant.setDefinition(new ToscaConceptIdentifier(definition)); participant.setParticipantState(participantState); - participant.setHealthStatus(healthStatus); participant.setDescription(description); participant.setParticipantType(new ToscaConceptIdentifier(participantType)); @@ -165,7 +156,6 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa this.definition = participant.getDefinition().asConceptKey(); this.setParticipantState(participant.getParticipantState()); - this.setHealthStatus(participant.getHealthStatus()); this.setDescription(participant.getDescription()); this.participantType = participant.getParticipantType().asConceptKey(); } @@ -216,11 +206,6 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa return result; } - result = ObjectUtils.compare(healthStatus, other.healthStatus); - if (result != 0) { - return result; - } - result = ObjectUtils.compare(participantType, other.participantType); if (result != 0) { return result; diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/ParticipantProvider.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/ParticipantProvider.java index 6e3b56d56..3f7e297a4 100644 --- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/ParticipantProvider.java +++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/ParticipantProvider.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021-2022 Nordix Foundation. + * Copyright (C) 2021-2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,15 +23,13 @@ package org.onap.policy.clamp.models.acm.persistence.provider; import java.util.List; import java.util.Optional; import javax.ws.rs.core.Response.Status; -import lombok.AllArgsConstructor; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import org.onap.policy.clamp.models.acm.concepts.Participant; import org.onap.policy.clamp.models.acm.persistence.concepts.JpaParticipant; import org.onap.policy.clamp.models.acm.persistence.repository.ParticipantRepository; -import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.base.PfModelRuntimeException; -import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter; +import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,10 +38,10 @@ import org.springframework.transaction.annotation.Transactional; */ @Service @Transactional -@AllArgsConstructor +@RequiredArgsConstructor public class ParticipantProvider { - private ParticipantRepository participantRepository; + private final ParticipantRepository participantRepository; /** * Get participants. @@ -71,32 +69,12 @@ public class ParticipantProvider { /** * Get participant. * - * @param name the name of the participant to get - * @param version the version of the participant to get + * @param participantId the Id of the participant to get * @return the participant found - * @throws PfModelException on errors getting participant */ @Transactional(readOnly = true) - public Optional<Participant> findParticipant(@NonNull final String name, @NonNull final String version) - throws PfModelException { - try { - return participantRepository.findById(new PfConceptKey(name, version)).map(JpaParticipant::toAuthorative); - } catch (IllegalArgumentException e) { - throw new PfModelException(Status.BAD_REQUEST, "Error in find Participant", e); - } - } - - /** - * Get filtered participants. - * - * @param filter the filter for the participants to get - * @return the participants found - */ - @Transactional(readOnly = true) - public List<Participant> getFilteredParticipants(@NonNull final ToscaTypedEntityFilter<Participant> filter) { - - return filter.filter(ProviderUtils.asEntityList( - participantRepository.getFiltered(JpaParticipant.class, filter.getName(), filter.getVersion()))); + public Optional<Participant> findParticipant(@NonNull final ToscaConceptIdentifier participantId) { + return participantRepository.findById(participantId.asConceptKey()).map(JpaParticipant::toAuthorative); } /** @@ -104,45 +82,31 @@ public class ParticipantProvider { * * @param participant participant to save * @return the participant created - * @throws PfModelException on errors creating participants */ - public Participant saveParticipant(@NonNull final Participant participant) throws PfModelException { - try { - var result = participantRepository - .save(ProviderUtils.getJpaAndValidate(participant, JpaParticipant::new, "participant")); + public Participant saveParticipant(@NonNull final Participant participant) { + var result = participantRepository + .save(ProviderUtils.getJpaAndValidate(participant, JpaParticipant::new, "participant")); - // Return the saved participant - return result.toAuthorative(); - } catch (IllegalArgumentException e) { - throw new PfModelException(Status.BAD_REQUEST, "Error in save Participant", e); - } + // Return the saved participant + return result.toAuthorative(); } /** * Delete a participant. * - * @param name the name of the participant to delete - * @param version the version of the participant to get + * @param participantId the Id of the participant to delete * @return the participant deleted - * @throws PfModelRuntimeException on errors deleting participants */ - public Participant deleteParticipant(@NonNull final String name, @NonNull final String version) - throws PfModelException { - try { - var participantKey = new PfConceptKey(name, version); + public Participant deleteParticipant(@NonNull final ToscaConceptIdentifier participantId) { + var jpaDeleteParticipantOpt = participantRepository.findById(participantId.asConceptKey()); - var jpaDeleteParticipantOpt = participantRepository.findById(participantKey); - - if (jpaDeleteParticipantOpt.isEmpty()) { - String errorMessage = - "delete of participant \"" + participantKey.getId() + "\" failed, participant does not exist"; - throw new PfModelRuntimeException(Status.BAD_REQUEST, errorMessage); - } - participantRepository.delete(jpaDeleteParticipantOpt.get()); - - return jpaDeleteParticipantOpt.get().toAuthorative(); - } catch (IllegalArgumentException e) { - throw new PfModelException(Status.BAD_REQUEST, "Error in delete Participant", e); + if (jpaDeleteParticipantOpt.isEmpty()) { + String errorMessage = + "delete of participant \"" + participantId + "\" failed, participant does not exist"; + throw new PfModelRuntimeException(Status.BAD_REQUEST, errorMessage); } + participantRepository.delete(jpaDeleteParticipantOpt.get()); + + return jpaDeleteParticipantOpt.get().toAuthorative(); } } |