/* * Copyright (C) 2013 All rights reserved * VPRO The Netherlands */ package dgm.fixtures; import com.google.inject.Provider; import dgm.configuration.Configuration; import dgm.configuration.FixtureConfiguration; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.client.Client; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.util.ArrayList; import java.util.List; /** * User: rico * Date: 08/04/2013 */ public class DeleteIndexesCommand implements Command<List<String>> { private final Client client; private final Provider<Configuration> cfgProvider; private static final Logger log = LoggerFactory.getLogger(DeleteIndexesCommand.class); @Inject public DeleteIndexesCommand(Client client, Provider<Configuration> cfgProvider) { this.client = client; this.cfgProvider = cfgProvider; } @Override public List<String> execute() throws Exception { List<String> indexes = new ArrayList<String>(); FixtureConfiguration fixtureConfig = cfgProvider.get().getFixtureConfiguration(); log.debug("Deleting indexes: [{}]", fixtureConfig.getIndexNames()); for (String indexName : fixtureConfig.getIndexNames()) { try { client.admin().indices().delete(new DeleteIndexRequest(indexName)).get(); indexes.add(indexName); } catch (Exception e) { log.warn("Something went wrong deleting index [{}], cause: {}. Perhaps it did not exist?", indexName, e.getMessage()); } } return indexes; } }