-----------------------------------------------------------
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
> 
>

Reply via email to