You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2016/04/08 21:03:42 UTC

aurora git commit: Remove support for canonical command line arg names.

Repository: aurora
Updated Branches:
  refs/heads/master 57468d221 -> 61e3a1aca


Remove support for canonical command line arg names.

Reviewed at https://reviews.apache.org/r/45935/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/61e3a1ac
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/61e3a1ac
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/61e3a1ac

Branch: refs/heads/master
Commit: 61e3a1aca195779df98a6616487834f75634f4d2
Parents: 57468d2
Author: Bill Farner <wf...@apache.org>
Authored: Fri Apr 8 12:03:59 2016 -0700
Committer: Bill Farner <wf...@apache.org>
Committed: Fri Apr 8 12:03:59 2016 -0700

----------------------------------------------------------------------
 RELEASE-NOTES.md                                |   3 +
 .../apache/aurora/common/args/ArgScanner.java   |  36 +--
 .../apache/aurora/common/args/ArgumentInfo.java |  14 -
 .../apache/aurora/common/args/OptionInfo.java   |  23 +-
 .../aurora/common/args/PositionalInfo.java      |   4 +-
 .../aurora/common/args/ArgScannerTest.java      |  24 --
 .../aurora/common/args/OptionInfoTest.java      |   4 -
 docs/reference/scheduler-configuration.md       | 269 ++++++-------------
 8 files changed, 97 insertions(+), 280 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/RELEASE-NOTES.md
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 0ca6486..30e2275 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -1,3 +1,4 @@
+
 0.13.0 (Not yet released)
 ------
 
@@ -55,6 +56,8 @@
     - `addInstances`
     - `replaceCronTemplate`
 - Task ID strings are no longer prefixed by a timestamp.
