Search in sources :

Example 1 with ChangeRepositoryComponentAction

use of org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction in project iobserve-analysis by research-iobserve.

the class ComposedActionComputationTest method testChangeRepositoryRule.

/**
 * Test change repository rule.
 *
 * @throws Exception
 *             on internal errors.
 */
@Test
public void testChangeRepositoryRule() throws Exception {
    final AdaptationData adaptationData;
    final ComponentNode runtimeNode;
    final ComponentNode redeploymentNode;
    final SystemAdaptation actualOutput;
    final ChangeRepositoryComponentAction actualAction;
    final ChangeRepositoryComponentAction expectedAction;
    // Perform change of component
    this.redeploymentModel.changeRepositoryCompBxToCompBy();
    adaptationData = this.createAdaptationData();
    // Create expected output
    runtimeNode = this.findComponentNodeByID(this.runtimeModel.getAlcxtBRc1().getId(), adaptationData.getRuntimeGraph().getComponents());
    redeploymentNode = this.findComponentNodeByID(this.redeploymentModel.getAlcxtBRc1().getId(), adaptationData.getReDeploymentGraph().getComponents());
    expectedAction = AssemblyContextActionFactory.generateChangeRepositoryComponentAction(runtimeNode, redeploymentNode);
    // Execute stage
    actualOutput = this.executeStage(adaptationData);
    Assert.assertThat(actualOutput.getActions().size(), Matchers.is(1));
    Assert.assertTrue(actualOutput.getActions().get(0) instanceof ChangeRepositoryComponentAction);
    actualAction = (ChangeRepositoryComponentAction) actualOutput.getActions().get(0);
    Assert.assertThat(actualAction.getTargetAllocationContext(), Matchers.is(expectedAction.getTargetAllocationContext()));
    Assert.assertThat(actualAction.getTargetProvidingAllocationContexts(), Matchers.is(expectedAction.getTargetProvidingAllocationContexts()));
    Assert.assertThat(actualAction.getTargetRequiringAllocationContexts(), Matchers.is(expectedAction.getTargetRequiringAllocationContexts()));
    Assert.assertThat(actualAction.getSourceAllocationContext(), Matchers.is(expectedAction.getSourceAllocationContext()));
}
Also used : SystemAdaptation(org.iobserve.planning.systemadaptation.SystemAdaptation) AdaptationData(org.iobserve.adaptation.data.AdaptationData) ComponentNode(org.iobserve.adaptation.data.graph.ComponentNode) ChangeRepositoryComponentAction(org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction) Test(org.junit.Test)

Example 2 with ChangeRepositoryComponentAction

use of org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction in project iobserve-analysis by research-iobserve.

the class AdaptationPlanning method printAction.

