public BackupSnapshotStep( final String daemon, final CassandraState cassandraState, final CassandraOfferRequirementProvider provider, final BackupRestoreContext context) { super(daemon, BackupSnapshotTask.nameForDaemon(daemon), cassandraState, provider); this.context = context; }
/** * Gets the name of a BackupSnapshotTask for a CassandraDaemonTask. * * @param daemon The CassandraDaemonTask for which the snapshot will be * taken. * @return The name of the BackupSnapshotTask for daemon. */ public static final String nameForDaemon(final CassandraDaemonTask daemon) { return nameForDaemon(daemon.getName()); }
public BackupSnapshotTask getOrCreateBackupSnapshot( CassandraDaemonTask daemon, BackupRestoreContext context) throws PersistenceException { String name = BackupSnapshotTask.nameForDaemon(daemon); Map<String, BackupSnapshotTask> snapshots = getBackupSnapshotTasks(); if (snapshots.containsKey(name)) { return snapshots.get(name); } else { return createBackupSnapshotTask(daemon, context); } }
public static BackupSnapshotTask create( final Protos.TaskInfo template, final CassandraDaemonTask daemon, final BackupRestoreContext context) { String name = nameForDaemon(daemon); CassandraData data = CassandraData.createBackupSnapshotData( "", context .forNode(name) .withLocalLocation(daemon.getVolumePath() + "/data")); Protos.TaskInfo completedTemplate = Protos.TaskInfo.newBuilder(template) .setName(name) .setTaskId(TaskUtils.toTaskId(name)) .setData(data.getBytes()) .build(); completedTemplate = org.apache.mesos.offer.TaskUtils.clearTransient(completedTemplate); return new BackupSnapshotTask(completedTemplate); }