-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Pyro with HTTP(S) communication layer #1923
Conversation
Initial comments:
On your bullet points 1 and 4: generate-on-run is probably desirable for us, but may not be popular in some circumstances at other sites. |
Well done indeed - this is an excellent change. I do have one question about module redesign - why the decision to split the clients and servers into separate modules instead of having a single module containing both? |
@trwhitcomb Splitting the server and the client allows an individual client to only import modules that are relevant to the client, and not all the stuffs required to drive the server. |
Just to add to what Matt has said - importing lots of modules can take a surprisingly long amount of time - although we don't (much) care about the elapsed time of |
9cadab3
to
60a0be2
Compare
Tests much more stable now. This was a port-grabbing problem. cherrypy did not like it when started with a particular (non-occupied) port which was then stolen just before it could start. Specifically, it would have died with |
Done |
Looking better. I have |
7cbe2ea and b87c240 add SHA1 support for HTTP Digest Auth to cherrypy/cylc and avoids using MD5 anywhere - so it should be more FIPS-compliant. The |
@cylc/core - can this be merged as soon as I've reviewed it, as far as MO is concerned? Or are there admin changes (e.g. to network port range) that suggest we should bump this to cylc-7 (but still very soon, I hope!). If so, I'd like to obsolete cylc-5 syntax too - we can discuss offline if not so straightforward at your end. |
9ac2ab4
to
99e00d6
Compare
@hjoliver and @matthewrmshin, please take an initial look - probably best to ignore the import cherrypy/Pyro deletion commits. |
31b4018
to
b279be5
Compare
It is worth checking if |
@benfitzpatrick - sorry for the long delay on reviewing this. All seems to work well on my metomi VM - very nice - but on my Centos box at work, I get "ERROR Not authorized: ... access type 'private'" for any attempt to connect. |
Scratch that, it's working now (on Centos). I suspect network issues earlier (I noticed many tests fail on the VM at home too, immediately after turning the laptop on, until I get internet connectivity...) |
The |
efe8562
to
7450541
Compare
No conflicts (right now) |
Now unconflicted... |
ecc1d12
to
d023c30
Compare
Rebased and pushed again. |
@matthewrmshin, @hjoliver, please review and merge |
I'll remember this when you're looking for suite support in your new role... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is now good. Test battery passing robustly in my environment.
Can't see any problems after another high-speed blast through the code, and tests passing. I think we can merge this in and let it mature on master. 🎉 Excellent work @benfitzpatrick, as ever ... and sayonara 😢 I'll buy you a 🍺 in Lisbon. That countdown timer is evil, by the way. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved!
Some tests in Rose test battery have become less robust since cylc/cylc-flow#1923 is merged in. This change improves the situation by removing some of the old logic for detecting when a suite is running. The change also removes `rose suite-hook` tests as the tests are some what unstable and the command itself has now been replaced by better cylc built-in functionality.
Some tests in Rose test battery have become less robust since cylc/cylc-flow#1923 is merged in. This change improves the situation by removing some of the old logic for detecting when a suite is running. The change also removes `rose suite-hook` tests as the tests are some what unstable and the command itself has now been replaced by better cylc built-in functionality.
This closes #1872.
I thought it was time to put it up for discussion.
Pyro has been replaced with cherrypy (server) and built-in Python library urllib2 (optionally upgrading to requests if possible). cherrypy is bundled with cylc as Pyro was, and there are no new dependencies apart from optional dependence on OpenSSL (for HTTPS rather than HTTP) and the requests library for better certificate verification (N.B. We can do better certificate verification than is done in this PR with pure Python 2.7).
Communication is via HTTP(S) secured with HTTP Digest Auth and the usual passphrase system, using 'cylc' as the username for full access and 'anon' for the public access. I have separated out the authentication so that theoretically someone can add another auth system if they want to do a fair bit of work!
All test-battery tests pass (
although some seem flakier than usual).I think flakiness is due to some shutdown/ports file timing issue and will investigate.(EDIT: Seems much better now)Some compromises and other information:
we should add support for a choice of auth (maybe even basic auth, which is 'OK' for HTTPS)I've added support for SHA1 if we need to for FIPS support.There are going to be some debug statements that I need to remove