+- The scheduler previously supported specification of command line arguments by fully-qualified
+  class names.  This support has been removed.
 
 0.12.0
 ------

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/main/java/org/apache/aurora/common/args/ArgScanner.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/args/ArgScanner.java b/commons/src/main/java/org/apache/aurora/common/args/ArgScanner.java
index 908553c..46bd0c7 100644
--- a/commons/src/main/java/org/apache/aurora/common/args/ArgScanner.java
+++ b/commons/src/main/java/org/apache/aurora/common/args/ArgScanner.java
@@ -82,7 +82,7 @@ public final class ArgScanner {
 
   private static final Function<OptionInfo<?>, String> GET_OPTION_INFO_NAME = ArgumentInfo::getName;
 
-  public static final Ordering<OptionInfo<?>> ORDER_BY_NAME =
+  private static final Ordering<OptionInfo<?>> ORDER_BY_NAME =
       Ordering.natural().onResultOf(GET_OPTION_INFO_NAME);
 
   private static final Function<String, String> ARG_NAME_TO_FLAG = argName -> "-" + argName;
@@ -111,18 +111,6 @@ public final class ArgScanner {
   private static final Function<OptionInfo<?>, String> GET_OPTION_INFO_NEGATED_NAME =
       OptionInfo::getNegatedName;
 
-  /**
-   * Gets the canonical name for an @Arg, based on the class containing the field it annotates.
-   */
-  private static final Function<OptionInfo<?>, String> GET_CANONICAL_ARG_NAME =
-      ArgumentInfo::getCanonicalName;
-
-  /**
-   * Gets the canonical negated name for an @Arg.
-   */
-  private static final Function<OptionInfo<?>, String> GET_CANONICAL_NEGATED_ARG_NAME =
-      OptionInfo::getCanonicalNegatedName;
-
   private static final Logger LOG = LoggerFactory.getLogger(ArgScanner.class);
 
   // Pattern for the required argument format.
@@ -360,17 +348,12 @@ public final class ArgScanner {
         .putAll(Maps.uniqueIndex(Iterables.filter(optionInfos,
             Predicates.compose(Predicates.in(argAllShortNamesNoCollisions), GET_OPTION_INFO_NAME)),
             GET_OPTION_INFO_NAME))
-        // Map by canonical arg name -> arg def.
-        .putAll(Maps.uniqueIndex(optionInfos, GET_CANONICAL_ARG_NAME))
         // Map by negated short arg name (for booleans)
         .putAll(Maps.uniqueIndex(
             Iterables.filter(Iterables.filter(optionInfos, IS_BOOLEAN),
                 Predicates.compose(Predicates.in(argAllShortNamesNoCollisions),
                     GET_OPTION_INFO_NEGATED_NAME)),
             GET_OPTION_INFO_NEGATED_NAME))
-        // Map by negated canonical arg name (for booleans)
-        .putAll(Maps.uniqueIndex(Iterables.filter(optionInfos, IS_BOOLEAN),
-            GET_CANONICAL_NEGATED_ARG_NAME))
         .build();
 
     // TODO(William Farner): Make sure to disallow duplicate arg specification by short and
@@ -409,9 +392,8 @@ public final class ArgScanner {
     for (ArgumentInfo<?> anArgumentInfo : allArguments) {
       Arg<?> arg = anArgumentInfo.getArg();
 
-      commandLineArgumentInfos.add(String.format("%s (%s): %s",
-          anArgumentInfo.getName(), anArgumentInfo.getCanonicalName(),
-          arg.uncheckedGet()));
+      commandLineArgumentInfos.add(
+          String.format("%s: %s", anArgumentInfo.getName(), arg.uncheckedGet()));
 
       try {
         anArgumentInfo.verify(verifiers);
@@ -476,13 +458,12 @@ public final class ArgScanner {
       Arg<?> arg = positionalInfo.getArg();
       Object defaultValue = arg.uncheckedGet();
       ImmutableList<String> constraints = positionalInfo.collectConstraints(verifiers);
-      infoLog(String.format("%s%s\n\t%s\n\t(%s)",
+      infoLog(String.format("%s%s\n\t%s",
                             defaultValue != null ? "default " + defaultValue : "",
                             Iterables.isEmpty(constraints)
                                 ? ""
                                 : " [" + Joiner.on(", ").join(constraints) + "]",
-                            positionalInfo.getHelp(),
-                            positionalInfo.getCanonicalName()));
+                            positionalInfo.getHelp()));
       // TODO: https://github.com/twitter/commons/issues/353, in the future we may
       // want to support @argfile format for positional arguments. We should check
       // to update firstArgFileArgumentName for them as well.
@@ -510,14 +491,13 @@ public final class ArgScanner {
   private String formatHelp(ArgumentInfo<?> argumentInfo, Iterable<String> constraints,
                             @Nullable Object defaultValue) {
 
-    return String.format("-%s%s%s\n\t%s\n\t(%s)",
+    return String.format("-%s%s%s\n\t%s",
                          argumentInfo.getName(),
-                         defaultValue != null ? "=" + defaultValue : "",
+                         defaultValue == null ? "" : String.format(" (default %s)", defaultValue),
                          Iterables.isEmpty(constraints)
                              ? ""
                              : " [" + Joiner.on(", ").join(constraints) + "]",
-                         argumentInfo.getHelp(),
-                         argumentInfo.getCanonicalName());
+                         argumentInfo.getHelp());
   }
 
   private void infoLog(String msg) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/main/java/org/apache/aurora/common/args/ArgumentInfo.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/args/ArgumentInfo.java b/commons/src/main/java/org/apache/aurora/common/args/ArgumentInfo.java
index ca309a2..e28bae2 100644
--- a/commons/src/main/java/org/apache/aurora/common/args/ArgumentInfo.java
+++ b/commons/src/main/java/org/apache/aurora/common/args/ArgumentInfo.java
@@ -60,7 +60,6 @@ public abstract class ArgumentInfo<T> {
     }
   }
 
-  private final String canonicalName;
   private final String name;
   private final String help;
   private final boolean argFile;
@@ -72,7 +71,6 @@ public abstract class ArgumentInfo<T> {
   /**
    * Creates a new {@code ArgsInfo}.
    *
-   * @param canonicalName A fully qualified name for the argument.
    * @param name The simple name for the argument.
    * @param help Help string.
    * @param argFile If argument file is allowed.
@@ -83,7 +81,6 @@ public abstract class ArgumentInfo<T> {
    * @param parser Parser for the argument type.
    */
   protected ArgumentInfo(
-      String canonicalName,
       String name,
       String help,
       boolean argFile,
@@ -92,7 +89,6 @@ public abstract class ArgumentInfo<T> {
       List<Annotation> verifierAnnotations,
       @Nullable Class<? extends Parser<? extends T>> parser) {
 
-    this.canonicalName = MorePreconditions.checkNotBlank(canonicalName);
     this.name = MorePreconditions.checkNotBlank(name);
     this.help = MorePreconditions.checkNotBlank(help);
     this.argFile = argFile;
@@ -112,16 +108,6 @@ public abstract class ArgumentInfo<T> {
   }
 
   /**
-   * Return the fully-qualified name of the command line argument. This is used as a command-line
-   * optional argument, as in: -prefix.name=value. Prefix is typically a java package and class like
-   * "com.twitter.myapp.MyClass". The difference between a canonical name and a regular name is that
-   * it is in some circumstances for two names to collide; the canonical name, then, disambiguates.
-   */
-  public final String getCanonicalName() {
-    return canonicalName;
-  }
-
-  /**
    * Returns the instructions for this command-line argument. This is typically used when the
    * executable is passed the -help flag.
    */

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/main/java/org/apache/aurora/common/args/OptionInfo.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/args/OptionInfo.java b/commons/src/main/java/org/apache/aurora/common/args/OptionInfo.java
index 1271494..36a472d 100644
--- a/commons/src/main/java/org/apache/aurora/common/args/OptionInfo.java
+++ b/commons/src/main/java/org/apache/aurora/common/args/OptionInfo.java
@@ -24,10 +24,8 @@ import java.util.regex.Pattern;
 import javax.annotation.Nullable;
 
 import com.google.common.base.Charsets;
-import com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import com.google.common.base.Predicates;
 import com.google.common.base.Strings;
 import com.google.common.io.Files;
 import com.google.common.reflect.TypeToken;
@@ -81,11 +79,8 @@ public final class OptionInfo<T> extends ArgumentInfo<T> {
         String.format("Argument name '%s' does not match required pattern %s",
             name, ARG_NAME_RE));
 
-    Function<String, String> canonicalizer = name1 -> field.getDeclaringClass().getCanonicalName() + "." + name1;
-
     @SuppressWarnings({"unchecked", "rawtypes"}) // we have no way to know the type here
     OptionInfo<?> optionInfo = new OptionInfo(
-        canonicalizer,
         name,
         getCmdLineHelp(cmdLine),
         cmdLine.argFile(),
@@ -107,10 +102,7 @@ public final class OptionInfo<T> extends ArgumentInfo<T> {
     return help;
   }
 
-  private final Function<String, String> canonicalizer;
-
   private OptionInfo(
-      Function<String, String> canonicalizer,
       String name,
       String help,
       boolean argFile,
@@ -119,9 +111,7 @@ public final class OptionInfo<T> extends ArgumentInfo<T> {
       List<Annotation> verifierAnnotations,
       @Nullable Class<? extends Parser<T>> parser) {
 
-    super(canonicalizer.apply(name), name, help, argFile, arg, type,
-        verifierAnnotations, parser);
-    this.canonicalizer = canonicalizer;
+    super(name, help, argFile, arg, type, verifierAnnotations, parser);
   }
 
   /**
@@ -144,8 +134,7 @@ public final class OptionInfo<T> extends ArgumentInfo<T> {
 
     // If the arg type is boolean, check if the command line uses the negated boolean form.
     if (isBoolean()) {
-      if (Predicates.in(Arrays.asList(getNegatedName(), getCanonicalNegatedName()))
-          .apply(optionName)) {
+      if (optionName.equals(getNegatedName())) {
         result = !(Boolean) result; // [B]
       }
     }
@@ -170,14 +159,6 @@ public final class OptionInfo<T> extends ArgumentInfo<T> {
     return NEGATE_BOOLEAN + getName();
   }
 
-  /**
-   * Similar to the canonical name, but with boolean arguments appends "no_", as in:
-   * {@code -com.twitter.common.MyApp.no_fire=false}
-   */
-  String getCanonicalNegatedName() {
-    return canonicalizer.apply(getNegatedName());
-  }
-
   private String getArgFileContent(String optionName, String argFilePath)
       throws IllegalArgumentException {
     if (argFilePath.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/main/java/org/apache/aurora/common/args/PositionalInfo.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/org/apache/aurora/common/args/PositionalInfo.java b/commons/src/main/java/org/apache/aurora/common/args/PositionalInfo.java
index 48737d4..466b8e2 100644
--- a/commons/src/main/java/org/apache/aurora/common/args/PositionalInfo.java
+++ b/commons/src/main/java/org/apache/aurora/common/args/PositionalInfo.java
@@ -68,7 +68,6 @@ public final class PositionalInfo<T> extends ArgumentInfo<List<T>> {
 
     @SuppressWarnings({"unchecked", "rawtypes"}) // we have no way to know the type here
     PositionalInfo<?> positionalInfo = new PositionalInfo(
-        field.getDeclaringClass().getCanonicalName() + "." + field.getName(),
         "[positional args]",
         positional.help(),
         ArgumentInfo.getArgForField(field, Optional.fromNullable(instance)),
@@ -83,7 +82,6 @@ public final class PositionalInfo<T> extends ArgumentInfo<List<T>> {
   private final TypeToken<T> elementType;
 
   private PositionalInfo(
-      String canonicalName,
       String name,
       String help,
       Arg<List<T>> arg,
@@ -94,7 +92,7 @@ public final class PositionalInfo<T> extends ArgumentInfo<List<T>> {
 
     // TODO: https://github.com/twitter/commons/issues/353, consider future support of
     // argFile for Positional arguments.
-    super(canonicalName, name, help, false, arg, type, verifierAnnotations, parser);
+    super(name, help, false, arg, type, verifierAnnotations, parser);
     this.elementType = elementType;
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/test/java/org/apache/aurora/common/args/ArgScannerTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/args/ArgScannerTest.java b/commons/src/test/java/org/apache/aurora/common/args/ArgScannerTest.java
index a4d74ed..6ac518a 100644
--- a/commons/src/test/java/org/apache/aurora/common/args/ArgScannerTest.java
+++ b/commons/src/test/java/org/apache/aurora/common/args/ArgScannerTest.java
@@ -550,19 +550,6 @@ public class ArgScannerTest {
     parse(ImmutableList.of(NameClashA.class, NameClashB.class), "-no_boolean");
   }
 
-  @Test
-  public void testAllowsCanonicalNameOnArgCollision() {
-    // TODO(William Farner): Fix.
-    parse(ImmutableList.of(NameClashA.class, NameClashB.class),
-        "-" + NameClashB.class.getCanonicalName() + ".string=blah");
-  }
-
-  @Test
-  public void testAllowsCanonicalNegNameOnArgCollision() {
-    parse(ImmutableList.of(NameClashA.class, NameClashB.class),
-        "-" + NameClashB.class.getCanonicalName() + ".no_boolean");
-  }
-
   public static class AmountContainer {
     @CmdLine(name = "time_amount", help = "help")
     static final Arg<Amount<Integer, Time>> TIME_AMOUNT = Arg.create(null);
@@ -653,30 +640,19 @@ public class ArgScannerTest {
 
   private static void test(Class<?> scope, Command validate, boolean expectFails, String arg,
       String value) {
-    String canonicalName = scope.getCanonicalName() + "." + arg;
 
     if (value.isEmpty()) {
       testValidate(scope, validate, expectFails, String.format("-%s", arg));
-      testValidate(scope, validate, expectFails, String.format("-%s", canonicalName));
     } else {
       testValidate(scope, validate, expectFails, String.format("-%s=%s", arg, value));
-      testValidate(scope, validate, expectFails, String.format("-%s=%s", canonicalName, value));
       testValidate(scope, validate, expectFails, String.format("-%s='%s'", arg, value));
-      testValidate(scope, validate, expectFails, String.format("-%s='%s'", canonicalName, value));
       testValidate(scope, validate, expectFails, String.format("-%s=\"%s\"", arg, value));
-      testValidate(scope, validate, expectFails, String.format("-%s=\"%s\"", canonicalName, value));
       testValidate(scope, validate, expectFails, String.format("-%s", arg), value);
-      testValidate(scope, validate, expectFails, String.format("-%s", canonicalName), value);
       testValidate(scope, validate, expectFails,
           String.format("-%s", arg), String.format("'%s'", value));
-      testValidate(scope, validate, expectFails,
-          String.format("-%s", canonicalName), String.format("'%s'", value));
       testValidate(scope, validate, expectFails, String.format("-%s \"%s\"", arg, value));
-      testValidate(scope, validate, expectFails, String.format("-%s \"%s\"", canonicalName, value));
       testValidate(scope, validate, expectFails,
           String.format("-%s", arg), String.format("%s", value));
-      testValidate(scope, validate, expectFails,
-          String.format("-%s", canonicalName), String.format("%s", value));
     }
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/commons/src/test/java/org/apache/aurora/common/args/OptionInfoTest.java
----------------------------------------------------------------------
diff --git a/commons/src/test/java/org/apache/aurora/common/args/OptionInfoTest.java b/commons/src/test/java/org/apache/aurora/common/args/OptionInfoTest.java
index 98d9519..58890ab 100644
--- a/commons/src/test/java/org/apache/aurora/common/args/OptionInfoTest.java
+++ b/commons/src/test/java/org/apache/aurora/common/args/OptionInfoTest.java
@@ -55,8 +55,6 @@ public class OptionInfoTest {
         String.format(OptionInfo.ARG_FILE_HELP_TEMPLATE, "help.", "files", "files"),
         optionInfo.getHelp());
     assertTrue(optionInfo.argFile());
-    assertEquals("org.apache.aurora.common.args.OptionInfoTest.App.files",
-        optionInfo.getCanonicalName());
   }
 
   @Test
@@ -99,8 +97,6 @@ public class OptionInfoTest {
     assertEquals("flag", optionInfo.getName());
     assertEquals("help.", optionInfo.getHelp());
     assertFalse(optionInfo.argFile());
-    assertEquals("org.apache.aurora.common.args.OptionInfoTest.App.flag", optionInfo.getCanonicalName());
     assertEquals("no_flag", optionInfo.getNegatedName());
-    assertEquals("org.apache.aurora.common.args.OptionInfoTest.App.no_flag", optionInfo.getCanonicalNegatedName());
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/61e3a1ac/docs/reference/scheduler-configuration.md
----------------------------------------------------------------------
diff --git a/docs/reference/scheduler-configuration.md b/docs/reference/scheduler-configuration.md
index f08603a..d2262f7 100644
--- a/docs/reference/scheduler-configuration.md
+++ b/docs/reference/scheduler-configuration.md
@@ -14,314 +14,211 @@ $ aurora-scheduler -help
 Required flags:
 -backup_dir [not null]
 	Directory to store backups under. Will be created if it does not exist.
-	(org.apache.aurora.scheduler.storage.backup.BackupModule.backup_dir)
 -cluster_name [not null]
 	Name to identify the cluster being served.
-	(org.apache.aurora.scheduler.app.SchedulerMain.cluster_name)
 -framework_authentication_file
 	Properties file which contains framework credentials to authenticate with Mesosmaster. Must contain the properties 'aurora_authentication_principal' and 'aurora_authentication_secret'.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.framework_authentication_file)
 -mesos_master_address [not null]
 	Address for the mesos master, can be a socket address or zookeeper path.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.mesos_master_address)
 -mesos_role
 	The Mesos role this framework will register as. The default is to left this empty, and the framework will register without any role and only receive unreserved resources in offer.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.mesos_role)
 -serverset_path [not null, must be non-empty]
 	ZooKeeper ServerSet path to register at.
-	(org.apache.aurora.scheduler.app.SchedulerMain.serverset_path)
 -shiro_after_auth_filter
 	Fully qualified class name of the servlet filter to be applied after the shiro auth filters are applied.
-	(org.apache.aurora.scheduler.http.api.security.HttpSecurityModule.shiro_after_auth_filter)
 -thermos_executor_path
 	Path to the thermos executor entry point.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_executor_path)
 -tier_config [file must be readable]
 	Configuration file defining supported task tiers, task traits and behaviors.
-	(org.apache.aurora.scheduler.TierModule.tier_config)
 -zk_digest_credentials
 	user:password to use when authenticating with ZooKeeper.
-	(org.apache.aurora.scheduler.zookeeper.guice.client.flagged.FlaggedClientConfig.zk_digest_credentials)
 -zk_endpoints [must have at least 1 item]
 	Endpoint specification for the ZooKeeper servers.
-	(org.apache.aurora.scheduler.zookeeper.guice.client.flagged.FlaggedClientConfig.zk_endpoints)
 
 Optional flags:
--allow_docker_parameters=false
+-allow_docker_parameters (default false)
 	Allow to pass docker container parameters in the job.
-	(org.apache.aurora.scheduler.app.AppModule.allow_docker_parameters)
--allowed_container_types=[MESOS]
+-allowed_container_types (default [MESOS])
 	Container types that are allowed to be used by jobs.
-	(org.apache.aurora.scheduler.app.AppModule.allowed_container_types)
--async_slot_stat_update_interval=(1, mins)
+-async_slot_stat_update_interval (default (1, mins))
 	Interval on which to try to update open slot stats.
-	(org.apache.aurora.scheduler.stats.AsyncStatsModule.async_slot_stat_update_interval)
--async_task_stat_update_interval=(1, hrs)
+-async_task_stat_update_interval (default (1, hrs))
 	Interval on which to try to update resource consumption stats.
-	(org.apache.aurora.scheduler.stats.AsyncStatsModule.async_task_stat_update_interval)
--async_worker_threads=8
+-async_worker_threads (default 8)
 	The number of worker threads to process async task operations with.
-	(org.apache.aurora.scheduler.async.AsyncModule.async_worker_threads)
--backup_interval=(1, hrs)
+-backup_interval (default (1, hrs))
 	Minimum interval on which to write a storage backup.
-	(org.apache.aurora.scheduler.storage.backup.BackupModule.backup_interval)
--cron_scheduler_num_threads=100
+-cron_scheduler_num_threads (default 100)
 	Number of threads to use for the cron scheduler thread pool.
-	(org.apache.aurora.scheduler.cron.quartz.CronModule.cron_scheduler_num_threads)
--cron_start_initial_backoff=(1, secs)
+-cron_start_initial_backoff (default (1, secs))
 	Initial backoff delay while waiting for a previous cron run to be killed.
-	(org.apache.aurora.scheduler.cron.quartz.CronModule.cron_start_initial_backoff)
--cron_start_max_backoff=(1, mins)
+-cron_start_max_backoff (default (1, mins))
 	Max backoff delay while waiting for a previous cron run to be killed.
-	(org.apache.aurora.scheduler.cron.quartz.CronModule.cron_start_max_backoff)
--cron_timezone=GMT
+-cron_timezone (default GMT)
 	TimeZone to use for cron predictions.
-	(org.apache.aurora.scheduler.cron.quartz.CronModule.cron_timezone)
 -custom_executor_config [file must exist, file must be readable]
 	Path to custom executor settings configuration file.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.custom_executor_config)
--db_lock_timeout=(1, mins)
+-db_lock_timeout (default (1, mins))
 	H2 table lock timeout
-	(org.apache.aurora.scheduler.storage.db.DbModule.db_lock_timeout)
--db_row_gc_interval=(2, hrs)
+-db_row_gc_interval (default (2, hrs))
 	Interval on which to scan the database for unused row references.
-	(org.apache.aurora.scheduler.storage.db.DbModule.db_row_gc_interval)
--default_docker_parameters={}
+-default_docker_parameters (default {})
 	Default docker parameters for any job that does not explicitly declare parameters.
-	(org.apache.aurora.scheduler.app.AppModule.default_docker_parameters)
--dlog_max_entry_size=(512, KB)
+-dlog_max_entry_size (default (512, KB))
 	Specifies the maximum entry size to append to the log. Larger entries will be split across entry Frames.
-	(org.apache.aurora.scheduler.storage.log.LogStorageModule.dlog_max_entry_size)
--dlog_shutdown_grace_period=(2, secs)
+-dlog_shutdown_grace_period (default (2, secs))
 	Specifies the maximum time to wait for scheduled checkpoint and snapshot actions to complete before forcibly shutting down.
-	(org.apache.aurora.scheduler.storage.log.LogStorageModule.dlog_shutdown_grace_period)
--dlog_snapshot_interval=(1, hrs)
+-dlog_snapshot_interval (default (1, hrs))
 	Specifies the frequency at which snapshots of local storage are taken and written to the log.
-	(org.apache.aurora.scheduler.storage.log.LogStorageModule.dlog_snapshot_interval)
 -enable_cors_for
 	List of domains for which CORS support should be enabled.
-	(org.apache.aurora.scheduler.http.api.ApiModule.enable_cors_for)
--enable_h2_console=false
+-enable_h2_console (default false)
 	Enable H2 DB management console.
-	(org.apache.aurora.scheduler.http.H2ConsoleModule.enable_h2_console)
--enable_preemptor=true
+-enable_preemptor (default true)
 	Enable the preemptor and preemption
-	(org.apache.aurora.scheduler.preemptor.PreemptorModule.enable_preemptor)
--executor_user=root
+-executor_user (default root)
 	User to start the executor. Defaults to "root". Set this to an unprivileged user if the mesos master was started with "--no-root_submissions". If set to anything other than "root", the executor will ignore the "role" setting for jobs since it can't use setuid() anymore. This means that all your jobs will run under the specified user and the user has to exist on the mesos slaves.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.executor_user)
--first_schedule_delay=(1, ms)
+-first_schedule_delay (default (1, ms))
 	Initial amount of time to wait before first attempting to schedule a PENDING task.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.first_schedule_delay)
--flapping_task_threshold=(5, mins)
+-flapping_task_threshold (default (5, mins))
 	A task that repeatedly runs for less than this time is considered to be flapping.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.flapping_task_threshold)
--framework_announce_principal=false
+-framework_announce_principal (default false)
 	When 'framework_authentication_file' flag is set, the FrameworkInfo registered with the mesos master will also contain the principal. This is necessary if you intend to use mesos authorization via mesos ACLs. The default will change in a future release.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.framework_announce_principal)
--framework_failover_timeout=(21, days)
+-framework_failover_timeout (default (21, days))
 	Time after which a framework is considered deleted.  SHOULD BE VERY HIGH.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.framework_failover_timeout)
--global_container_mounts=[]
+-global_container_mounts (default [])
 	A comma separated list of mount points (in host:container form) to mount into all (non-mesos) containers.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.global_container_mounts)
--history_max_per_job_threshold=100
+-history_max_per_job_threshold (default 100)
 	Maximum number of terminated tasks to retain in a job history.
-	(org.apache.aurora.scheduler.pruning.PruningModule.history_max_per_job_threshold)
--history_min_retention_threshold=(1, hrs)
+-history_min_retention_threshold (default (1, hrs))
 	Minimum guaranteed time for task history retention before any pruning is attempted.
-	(org.apache.aurora.scheduler.pruning.PruningModule.history_min_retention_threshold)
--history_prune_threshold=(2, days)
+-history_prune_threshold (default (2, days))
 	Time after which the scheduler will prune terminated task history.
-	(org.apache.aurora.scheduler.pruning.PruningModule.history_prune_threshold)
 -hostname
 	The hostname to advertise in ZooKeeper instead of the locally-resolved hostname.
-	(org.apache.aurora.scheduler.http.JettyServerModule.hostname)
--http_authentication_mechanism=NONE
+-http_authentication_mechanism (default NONE)
 	HTTP Authentication mechanism to use.
-	(org.apache.aurora.scheduler.http.api.security.HttpSecurityModule.http_authentication_mechanism)
--http_port=0
+-http_port (default 0)
 	The port to start an HTTP server on.  Default value will choose a random port.
-	(org.apache.aurora.scheduler.http.JettyServerModule.http_port)
--initial_flapping_task_delay=(30, secs)
+-initial_flapping_task_delay (default (30, secs))
 	Initial amount of time to wait before attempting to schedule a flapping task.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.initial_flapping_task_delay)
--initial_schedule_penalty=(1, secs)
+-initial_schedule_penalty (default (1, secs))
 	Initial amount of time to wait before attempting to schedule a task that has failed to schedule.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.initial_schedule_penalty)
--initial_task_kill_retry_interval=(5, secs)
+-initial_task_kill_retry_interval (default (5, secs))
 	When killing a task, retry after this delay if mesos has not responded, backing off up to transient_task_state_timeout
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.initial_task_kill_retry_interval)
--job_update_history_per_job_threshold=10
+-job_update_history_per_job_threshold (default 10)
 	Maximum number of completed job updates to retain in a job update history.
-	(org.apache.aurora.scheduler.pruning.PruningModule.job_update_history_per_job_threshold)
--job_update_history_pruning_interval=(15, mins)
+-job_update_history_pruning_interval (default (15, mins))
 	Job update history pruning interval.
-	(org.apache.aurora.scheduler.pruning.PruningModule.job_update_history_pruning_interval)
--job_update_history_pruning_threshold=(30, days)
+-job_update_history_pruning_threshold (default (30, days))
 	Time after which the scheduler will prune completed job update history.
-	(org.apache.aurora.scheduler.pruning.PruningModule.job_update_history_pruning_threshold)
--kerberos_debug=false
+-kerberos_debug (default false)
 	Produce additional Kerberos debugging output.
-	(org.apache.aurora.scheduler.http.api.security.Kerberos5ShiroRealmModule.kerberos_debug)
 -kerberos_server_keytab
 	Path to the server keytab.
-	(org.apache.aurora.scheduler.http.api.security.Kerberos5ShiroRealmModule.kerberos_server_keytab)
 -kerberos_server_principal
 	Kerberos server principal to use, usually of the form HTTP/aurora.example.com@EXAMPLE.COM
-	(org.apache.aurora.scheduler.http.api.security.Kerberos5ShiroRealmModule.kerberos_server_principal)
--max_flapping_task_delay=(5, mins)
+-max_flapping_task_delay (default (5, mins))
 	Maximum delay between attempts to schedule a flapping task.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.max_flapping_task_delay)
--max_leading_duration=(1, days)
+-max_leading_duration (default (1, days))
 	After leading for this duration, the scheduler should commit suicide.
-	(org.apache.aurora.scheduler.SchedulerModule.max_leading_duration)
--max_registration_delay=(1, mins)
+-max_registration_delay (default (1, mins))
 	Max allowable delay to allow the driver to register before aborting
-	(org.apache.aurora.scheduler.SchedulerModule.max_registration_delay)
--max_reschedule_task_delay_on_startup=(30, secs)
+-max_reschedule_task_delay_on_startup (default (30, secs))
 	Upper bound of random delay for pending task rescheduling on scheduler startup.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.max_reschedule_task_delay_on_startup)
--max_saved_backups=48
+-max_saved_backups (default 48)
 	Maximum number of backups to retain before deleting the oldest backups.
-	(org.apache.aurora.scheduler.storage.backup.BackupModule.max_saved_backups)
--max_schedule_attempts_per_sec=40.0
+-max_schedule_attempts_per_sec (default 40.0)
 	Maximum number of scheduling attempts to make per second.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.max_schedule_attempts_per_sec)
--max_schedule_penalty=(1, mins)
+-max_schedule_penalty (default (1, mins))
 	Maximum delay between attempts to schedule a PENDING tasks.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.max_schedule_penalty)
--max_status_update_batch_size=1000 [must be > 0]
+-max_status_update_batch_size (default 1000) [must be > 0]
 	The maximum number of status updates that can be processed in a batch.
-	(org.apache.aurora.scheduler.SchedulerModule.max_status_update_batch_size)
--max_tasks_per_job=4000 [must be > 0]
+-max_tasks_per_job (default 4000) [must be > 0]
 	Maximum number of allowed tasks in a single job.
-	(org.apache.aurora.scheduler.app.AppModule.max_tasks_per_job)
--max_update_instance_failures=20000 [must be > 0]
+-max_update_instance_failures (default 20000) [must be > 0]
 	Upper limit on the number of failures allowed during a job update. This helps cap potentially unbounded entries into storage.
-	(org.apache.aurora.scheduler.app.AppModule.max_update_instance_failures)
--min_offer_hold_time=(5, mins)
+-min_offer_hold_time (default (5, mins))
 	Minimum amount of time to hold a resource offer before declining.
-	(org.apache.aurora.scheduler.offers.OffersModule.min_offer_hold_time)
--native_log_election_retries=20
+-native_log_election_retries (default 20)
 	The maximum number of attempts to obtain a new log writer.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_election_retries)
--native_log_election_timeout=(15, secs)
+-native_log_election_timeout (default (15, secs))
 	The timeout for a single attempt to obtain a new log writer.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_election_timeout)
 -native_log_file_path
 	Path to a file to store the native log data in.  If the parent directory doesnot exist it will be created.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_file_path)
--native_log_quorum_size=1
+-native_log_quorum_size (default 1)
 	The size of the quorum required for all log mutations.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_quorum_size)
--native_log_read_timeout=(5, secs)
+-native_log_read_timeout (default (5, secs))
 	The timeout for doing log reads.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_read_timeout)
