Search in sources :

Example 21 with Node

use of org.btrplace.model.Node in project scheduler by btrplace.

the class BanTest method testEquals.

@Test
public void testEquals() {
    Model m = new DefaultModel();
    VM v = m.newVM();
    List<Node> ns = Util.newNodes(m, 10);
    Set<Node> nodes = new HashSet<>(Arrays.asList(ns.get(0), ns.get(1)));
    Ban b = new Ban(v, nodes);
    Assert.assertTrue(b.equals(b));
    Assert.assertTrue(new Ban(v, nodes).equals(b));
    Assert.assertEquals(new Ban(v, nodes).hashCode(), b.hashCode());
    Assert.assertNotEquals(new Ban(m.newVM(), nodes), b);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) MigrateVM(org.btrplace.plan.event.MigrateVM) VM(org.btrplace.model.VM) Node(org.btrplace.model.Node) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 22 with Node

use of org.btrplace.model.Node in project scheduler by btrplace.

the class BanTest method testIsSatisfied.

@Test
public void testIsSatisfied() {
    Model m = new DefaultModel();
    List<VM> vms = Util.newVMs(m, 10);
    List<Node> ns = Util.newNodes(m, 10);
    Mapping map = m.getMapping();
    map.addOnlineNode(ns.get(0));
    map.addOnlineNode(ns.get(1));
    map.addOnlineNode(ns.get(2));
    map.addRunningVM(vms.get(0), ns.get(0));
    map.addRunningVM(vms.get(1), ns.get(1));
    map.addRunningVM(vms.get(2), ns.get(2));
    Set<Node> nodes = new HashSet<>(Collections.singletonList(ns.get(0)));
    Ban b = new Ban(vms.get(2), nodes);
    Assert.assertEquals(b.isSatisfied(m), true);
    map.addRunningVM(vms.get(2), ns.get(0));
    Assert.assertEquals(new Ban(vms.get(2), nodes).isSatisfied(m), false);
    ReconfigurationPlan plan = new DefaultReconfigurationPlan(m);
    plan.add(new MigrateVM(vms.get(0), ns.get(0), ns.get(1), 0, 3));
    plan.add(new MigrateVM(vms.get(0), ns.get(1), ns.get(0), 3, 6));
    plan.add(new MigrateVM(vms.get(1), ns.get(1), ns.get(2), 3, 6));
    Assert.assertEquals(b.isSatisfied(plan), false);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Node(org.btrplace.model.Node) DefaultReconfigurationPlan(org.btrplace.plan.DefaultReconfigurationPlan) ReconfigurationPlan(org.btrplace.plan.ReconfigurationPlan) Mapping(org.btrplace.model.Mapping) MigrateVM(org.btrplace.plan.event.MigrateVM) DefaultReconfigurationPlan(org.btrplace.plan.DefaultReconfigurationPlan) MigrateVM(org.btrplace.plan.event.MigrateVM) VM(org.btrplace.model.VM) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 23 with Node

use of org.btrplace.model.Node in project scheduler by btrplace.

the class FenceTest method testIsSatisfied.

@Test
public void testIsSatisfied() {
    Model m = new DefaultModel();
    List<Node> ns = Util.newNodes(m, 10);
    List<VM> vms = Util.newVMs(m, 10);
    Mapping map = m.getMapping();
    map.addOnlineNode(ns.get(0));
    map.addOnlineNode(ns.get(1));
    map.addOnlineNode(ns.get(2));
    map.addRunningVM(vms.get(0), ns.get(0));
    map.addRunningVM(vms.get(1), ns.get(1));
    map.addRunningVM(vms.get(2), ns.get(1));
    Set<Node> nodes = new HashSet<>(Arrays.asList(ns.get(0), ns.get(1)));
    Fence f = new Fence(vms.get(2), nodes);
    Assert.assertEquals(true, f.isSatisfied(m));
    map.addRunningVM(vms.get(0), ns.get(2));
    Assert.assertEquals(false, new Fence(vms.get(0), nodes).isSatisfied(m));
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Node(org.btrplace.model.Node) VM(org.btrplace.model.VM) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) Mapping(org.btrplace.model.Mapping) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 24 with Node

use of org.btrplace.model.Node in project scheduler by btrplace.

the class FenceTest method testInstantiation.

@Test
public void testInstantiation() {
    Model mo = new DefaultModel();
    List<Node> ns = Util.newNodes(mo, 10);
    List<VM> vms = Util.newVMs(mo, 10);
    Set<Node> nodes = new HashSet<>(Collections.singletonList(ns.get(0)));
    Fence f = new Fence(vms.get(0), nodes);
    Assert.assertNotNull(f.getChecker());
    Assert.assertEquals(vms.get(0), f.getInvolvedVMs().iterator().next());
    Assert.assertEquals(nodes, f.getInvolvedNodes());
    Assert.assertFalse(f.toString().contains("null"));
    Assert.assertFalse(f.isContinuous());
    Assert.assertTrue(f.setContinuous(true));
    System.out.println(f);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Node(org.btrplace.model.Node) VM(org.btrplace.model.VM) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 25 with Node

use of org.btrplace.model.Node in project scheduler by btrplace.

the class FenceTest method testFences.

@Test
public void testFences() {
    Model mo = new DefaultModel();
    List<VM> vms = Util.newVMs(mo, 5);
    List<Node> ns = Util.newNodes(mo, 5);
    List<Fence> c = Fence.newFence(vms, ns);
    Assert.assertEquals(vms.size(), c.size());
    c.stream().forEach((q) -> {
        Assert.assertTrue(vms.containsAll(q.getInvolvedVMs()));
        Assert.assertEquals(ns, q.getInvolvedNodes());
        Assert.assertFalse(q.isContinuous());
    });
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) VM(org.btrplace.model.VM) Node(org.btrplace.model.Node) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) Test(org.testng.annotations.Test)

Aggregations

Node (org.btrplace.model.Node)382 DefaultModel (org.btrplace.model.DefaultModel)278 Model (org.btrplace.model.Model)276 VM (org.btrplace.model.VM)262 Test (org.testng.annotations.Test)259 Mapping (org.btrplace.model.Mapping)187 ReconfigurationPlan (org.btrplace.plan.ReconfigurationPlan)142 HashSet (java.util.HashSet)95 SatConstraint (org.btrplace.model.constraint.SatConstraint)87 ArrayList (java.util.ArrayList)86 DefaultChocoScheduler (org.btrplace.scheduler.choco.DefaultChocoScheduler)82 MigrateVM (org.btrplace.plan.event.MigrateVM)72 ShareableResource (org.btrplace.model.view.ShareableResource)71 ChocoScheduler (org.btrplace.scheduler.choco.ChocoScheduler)64 ShutdownNode (org.btrplace.plan.event.ShutdownNode)52 Instance (org.btrplace.model.Instance)43 BootNode (org.btrplace.plan.event.BootNode)41 DefaultParameters (org.btrplace.scheduler.choco.DefaultParameters)40 DefaultReconfigurationProblemBuilder (org.btrplace.scheduler.choco.DefaultReconfigurationProblemBuilder)36 ReconfigurationProblem (org.btrplace.scheduler.choco.ReconfigurationProblem)36