package mil.nga.giat.geowave.datastore.accumulo.operations.config;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.ParametersDelegate;
import mil.nga.giat.geowave.core.cli.converters.PasswordConverter;
import mil.nga.giat.geowave.core.store.StoreFactoryFamilySpi;
import mil.nga.giat.geowave.core.store.StoreFactoryOptions;
import mil.nga.giat.geowave.datastore.accumulo.AccumuloStoreFactoryFamily;
/**
* Default, required options needed in order to execute any command for
* Accumulo.
*/
public class AccumuloRequiredOptions extends
StoreFactoryOptions
{
public static final String ZOOKEEPER_CONFIG_KEY = "zookeeper";
public static final String INSTANCE_CONFIG_KEY = "instance";
public static final String USER_CONFIG_KEY = "user";
// HP Fortify "Hardcoded Password" false positive
// This is a password label, not a password
public static final String PASSWORD_CONFIG_KEY = "password";
@Parameter(names = {
"-z",
"--" + ZOOKEEPER_CONFIG_KEY
}, description = "A comma-separated list of zookeeper servers that an Accumulo instance is using", required = true)
private String zookeeper;
@Parameter(names = {
"-i",
"--" + INSTANCE_CONFIG_KEY
}, description = "The Accumulo instance ID", required = true)
private String instance;
@Parameter(names = {
"-u",
"--" + USER_CONFIG_KEY
}, description = "A valid Accumulo user ID", required = true)
private String user;
@Parameter(names = {
"-p",
"--" + PASSWORD_CONFIG_KEY
}, description = "The password for the user. " + PasswordConverter.DEFAULT_PASSWORD_DESCRIPTION, descriptionKey = "accumulo.pass.label", converter = PasswordConverter.class)
private String password;
@ParametersDelegate
private AccumuloOptions additionalOptions = new AccumuloOptions();
public String getZookeeper() {
return zookeeper;
}
public void setZookeeper(
final String zookeeper ) {
this.zookeeper = zookeeper;
}
public String getInstance() {
return instance;
}
public void setInstance(
final String instance ) {
this.instance = instance;
}
public String getUser() {
return user;
}
public void setUser(
final String user ) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(
final String password ) {
this.password = password;
}
public AccumuloOptions getAdditionalOptions() {
return additionalOptions;
}
public void setAdditionalOptions(
final AccumuloOptions additionalOptions ) {
this.additionalOptions = additionalOptions;
}
@Override
public StoreFactoryFamilySpi getStoreFactory() {
return new AccumuloStoreFactoryFamily();
}
}