--native_log_write_timeout=(3, secs)
+-native_log_write_timeout (default (3, secs))
 	The timeout for doing log appends and truncations.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_write_timeout)
 -native_log_zk_group_path
 	A zookeeper node for use by the native log to track the master coordinator.
-	(org.apache.aurora.scheduler.log.mesos.MesosLogStreamModule.native_log_zk_group_path)
--offer_hold_jitter_window=(1, mins)
+-offer_hold_jitter_window (default (1, mins))
 	Maximum amount of random jitter to add to the offer hold time window.
-	(org.apache.aurora.scheduler.offers.OffersModule.offer_hold_jitter_window)
--offer_reservation_duration=(3, mins)
+-offer_reservation_duration (default (3, mins))
 	Time to reserve a slave's offers while trying to satisfy a task preempting another.
-	(org.apache.aurora.scheduler.scheduling.SchedulingModule.offer_reservation_duration)
--populate_discovery_info=false
-    If true, Aurora populates DiscoveryInfo field of Mesos TaskInfo.
-    (org.apache.aurora.scheduler.configuration.executor.ExecutorModule.populate_discovery_info)
--preemption_delay=(3, mins)
+-populate_discovery_info (default false)
+	If true, Aurora populates DiscoveryInfo field of Mesos TaskInfo.
+-preemption_delay (default (3, mins))
 	Time interval after which a pending task becomes eligible to preempt other tasks
