numberOfAgents--; plannedNodes.add(new PlannedNode(agentNode.getNodeName(), Computer.threadPoolForRemoting.submit(new Callable<Node>() { @Override
r.add(new NodeProvisioner.PlannedNode(t.getDisplayName(), plannedNode, t.getNumExecutors()));
r.add(new PlannedNode(t.getDisplayName(), Computer.threadPoolForRemoting.submit(new Callable<Node>() { public Node call() throws Exception {
private PlannedNode createPlannedNode(final SlaveTemplate t, final EC2AbstractSlave slave) { return new PlannedNode(t.getDisplayName(), Computer.threadPoolForRemoting.submit(new Callable<Node>() { public Node call() throws Exception {
PlannedNode node = new PlannedNode(plannedNodeName, future, executors); result.add(node);
list.add(new PlannedNode(this.getDisplayName(), Computer.threadPoolForRemoting .submit(new Callable<Node>() { public Node call() throws Exception {
@Override public synchronized Collection<NodeProvisioner.PlannedNode> provision( final Label label, final int excessWorkload) { final FleetStateStats stats=updateStatus(); final int maxAllowed = this.getMaxSize(); if (stats.getNumDesired() >= maxAllowed || !"active".equals(stats.getState())) return Collections.emptyList(); int targetCapacity = stats.getNumDesired() + excessWorkload; if (targetCapacity > maxAllowed) targetCapacity = maxAllowed; int toProvision = targetCapacity - stats.getNumDesired(); LOGGER.log(Level.INFO, "Provisioning nodes. Excess workload: " + Integer.toString(excessWorkload) + ", Provisioning: " + Integer.toString(toProvision)); final ModifySpotFleetRequestRequest request=new ModifySpotFleetRequestRequest(); request.setSpotFleetRequestId(fleet); request.setTargetCapacity(targetCapacity); final AmazonEC2 ec2=connect(credentialsId, region); ec2.modifySpotFleetRequest(request); final List<NodeProvisioner.PlannedNode> resultList = new ArrayList<NodeProvisioner.PlannedNode>(); for(int f=0;f<toProvision; ++f) { final SettableFuture<Node> futureNode=SettableFuture.create(); final NodeProvisioner.PlannedNode plannedNode= new NodeProvisioner.PlannedNode("FleetNode-"+f, futureNode, 1); resultList.add(plannedNode); this.plannedNodes.add(plannedNode); } return resultList; }
@Override public Collection<NodeProvisioner.PlannedNode> provision(final Label label, int excessWorkload) { LOGGER.info("Slave provisioning requested for label '" + label + "', excess workload: " + excessWorkload); final List<PodSlaveConfigurationParams> podSlaveConfigurationParams = new ArrayList<>(); for (PodSlaveConfig config: podSlaveConfigurations) { podSlaveConfigurationParams.add(config.getPodSlaveConfigurationParams()); } List<NodeProvisioner.PlannedNode> plannedSlavesToDeploy = new ArrayList<NodeProvisioner.PlannedNode>(); for (int i = 1; i <= excessWorkload; i++) { plannedSlavesToDeploy.add( new NodeProvisioner.PlannedNode( KubernetesSlave.DESCRIPTION, Computer.threadPoolForRemoting.submit(new Callable<Node>() { @Override public Node call() throws Exception { KubernetesSlave slave = slaveProvisioningService.slaveProvision( KubernetesCloud.this, podSlaveConfigurationParams, label); return slave; } }), 1) ); } return plannedSlavesToDeploy; }
@Override public synchronized Collection<NodeProvisioner.PlannedNode> provision(Label label, int excessWorkload) { try { LOGGER.log(Level.INFO, "Asked to provision {0} agent(s) for: {1}", new Object[]{excessWorkload, label}); Set<String> allInProvisioning = InProvisioning.getAllInProvisioning(label); LOGGER.log(Level.INFO, "In provisioning : " + allInProvisioning); int toBeProvisioned = Math.max(0, excessWorkload - allInProvisioning.size()); LOGGER.log(Level.INFO, "Excess workload after pending ECS agents: {0}", toBeProvisioned); List<NodeProvisioner.PlannedNode> r = new ArrayList<NodeProvisioner.PlannedNode>(); final ECSTaskTemplate template = getTemplate(label); for (int i = 1; i <= toBeProvisioned; i++) { LOGGER.log(Level.INFO, "Will provision {0}, for label: {1}", new Object[]{template.getDisplayName(), label} ); r.add(new NodeProvisioner.PlannedNode(template.getDisplayName(), Computer.threadPoolForRemoting.submit(new ProvisioningCallback(template)), 1)); } return r; } catch (Exception e) { LOGGER.log(Level.WARNING, "Failed to provision ECS agent", e); return Collections.emptyList(); } }
public Collection<PlannedNode> provision(Label label, int excessWorkload) { List<PlannedNode> r = new ArrayList<PlannedNode>(); if(label!=this.label) return r; // provisioning impossible while(excessWorkload>0) { System.out.println("Provisioning"); numProvisioned++; Future<Node> f = Computer.threadPoolForRemoting.submit(new Launcher(delay)); r.add(new PlannedNode(name+" #"+numProvisioned,f,1)); excessWorkload-=1; } return r; }
@Override public NodeProvisioner.PlannedNode build() { return new NodeProvisioner.PlannedNode(getTemplate().getDisplayName(), Computer.threadPoolForRemoting.submit(new ProvisioningCallback(getCloud(), getTemplate())), getNumExecutors()); } }