package hudson.plugins.vmware.labmgr;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Label;
import hudson.slaves.Cloud;
import hudson.slaves.NodeProvisioner.PlannedNode;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class VMLabMgrCloud extends Cloud {
@Extension
public static final class DescriptorImpl extends Descriptor<Cloud>{
@Override
public String getDisplayName() {
return "VMWare Labmanager";
}
}
private List<VirtualConfigruation> configurations;
protected VMLabMgrCloud(String name) {
super(name);
}
@Override
public boolean canProvision(Label label) {
return getConfiguration(label) != null;
}
private VirtualConfigruation getConfiguration(Label label) {
for (VirtualConfigruation conf : this.configurations) {
if (conf.getLabel().equals(label))
return conf;
}
return null;
}
@Override
public Collection<PlannedNode> provision(Label label, int excessWorkload) {
final VirtualConfigruation t = getConfiguration(label);
List<PlannedNode> r = new ArrayList<PlannedNode>();
// TODO: create a new node if necessary
return r;
}
}