-	(org.apache.aurora.scheduler.preemptor.PreemptorModule.preemption_delay)
--preemption_slot_hold_time=(5, mins)
+-preemption_slot_hold_time (default (5, mins))
 	Time to hold a preemption slot found before it is discarded.
-	(org.apache.aurora.scheduler.preemptor.PreemptorModule.preemption_slot_hold_time)
--preemption_slot_search_interval=(1, mins)
+-preemption_slot_search_interval (default (1, mins))
 	Time interval between pending task preemption slot searches.
-	(org.apache.aurora.scheduler.preemptor.PreemptorModule.preemption_slot_search_interval)
--receive_revocable_resources=false
+-receive_revocable_resources (default false)
 	Allows receiving revocable resource offers from Mesos.
-	(org.apache.aurora.scheduler.mesos.CommandLineDriverSettingsModule.receive_revocable_resources)
--reconciliation_explicit_interval=(60, mins)
+-reconciliation_explicit_interval (default (60, mins))
 	Interval on which scheduler will ask Mesos for status updates of all non-terminal tasks known to scheduler.
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.reconciliation_explicit_interval)
--reconciliation_implicit_interval=(60, mins)
+-reconciliation_implicit_interval (default (60, mins))
 	Interval on which scheduler will ask Mesos for status updates of all non-terminal tasks known to Mesos.
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.reconciliation_implicit_interval)
--reconciliation_initial_delay=(1, mins)
+-reconciliation_initial_delay (default (1, mins))
 	Initial amount of time to delay task reconciliation after scheduler start up.
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.reconciliation_initial_delay)
--reconciliation_schedule_spread=(30, mins)
+-reconciliation_schedule_spread (default (30, mins))
 	Difference between explicit and implicit reconciliation intervals intended to create a non-overlapping task reconciliation schedule.
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.reconciliation_schedule_spread)
--require_docker_use_executor=true
+-require_docker_use_executor (default true)
 	If false, Docker tasks may run without an executor (EXPERIMENTAL)
