aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaAutomationComposition.java23
-rw-r--r--models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java32
-rw-r--r--models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProviderTest.java10
3 files changed, 51 insertions, 14 deletions
diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaAutomationComposition.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaAutomationComposition.java
index 0bf6a9e1a..355fcaff0 100644
--- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaAutomationComposition.java
+++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/concepts/JpaAutomationComposition.java
@@ -202,6 +202,22 @@ public class JpaAutomationComposition extends Validated
@Override
public void fromAuthorative(@NonNull final AutomationComposition automationComposition) {
+ this.fromAuthorativeBase(automationComposition);
+ this.elements = new ArrayList<>(automationComposition.getElements().size());
+ for (var elementEntry : automationComposition.getElements().entrySet()) {
+ var jpaAutomationCompositionElement =
+ new JpaAutomationCompositionElement(elementEntry.getKey().toString(), this.instanceId);
+ jpaAutomationCompositionElement.fromAuthorative(elementEntry.getValue());
+ this.elements.add(jpaAutomationCompositionElement);
+ }
+ }
+
+ /**
+ * Set an instance of the persist concept to the equivalent values as the other concept without copy the elements.
+ *
+ * @param automationComposition the authorative concept
+ */
+ public void fromAuthorativeBase(@NonNull final AutomationComposition automationComposition) {
this.instanceId = automationComposition.getInstanceId().toString();
this.name = automationComposition.getName();
this.version = automationComposition.getVersion();
@@ -216,13 +232,6 @@ public class JpaAutomationComposition extends Validated
this.phase = automationComposition.getPhase();
this.description = automationComposition.getDescription();
this.stateChangeResult = automationComposition.getStateChangeResult();
- this.elements = new ArrayList<>(automationComposition.getElements().size());
- for (var elementEntry : automationComposition.getElements().entrySet()) {
- var jpaAutomationCompositionElement =
- new JpaAutomationCompositionElement(elementEntry.getKey().toString(), this.instanceId);
- jpaAutomationCompositionElement.fromAuthorative(elementEntry.getValue());
- this.elements.add(jpaAutomationCompositionElement);
- }
}
@Override
diff --git a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
index 8be12960b..ce258094a 100644
--- a/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProvider.java
@@ -117,6 +117,23 @@ public class AutomationCompositionProvider {
return result.toAuthorative();
}
+
+ /**
+ * Update automation composition state.
+ *
+ * @param acSource the automation composition to update
+ * @return the updated automation composition
+ */
+ public AutomationComposition updateAcState(final AutomationComposition acSource) {
+ var automationComposition = automationCompositionRepository
+ .getReferenceById(acSource.getInstanceId().toString());
+ automationComposition.fromAuthorativeBase(acSource);
+ var result = automationCompositionRepository.save(automationComposition);
+ automationCompositionRepository.flush();
+ // Return the saved automation composition
+ return result.toAuthorative();
+ }
+
/**
* Update automation composition.
*
@@ -232,12 +249,17 @@ public class AutomationCompositionProvider {
* Update AutomationCompositionElement.
*
* @param element the AutomationCompositionElement
- * @param instanceId the instance Id
*/
- public void updateAutomationCompositionElement(@NonNull final AutomationCompositionElement element,
- @NonNull final UUID instanceId) {
- var jpaAcElement = new JpaAutomationCompositionElement(element.getId().toString(), instanceId.toString());
- jpaAcElement.fromAuthorative(element);
+ public void updateAutomationCompositionElement(@NonNull final AutomationCompositionElement element) {
+ var jpaAcElement = acElementRepository.getReferenceById(element.getId().toString());
+ jpaAcElement.setMessage(element.getMessage());
+ jpaAcElement.setOutProperties(element.getOutProperties());
+ jpaAcElement.setOperationalState(element.getOperationalState());
+ jpaAcElement.setUseState(element.getUseState());
+ jpaAcElement.setDeployState(element.getDeployState());
+ jpaAcElement.setLockState(element.getLockState());
+ jpaAcElement.setRestarting(element.getRestarting());
+
ProviderUtils.validate(element, jpaAcElement, "AutomationCompositionElement");
acElementRepository.save(jpaAcElement);
}
diff --git a/models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProviderTest.java b/models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProviderTest.java
index 8e7e50de7..515dfaa83 100644
--- a/models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/models/acm/persistence/provider/AutomationCompositionProviderTest.java
@@ -225,12 +225,18 @@ class AutomationCompositionProviderTest {
var automationCompositionProvider = new AutomationCompositionProvider(
mock(AutomationCompositionRepository.class), acElementRepository);
- assertThatThrownBy(() -> automationCompositionProvider.updateAutomationCompositionElement(null, null))
+ assertThatThrownBy(() -> automationCompositionProvider.updateAutomationCompositionElement(null))
.hasMessageMatching(ACELEMENT_IS_NULL);
var acElement = inputAutomationCompositions.getAutomationCompositionList().get(0).getElements().values()
.iterator().next();
- automationCompositionProvider.updateAutomationCompositionElement(acElement, UUID.randomUUID());
+ var jpa = new JpaAutomationCompositionElement();
+ jpa.setElementId(acElement.getId().toString());
+ jpa.setInstanceId(UUID.randomUUID().toString());
+ jpa.fromAuthorative(acElement);
+ when(acElementRepository.getReferenceById(acElement.getId().toString())).thenReturn(jpa);
+
+ automationCompositionProvider.updateAutomationCompositionElement(acElement);
verify(acElementRepository).save(any());
}