private String printAction(final ComposedAction action) {
    final StringBuilder sb = new StringBuilder(200);
    if (action instanceof AllocateAction) {
        final AllocateAction allocate = (AllocateAction) action;
        sb.append("Allocate:\t").append(allocate.getTargetResourceContainer().getEntityName());
        sb.append("\tID: ").append(allocate.getTargetResourceContainer().getId());
    } else if (action instanceof DeallocateAction) {
        final DeallocateAction deallocate = (DeallocateAction) action;
        sb.append("Deallocate:\t").append(deallocate.getTargetResourceContainer().getEntityName());
        sb.append("\tID: ").append(deallocate.getTargetResourceContainer().getId());
    } else if (action instanceof ReplicateAction) {
        final ReplicateAction replicate = (ReplicateAction) action;
        sb.append("Replicate:\t").append(replicate.getSourceAllocationContext().getAssemblyContext_AllocationContext().getEntityName());
        sb.append("\tID: ").append(replicate.getSourceAllocationContext().getAssemblyContext_AllocationContext().getId());
        sb.append("\t ------- ");
        sb.append("\t->\t").append(replicate.getTargetAllocationContext().getEntityName());
    } else if (action instanceof MigrateAction) {
        final MigrateAction migrate = (MigrateAction) action;
        sb.append("Migrate:\t").append(migrate.getSourceAllocationContext().getAssemblyContext_AllocationContext().getEntityName());
        sb.append("\tID: ").append(migrate.getSourceAllocationContext().getAssemblyContext_AllocationContext().getId());
        sb.append('\t').append(migrate.getSourceAllocationContext().getResourceContainer_AllocationContext().getEntityName());
        sb.append("\t->\t").append(migrate.getTargetAllocationContext().getResourceContainer_AllocationContext().getEntityName());
    } else if (action instanceof ChangeRepositoryComponentAction) {
        final ChangeRepositoryComponentAction change = (ChangeRepositoryComponentAction) action;
        sb.append("ChangeComp:\t").append(change.getTargetAllocationContext().getAssemblyContext_AllocationContext().getEntityName());
        sb.append("\tID: ").append(change.getTargetAllocationContext().getAssemblyContext_AllocationContext().getId());
        sb.append('\t').append(change.getSourceAllocationContext().getAssemblyContext_AllocationContext().getEncapsulatedComponent__AssemblyContext().getEntityName());
        sb.append("\t->\t").append(change.getTargetAllocationContext().getAssemblyContext_AllocationContext().getEncapsulatedComponent__AssemblyContext().getEntityName());
    } else if (action instanceof DereplicateAction) {
        final DereplicateAction dereplicate = (DereplicateAction) action;
        sb.append("Dereplicate:\t").append(dereplicate.getTargetAllocationContext().getAssemblyContext_AllocationContext().getEntityName());
        sb.append("\tID: ").append(dereplicate.getTargetAllocationContext().getAssemblyContext_AllocationContext().getId());
    } else {
        sb.append("UNKOWN:\t" + " ------------------------------------ ");
        sb.append("\tID: " + " ------------------------------------ ");
    }
    return sb.toString();
}
Also used : DereplicateAction(org.iobserve.planning.systemadaptation.DereplicateAction) DeallocateAction(org.iobserve.planning.systemadaptation.DeallocateAction) AllocateAction(org.iobserve.planning.systemadaptation.AllocateAction) ReplicateAction(org.iobserve.planning.systemadaptation.ReplicateAction) MigrateAction(org.iobserve.planning.systemadaptation.MigrateAction) ChangeRepositoryComponentAction(org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction)

Example 3 with ChangeRepositoryComponentAction

use of org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction in project iobserve-analysis by research-iobserve.

the class AssemblyContextActionFactory method generateChangeRepositoryComponentAction.

/**
 * Create a change repository component action.
 *
 * @param runtimeNode
 *            node to be changed
 * @param reDeploymentNode
 *            target node
 * @return returns the composed action
 */
public static ChangeRepositoryComponentAction generateChangeRepositoryComponentAction(final ComponentNode runtimeNode, final ComponentNode reDeploymentNode) {
    final ChangeRepositoryComponentAction action = SystemadaptationFactory.eINSTANCE.createChangeRepositoryComponentAction();
    final Allocation runtimeAllocation = ActionFactory.getRuntimeModels().getAllocationModel();
    final Allocation redeploymentAllocation = ActionFactory.getRedeploymentModels().getAllocationModel();
    final System redeploymentSystem = ActionFactory.getRedeploymentModels().getSystemModel();
    AssemblyContextActionFactory.initializeAssemblyContextAction(action, reDeploymentNode, redeploymentAllocation, redeploymentSystem);
    action.setSourceAllocationContext(ActionFactory.getAllocationContext(runtimeNode.getAllocationContextID(), runtimeAllocation));
    return action;
}
Also used : Allocation(org.palladiosimulator.pcm.allocation.Allocation) System(org.palladiosimulator.pcm.system.System) ChangeRepositoryComponentAction(org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction)

Example 4 with ChangeRepositoryComponentAction

use of org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction in project iobserve-analysis by research-iobserve.

the class AdaptationPlanning method printAction.