-	(org.apache.aurora.scheduler.app.AppModule.require_docker_use_executor)
 -shiro_ini_path
 	Path to shiro.ini for authentication and authorization configuration.
-	(org.apache.aurora.scheduler.http.api.security.IniShiroRealmModule.shiro_ini_path)
--shiro_realm_modules=[org.apache.aurora.scheduler.app.MoreModules$1@6771beb3]
+-shiro_realm_modules (default [org.apache.aurora.scheduler.app.MoreModules$1@2d3379b4])
 	Guice modules for configuring Shiro Realms.
-	(org.apache.aurora.scheduler.http.api.security.HttpSecurityModule.shiro_realm_modules)
--sla_non_prod_metrics=[]
+-sla_non_prod_metrics (default [])
 	Metric categories collected for non production tasks.
-	(org.apache.aurora.scheduler.sla.SlaModule.sla_non_prod_metrics)
--sla_prod_metrics=[JOB_UPTIMES, PLATFORM_UPTIME, MEDIANS]
+-sla_prod_metrics (default [JOB_UPTIMES, PLATFORM_UPTIME, MEDIANS])
 	Metric categories collected for production tasks.
-	(org.apache.aurora.scheduler.sla.SlaModule.sla_prod_metrics)
--sla_stat_refresh_interval=(1, mins)
+-sla_stat_refresh_interval (default (1, mins))
 	The SLA stat refresh interval.
