Configuration & Server Overhaul - Tool Shed and Reports#3179
Configuration & Server Overhaul - Tool Shed and Reports#3179bgruening merged 15 commits intogalaxyproject:devfrom
Conversation
788a9ed to
01539d6
Compare
|
Grr Jenkins... I wanted to merge this. |
|
@natefoo it targets 17.01, also please let me retest. |
| mercurial==3.7.3 | ||
| numpy==1.9.2 | ||
| pycrypto==2.6.1 | ||
| pyuwsgi==2.1.dev0+gx1.c6ee1f6 |
There was a problem hiding this comment.
Shouldn't this be named uwsgi as in PyPi? https://pypi.python.org/pypi/uWSGI
There was a problem hiding this comment.
I believe the naming difference was necessary to use the custom (sadface) version we had to build to make it manylinux wheel-able. More in galaxyproject/starforge#95 and galaxyproject/starforge#114.
There was a problem hiding this comment.
https://github.com/galaxyproject/starforge/pull/114/files#diff-2fbe7e1ff37f22c3de4b47d45e196667R101 is using the uWSGI name, should that be changed then?
There was a problem hiding this comment.
Hrm, yeah, possibly. Since @jxtx's original work in galaxyproject/starforge#95 may have been destroyed I'm not 100% clear.
There was a problem hiding this comment.
@nsoranzo I appreciate you bringing this and I don't know the answer to the naming question. Given the difficulty of this - do you think resolving that is important prior to merging this? I think we can just create an issue to track this and go with what is here for now - but obviously we will wait if you think we need to.
There was a problem hiding this comment.
@jmchilton Not a blocker for me, a tracking issue seems fair!
There was a problem hiding this comment.
Not a blocker for me either.
AFAIK the way @jxtx is building it is the only way a wheeled uWSGI will work at all and I believe it also needs to be the development version (2.1). Which means that galaxyproject/starforge#114 needs to have both the name and version updated? Unless the changes needed were merged back to 2.0.
|
closing and reopening to trigger selenium tests |
|
@galaxybot test this |
|
Ok to merge @jmchilton? |
|
Of course |
|
Am I missing something that has to be done after the conversion to |
|
@martenson Can I see the config file? |
|
|
You already have that address in use? If not, can you replace |
|
@jmchilton shouldn't be in use; after the change to localhost it works |
|
Is |
|
127.0.0.1 is a thing, I use it (even with Galaxy) normally |
- They now uniformly handle server option processing. - Reports and Tool Shed now respect many new and important options such as --skip_venv. - Reports and Tool Shed now do extra checking around Python version that Galaxy does. In addition to improving the reports and tool shed startup scripts and reducing cognative load with respect to option handling, this is an important pre-condition to us being able us to switch on uwsgi by default for all three services simultaneously without a bunch of copy and pasting.
Initial outline of allowing launch via uwsgi.
This has been rebased several times and includes a variety of fixes (some thanks to martenson).
- Implement kwalify schema to validate/define the schema. - Replace ini configuration with YAML (completely backward compatible). - Rebuild a sample configuration from the schema (config/tool_shed.yml.sample).
- Implement kwalify schema to validate/define the schema. - Replace ini configuration with YAML (completely backward compatible). - Rebuild a sample configuration from the schema (config/reports.yml.sample).
- Automatically generate RST docs from config schema. - Describe older functionality as well as new YAML-based configuration. - Replace https://wiki.galaxyproject.org/Admin/UsageReports.
Required for the new out-of-the-box configuration of tool shed and reports.
…alaxyproject.org.
1f9f5b7 to
98ca8ce
Compare
|
Rebased... again... |
|
@jmchilton the only thing I have found so far is a not so nice warning if you only have sample yml files. I think this can be improved in a later PR and we should get this in asap. Will merge after dinner if no one beats me to it. |
| uwsgi-rebuild-validation: ## rebuild uwsgi_config.yml kwalify schema against latest uwsgi master. | ||
| $(CONFIG_MANAGE) build_uwsgi_yaml | ||
|
|
||
| tool-shed-config-validate: ## validate tool shed YAML configuration file |
There was a problem hiding this comment.
since there are a number of lint / validation could we have a target for all of these? e.g. config-validate: uwsgi-rebuild-vlaidation toolshed-config-validate ...
There was a problem hiding this comment.
uwsgi-rebuild-validation isn't something I'd expect deployers to run that is something we build and ship to them. I guess . a config validate that checked Galaxy, Reports, and Tool Shed configs if they are present would be cool though - I'd hope not too many people have tool shed configurations though 😓.
| Configuration Options | ||
| ---------------------------- | ||
|
|
||
| .. include:: reports_options.rst |
There was a problem hiding this comment.
Want to help me get this done for Galaxy for this release 😄?
|
Thanks @jmchilton - this enables some nice additions in the future! |
|
Glad this got finally merged, thanks @jmchilton @bgruening @natefoo @erasche 🥇 |
|
|
||
| python ./scripts/paster.py serve $TOOL_SHED_CONFIG_FILE --pid-file=tool_shed_webapp.pid --log-file=tool_shed_webapp.log $args | ||
| find_server $TOOL_SHED_CONFIG_FILE | ||
| $run_server $server_args |
There was a problem hiding this comment.
@martenson @jmchilton After these changes we are setting but not using any more the $args variable, is this breaking the TS bootstrap?
There was a problem hiding this comment.
I doubt I tested this so I don't know, no one has complained though 😅. I wouldn't worry too much about that functionality unless someone really intends to use it. I just double checked a fresh Planemo build and its bootstrapped toolshed is working - but it is probably called in a fairly custom way (xref https://github.com/galaxyproject/ansible-galaxy-toolshed/blob/d1355719f431f9228952d57c6c73b47394dba07f/tasks/database.yml#L29).
make tool-shed-config-convertandmake tool-shed-config-convert-dry-run).make tool-shed-config-validate).make tool-shed-config-lint).make reports-config-convertandmake reports-config-convert-dry-run).make reports-config-validate).make reports-config-lint).There is no additional duplication between various items (before a .ini.sample had a default and description) now the schema defines these items and everything else (docs, validation, sample YAML) are derived from that. The new validation format should be more usable from within the actual applications themselves to replace existing type conversion and default handling logic - an exciting future direction for this work.
This is hopefully a test bed to bring these concepts quickly to Galaxy - I think all of the infrastructure needed to do this is now readily available after this PR.
This is another attempt at #2866. This extends that work with more unit tests, new linting options, and correctly handles proxy prefix and gzip filters previously expressed in Paste.