package mil.nga.giat.geowave.core.store.operations.remote; import java.io.File; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.beust.jcommander.Parameter; import com.beust.jcommander.ParameterException; import com.beust.jcommander.Parameters; import mil.nga.giat.geowave.core.cli.annotations.GeowaveOperation; import mil.nga.giat.geowave.core.cli.api.Command; import mil.nga.giat.geowave.core.cli.api.DefaultOperation; import mil.nga.giat.geowave.core.cli.api.OperationParams; import mil.nga.giat.geowave.core.cli.operations.config.options.ConfigOptions; import mil.nga.giat.geowave.core.store.operations.remote.options.DataStorePluginOptions; import mil.nga.giat.geowave.core.store.operations.remote.options.StoreLoader; import mil.nga.giat.geowave.core.store.query.EverythingQuery; import mil.nga.giat.geowave.core.store.query.QueryOptions; @GeowaveOperation(name = "clear", parentOperation = RemoteSection.class) @Parameters(commandDescription = "Clear ALL data from a GeoWave store and delete tables") public class ClearCommand extends DefaultOperation implements Command { private final static Logger LOGGER = LoggerFactory.getLogger(ClearCommand.class); @Parameter(description = "<store name>") private List<String> parameters = new ArrayList<String>(); private DataStorePluginOptions inputStoreOptions = null; @Override public void execute( OperationParams params ) { if (parameters.size() < 1) { throw new ParameterException( "Must specify store name"); } String inputStoreName = parameters.get(0); // Attempt to load input store. if (inputStoreOptions == null) { StoreLoader inputStoreLoader = new StoreLoader( inputStoreName); if (!inputStoreLoader.loadFromConfig(getGeoWaveConfigFile(params))) { throw new ParameterException( "Cannot find store name: " + inputStoreLoader.getStoreName()); } inputStoreOptions = inputStoreLoader.getDataStorePlugin(); } LOGGER.info("Deleting everything in store: " + inputStoreName); inputStoreOptions.createDataStore().delete( new QueryOptions(), new EverythingQuery()); } public List<String> getParameters() { return parameters; } public void setParameters( String storeName ) { this.parameters = new ArrayList<String>(); this.parameters.add(storeName); } public DataStorePluginOptions getInputStoreOptions() { return inputStoreOptions; } public void setInputStoreOptions( DataStorePluginOptions inputStoreOptions ) { this.inputStoreOptions = inputStoreOptions; } }