Commit 811a548a authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

implement purge db command

parent dcfa536c
import auth.ExampleAuthenticator; import auth.ExampleAuthenticator;
import com.bazaarvoice.dropwizard.webjars.WebJarBundle; import com.bazaarvoice.dropwizard.webjars.WebJarBundle;
import com.fasterxml.jackson.dataformat.yaml.snakeyaml.Yaml;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;
import com.google.inject.Guice; import com.google.inject.Guice;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.mongodb.MongoClient; import com.mongodb.MongoClient;
import commands.PurgeDatabaseCommand;
import core.ApplicationConfiguration; import core.ApplicationConfiguration;
import io.dropwizard.Application; import io.dropwizard.Application;
import io.dropwizard.assets.AssetsBundle; import io.dropwizard.assets.AssetsBundle;
...@@ -37,6 +39,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -37,6 +39,7 @@ public class CTFApplication extends Application<ApplicationConfiguration>
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap)
{ {
bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html")); bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html"));
bootstrap.addCommand(new PurgeDatabaseCommand());
Stream.of("org.webjars.npm", "org.webjars.bower") Stream.of("org.webjars.npm", "org.webjars.bower")
.map(WebJarBundle::new) .map(WebJarBundle::new)
.forEach(bootstrap::addBundle); .forEach(bootstrap::addBundle);
...@@ -100,7 +103,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -100,7 +103,7 @@ public class CTFApplication extends Application<ApplicationConfiguration>
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor bind(ApplicationConfiguration.class).toInstance(applicationConfiguration); //todo: refactor
Morphia morphia = new Morphia(); Morphia morphia = new Morphia();
morphia.mapPackage("objects.Team"); morphia.mapPackage("objects.Team"); //todo? what for?
datastore = morphia.createDatastore( datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(),applicationConfiguration.getDbPort()), applicationConfiguration.getDbName()); new MongoClient(applicationConfiguration.getDbHost(),applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.ensureIndexes(); datastore.ensureIndexes();
......
package commands;
import com.mongodb.MongoClient;
import core.ApplicationConfiguration;
import io.dropwizard.cli.ConfiguredCommand;
import io.dropwizard.setup.Bootstrap;
import net.sourceforge.argparse4j.inf.Namespace;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
public class PurgeDatabaseCommand extends ConfiguredCommand<ApplicationConfiguration>
{
private static final String COMMAND_NAME = "purgedb";
private static final String COMMAND_DESCRIPTION = "Purge database";
public PurgeDatabaseCommand()
{
super(COMMAND_NAME, COMMAND_DESCRIPTION);
}
@Override
protected void run(Bootstrap<ApplicationConfiguration> bootstrap, Namespace namespace, ApplicationConfiguration applicationConfiguration) throws Exception
{
//todo: move and merge with app setup
Morphia morphia = new Morphia();
Datastore datastore = morphia.createDatastore(
new MongoClient(applicationConfiguration.getDbHost(), applicationConfiguration.getDbPort()), applicationConfiguration.getDbName());
datastore.getDB().dropDatabase();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment