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; }
@Before public void beforeEach() { MockitoAnnotations.initMocks(this); Capabilities.overrideCapabilities(mockCapabilities); recorder = new UninstallRecorder(mockStateStore, Arrays.asList(mockStep)); taskResource = ResourceTestUtils.getReservedCpus(5, "matching-resource"); otherResource = ResourceTestUtils.getReservedCpus(5, "other-resource"); offer = OfferTestUtils.getOffer(Arrays.asList(taskResource, otherResource)); taskA = TaskTestUtils.getTaskInfo(taskResource); taskB = TaskTestUtils.getTaskInfo(taskResource); emptyTaskA = taskA.toBuilder().clearResources().build(); emptyTaskB = taskB.toBuilder().clearResources().build(); emptyTask = TaskTestUtils.getTaskInfo(Collections.emptyList()); when(mockStateStore.fetchTasks()).thenReturn(Arrays.asList(taskA, taskB, emptyTask)); }
.clearResources() .addAllResources(updatedTaskResources);
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()); }