public DeploymentGroupTasks build() { return new DeploymentGroupTasks(this); } }
public RollingUpdateOpFactory(final DeploymentGroupTasks tasks, final DeploymentGroupEventFactory eventFactory) { this.tasks = tasks; this.deploymentGroup = tasks.getDeploymentGroup(); this.eventFactory = eventFactory; }
public RollingUpdateOp nextTask(final List<ZooKeeperOperation> operations) { final List<ZooKeeperOperation> ops = Lists.newArrayList(operations); final List<Map<String, Object>> events = Lists.newArrayList(); final RolloutTask task = tasks.getRolloutTasks().get(tasks.getTaskIndex()); // Update the task index, delete tasks if done if (tasks.getTaskIndex() + 1 == tasks.getRolloutTasks().size()) { final DeploymentGroupStatus status = DeploymentGroupStatus.newBuilder() .setState(DONE) .build(); // We are done -> delete tasks & update status ops.add(delete(Paths.statusDeploymentGroupTasks(deploymentGroup.getName()))); ops.add(set(Paths.statusDeploymentGroup(deploymentGroup.getName()), status)); // Emit an event signalling that we're DONE! events.add(eventFactory.rollingUpdateDone(deploymentGroup)); } else { ops.add( set(Paths.statusDeploymentGroupTasks(deploymentGroup.getName()), tasks.toBuilder() .setTaskIndex(tasks.getTaskIndex() + 1) .build())); // Only emit an event if the task resulted in taking in action. If there are no ZK operations // the task was effectively a no-op. if (!operations.isEmpty()) { events.add(eventFactory.rollingUpdateTaskSucceeded(deploymentGroup, task)); } } return new RollingUpdateOp(ImmutableList.copyOf(ops), ImmutableList.copyOf(events)); }
final VersionedValue<DeploymentGroupTasks> versionedTasks = entry.getValue(); final DeploymentGroupTasks tasks = versionedTasks.value(); final int taskIndex = tasks.getTaskIndex(); deploymentGroupName, taskIndex, tasks.getRolloutTasks().size(), tasks.getRolloutTasks().get(taskIndex)); final RolloutTask task = tasks.getRolloutTasks().get(taskIndex); final RollingUpdateOp op = processRollingUpdateTask( client, opFactory, task, tasks.getDeploymentGroup());
final List<Map<String, Object>> events = Lists.newArrayList(); final List<RolloutTask> rolloutTasks = tasks.getRolloutTasks(); events.add(eventFactory.rollingUpdateStarted(deploymentGroup)); events.add(eventFactory.rollingUpdateDone(deploymentGroup)); } else { final DeploymentGroupTasks tasks = DeploymentGroupTasks.newBuilder() .setRolloutTasks(rolloutTasks) .setTaskIndex(0)
public Builder toBuilder() { return newBuilder() .setRolloutTasks(rolloutTasks) .setTaskIndex(taskIndex) .setDeploymentGroup(deploymentGroup); }
operations.add(set(Paths.statusDeploymentGroup(deploymentGroup.getName()), status)); final RolloutTask task = tasks.getRolloutTasks().get(tasks.getTaskIndex());
deploymentGroup.getName(), updateHosts, undeployHosts, rolloutTasks); final DeploymentGroupTasks tasks = DeploymentGroupTasks.newBuilder() .setRolloutTasks(rolloutTasks) .setTaskIndex(0)