/**
* Wrapper of AutomationCompositionElementListener.
* Valid since 7.1.1 release.
*/
public abstract class AcElementListenerV1 implements AutomationCompositionElementListener {
protected final ParticipantIntermediaryApi intermediaryApi;
protected AcElementListenerV1(ParticipantIntermediaryApi intermediaryApi) {
this.intermediaryApi = intermediaryApi;
}
@Override
public void deploy(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElement.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setToscaServiceTemplateFragment(instanceElement.toscaServiceTemplateFragment());
element.setProperties(instanceElement.inProperties());
Map<String, Object> properties = new HashMap<>(instanceElement.inProperties());
properties.putAll(compositionElement.inProperties());
deploy(instanceElement.instanceId(), element, properties);
}
public abstract void deploy(UUID instanceId, AcElementDeploy element, Map<String, Object> properties)
throws PfModelException;
@Override
public void undeploy(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
undeploy(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void undeploy(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void lock(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
lock(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void lock(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void unlock(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
unlock(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void unlock(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void delete(CompositionElementDto compositionElement, InstanceElementDto instanceElement)
throws PfModelException {
delete(instanceElement.instanceId(), instanceElement.elementId());
}
public abstract void delete(UUID instanceId, UUID elementId) throws PfModelException;
@Override
public void update(CompositionElementDto compositionElement, InstanceElementDto instanceElement,
InstanceElementDto instanceElementUpdated) throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElementUpdated.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setProperties(instanceElementUpdated.inProperties());
update(instanceElementUpdated.instanceId(), element, element.getProperties());
}
public abstract void update(UUID instanceId, AcElementDeploy element, Map<String, Object> properties)
throws PfModelException;
private List<AutomationCompositionElementDefinition> createAcElementDefinitionList(CompositionDto composition) {
List<AutomationCompositionElementDefinition> elementDefinitionList = new ArrayList<>();
for (var entry : composition.inPropertiesMap().entrySet()) {
elementDefinitionList.add(createAcElementDefinition(entry.getKey(), entry.getValue(),
composition.outPropertiesMap().get(entry.getKey())));
}
return elementDefinitionList;
}
private AutomationCompositionElementDefinition createAcElementDefinition(
ToscaConceptIdentifier toscaConceptIdentifier, Map<String, Object> property,
Map<String, Object> outProperties) {
var acElementDefinition = new AutomationCompositionElementDefinition();
acElementDefinition.setAcElementDefinitionId(toscaConceptIdentifier);
var toscaNodeTemplate = new ToscaNodeTemplate();
toscaNodeTemplate.setProperties(property);
acElementDefinition.setAutomationCompositionElementToscaNodeTemplate(toscaNodeTemplate);
acElementDefinition.setOutProperties(outProperties);
return acElementDefinition;
}
@Override
public void prime(CompositionDto composition) throws PfModelException {
prime(composition.compositionId(), createAcElementDefinitionList(composition));
}
public abstract void prime(UUID compositionId, List<AutomationCompositionElementDefinition> elementDefinitionList)
throws PfModelException;
@Override
public void deprime(CompositionDto composition) throws PfModelException {
deprime(composition.compositionId());
}
public abstract void deprime(UUID compositionId) throws PfModelException;
@Override
public void handleRestartComposition(CompositionDto composition, AcTypeState state) throws PfModelException {
handleRestartComposition(composition.compositionId(), createAcElementDefinitionList(composition), state);
}
//public abstract void handleRestartComposition(UUID compositionId,
// List<AutomationCompositionElementDefinition> elementDefinitionList,
// AcTypeState state) throws PfModelException;
public void handleRestartComposition(UUID compositionId,
List<AutomationCompositionElementDefinition> elementDefinitionList, AcTypeState state) throws PfModelException {
switch List<AutomationCompositionElementDefinition> elementDefinitionList,(state) {
case PRIMING -> prime(compositionId, elementDefinitionList);
case DEPRIMING -> deprime(compositionId);
default ->
AcTypeState intermediaryApi.updateCompositionState(compositionId, state) throws PfModelException;
, StateChangeResult.NO_ERROR, "Restarted");
}
}
@Override
public void handleRestartInstance(CompositionElementDto compositionElement, InstanceElementDto instanceElement,
DeployState deployState, LockState lockState) throws PfModelException {
var element = new AcElementDeploy();
element.setId(instanceElement.elementId());
element.setDefinition(compositionElement.elementDefinitionId());
element.setProperties(instanceElement.inProperties());
Map<String, Object> properties = new HashMap<>(instanceElement.inProperties());
properties.putAll(compositionElement.inProperties());
handleRestartInstance(instanceElement.instanceId(), element, properties, deployState, lockState);
}
//public abstract void handleRestartInstance(UUID instanceId, AcElementDeploy element,
// Map<String, Object> properties, DeployState deployState, LockState lockState) throws PfModelException;
@Override
public void migratehandleRestartInstance(CompositionElementDtoUUID compositionElementinstanceId, CompositionElementDtoAcElementDeploy compositionElementTargetelement,
InstanceElementDto instanceElementMap<String, Object> properties, DeployState deployState, InstanceElementDtoLockState instanceElementMigratelockState) throws PfModelException {
if var element = new AcElementDeploy();
(DeployState.DEPLOYING.equals(deployState)) {
deploy(instanceId, element.setId(instanceElement.elementId(), properties);
element.setDefinition(compositionElement.elementDefinitionId());
return;
}
element.setProperties(instanceElement.inProperties()); if (DeployState.UNDEPLOYING.equals(deployState)) {
migrate(instanceElementMigrate.instanceId() undeploy(instanceId, element, compositionElementTarget.compositionIdgetId(),);
element.getProperties())return;
}
public abstract void migrate(UUID instanceId, AcElementDeploy element, UUID compositionTargetId,
if (DeployState.UPDATING.equals(deployState)) {
update(instanceId, element, properties);
return;
}
Map<String, Object> properties) throws PfModelException;
if @Override(DeployState.DELETING.equals(deployState)) {
public void migratePrecheck(CompositionElementDto compositionElement,
delete(instanceId, element.getId());
CompositionElementDto compositionElementTarget, InstanceElementDto instanceElement,
return;
InstanceElementDto instanceElementMigrate) throws PfModelException {}
if intermediaryApi.updateAutomationCompositionElementState(instanceElementMigrate.instanceId(),(LockState.LOCKING.equals(lockState)) {
instanceElementMigrate.elementIdlock()instanceId, DeployState.DEPLOYED, null, StateChangeResult.NO_ERROR,
element.getId());
return;
}
"Migrate precheck not supported");if (LockState.UNLOCKING.equals(lockState)) {
}
}
|