aboutsummaryrefslogtreecommitdiffstats
path: root/models/src/main/java
diff options
context:
space:
mode:
authorFrancescoFioraEst <francesco.fiora@est.tech>2023-01-04 17:04:37 +0000
committerFrancescoFioraEst <francesco.fiora@est.tech>2023-01-06 08:52:36 +0000
commit026cfefbe02cfc87c04f13d4b5ce7085f3ee360b (patch)
tree23566f2de245403b1fd0cc31978bced13eaec3ea /models/src/main/java
parentbce4edfb6a9140a07d12470d977352d7b3a4105c (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/java')
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/concepts/Participant.java8
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantHealthStatus.java52
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/concepts/ParticipantState.java34
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/messages/dmaap/participant/ParticipantStatus.java5
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaParticipant.java21
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/ParticipantProvider.java82
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();
}
}