private String printAction(final Action action) {
    final StringBuilder sb = new StringBuilder(200);
    if (action instanceof AcquireAction) {
        final AcquireAction acquire = (AcquireAction) action;
        sb.append("Acquire:\t").append(acquire.getSourceResourceContainer().getEntityName());
        sb.append("\tID: ").append(acquire.getSourceResourceContainer().getId());
    } else if (action instanceof TerminateAction) {
        final TerminateAction terminate = (TerminateAction) action;
        sb.append("Terminate:\t").append(terminate.getSourceResourceContainer().getEntityName());
        sb.append("\tID: ").append(terminate.getSourceResourceContainer().getId());
    } else if (action instanceof AllocateAction) {
        final AllocateAction allocate = (AllocateAction) action;
        sb.append("Allocate:\t").append(allocate.getSourceAssemblyContext().getEntityName());
        sb.append("\tID: ").append(allocate.getSourceAssemblyContext().getId());
        sb.append("\t ------- ");
        sb.append("\t->\t").append(allocate.getNewAllocationContext().getEntityName());
    } else if (action instanceof MigrateAction) {
        final MigrateAction migrate = (MigrateAction) action;
        sb.append("Migrate:\t").append(migrate.getSourceAssemblyContext().getEntityName());
        sb.append("\tID: ").append(migrate.getSourceAssemblyContext().getId());
        sb.append('\t').append(migrate.getSourceAllocationContext().getResourceContainer_AllocationContext().getEntityName());
        sb.append("\t->\t").append(migrate.getNewAllocationContext().getResourceContainer_AllocationContext().getEntityName());
    } else if (action instanceof ChangeRepositoryComponentAction) {
        final ChangeRepositoryComponentAction change = (ChangeRepositoryComponentAction) action;
        sb.append("ChangeComp:\t").append(change.getSourceAssemblyContext().getEntityName());
        sb.append("\tID: ").append(change.getSourceAssemblyContext().getId());
        sb.append('\t').append(change.getSourceAssemblyContext().getEncapsulatedComponent__AssemblyContext().getEntityName());
        sb.append("\t->\t").append(change.getNewRepositoryComponent().getEntityName());
    } else if (action instanceof DeallocateAction) {
        final DeallocateAction deAllocate = (DeallocateAction) action;
        sb.append("Deallocate:\t").append(deAllocate.getSourceAssemblyContext().getEntityName());
        sb.append("\tID: ").append(deAllocate.getSourceAssemblyContext().getId());
    } else {
        sb.append("UNKOWN:\t" + " ------------------------------------ ");
        sb.append("\tID: " + " ------------------------------------ ");
    }
    return sb.toString();
}
Also used : AcquireAction(org.iobserve.planning.systemadaptation.AcquireAction) TerminateAction(org.iobserve.planning.systemadaptation.TerminateAction) DeallocateAction(org.iobserve.planning.systemadaptation.DeallocateAction) AllocateAction(org.iobserve.planning.systemadaptation.AllocateAction) MigrateAction(org.iobserve.planning.systemadaptation.MigrateAction) ChangeRepositoryComponentAction(org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction)

Example 5 with ChangeRepositoryComponentAction

use of org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction in project iobserve-analysis by research-iobserve.

the class AtomicActionComputationTest method testChangeComponent2AtomicActions.

/**
 * Replace component action conversion to atomic actions.
 *
 * @throws Exception
 *             on internal errors
 */
