-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57952/#review173666
-----------------------------------------------------------
As part of this patch , I expected `main.py` to be updated to explicitly load
only the config plugin and then have the config plugin load the real set of
plugins and pass them back to main. I.e. per our discussion on slack:
```
Maybe the right answer is to:
1) Move all TOML file parsing / validation out of settings.py and into the
config plugin
2) Have main() explicitly instantiate the Config plugin by name
3) Replace the following call in `main()` from:
# Initialize the various plugins.
plugins = mesos.util.import_modules(settings.PLUGINS, "plugins")
to
plugins = ConfigPlugin(settings).plugins([])
3) The `ConfigPlugin.plugins()` command will then be in charge running
`mesos.util.import_modules(plugins, "plugins")` over all plugins (both builtin
and those found in the TOML file) to validate that they are importable and then
return their loaded modules.
4) The main function would then process as before from there (edited)
[16:41]
When `mesos config plugins` is invoked by the user, it can print out, e.g.:
NAME DESCRIPTION
agent Agent specific commands for the Mesos CLI
cluster Cluster specific commands for the Mesos CLI
container Container specific commands for the Mesos CLI
which it can parse from the loaded modules from `PLUGIN_NAME` and `SHORT_HELP`
(edited)
[16:44]
or if there is an error with loading one of the plugins it can raise a
CLIExpection() with a meaningful error message
```
- Kevin Klues
On April 12, 2017, 9:19 a.m., Armand Grillet wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57952/
> -----------------------------------------------------------
>
> (Updated April 12, 2017, 9:19 a.m.)
>
>
> Review request for mesos, Joseph Wu and Kevin Klues.
>
>
> Bugs: MESOS-7269
> https://issues.apache.org/jira/browse/MESOS-7269
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Used to show the plugins available for the user.
>
>
> Diffs
> -----
>
> src/cli_new/bin/settings.py 2f6162edc1722054bc44ad25956e6fe666d36c7f
> src/cli_new/lib/cli/plugins/config/__init__.py PRE-CREATION
> src/cli_new/lib/cli/plugins/config/main.py PRE-CREATION
>
>
> Diff: https://reviews.apache.org/r/57952/diff/6/
>
>
> Testing
> -------
>
> Tested manually, PEP8 and Pylint used to make sure that the code style is
> correct.
>
>
> Thanks,
>
> Armand Grillet
>
>