Search in sources :

Example 1 with QueuingTestRunner

use of com.datastax.fallout.runner.QueuingTestRunner in project fallout by datastax.

the class QueuingTestRunnerAbortTest method abortsTestDuring.

private void abortsTestDuring(Method abortMethod, TestRun.State expectedFailedDuring, List<Method> expectedMethods) {
    final Test test = makeTest("abort-fake.yaml");
    final TestRun testRun = testRunFactory.makeTestRun(test);
    final CompletableFuture<TestRun> completedTestRun = new CompletableFuture<>();
    expectedAbortMode = expectedMethods.contains(NODE_EXECUTION_KILLED) ? ExpectedAbortMode.ABORT_WITH_KILL : ExpectedAbortMode.ABORT;
    try (QueuingTestRunner testRunner = testRunnerBuilder().modifyComponentFactory(componentFactory -> componentFactory.mockAll(Provisioner.class, AbortProvisioner::new).mockAll(Module.class, AbortModule::new)).modifyActiveTestRunFactory(activeTestRunFactory -> activeTestRunFactory.withCommandExecutorFactory(FakeCommandExecutor::new)).withTestRunCompletionCallback(completedTestRun::complete).build()) {
        testRunner.queueTestRun(testRun);
        if (abortMethod != null) {
            logger.withScopedInfo("waiting for method {} to start before aborting", abortMethod).run(() -> await(methodStarted));
            logger.withScopedInfo("aborting {}", abortMethod).run(() -> testRunner.abortTestRun(testRun));
            methodContinue.countDown();
        }
        assertThat(completedTestRun.join()).isEqualTo(testRun).hasState(abortMethod != null ? TestRun.State.ABORTED : TestRun.State.PASSED).hasFailedDuring(expectedFailedDuring);
    }
    assertThat(calledMethods).isEqualTo(expectedMethods);
    assertThat(testRunnerJobQueue.hasNoRequeuedJobs()).isTrue();
}
Also used : NodeResponse(com.datastax.fallout.ops.commands.NodeResponse) CommandExecutor(com.datastax.fallout.ops.commands.CommandExecutor) CompletableFuture(java.util.concurrent.CompletableFuture) CheckResourcesResult(com.datastax.fallout.runner.CheckResourcesResult) Test(com.datastax.fallout.service.core.Test) TestRun(com.datastax.fallout.service.core.TestRun) Node(com.datastax.fallout.ops.Node) ArrayList(java.util.ArrayList) SUCCEEDS(com.datastax.fallout.harness.QueuingTestRunnerAbortTest.MethodResult.SUCCEEDS) ByteArrayInputStream(java.io.ByteArrayInputStream) ImmutableList(com.google.common.collect.ImmutableList) PropertyGroup(com.datastax.fallout.ops.PropertyGroup) Assertions.assertThat(com.datastax.fallout.assertj.Assertions.assertThat) Map(java.util.Map) Ensemble(com.datastax.fallout.ops.Ensemble) ResourceRequirement(com.datastax.fallout.ops.ResourceRequirement) QueuingTestRunner(com.datastax.fallout.runner.QueuingTestRunner) Path(java.nio.file.Path) Duration(com.datastax.fallout.util.Duration) MethodSource(org.junit.jupiter.params.provider.MethodSource) THROWS(com.datastax.fallout.harness.QueuingTestRunnerAbortTest.MethodResult.THROWS) Uninterruptibles(com.google.common.util.concurrent.Uninterruptibles) Logger(org.slf4j.Logger) FalloutConfiguration(com.datastax.fallout.service.FalloutConfiguration) FakeProvisioner(com.datastax.fallout.components.fakes.FakeProvisioner) IOException(java.io.IOException) ScopedLogger(com.datastax.fallout.util.ScopedLogger) Provisioner(com.datastax.fallout.ops.Provisioner) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) Optional(java.util.Optional) NodeGroup(com.datastax.fallout.ops.NodeGroup) FakeModule(com.datastax.fallout.components.impl.FakeModule) Method(com.datastax.fallout.harness.QueuingTestRunnerAbortTest.Method) Timeout(org.junit.jupiter.api.Timeout) FAILS(com.datastax.fallout.harness.QueuingTestRunnerAbortTest.MethodResult.FAILS) InputStream(java.io.InputStream) CompletableFuture(java.util.concurrent.CompletableFuture) QueuingTestRunner(com.datastax.fallout.runner.QueuingTestRunner) Test(com.datastax.fallout.service.core.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) TestRun(com.datastax.fallout.service.core.TestRun) FakeProvisioner(com.datastax.fallout.components.fakes.FakeProvisioner) Provisioner(com.datastax.fallout.ops.Provisioner)

