CassandraScheduler implements Scheduler, Observer { @Override public void update(Observable observable) { if (observable == planManager.getPlan() || observable == recoveryScheduler) { suppressOrRevive(); } } @Inject  CassandraScheduler(
            final ConfigurationManager configurationManager,
            final MesosConfig mesosConfig,
            final PersistentOfferRequirementProvider offerRequirementProvider,
            final CassandraState cassandraState,
            final SchedulerClient client,
            final BackupManager backup,
            final RestoreManager restore,
            final CleanupManager cleanup,
            final RepairManager repair,
            final UpgradeSSTableManager upgrade,
            @Named("ConfiguredEnableUpgradeSSTableEndpoint") boolean enableUpgradeSSTableEndpoint,
            final SeedsManager seeds,
            final ScheduledExecutorService executor,
            final StateStore stateStore,
            final DefaultConfigurationManager defaultConfigurationManager,
            final Capabilities capabilities); @Override void registered(SchedulerDriver driver,
                           Protos.FrameworkID frameworkId,
                           Protos.MasterInfo masterInfo); @Override void reregistered(SchedulerDriver driver,
                             Protos.MasterInfo masterInfo); @Override void resourceOffers(SchedulerDriver driver, List<Protos.Offer> offers); @Override void offerRescinded(SchedulerDriver driver, Protos.OfferID offerId); @Override void statusUpdate(SchedulerDriver driver, Protos.TaskStatus status); @Override void frameworkMessage(SchedulerDriver driver,
                                 Protos.ExecutorID executorId,
                                 Protos.SlaveID slaveId,
                                 byte[] data); @Override void disconnected(SchedulerDriver driver); @Override void slaveLost(SchedulerDriver driver, Protos.SlaveID slaveId); @Override void executorLost(SchedulerDriver driver,
                             Protos.ExecutorID executorId,
                             Protos.SlaveID slaveId,
                             int status); @Override void error(SchedulerDriver driver, String message); void registerFramework(); @Override void update(Observable observable); static TaskKiller getTaskKiller();  }
@Test public void installAndUpdate() throws Exception { install(); Collection<? extends Step> incompleteSteps = getIncompleteSteps(); assertTrue(incompleteSteps.isEmpty()); beforeHelper("update-scheduler.yml"); update(); incompleteSteps = getIncompleteSteps(); assertTrue(incompleteSteps.isEmpty()); final CassandraDaemonTask task = cassandraState.getDaemons().get("node-0"); assertTrue(task.getExecutor().getURIs().contains("https: assertEquals(0.6, task.getConfig().getCpus(), 0.0); }