Search in sources :

Example 76 with Model

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

the class ScriptTest method testConstraints.

public void testConstraints() {
    Script v = new Script();
    Model mo = new DefaultModel();
    VM vm2 = mo.newVM();
    v.addConstraint(new Gather(Collections.singleton(vm2)));
    v.addConstraint(new RunningCapacity(Collections.singleton(mo.newNode()), 5));
    Assert.assertEquals(v.getConstraints().size(), 2);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) RunningCapacity(org.btrplace.model.constraint.RunningCapacity) VM(org.btrplace.model.VM) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) Gather(org.btrplace.model.constraint.Gather)

Example 77 with Model

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

the class ScriptTest method testVMsAddition.

public void testVMsAddition() {
    Script v = new Script();
    Model mo = new DefaultModel();
    BtrpElement vm1 = new BtrpElement(BtrpOperand.Type.VM, "VM1", mo.newVM());
    BtrpElement vm2 = new BtrpElement(BtrpOperand.Type.VM, "VM2", mo.newVM());
    BtrpElement vm3 = new BtrpElement(BtrpOperand.Type.VM, "VM3", mo.newVM());
    v.add(vm1);
    v.add(Arrays.asList(vm2, vm3));
    Assert.assertEquals(v.getVMs().size(), 3);
    Assert.assertTrue(v.getVMs().contains(vm1.getElement()) && v.getVMs().contains(vm2.getElement()) && v.getVMs().contains(vm3.getElement()));
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) BtrpElement(org.btrplace.btrpsl.element.BtrpElement)

Example 78 with Model

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

the class ScriptTest method testExported.

public void testExported() {
    Script v = new Script();
    v.setFullyQualifiedName("testScript");
    Model mo = new DefaultModel();
    BtrpOperand o1 = new BtrpElement(BtrpOperand.Type.VM, "vm1", mo.newVM());
    v.addExportable("$s", o1, Collections.singleton("*"));
    // No restrictions, so every can access the exported variable
    Assert.assertEquals(v.getImportable("$s"), o1);
    Assert.assertTrue(v.canImport("$s", "foo"));
    Assert.assertTrue(v.canImport("$s", "bar.toto"));
    // Explicit no restriction
    BtrpOperand o2 = new BtrpElement(BtrpOperand.Type.VM, "vm2", mo.newVM());
    v.addExportable("$x", o2, Collections.singleton("*"));
    Assert.assertEquals(v.getImportable("$x"), o2);
    Assert.assertTrue(v.canImport("$x", "foo"));
    Assert.assertTrue(v.canImport("$x", "bar.toto"));
    // Unknown export
    Assert.assertFalse(v.canImport("$z", "foo"));
    Assert.assertFalse(v.canImport("$z", "bar.toto"));
    Set<String> valid = new HashSet<>();
    valid.add("foo");
    valid.add("foo.*");
    valid.add("bar");
    BtrpOperand o3 = new BtrpElement(BtrpOperand.Type.VM, "vm2", mo.newVM());
    v.addExportable("$y", o3, valid);
    Assert.assertNull(v.getImportable("$y"));
    Assert.assertEquals(v.getImportable("$y", "foo"), o3);
    Assert.assertNull(v.getImportable("$y", "zog"));
    Assert.assertEquals(v.getImportable("$y", "foo.bar.fii"), o3);
    Assert.assertEquals(v.getImportable("$y", "bar"), o3);
    Assert.assertEquals(v.getExported().size(), 3);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) BtrpOperand(org.btrplace.btrpsl.element.BtrpOperand) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) BtrpElement(org.btrplace.btrpsl.element.BtrpElement) HashSet(java.util.HashSet)

Example 79 with Model

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

the class BtrpNumberTest method testNonViableGt.

@Test(expectedExceptions = { UnsupportedOperationException.class })
public void testNonViableGt() {
    BtrpNumber i = new BtrpNumber(5, BtrpNumber.Base.BASE_16);
    Model mo = new DefaultModel();
    BtrpElement j = new BtrpElement(BtrpOperand.Type.VM, "foo", mo.newVM());
    i.gt(j);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) Test(org.testng.annotations.Test)

Example 80 with Model

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

the class BtrpNumberTest method testNonViableDiv.

@Test(expectedExceptions = { UnsupportedOperationException.class })
public void testNonViableDiv() {
    BtrpNumber i = new BtrpNumber(5, BtrpNumber.Base.BASE_16);
    Model mo = new DefaultModel();
    BtrpElement j = new BtrpElement(BtrpOperand.Type.VM, "foo", mo.newVM());
    i.div(j);
}
Also used : DefaultModel(org.btrplace.model.DefaultModel) Model(org.btrplace.model.Model) DefaultModel(org.btrplace.model.DefaultModel) Test(org.testng.annotations.Test)

Aggregations

Model (org.btrplace.model.Model)171 DefaultModel (org.btrplace.model.DefaultModel)157 Test (org.testng.annotations.Test)145 Node (org.btrplace.model.Node)91 VM (org.btrplace.model.VM)89 ReconfigurationPlan (org.btrplace.plan.ReconfigurationPlan)46 Mapping (org.btrplace.model.Mapping)41 HashSet (java.util.HashSet)39 ArrayList (java.util.ArrayList)30 SatConstraint (org.btrplace.model.constraint.SatConstraint)29 ShareableResource (org.btrplace.model.view.ShareableResource)27 Instance (org.btrplace.model.Instance)19 RelocatableVM (org.btrplace.scheduler.choco.transition.RelocatableVM)19 MigrateVM (org.btrplace.plan.event.MigrateVM)18 DefaultChocoScheduler (org.btrplace.scheduler.choco.DefaultChocoScheduler)18 BootableNode (org.btrplace.scheduler.choco.transition.BootableNode)17 ShutdownableNode (org.btrplace.scheduler.choco.transition.ShutdownableNode)17 MinMTTR (org.btrplace.model.constraint.MinMTTR)16 ChocoScheduler (org.btrplace.scheduler.choco.ChocoScheduler)16 BootVM (org.btrplace.scheduler.choco.transition.BootVM)16