public static boolean isComplete(Optional<Protos.TaskStatus> status) { if (!status.isPresent()) { return false; } final boolean isRunning = Protos.TaskState.TASK_RUNNING.equals(status.get().getState()); if (!isRunning) { return false; } if (status.get().hasData()) { final CassandraData data = CassandraData.parse(status.get().getData()); final CassandraMode mode = data.getMode(); String hostName = data.getHostname(); final boolean isModeNormal = CassandraMode.NORMAL.equals(mode); LOGGER.info("isRunning: {} isModeNormal: {} hostName: {}", isRunning, isModeNormal, hostName); return isModeNormal; } LOGGER.info("Status does not yet indicate mode NORMAL"); return false; }
if (taskStatusOptional.get().hasData()) { getStateStore().storeStatus(Protos.TaskStatus.newBuilder(status) .setData(taskStatusOptional.get().getData()) .build()); } else {
final CassandraData cassandraData = CassandraData.parse(status.getData()); mode = cassandraData.getMode(); LOGGER.info("{} Step: {} received status: {} with mode: {}",
break; case TASK_FINISHED: if (taskStatus.getData().toStringUtf8().equals("eval_not_run")) {
public static CassandraTaskStatus parse(final Protos.TaskStatus status) throws IOException { CassandraData data = CassandraData.parse(status.getData()); switch (data.getType()) { case CASSANDRA_DAEMON: return CassandraDaemonStatus.create(status); case BACKUP_SNAPSHOT: return BackupSnapshotStatus.create(status); case BACKUP_SCHEMA: return BackupSchemaStatus.create(status); case BACKUP_UPLOAD: return BackupUploadStatus.create(status); case SNAPSHOT_DOWNLOAD: return DownloadSnapshotStatus.create(status); case SNAPSHOT_RESTORE: return RestoreSnapshotStatus.create(status); case SCHEMA_RESTORE: return RestoreSchemaStatus.create(status); case CLEANUP: return CleanupStatus.create(status); case REPAIR: return RepairStatus.create(status); case UPGRADESSTABLE: return UpgradeSSTableStatus.create(status); default: throw new IOException("Failed to parse task from TaskInfo " + "type information is invalid"); } }
protected CassandraData getData() { return CassandraData.parse(status.getData()); }