public static void cleanDomains(Collection <Domain> domains, boolean deleteMetadata, StorageEngine.RemoteLocation dataLocation) throws IOException { for (Domain domain : domains) { StorageEngine storageEngine = domain.getStorageEngine(); RemoteDomainCleaner cleaner = storageEngine.getRemoteDomainCleaner(); if (cleaner == null) { LOG.info("Failed to clean Domain " + domain.getName() + ". No Remote Domain Cleaner is configured."); continue; } RemoteDomainVersionDeleter deleter = storageEngine.getRemoteDomainVersionDeleter(dataLocation); if (deleter == null) { LOG.info("Failed to clean Domain " + domain.getName() + ". No Remote Domain Version Deleter is configured."); continue; } LOG.info("Cleaning Domain " + domain.getName()); cleaner.deleteOldVersions(deleter, deleteMetadata); } }
public static void main(String[] args) throws IOException, InvalidConfigurationException { CommandLineChecker.check(args, new String[]{"configuration", "domain name", "domain version number"}, RemoteDomainVersionDeletionHelper.class ); String configurationPath = args[0]; String domainName = args[1]; Integer versionNumber = Integer.parseInt(args[2]); Coordinator coordinator = new YamlCoordinatorConfigurator(configurationPath).createCoordinator(); Domain domain = coordinator.getDomain(domainName); if (domain == null) { throw new RuntimeException("Given domain was not found: " + domainName); } DomainVersion domainVersion = domain.getVersion(versionNumber); if (domainVersion == null) { throw new RuntimeException("Given version was not found: " + domainName + " version " + versionNumber); } LOG.info("Deleting remote data for domain " + domainName + " version " + versionNumber); domainVersion.setDefunct(true); domain.getStorageEngine().getRemoteDomainVersionDeleter(StorageEngine.RemoteLocation.DOMAIN_BUILDER).deleteVersion(versionNumber); } }