Make ScourMessageCacheCommand a ConfiguredCommand instead of an EnvironmentCommand.

This commit is contained in:
Jon Chambers 2020-08-31 15:09:11 -04:00 committed by Jon Chambers
parent 82a7f2dc2d
commit dfe80a30dc
1 changed files with 9 additions and 14 deletions

View File

@ -3,13 +3,10 @@ package org.whispersystems.textsecuregcm.workers;
import com.codahale.metrics.Histogram; import com.codahale.metrics.Histogram;
import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.SharedMetricRegistries; import com.codahale.metrics.SharedMetricRegistries;
import com.codahale.metrics.jdbi3.strategies.DefaultNameStrategy;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.InvalidProtocolBufferException;
import io.dropwizard.Application; import io.dropwizard.cli.ConfiguredCommand;
import io.dropwizard.cli.EnvironmentCommand; import io.dropwizard.setup.Bootstrap;
import io.dropwizard.jdbi3.JdbiFactory;
import io.dropwizard.setup.Environment;
import io.lettuce.core.ScanArgs; import io.lettuce.core.ScanArgs;
import io.lettuce.core.ScanIterator; import io.lettuce.core.ScanIterator;
import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Namespace;
@ -17,6 +14,7 @@ import org.jdbi.v3.core.Jdbi;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.whispersystems.textsecuregcm.WhisperServerConfiguration; import org.whispersystems.textsecuregcm.WhisperServerConfiguration;
import org.whispersystems.textsecuregcm.configuration.DatabaseConfiguration;
import org.whispersystems.textsecuregcm.entities.MessageProtos; import org.whispersystems.textsecuregcm.entities.MessageProtos;
import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisClient; import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisClient;
import org.whispersystems.textsecuregcm.storage.FaultTolerantDatabase; import org.whispersystems.textsecuregcm.storage.FaultTolerantDatabase;
@ -29,7 +27,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import static com.codahale.metrics.MetricRegistry.name; import static com.codahale.metrics.MetricRegistry.name;
public class ScourMessageCacheCommand extends EnvironmentCommand<WhisperServerConfiguration> { public class ScourMessageCacheCommand extends ConfiguredCommand<WhisperServerConfiguration> {
private FaultTolerantRedisClient redisClient; private FaultTolerantRedisClient redisClient;
private Messages messageDatabase; private Messages messageDatabase;
@ -40,17 +38,14 @@ public class ScourMessageCacheCommand extends EnvironmentCommand<WhisperServerCo
private static final Logger log = LoggerFactory.getLogger(ScourMessageCacheCommand.class); private static final Logger log = LoggerFactory.getLogger(ScourMessageCacheCommand.class);
public ScourMessageCacheCommand() { public ScourMessageCacheCommand() {
super(new Application<>() { super("scourmessagecache", "Persist and remove all message queues from the old message cache");
@Override
public void run(final WhisperServerConfiguration whisperServerConfiguration, final Environment environment) {
}
}, "scourmessagecache", "Persist and remove all message queues from the old message cache");
} }
@SuppressWarnings("ConstantConditions")
@Override @Override
protected void run(final Environment environment, final Namespace namespace, final WhisperServerConfiguration config) { protected void run(final Bootstrap<WhisperServerConfiguration> bootstrap, final Namespace namespace, final WhisperServerConfiguration config) {
final JdbiFactory jdbiFactory = new JdbiFactory(DefaultNameStrategy.CHECK_EMPTY); final DatabaseConfiguration messageDbConfig = config.getMessageStoreConfiguration();
final Jdbi messageJdbi = jdbiFactory.build(environment, config.getMessageStoreConfiguration(), "messagedb" ); final Jdbi messageJdbi = Jdbi.create(messageDbConfig.getUrl(), messageDbConfig.getUser(), messageDbConfig.getPassword());
final FaultTolerantDatabase messageDatabase = new FaultTolerantDatabase("message_database", messageJdbi, config.getMessageStoreConfiguration().getCircuitBreakerConfiguration()); final FaultTolerantDatabase messageDatabase = new FaultTolerantDatabase("message_database", messageJdbi, config.getMessageStoreConfiguration().getCircuitBreakerConfiguration());
this.setMessageDatabase(new Messages(messageDatabase)); this.setMessageDatabase(new Messages(messageDatabase));