use of org.btrplace.model.Model in project scheduler by btrplace.
the class SyncConverterTest method testViables.
@Test
public void testViables() throws JSONConverterException {
Model mo = new DefaultModel();
ConstraintsConverter conv = new ConstraintsConverter();
conv.register(new SyncConverter());
Sync sync = new Sync(mo.newVM(), mo.newVM());
Assert.assertEquals(conv.fromJSON(mo, conv.toJSON(sync)).toString(), sync.toString());
System.out.println(conv.toJSON(sync));
}
use of org.btrplace.model.Model in project scheduler by btrplace.
the class NamingServiceConverterTest method test.
@Test
public void test() throws JSONConverterException {
NamingService<VM> ns = NamingService.newVMNS();
Model mo = new DefaultModel();
for (int i = 0; i < 10; i++) {
VM v = mo.newVM();
ns.register(v, "VM " + i);
}
NamingServiceConverter nsc = new NamingServiceConverter();
JSONObject o = nsc.toJSON(ns);
System.out.println(o);
@SuppressWarnings("unchecked") NamingService<VM> ns2 = (NamingService<VM>) nsc.fromJSON(mo, o);
Assert.assertEquals(ns, ns2);
}
use of org.btrplace.model.Model in project scheduler by btrplace.
the class CQuarantineTest method testWithNoSolution2.
/**
* A VM try to leave the quarantine zone.
*
* @throws org.btrplace.scheduler.SchedulerException
*/
@Test
public void testWithNoSolution2() throws SchedulerException {
Model mo = new DefaultModel();
VM vm1 = mo.newVM();
VM vm2 = mo.newVM();
VM vm3 = mo.newVM();
VM vm4 = mo.newVM();
Node n1 = mo.newNode();
Node n2 = mo.newNode();
Node n3 = mo.newNode();
mo.getMapping().on(n1, n2, n3).run(n1, vm1).run(n2, vm2, vm3).run(n3, vm4);
Quarantine q = new Quarantine(n2);
List<SatConstraint> cstrs = new ArrayList<>();
cstrs.add(q);
cstrs.add(new Fence(vm1, Collections.singleton(n2)));
ChocoScheduler cra = new DefaultChocoScheduler();
ReconfigurationPlan p = cra.solve(mo, cstrs);
Assert.assertNull(p);
}
use of org.btrplace.model.Model in project scheduler by btrplace.
the class CQuarantineTest method testWithNoSolution1.
/**
* A VM try to come into the quarantine zone.
*
* @throws org.btrplace.scheduler.SchedulerException
*/
@Test
public void testWithNoSolution1() throws SchedulerException {
Model mo = new DefaultModel();
VM vm1 = mo.newVM();
VM vm2 = mo.newVM();
VM vm3 = mo.newVM();
VM vm4 = mo.newVM();
Node n1 = mo.newNode();
Node n2 = mo.newNode();
Node n3 = mo.newNode();
mo.getMapping().on(n1, n2, n3).run(n1, vm1).run(n2, vm2, vm3).run(n3, vm4);
Quarantine q = new Quarantine(n1);
List<SatConstraint> cstrs = new ArrayList<>();
cstrs.add(q);
cstrs.add(new Fence(vm4, Collections.singleton(n1)));
ChocoScheduler cra = new DefaultChocoScheduler();
ReconfigurationPlan p = cra.solve(mo, cstrs);
Assert.assertNull(p);
}
use of org.btrplace.model.Model in project scheduler by btrplace.
the class ChocoMapperTest method testMap.
@Test(dependsOnMethods = { "testInstantiate" })
public void testMap() {
Model mo = new DefaultModel();
ChocoMapper map = ChocoMapper.newBundle();
Spread s = new Spread(Collections.singleton(mo.newVM()));
ChocoConstraint c = map.get(s);
Assert.assertTrue(c.getClass().equals(CSpread.class));
map.unMapConstraint(Spread.class);
map.mapConstraint(Spread.class, CSpread.class);
c = map.get(s);
Assert.assertTrue(c.getClass().equals(CSpread.class));
}
Aggregations