taskInfo.addAllResources(allocation.takeScalar("cpus", taskRequest.getCPUs(), roles)); taskInfo.addAllResources(allocation.takeScalar("gpus", taskRequest.getGPUs(), roles)); taskInfo.addAllResources(allocation.takeScalar("mem", taskRequest.getMemory(), roles)); taskInfo.addAllResources(portResources); Iterator<String> portsToAssign = tmPortKeys.iterator(); rangeValues(portResources).forEach(port -> dynamicProperties.setLong(portsToAssign.next(), port));
public static TaskInfo copyVolumes( final TaskInfo source, final TaskInfo target) { List<Resource> sourceDisks = source.getResourcesList().stream() .filter(resource -> isDisk(resource) && resource.hasDisk()) .collect(Collectors.toList()); List<Resource> minusDisks = target.getResourcesList().stream() .filter(resource -> !isDisk(resource)) .collect(Collectors.toList()); return TaskInfo.newBuilder(target) .clearResources() .addAllResources(minusDisks) .addAllResources(sourceDisks) .build(); }
/** * Returns {@link Protos.TaskInfo}s which have been updated to contain the provided resource list, overwriting any * previous resource information. */ private static Collection<Protos.TaskInfo> updateTasksWithResources( Collection<Protos.TaskInfo> taskInfosToUpdate, Collection<Protos.Resource> taskResources, Optional<Collection<Protos.Resource>> executorResources) { List<Protos.TaskInfo> updatedTaskInfos = new ArrayList<>(); for (Protos.TaskInfo taskInfoToUpdate : taskInfosToUpdate) { Protos.TaskInfo.Builder taskBuilder = Protos.TaskInfo.newBuilder(taskInfoToUpdate); taskBuilder .clearResources() .addAllResources(taskResources); if (executorResources.isPresent()) { taskBuilder.getExecutorBuilder() .clearResources() .addAllResources(executorResources.get()); } updatedTaskInfos.add(taskBuilder.build()); } return updatedTaskInfos; }
.setSlaveId(aggregatedOffers.getSlaveID()) .setCommand(commandInfoBuilder.build()) .addAllResources(resources) .build();
.setSlaveId(aggregatedOffers.getSlaveID()) .setExecutor(executorInfoBuilder.build()) .addAllResources(workerResources) .build();
return builder.addAllResources(resources).build();
.toProto()) .setName(initTaskName) .addAllResources(Arrays.asList(previousResource)) .build(); .toProto()) .setName(serverTaskName) .addAllResources(Arrays.asList(targetResource)) .build();
.setName(initTaskInfo.getName()) .setSlaveId(initTaskInfo.getSlaveId()) .addAllResources(Arrays.asList(cpu, mem, disk, ports)) .setExecutor(initTaskInfo.getExecutor()) .build();
.setSlaveId(EMPTY_SLAVE_ID) .setExecutor(executor.getExecutorInfo()) .addAllResources(Arrays.asList( ResourceUtils.getDesiredScalar(role, principal, "cpus", cpus), ResourceUtils.getDesiredScalar(role, principal, "mem", memoryMb)))
.addAllResources(updatedTaskResources);
@Test public void testUpdateResourcesNoSharedTasksInStateStore() throws TaskException { Protos.Resource targetResource = Protos.Resource.newBuilder() .setName("cpus") .setType(Protos.Value.Type.SCALAR) .setScalar(Protos.Value.Scalar.newBuilder().setValue(1.0)) .build(); String taskName = "pod-0-init"; Protos.TaskInfo taskInfo = baseTaskInfo.toBuilder() .setLabels(new TaskLabelWriter(baseTaskInfo) .setType("pod") .setIndex(0) .toProto()) .setName(taskName) .addAllResources(Arrays.asList(targetResource)) .build(); stateStore.storeTasks(Arrays.asList(taskInfo)); Assert.assertEquals(1, stateStore.fetchTaskNames().size()); persistentLaunchRecorder.updateTaskResourcesWithinResourceSet( persistentLaunchRecorder.getPodInstance(taskInfo).get(), taskInfo); Assert.assertEquals(1, stateStore.fetchTaskNames().size()); Assert.assertEquals(targetResource, stateStore.fetchTask(taskName).get().getResources(0)); }
@Override public Protos.TaskInfo create(String taskId, Protos.Offer offer, List<Protos.Resource> resources, ExecutionParameters executionParameters) { logger.info("Creating task with taskId=" + taskId + " from offerId=" + offer.getId().getValue()); return Protos.TaskInfo.newBuilder() .setName(applicationName + ".task") .setSlaveId(offer.getSlaveId()) .setTaskId(Protos.TaskID.newBuilder().setValue(taskId)) .addAllResources(resources) .setContainer(Protos.ContainerInfo.newBuilder() .setType(Protos.ContainerInfo.Type.DOCKER) .setDocker(Protos.ContainerInfo.DockerInfo.newBuilder() .setImage(dockerImage) .addAllPortMappings(portMappings(executionParameters.getPortMappings())) .setNetwork(Protos.ContainerInfo.DockerInfo.Network.valueOf(networkMode)) ) .addAllVolumes(volumeMappings(executionParameters.getVolumeMappings())) ) .setCommand(command(executionParameters.getEnvironmentVariables())) .build(); }
public CassandraDaemonTask updateConfig(CassandraConfig cassandraConfig, ExecutorConfig executorConfig, UUID targetConfigName) { LOGGER.info("Updating config for task: {} to config: {}", getTaskInfo().getName(), targetConfigName.toString()); final Protos.Label label = Protos.Label.newBuilder() .setKey("config_target") .setValue(targetConfigName.toString()) .build(); return new CassandraDaemonTask(getBuilder() .setExecutor(getExecutor().update(executorConfig).getExecutorInfo()) .setTaskId(createId(getName())) .setData(getData().withNewConfig(cassandraConfig).getBytes()) .clearResources() .addAllResources(TaskUtils.updateResources( cassandraConfig.getCpus(), cassandraConfig.getMemoryMb(), getTaskInfo().getResourcesList() )) .clearLabels() .setLabels(Protos.Labels.newBuilder().addLabels(label).build()).build()); }
public static CassandraTemplateTask create( CassandraDaemonTask daemonTask, ClusterTaskConfig clusterTaskConfig) { final String role = daemonTask.getExecutor().getRole(); final String principal = daemonTask.getExecutor().getPrincipal(); Protos.TaskInfo taskInfo = Protos.TaskInfo.newBuilder() .setTaskId(EMPTY_TASK_ID) .setName(toTemplateTaskName(daemonTask.getName())) .setSlaveId(EMPTY_SLAVE_ID) .setData(CassandraData.createTemplateData().getBytes()) .addAllResources(Arrays.asList( getCpusResource(role, principal, clusterTaskConfig), getMemResource(role, principal, clusterTaskConfig))) .build(); taskInfo = TaskUtils.setTransient(taskInfo); return new CassandraTemplateTask(taskInfo); }
@Override public Protos.TaskInfo create(String taskId, Protos.Offer offer, List<Protos.Resource> resources, ExecutionParameters executionParameters) { logger.debug("Creating Mesos task for taskId=" + taskId); return Protos.TaskInfo.newBuilder() .setName(applicationName + ".task") .setSlaveId(offer.getSlaveId()) .setTaskId(Protos.TaskID.newBuilder().setValue(taskId)) .addAllResources(resources) .setCommand(commandInfoMesosProtoFactory.create(executionParameters.getEnvironmentVariables())) .build(); } }