Example 2 with QueuingTestRunner

use of com.datastax.fallout.runner.QueuingTestRunner in project fallout by datastax.

the class QueuingTestRunnerDestroyTest method destroysNodeGroupTest.

private void destroysNodeGroupTest(Function<AtomicInteger, Provisioner> provisionerFactory) {
    final AtomicInteger nodeGroupDestroyed = new AtomicInteger(0);
    final CompletableFuture<TestRun> completedTestRun = new CompletableFuture<>();
    try (QueuingTestRunner testRunner = testRunnerBuilder().modifyComponentFactory(componentFactory -> componentFactory.mockAll(Provisioner.class, () -> provisionerFactory.apply(nodeGroupDestroyed))).withTestRunCompletionCallback(completedTestRun::complete).build()) {
        final Test test = makeTest("fakes.yaml");
        final TestRun testRun = testRunFactory.makeTestRun(test);
        testRunner.queueTestRun(testRun);
        assertThat(completedTestRun.join()).isEqualTo(testRun).hasState(TestRun.State.FAILED).hasFailedDuring(TestRun.State.SETTING_UP);
        assertThat(nodeGroupDestroyed.get()).isEqualTo(1);
    }
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) QueuingTestRunner(com.datastax.fallout.runner.QueuingTestRunner) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Test(com.datastax.fallout.service.core.Test) TestRun(com.datastax.fallout.service.core.TestRun) FakeProvisioner(com.datastax.fallout.components.fakes.FakeProvisioner) Provisioner(com.datastax.fallout.ops.Provisioner)

Example 3 with QueuingTestRunner

use of com.datastax.fallout.runner.QueuingTestRunner in project fallout by datastax.

the class FalloutServiceBase method runServer.

