-package org.argeo.slc.core.execution.tasks;\r
-\r
-import java.lang.reflect.Method;\r
-import java.util.UUID;\r
-\r
-import org.argeo.slc.SlcException;\r
-import org.argeo.slc.deploy.DeployedSystem;\r
-import org.argeo.slc.deploy.DeployedSystemManager;\r
-import org.argeo.slc.process.SlcExecution;\r
-import org.argeo.slc.process.SlcExecutionRelated;\r
-import org.argeo.slc.process.SlcExecutionStep;\r
-import org.argeo.slc.structure.StructureRegistry;\r
-\r
-public class SlcManagerTask implements Runnable, SlcExecutionRelated {\r
- private String uuid;\r
- private String slcExecutionUuid;\r
- private String slcExecutionStepUuid;\r
- \r
- private String action;\r
- private DeployedSystemManager<DeployedSystem> manager;\r
-\r
- public final void run() {\r
- uuid = UUID.randomUUID().toString();\r
- executeActions(StructureRegistry.ALL);\r
- }\r
- \r
- protected void executeActions(String mode) {\r
- try {\r
- Method method = manager.getClass().getMethod(action, null);\r
- method.invoke(manager, null);\r
- } catch (Exception e) {\r
- throw new SlcException("Cannot execute action " + action\r
- + " for manager " + manager, e);\r
- }\r
- }\r
- \r
- public void setAction(String action) {\r
- this.action = action;\r
- }\r
-\r
- public void setManager(DeployedSystemManager<DeployedSystem> manager) {\r
- this.manager = manager;\r
- }\r
-\r
- public String getUuid() {\r
- return uuid;\r
- }\r
-\r
- public void setUuid(String uuid) {\r
- this.uuid = uuid;\r
- }\r
-\r
- public String getSlcExecutionUuid() {\r
- return slcExecutionUuid;\r
- }\r
-\r
- public void setSlcExecutionUuid(String slcExecutionUuid) {\r
- this.slcExecutionUuid = slcExecutionUuid;\r
- }\r
-\r
- public String getSlcExecutionStepUuid() {\r
- return slcExecutionStepUuid;\r
- }\r
-\r
- public void setSlcExecutionStepUuid(String slcExecutionStepUuid) {\r
- this.slcExecutionStepUuid = slcExecutionStepUuid;\r
- }\r
- \r
- public void notifySlcExecution(SlcExecution slcExecution) {\r
- if (slcExecution != null) {\r
- slcExecutionUuid = slcExecution.getUuid();\r
- SlcExecutionStep step = slcExecution.currentStep();\r
- if (step != null) {\r
- slcExecutionStepUuid = step.getUuid();\r
- }\r
- }\r
- }\r
-}\r