public UpgradeSSTableStep( String daemon, CassandraState cassandraState, CassandraOfferRequirementProvider provider, UpgradeSSTableContext context) { super(daemon, UpgradeSSTableTask.nameForDaemon(daemon), cassandraState, provider); this.context = context; }
private List<String> getColumnFamilies() { return task.getUpgradeSSTableContext().getColumnFamilies(); }
public static UpgradeSSTableTask parse(final Protos.TaskInfo info) { return new UpgradeSSTableTask(info); }
@Override public int hashCode() { return Objects.hash(getNodes(), getKeySpaces(), getColumnFamilies()); }
@Override public UpgradeSSTableTask updateId() { return new UpgradeSSTableTask(getBuilder().setTaskId(createId(getName())) .build()); }
@Override public UpgradeSSTableTask update(Protos.TaskState state) { return new UpgradeSSTableTask(getBuilder().setData( getData().withState(state).getBytes()).build()); }
private List<String> getKeySpaces() { if (task.getUpgradeSSTableContext().getKeySpaces().isEmpty()) { return daemon.getNonSystemKeySpaces(); } else { return task.getUpgradeSSTableContext().getKeySpaces(); } }
private void sendStatus(ExecutorDriver driver, Protos.TaskState state, String message) { Protos.TaskStatus status = task.createStatus(state, Optional.of(message)).getTaskStatus(); driver.sendStatusUpdate(status); }
@Override public UpgradeSSTableStatus createStatus( Protos.TaskState state, Optional<String> message) { Protos.TaskStatus.Builder builder = getStatusBuilder(); if (message.isPresent()) { builder.setMessage(message.get()); } return UpgradeSSTableStatus.create(builder .setData(CassandraData.createUpgradeSSTableStatusData().getBytes()) .setState(state) .build()); }
public UpgradeSSTableContext toContext(CassandraState cassandraState) { return UpgradeSSTableContext.create( new ArrayList<>(getNodes(cassandraState)), getKeySpaces(), getColumnFamiles()); }
public static UpgradeSSTableStatus create(final Protos.TaskStatus status) { return new UpgradeSSTableStatus(status); }
public UpgradeSSTableContext getUpgradeSSTableContext() { return getData().getUpgradeSSTableContext(); }
public UpgradeSSTableTask createUpgradeSSTableTask( CassandraDaemonTask daemon, UpgradeSSTableContext context) throws PersistenceException { Optional<Protos.TaskInfo> template = getTemplate(daemon); if (template.isPresent()) { return UpgradeSSTableTask.create(template.get(), daemon, context); } else { throw new PersistenceException("Failed to retrieve ClusterTask Template."); } }
public UpgradeSSTableContext getUpgradeSSTableContext() { return new UpgradeSSTableContext( data.getNodesList(), data.getKeySpacesList(), data.getColumnFamiliesList()); }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof UpgradeSSTableContext)) return false; UpgradeSSTableContext that = (UpgradeSSTableContext) o; return Objects.equals(getNodes(), that.getNodes()) && Objects.equals(getKeySpaces(), that.getKeySpaces()) && Objects.equals(getColumnFamilies(), that.getColumnFamilies()); }
@Override public UpgradeSSTableTask update(Protos.Offer offer) { return new UpgradeSSTableTask(getBuilder() .setSlaveId(offer.getSlaveId()) .setData(getData().withHostname(offer.getHostname()).getBytes()) .build()); }
/** * Gets the name of a UpgradeSSTableTask for a CassandraDaemonTask. * * @param daemon The CassandraDaemonTask for which the snapshot will be * uploaded. * @return The name of the UpgradeSSTableTask for daemon. */ public static final String nameForDaemon(final CassandraDaemonTask daemon) { return nameForDaemon(daemon.getName()); }
public static final CassandraData createUpgradeSSTableData( final String hostname, final UpgradeSSTableContext context) { return new CassandraData( CassandraTask.TYPE.UPGRADESSTABLE, hostname, context.getNodes(), context.getKeySpaces(), context.getColumnFamilies()); }
public UpgradeSSTableTask getOrCreateUpgradeSSTable( CassandraDaemonTask daemon, UpgradeSSTableContext context) throws PersistenceException { String name = UpgradeSSTableTask.nameForDaemon(daemon); Map<String, UpgradeSSTableTask> upgradesstables = getUpgradeSSTableTasks(); if (upgradesstables.containsKey(name)) { return upgradesstables.get(name); } else { return createUpgradeSSTableTask(daemon, context); } }