Search in sources :

Example 91 with Node

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

the class AmongChecker method endsWith.

@Override
public boolean endsWith(Model i) {
    Mapping map = i.getMapping();
    Collection<Node> grp = null;
    for (VM vm : getVMs()) {
        if (map.isRunning(vm)) {
            Collection<Node> nodes = getConstraint().getAssociatedPGroup(map.getVMLocation(vm));
            if (nodes.isEmpty()) {
                return false;
            } else if (grp == null) {
                grp = nodes;
            } else if (!grp.equals(nodes)) {
                return false;
            }
        }
    }
    return true;
}
Also used : Node(org.btrplace.model.Node) VM(org.btrplace.model.VM) Mapping(org.btrplace.model.Mapping)

Example 92 with Node

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

the class GatherChecker method endsWith.

@Override
public boolean endsWith(Model mo) {
    Node used = null;
    Mapping map = mo.getMapping();
    for (VM vm : getVMs()) {
        if (map.isRunning(vm)) {
            if (used == null) {
                used = map.getVMLocation(vm);
            } else if (used != map.getVMLocation(vm)) {
                return false;
            }
        }
    }
    return true;
}
Also used : Node(org.btrplace.model.Node) VM(org.btrplace.model.VM) Mapping(org.btrplace.model.Mapping)

Example 93 with Node

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

the class LonelyChecker method discreteCheck.

private boolean discreteCheck(Model mo) {
    Mapping map = mo.getMapping();
    for (VM vm : getVMs()) {
        if (map.isRunning(vm)) {
            Node host = map.getVMLocation(vm);
            Set<VM> on = map.getRunningVMs(host);
            // it's a violation
            for (VM vm2 : on) {
                if (!vm2.equals(vm) && !getVMs().contains(vm2)) {
                    return false;
                }
            }
        }
    }
    return true;
}
Also used : VM(org.btrplace.model.VM) Node(org.btrplace.model.Node) BootNode(org.btrplace.plan.event.BootNode) Mapping(org.btrplace.model.Mapping)

Example 94 with Node

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

the class MaxOnlineChecker method endsWith.

@Override
public boolean endsWith(Model mo) {
    Mapping map = mo.getMapping();
    int on = 0;
    for (Node n : getConstraint().getInvolvedNodes()) {
        if (map.isOnline(n)) {
            on++;
        }
    }
    return on <= getConstraint().getAmount();
}
Also used : Node(org.btrplace.model.Node) ShutdownNode(org.btrplace.plan.event.ShutdownNode) BootNode(org.btrplace.plan.event.BootNode) Mapping(org.btrplace.model.Mapping)

Example 95 with Node

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

the class OverbookChecker method endsWith.

@Override
public boolean endsWith(Model i) {
    Mapping cfg = i.getMapping();
    ShareableResource rc = ShareableResource.get(i, id);
    if (rc == null) {
        return false;
    }
    for (Node nId : getNodes()) {
        if (cfg.isOnline(nId)) {
            // Server capacity with the ratio
            double c = rc.getCapacity(nId) * ratio;
            // Minus the VMs usage
            for (VM vmId : cfg.getRunningVMs(nId)) {
                c -= rc.getConsumption(vmId);
                if (c < 0) {
                    return false;
                }
            }
        }
    }
    return true;
}
Also used : Node(org.btrplace.model.Node) VM(org.btrplace.model.VM) Mapping(org.btrplace.model.Mapping) ShareableResource(org.btrplace.model.view.ShareableResource)

Aggregations

Node (org.btrplace.model.Node)188 VM (org.btrplace.model.VM)110 Model (org.btrplace.model.Model)92 DefaultModel (org.btrplace.model.DefaultModel)91 Test (org.testng.annotations.Test)85 Mapping (org.btrplace.model.Mapping)68 HashSet (java.util.HashSet)48 ReconfigurationPlan (org.btrplace.plan.ReconfigurationPlan)43 SatConstraint (org.btrplace.model.constraint.SatConstraint)35 ArrayList (java.util.ArrayList)34 IntVar (org.chocosolver.solver.variables.IntVar)29 ShareableResource (org.btrplace.model.view.ShareableResource)28 VMTransition (org.btrplace.scheduler.choco.transition.VMTransition)23 MigrateVM (org.btrplace.plan.event.MigrateVM)22 BootableNode (org.btrplace.scheduler.choco.transition.BootableNode)19 RelocatableVM (org.btrplace.scheduler.choco.transition.RelocatableVM)19 ShutdownableNode (org.btrplace.scheduler.choco.transition.ShutdownableNode)19 DefaultChocoScheduler (org.btrplace.scheduler.choco.DefaultChocoScheduler)18 ChocoScheduler (org.btrplace.scheduler.choco.ChocoScheduler)16 BootVM (org.btrplace.scheduler.choco.transition.BootVM)16