private void runServer(FC conf, Environment environment, CreateAbortableTestRunExecutorFactory createTestRunExecutorFactory, SchemaMode schemaMode) throws Exception {
    final LifecycleManager m = new LifecycleManager(environment);
    final ResourceReservationLocks resourceReservationLocks = new ResourceReservationLocks();
    cassandraDriverManager = m.manage(new CassandraDriverManager(conf.getCassandraHost(), conf.getCassandraPort(), conf.getKeyspace(), schemaMode, preCreateSchemaCallback));
    SecurityUtil securityUtil = new SecurityUtil(conf.getSecureRandomAlgorithm());
    final var userGroupMapper = createUserGroupMapper();
    UserDAO userDAO = m.manage(new UserDAO(cassandraDriverManager, securityUtil, conf.getAdminUserCreds(), userGroupMapper));
    TestRunDAO testRunDAO = m.manage(new TestRunDAO(cassandraDriverManager));
    TestDAO testDAO = m.manage(new TestDAO(cassandraDriverManager, testRunDAO));
    PerformanceReportDAO reportDAO = m.manage(new PerformanceReportDAO(cassandraDriverManager));
    ActiveTestRunFactory activeTestRunFactory = createActiveTestRunFactory(conf);
    UserMessenger mailer = HtmlMailUserMessenger.create(conf);
    UserCredentialsFactory userCredentialsFactory = (testRun) -> {
        User user = userDAO.getUser(testRun.getOwner());
        if (user == null) {
            throw new RuntimeException(String.format("Couldn't find User with email '%s'", testRun.getOwner()));
        }
        return new UserCredentials(user, userDAO.getCIUserByUser(user));
    };
    QueuingTestRunner testRunner = m.manageStartOnly(new QueuingTestRunner(testRunDAO::update, testDAO::updateLastRunAt, new PersistentPendingQueue(testRunDAO::getQueued), userCredentialsFactory, createTestRunExecutorFactory.create(conf, m, mailer, testDAO, testRunDAO, activeTestRunFactory), testRun -> activeTestRunFactory.getResourceRequirements(testRun, userCredentialsFactory), resourceReservationLocks, conf.getResourceLimits(), conf.getStartPaused()));
    // monitor queue metrics
    QueueMetricsManager.registerMetrics(environment.metrics(), testRunDAO);
    runningTestRunsCount = testRunner::getRunningTestRunsCount;
    // Make sure the performance_reports dir exists
    FileUtils.createDirs(Paths.get(conf.getArtifactPath(), "performance_reports"));
    final HashedWheelTimer timer = m.manage(new HashedWheelTimer(new NamedThreadFactory("ServiceTimer")), HashedWheelTimer::stop);
    Path artifactPath = Paths.get(conf.getArtifactPath());
    final var runningTaskLock = new ReentrantLock();
    ArtifactScrubber artifactScrubber = m.manage(new ArtifactScrubber(conf.getStartPaused(), timer, runningTaskLock, Duration.hours(0), Duration.hours(24), artifactPath, testRunDAO, userDAO));
    ArtifactCompressor artifactCompressor = m.manage(new ArtifactCompressor(conf.getStartPaused(), timer, runningTaskLock, Duration.hours(12), Duration.hours(24), artifactPath, testRunDAO, testDAO));
    TestRunReaper testRunReaper = m.manage(new TestRunReaper(conf.getStartPaused(), timer, runningTaskLock, Duration.hours(18), Duration.days(7), testRunDAO, reportDAO, testDAO, mailer, SlackUserMessenger.create(conf.getSlackToken(), m.manage(FalloutClientBuilder.forComponent(SlackUserMessenger.class).build(), Client::close)), conf.getExternalUrl()));
    QueueAdminTask queueAdminTask = new QueueAdminTask(testRunner, List.of(artifactScrubber, artifactCompressor, testRunReaper));
    environment.admin().addTask(queueAdminTask);
    final var artifactUsageAdminTask = new ArtifactUsageAdminTask(testRunDAO);
    environment.admin().addTask(artifactUsageAdminTask);
    environment.admin().addTask(new ArtifactCompressorAdminTask(artifactCompressor));
    environment.admin().addTask(new ShutdownTask(this::shutdown));
    truncateTrailingSlashesInUrls(conf);
    final RewriteHandler rewriteHandler = new RewriteHandler();
    conf.getServerFactory().insertHandler(rewriteHandler);
    addArtifactServlet(conf, environment, rewriteHandler);
    // Add CORS headers so that fallout API can be consumed from other than the main URL
    // The `CrossOriginFilter` comes with the required default settings: allow any origin
    environment.servlets().addFilter("CORS", CrossOriginFilter.class).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
    // Register our exception mappers: note that we must use concrete (i.e. non-generic) classes, otherwise
    // the convoluted exception mapping code in Jersey will fail with an HTTP 500 error.
    // Dropwizard registers several helpful exception mappers on server start in its ExceptionMapperBinder; one of
    // these provides a helper logging method for detecting a particular developer error when POSTing
    // forms.  Unfortunately, this intercepts _all_ IllegalStateExceptions.  We insert our IllegalStateException
    // mapper here to pre-empt it, whilest keeping the helper logic.
    environment.jersey().register(new FalloutExceptionMapper<IllegalStateException>() {

        private final IllegalStateExceptionMapper dropWizardIllegalStateExceptionMapper = new IllegalStateExceptionMapper();

        /**
         * If the helper code in {@link IllegalStateExceptionMapper} applies, use that
         */
        @Override
        public Response toResponse(IllegalStateException exception) {
            if (LocalizationMessages.FORM_PARAM_CONTENT_TYPE_ERROR().equals(exception.getMessage())) {
                return dropWizardIllegalStateExceptionMapper.toResponse(exception);
            }
            return super.toResponse(exception);
        }
    });
    // This is our default exception mapper.
    environment.jersey().register(new FalloutExceptionMapper<>() {
    });
    environment.jersey().register(new AuthDynamicFeature(new ChainedAuthFilter(getAuthFilters(conf, userDAO))));
    // Enable @RolesAllowed annotations
    environment.jersey().register(new RolesAllowedDynamicFeature());
    // If you want to use @Auth to inject a custom Principal type into your resource
    environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
    final ComponentResource componentResource = new ComponentResource(conf, componentFactory);
    MainView mainView = new MainView(componentResource.getComponentTypes(), testRunner, addVersionedAssetsRewriteRule(rewriteHandler), conf::hideDisplayedEmailDomains);
    componentResource.setMainView(mainView);
    CommandExecutor commandExecutor = new LocalCommandExecutor();
    environment.jersey().register(new StatusResource(testRunner));
    environment.jersey().register(new HomeResource(conf, userDAO, testRunDAO, testRunner, conf.getResourceLimits(), mainView, userGroupMapper));
    environment.jersey().register(new AdminResource(testRunner, queueAdminTask, artifactUsageAdminTask, mainView));
    environment.jersey().register(new AccountResource(userDAO, conf, mailer, mainView, securityUtil, userGroupMapper));
    environment.jersey().register(new TestResource(conf, testDAO, testRunDAO, activeTestRunFactory, userCredentialsFactory, reportDAO, testRunner, mainView, userGroupMapper));
    environment.jersey().register(componentResource);
    environment.jersey().register(new PerformanceToolResource(testDAO, testRunDAO, reportDAO, conf.getArtifactPath(), mainView, userGroupMapper));
    registerOptionalResources(conf, environment, testRunDAO, commandExecutor);
    // Using SSE (which is what LiveResource uses) doesn't work unless we prevent the
    // GZIP output filter from flushing-on-demand (if we don't do this, data is queued up until the
    // GZIP implementation decides it's a good time to flush: see java.util.zip.Deflater#SYNC_FLUSH).
    ((DefaultServerWithHandlerFactory) conf.getServerFactory()).getGzipFilterFactory().setSyncFlush(true);
    final ArtifactWatcher artifactWatcher = new ArtifactWatcher(Paths.get(conf.getArtifactPath()), timer, conf.getArtifactWatcherCoalescingIntervalSeconds());
    environment.lifecycle().manage(artifactWatcher);
    final ServerSentEvents serverSentEvents = m.manageStartOnly(new ServerSentEvents(timer, conf.getServerSentEventsHeartBeatIntervalSeconds()));
    environment.jersey().register(new LiveResource(testRunDAO, artifactWatcher, serverSentEvents));
    setShutdownHandler(environment, testRunner, serverSentEvents);
}
Also used : RewriteHandler(org.eclipse.jetty.rewrite.handler.RewriteHandler) SwaggerBundleConfiguration(io.federecio.dropwizard.swagger.SwaggerBundleConfiguration) JacksonUtils(com.datastax.fallout.util.JacksonUtils) AuthValueFactoryProvider(io.dropwizard.auth.AuthValueFactoryProvider) Map(java.util.Map) RolesAllowedDynamicFeature(org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature) AbortableRunnableExecutorFactory(com.datastax.fallout.runner.AbortableRunnableExecutorFactory) QueuingTestRunner(com.datastax.fallout.runner.QueuingTestRunner) Path(java.nio.file.Path) ResourceReservationLocks(com.datastax.fallout.runner.ResourceReservationLocks) EnumSet(java.util.EnumSet) Duration(com.datastax.fallout.util.Duration) LocalCommandExecutor(com.datastax.fallout.ops.commands.LocalCommandExecutor) MainView(com.datastax.fallout.service.views.MainView) RewriteRegexRule(org.eclipse.jetty.rewrite.handler.RewriteRegexRule) LocalizationMessages(org.glassfish.jersey.server.internal.LocalizationMessages) NginxArtifactServlet(com.datastax.fallout.service.artifacts.NginxArtifactServlet) Verify(com.google.common.base.Verify) SingleUserAuthFilter(com.datastax.fallout.service.auth.SingleUserAuthFilter) Servlet(javax.servlet.Servlet) UserCredentials(com.datastax.fallout.runner.UserCredentialsFactory.UserCredentials) Set(java.util.Set) ScopedLogger(com.datastax.fallout.util.ScopedLogger) DefaultServerFactory(io.dropwizard.server.DefaultServerFactory) RunnableExecutorFactory(com.datastax.fallout.runner.RunnableExecutorFactory) FalloutTokenAuthenticator(com.datastax.fallout.service.auth.FalloutTokenAuthenticator) HtmlMailUserMessenger(com.datastax.fallout.util.HtmlMailUserMessenger) CheckCommand(io.dropwizard.cli.CheckCommand) FalloutExecCommand(com.datastax.fallout.service.cli.FalloutExecCommand) CommonProperties(org.glassfish.jersey.CommonProperties) User(com.datastax.fallout.service.core.User) FreemarkerViewRenderer(io.dropwizard.views.freemarker.FreemarkerViewRenderer) Bootstrap(io.dropwizard.setup.Bootstrap) ComponentFactory(com.datastax.fallout.util.component_discovery.ComponentFactory) ServerSentEvents(com.datastax.fallout.service.resources.ServerSentEvents) Exceptions(com.datastax.fallout.util.Exceptions) LiveResource(com.datastax.fallout.service.resources.server.LiveResource) TestResource(com.datastax.fallout.service.resources.server.TestResource) Supplier(java.util.function.Supplier) ViewBundle(io.dropwizard.views.ViewBundle) FalloutVersion(com.datastax.fallout.FalloutVersion) ArrayList(java.util.ArrayList) QueueMetricsManager(com.datastax.fallout.service.db.QueueMetricsManager) HttpConnectorFactory(io.dropwizard.jetty.HttpConnectorFactory) ClojureShutdown(com.datastax.fallout.harness.ClojureShutdown) DelegatingExecutorFactory(com.datastax.fallout.runner.DelegatingExecutorFactory) Environment(io.dropwizard.setup.Environment) UserGroupMapper(com.datastax.fallout.service.db.UserGroupMapper) ArtifactScrubber(com.datastax.fallout.service.artifacts.ArtifactScrubber) ReadOnlyTestRun(com.datastax.fallout.service.core.ReadOnlyTestRun) AccountResource(com.datastax.fallout.service.resources.server.AccountResource) CassandraDriverManager(com.datastax.fallout.service.db.CassandraDriverManager) Paths(java.nio.file.Paths) ForkJoinPool(java.util.concurrent.ForkJoinPool) RunnerResource(com.datastax.fallout.service.resources.runner.RunnerResource) UserMessenger(com.datastax.fallout.util.UserMessenger) PersistentPendingQueue(com.datastax.fallout.runner.queue.PersistentPendingQueue) SecurityUtil(com.datastax.fallout.service.auth.SecurityUtil) HomeResource(com.datastax.fallout.service.resources.server.HomeResource) FinishedTestRunUserNotifier(com.datastax.fallout.util.FinishedTestRunUserNotifier) TestRun(com.datastax.fallout.service.core.TestRun) IllegalStateExceptionMapper(io.dropwizard.jersey.errors.IllegalStateExceptionMapper) RedirectRegexRule(org.eclipse.jetty.rewrite.handler.RedirectRegexRule) Ensemble(com.datastax.fallout.ops.Ensemble) URI(java.net.URI) ComponentResource(com.datastax.fallout.service.resources.server.ComponentResource) PerformanceReportDAO(com.datastax.fallout.service.db.PerformanceReportDAO) Authorizer(io.dropwizard.auth.Authorizer) UserDAO(com.datastax.fallout.service.db.UserDAO) Application(io.dropwizard.Application) Cassandra(com.datastax.fallout.service.cli.Cassandra) FalloutStandaloneCommand(com.datastax.fallout.service.cli.FalloutStandaloneCommand) FalloutCookieAuthFilter(com.datastax.fallout.service.auth.FalloutCookieAuthFilter) SwaggerBundle(io.federecio.dropwizard.swagger.SwaggerBundle) ArtifactUsageAdminTask(com.datastax.fallout.service.artifacts.ArtifactUsageAdminTask) ThreadedRunnableExecutorFactory(com.datastax.fallout.runner.ThreadedRunnableExecutorFactory) MustacheViewRendererWithoutTemplatingErrors(com.datastax.fallout.util.MustacheViewRendererWithoutTemplatingErrors) AssetsBundle(io.dropwizard.assets.AssetsBundle) List(java.util.List) AuthFilter(io.dropwizard.auth.AuthFilter) TestDAO(com.datastax.fallout.service.db.TestDAO) Response(javax.ws.rs.core.Response) NamedThreadFactory(com.datastax.fallout.util.NamedThreadFactory) Managed(io.dropwizard.lifecycle.Managed) HashedWheelTimer(io.netty.util.HashedWheelTimer) Optional(java.util.Optional) ChainedAuthFilter(io.dropwizard.auth.chained.ChainedAuthFilter) ArtifactCompressorAdminTask(com.datastax.fallout.service.artifacts.ArtifactCompressorAdminTask) OAuthCredentialAuthFilter(io.dropwizard.auth.oauth.OAuthCredentialAuthFilter) GenerateNginxConf(com.datastax.fallout.service.cli.GenerateNginxConf) ServerMode(com.datastax.fallout.service.FalloutConfiguration.ServerMode) ServletRegistration(javax.servlet.ServletRegistration) CommandExecutor(com.datastax.fallout.ops.commands.CommandExecutor) Client(javax.ws.rs.client.Client) AuthDynamicFeature(io.dropwizard.auth.AuthDynamicFeature) CompletableFuture(java.util.concurrent.CompletableFuture) Function(java.util.function.Function) SchemaMode(com.datastax.fallout.service.db.CassandraDriverManager.SchemaMode) ActiveTestRun(com.datastax.fallout.harness.ActiveTestRun) FalloutQueueCommand(com.datastax.fallout.service.cli.FalloutQueueCommand) ArtifactCompressor(com.datastax.fallout.service.artifacts.ArtifactCompressor) ActiveTestRunFactory(com.datastax.fallout.runner.ActiveTestRunFactory) IntSupplier(java.util.function.IntSupplier) CrossOriginFilter(org.eclipse.jetty.servlets.CrossOriginFilter) FalloutRunnerCommand(com.datastax.fallout.service.cli.FalloutRunnerCommand) FileUtils(com.datastax.fallout.util.FileUtils) SlackUserMessenger(com.datastax.fallout.util.SlackUserMessenger) AdminResource(com.datastax.fallout.service.resources.server.AdminResource) ReentrantLock(java.util.concurrent.locks.ReentrantLock) JettyArtifactServlet(com.datastax.fallout.service.artifacts.JettyArtifactServlet) TestRunReaper(com.datastax.fallout.service.core.TestRunReaper) DelegatingRunnableExecutorFactory(com.datastax.fallout.runner.DelegatingRunnableExecutorFactory) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) UserCredentialsFactory(com.datastax.fallout.runner.UserCredentialsFactory) TestRunStatusUpdatePublisher(com.datastax.fallout.harness.TestRunStatusUpdatePublisher) AutoCloseableManager(io.dropwizard.lifecycle.AutoCloseableManager) DirectTestRunner(com.datastax.fallout.runner.DirectTestRunner) Consumer(java.util.function.Consumer) ArtifactWatcher(com.datastax.fallout.service.artifacts.ArtifactWatcher) TestRunDAO(com.datastax.fallout.service.db.TestRunDAO) JobLoggersFactory(com.datastax.fallout.runner.JobLoggersFactory) StatusResource(com.datastax.fallout.service.resources.server.StatusResource) DispatcherType(javax.servlet.DispatcherType) PerformanceToolResource(com.datastax.fallout.service.resources.server.PerformanceToolResource) WebTarget(javax.ws.rs.client.WebTarget) VisibleForTesting(com.google.common.annotations.VisibleForTesting) FalloutValidateCommand(com.datastax.fallout.service.cli.FalloutValidateCommand) LocalCommandExecutor(com.datastax.fallout.ops.commands.LocalCommandExecutor) CommandExecutor(com.datastax.fallout.ops.commands.CommandExecutor) AuthValueFactoryProvider(io.dropwizard.auth.AuthValueFactoryProvider) RolesAllowedDynamicFeature(org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature) ArtifactScrubber(com.datastax.fallout.service.artifacts.ArtifactScrubber) ComponentResource(com.datastax.fallout.service.resources.server.ComponentResource) PerformanceReportDAO(com.datastax.fallout.service.db.PerformanceReportDAO) ChainedAuthFilter(io.dropwizard.auth.chained.ChainedAuthFilter) ArtifactWatcher(com.datastax.fallout.service.artifacts.ArtifactWatcher) CassandraDriverManager(com.datastax.fallout.service.db.CassandraDriverManager) ArtifactCompressorAdminTask(com.datastax.fallout.service.artifacts.ArtifactCompressorAdminTask) DispatcherType(javax.servlet.DispatcherType) AuthDynamicFeature(io.dropwizard.auth.AuthDynamicFeature) RewriteHandler(org.eclipse.jetty.rewrite.handler.RewriteHandler) ReentrantLock(java.util.concurrent.locks.ReentrantLock) LocalCommandExecutor(com.datastax.fallout.ops.commands.LocalCommandExecutor) NamedThreadFactory(com.datastax.fallout.util.NamedThreadFactory) SlackUserMessenger(com.datastax.fallout.util.SlackUserMessenger) HashedWheelTimer(io.netty.util.HashedWheelTimer) TestRunReaper(com.datastax.fallout.service.core.TestRunReaper) UserCredentialsFactory(com.datastax.fallout.runner.UserCredentialsFactory) IllegalStateExceptionMapper(io.dropwizard.jersey.errors.IllegalStateExceptionMapper) ArtifactCompressor(com.datastax.fallout.service.artifacts.ArtifactCompressor) ArtifactUsageAdminTask(com.datastax.fallout.service.artifacts.ArtifactUsageAdminTask) User(com.datastax.fallout.service.core.User) MainView(com.datastax.fallout.service.views.MainView) HomeResource(com.datastax.fallout.service.resources.server.HomeResource) AdminResource(com.datastax.fallout.service.resources.server.AdminResource) StatusResource(com.datastax.fallout.service.resources.server.StatusResource) PerformanceToolResource(com.datastax.fallout.service.resources.server.PerformanceToolResource) LiveResource(com.datastax.fallout.service.resources.server.LiveResource) ActiveTestRunFactory(com.datastax.fallout.runner.ActiveTestRunFactory) UserDAO(com.datastax.fallout.service.db.UserDAO) ServerSentEvents(com.datastax.fallout.service.resources.ServerSentEvents) Path(java.nio.file.Path) QueuingTestRunner(com.datastax.fallout.runner.QueuingTestRunner) PersistentPendingQueue(com.datastax.fallout.runner.queue.PersistentPendingQueue) TestResource(com.datastax.fallout.service.resources.server.TestResource) CrossOriginFilter(org.eclipse.jetty.servlets.CrossOriginFilter) TestDAO(com.datastax.fallout.service.db.TestDAO) Response(javax.ws.rs.core.Response) AccountResource(com.datastax.fallout.service.resources.server.AccountResource) ResourceReservationLocks(com.datastax.fallout.runner.ResourceReservationLocks) SecurityUtil(com.datastax.fallout.service.auth.SecurityUtil) UserCredentials(com.datastax.fallout.runner.UserCredentialsFactory.UserCredentials) TestRunDAO(com.datastax.fallout.service.db.TestRunDAO) HtmlMailUserMessenger(com.datastax.fallout.util.HtmlMailUserMessenger) UserMessenger(com.datastax.fallout.util.UserMessenger) SlackUserMessenger(com.datastax.fallout.util.SlackUserMessenger)

Aggregations

QueuingTestRunner (com.datastax.fallout.runner.QueuingTestRunner)3 TestRun (com.datastax.fallout.service.core.TestRun)3 CompletableFuture (java.util.concurrent.CompletableFuture)3 FakeProvisioner (com.datastax.fallout.components.fakes.FakeProvisioner)2 Ensemble (com.datastax.fallout.ops.Ensemble)2 Provisioner (com.datastax.fallout.ops.Provisioner)2 CommandExecutor (com.datastax.fallout.ops.commands.CommandExecutor)2 Test (com.datastax.fallout.service.core.Test)2 Duration (com.datastax.fallout.util.Duration)2 ScopedLogger (com.datastax.fallout.util.ScopedLogger)2 Path (java.nio.file.Path)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Map (java.util.Map)2 Optional (java.util.Optional)2 FalloutVersion (com.datastax.fallout.FalloutVersion)1 Assertions.assertThat (com.datastax.fallout.assertj.Assertions.assertThat)1 FakeModule (com.datastax.fallout.components.impl.FakeModule)1 ActiveTestRun (com.datastax.fallout.harness.ActiveTestRun)1 ClojureShutdown (com.datastax.fallout.harness.ClojureShutdown)1