@Test
public void testChangeComponent2AtomicActions() throws Exception {
    final SystemAdaptation systemAdaptationModel = SystemadaptationFactory.eINSTANCE.createSystemAdaptation();
    final ExecutionPlan executionPlan;
    final ComponentNode runtimeNode;
    final ComponentNode redeploymentNode;
    final ChangeRepositoryComponentAction changeComponentAction;
    // Change component specific setup
    this.redeploymentModel.changeRepositoryCompBxToCompBy();
    this.initializeModelGraphs();
    runtimeNode = this.findComponentNodeByID(this.runtimeModel.getAlcxtBRc1().getId(), this.runtimeModelGraph.getComponents());
    redeploymentNode = this.findComponentNodeByID(this.redeploymentModel.getAlcxtBRc1().getId(), this.redeploymentModelGraph.getComponents());
    changeComponentAction = AssemblyContextActionFactory.generateChangeRepositoryComponentAction(runtimeNode, redeploymentNode);
    systemAdaptationModel.getActions().add(changeComponentAction);
    // Execute stage
    executionPlan = this.executeStage(systemAdaptationModel);
    // Basic verification
    Assert.assertThat(executionPlan.getActions().size(), Matchers.is(7));
    Assert.assertTrue(executionPlan.getActions().get(0) instanceof DeployComponentAction);
    Assert.assertTrue(executionPlan.getActions().get(1) instanceof MigrateComponentStateAction);
    Assert.assertTrue(executionPlan.getActions().get(2) instanceof ConnectComponentAction);
    Assert.assertTrue(executionPlan.getActions().get(3) instanceof BlockRequestsToComponentAction);
    Assert.assertTrue(executionPlan.getActions().get(4) instanceof FinishComponentAction);
    Assert.assertTrue(executionPlan.getActions().get(5) instanceof DisconnectComponentAction);
    Assert.assertTrue(executionPlan.getActions().get(6) instanceof UndeployComponentAction);
}
Also used : SystemAdaptation(org.iobserve.planning.systemadaptation.SystemAdaptation) ExecutionPlan(org.iobserve.adaptation.executionplan.ExecutionPlan) UndeployComponentAction(org.iobserve.adaptation.executionplan.UndeployComponentAction) BlockRequestsToComponentAction(org.iobserve.adaptation.executionplan.BlockRequestsToComponentAction) MigrateComponentStateAction(org.iobserve.adaptation.executionplan.MigrateComponentStateAction) ConnectComponentAction(org.iobserve.adaptation.executionplan.ConnectComponentAction) FinishComponentAction(org.iobserve.adaptation.executionplan.FinishComponentAction) DisconnectComponentAction(org.iobserve.adaptation.executionplan.DisconnectComponentAction) ComponentNode(org.iobserve.adaptation.data.graph.ComponentNode) ChangeRepositoryComponentAction(org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction) DeployComponentAction(org.iobserve.adaptation.executionplan.DeployComponentAction) Test(org.junit.Test)

Aggregations

ChangeRepositoryComponentAction (org.iobserve.planning.systemadaptation.ChangeRepositoryComponentAction)5 ComponentNode (org.iobserve.adaptation.data.graph.ComponentNode)2 AllocateAction (org.iobserve.planning.systemadaptation.AllocateAction)2 DeallocateAction (org.iobserve.planning.systemadaptation.DeallocateAction)2 MigrateAction (org.iobserve.planning.systemadaptation.MigrateAction)2 SystemAdaptation (org.iobserve.planning.systemadaptation.SystemAdaptation)2 Test (org.junit.Test)2 AdaptationData (org.iobserve.adaptation.data.AdaptationData)1 BlockRequestsToComponentAction (org.iobserve.adaptation.executionplan.BlockRequestsToComponentAction)1 ConnectComponentAction (org.iobserve.adaptation.executionplan.ConnectComponentAction)1 DeployComponentAction (org.iobserve.adaptation.executionplan.DeployComponentAction)1 DisconnectComponentAction (org.iobserve.adaptation.executionplan.DisconnectComponentAction)1 ExecutionPlan (org.iobserve.adaptation.executionplan.ExecutionPlan)1 FinishComponentAction (org.iobserve.adaptation.executionplan.FinishComponentAction)1 MigrateComponentStateAction (org.iobserve.adaptation.executionplan.MigrateComponentStateAction)1 UndeployComponentAction (org.iobserve.adaptation.executionplan.UndeployComponentAction)1 AcquireAction (org.iobserve.planning.systemadaptation.AcquireAction)1 DereplicateAction (org.iobserve.planning.systemadaptation.DereplicateAction)1 ReplicateAction (org.iobserve.planning.systemadaptation.ReplicateAction)1 TerminateAction (org.iobserve.planning.systemadaptation.TerminateAction)1