package com.liveramp.hank.storage.curly; import com.liveramp.hank.coordinator.Domain; import com.liveramp.hank.storage.PartitionRemoteFileOps; import com.liveramp.hank.storage.PartitionRemoteFileOpsFactory; import com.liveramp.hank.storage.RemoteDomainVersionDeleter; import com.liveramp.hank.storage.cueball.Cueball; import java.io.IOException; public class CurlyRemoteDomainVersionDeleter implements RemoteDomainVersionDeleter { protected final Domain domain; protected final String remoteDomainRoot; protected final PartitionRemoteFileOpsFactory fileOpsFactory; public CurlyRemoteDomainVersionDeleter(Domain domain, String remoteDomainRoot, PartitionRemoteFileOpsFactory fileOpsFactory) { this.domain = domain; this.remoteDomainRoot = remoteDomainRoot; this.fileOpsFactory = fileOpsFactory; } @Override public void deleteVersion(int versionNumber) throws IOException { for (int partition = 0; partition < domain.getNumParts(); ++partition) { PartitionRemoteFileOps fileOps = fileOpsFactory.getPartitionRemoteFileOps(remoteDomainRoot, partition); fileOps.attemptDelete(Cueball.getName(versionNumber, true)); fileOps.attemptDelete(Cueball.getName(versionNumber, false)); fileOps.attemptDelete(Curly.getName(versionNumber, true)); fileOps.attemptDelete(Curly.getName(versionNumber, false)); } } }