Search in sources :

Example 6 with Lonely

use of org.btrplace.model.constraint.Lonely in project scheduler by btrplace.

the class LonelySplitterTest method simpleTest.

@Test
public void simpleTest() {
    LonelySplitter splitter = new LonelySplitter();
    List<Instance> instances = new ArrayList<>();
    Model m0 = new DefaultModel();
    m0.getMapping().addReadyVM(m0.newVM(1));
    m0.getMapping().addRunningVM(m0.newVM(2), m0.newNode(1));
    Model m1 = new DefaultModel();
    m1.getMapping().addReadyVM(m1.newVM(3));
    m1.getMapping().addSleepingVM(m1.newVM(4), m1.newNode(2));
    m1.getMapping().addRunningVM(m1.newVM(5), m1.newNode(3));
    instances.add(new Instance(m0, new ArrayList<>(), new MinMTTR()));
    instances.add(new Instance(m1, new ArrayList<>(), new MinMTTR()));
    TIntIntHashMap index = Instances.makeVMIndex(instances);
    Set<VM> all = new HashSet<>(m0.getMapping().getAllVMs());
    all.addAll(m1.getMapping().getAllVMs());
    // Only VMs in m0
    Lonely single = new Lonely(m0.getMapping().getAllVMs());
    Assert.assertTrue(splitter.split(single, null, instances, index, new TIntIntHashMap()));
    Assert.assertTrue(instances.get(0).getSatConstraints().contains(single));
    Assert.assertFalse(instances.get(1).getSatConstraints().contains(single));
    // All the VMs, test the split
    Lonely among = new Lonely(all, false);
    Assert.assertTrue(splitter.split(among, null, instances, index, new TIntIntHashMap()));
    Assert.assertTrue(instances.get(0).getSatConstraints().contains(new Lonely(m0.getMapping().getAllVMs(), false)));
    Assert.assertTrue(instances.get(1).getSatConstraints().contains(new Lonely(m1.getMapping().getAllVMs(), false)));
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Instance(org.btrplace.model.Instance) VM(org.btrplace.model.VM) Lonely(org.btrplace.model.constraint.Lonely) ArrayList(java.util.ArrayList) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) MinMTTR(org.btrplace.model.constraint.MinMTTR) TIntIntHashMap(gnu.trove.map.hash.TIntIntHashMap) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Aggregations

Lonely (org.btrplace.model.constraint.Lonely)6 Test (org.testng.annotations.Test)6 HashSet (java.util.HashSet)4 DefaultModel (org.btrplace.model.DefaultModel)3 Model (org.btrplace.model.Model)2 MinMTTR (org.btrplace.model.constraint.MinMTTR)2 ReconfigurationPlan (org.btrplace.plan.ReconfigurationPlan)2 ChocoScheduler (org.btrplace.scheduler.choco.ChocoScheduler)2 DefaultChocoScheduler (org.btrplace.scheduler.choco.DefaultChocoScheduler)2 TIntIntHashMap (gnu.trove.map.hash.TIntIntHashMap)1 ArrayList (java.util.ArrayList)1 ScriptBuilder (org.btrplace.btrpsl.ScriptBuilder)1 Instance (org.btrplace.model.Instance)1 VM (org.btrplace.model.VM)1 Fence (org.btrplace.model.constraint.Fence)1 SatConstraint (org.btrplace.model.constraint.SatConstraint)1