-	(org.apache.aurora.scheduler.sla.SlaModule.sla_stat_refresh_interval)
--slow_query_log_threshold=(25, ms)
+-slow_query_log_threshold (default (25, ms))
 	Log all queries that take at least this long to execute.
-	(org.apache.aurora.scheduler.storage.mem.InMemStoresModule.slow_query_log_threshold)
--slow_query_log_threshold=(25, ms)
+-slow_query_log_threshold (default (25, ms))
 	Log all queries that take at least this long to execute.
-	(org.apache.aurora.scheduler.storage.db.DbModule.slow_query_log_threshold)
--stat_retention_period=(1, hrs)
+-stat_retention_period (default (1, hrs))
 	Time for a stat to be retained in memory before expiring.
-	(org.apache.aurora.scheduler.stats.StatsModule.stat_retention_period)
--stat_sampling_interval=(1, secs)
+-stat_sampling_interval (default (1, secs))
 	Statistic value sampling interval.
-	(org.apache.aurora.scheduler.stats.StatsModule.stat_sampling_interval)
--thermos_executor_cpu=0.25
+-thermos_executor_cpu (default 0.25)
 	The number of CPU cores to allocate for each instance of the executor.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_executor_cpu)
 -thermos_executor_flags
 	Extra arguments to be passed to the thermos executor
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_executor_flags)
--thermos_executor_ram=(128, MB)
+-thermos_executor_ram (default (128, MB))
 	The amount of RAM to allocate for each instance of the executor.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_executor_ram)
--thermos_executor_resources=[]
+-thermos_executor_resources (default [])
 	A comma separated list of additional resources to copy into the sandbox.Note: if thermos_executor_path is not the thermos_executor.pex file itself, this must include it.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_executor_resources)
--thermos_home_in_sandbox=false
+-thermos_home_in_sandbox (default false)
 	If true, changes HOME to the sandbox before running the executor. This primarily has the effect of causing the executor and runner to extract themselves into the sandbox.
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_home_in_sandbox)
--thermos_observer_root=/var/run/thermos
+-thermos_observer_root (default /var/run/thermos)
 	Path to the thermos observer root (by default /var/run/thermos.)
-	(org.apache.aurora.scheduler.configuration.executor.ExecutorModule.thermos_observer_root)
--transient_task_state_timeout=(5, mins)
+-transient_task_state_timeout (default (5, mins))
 	The amount of time after which to treat a task stuck in a transient state as LOST.
-	(org.apache.aurora.scheduler.reconciliation.ReconciliationModule.transient_task_state_timeout)
--use_beta_db_task_store=false
+-use_beta_db_task_store (default false)
 	Whether to use the experimental database-backed task store.
-	(org.apache.aurora.scheduler.storage.db.DbModule.use_beta_db_task_store)
--viz_job_url_prefix=
+-viz_job_url_prefix (default )
 	URL prefix for job container stats.
-	(org.apache.aurora.scheduler.app.SchedulerMain.viz_job_url_prefix)
 -zk_chroot_path
 	chroot path to use for the ZooKeeper connections
-	(org.apache.aurora.scheduler.zookeeper.guice.client.flagged.FlaggedClientConfig.zk_chroot_path)
--zk_in_proc=false
+-zk_in_proc (default false)
 	Launches an embedded zookeeper server for local testing causing -zk_endpoints to be ignored if specified.
-	(org.apache.aurora.scheduler.zookeeper.guice.client.flagged.FlaggedClientConfig.zk_in_proc)
--zk_session_timeout=(4, secs)
+-zk_session_timeout (default (4, secs))
 	The ZooKeeper session timeout.
-	(org.apache.aurora.scheduler.zookeeper.guice.client.flagged.FlaggedClientConfig.zk_session_timeout)
 -------------------------------------------------------------------------
 ```