Like quite a number of other folks, I’ve been lurking on the OpenStack mailing lists since I saw the announcements. Friday, Eric Day put out a call to help with the “get this code into shape” against PEP8 and pylint.
“Ahh!”, I thought – an easy intro to getting into the project and it’ll give me an excuse to really read the code. So this weekend I started taking a stab at doing a little light buff and puff on the code to get the PEP8 and pylint code scores up a bit.
What I found is that it took some work to get everything from the codebase ready to really do some work on it. And the notes aren’t all in the same places on how to do that – what notes are there are all written mostly for Ubuntu. I was pretty sure most of this could be done on a Mac too – at least based on the dependency documentation, so I cobbled up some notes on getting rolling with Launchpad, this code base, and being able to run the tests to verify that my cleaning didn’t really break anything.
I put the resulting notes on the OpenStack wiki page http://wiki.openstack.org/HackingNovaMacOSX.
The big thing that I’m not sure about is the testing. Just a stock install is failing on one unit test, and it’s in an area I’m not very familiar with (auth & creating certificates). If any the OpenStack folk are reading this, here’s the error I’m seeing:
[ERROR]: nova.tests.auth_unittest.AuthTestCase.test_209_can_generate_x509 Traceback (most recent call last): File "/Users/heckj/Documents/code/nova/nova/test.py", line 222, in run d = self._maybeInlineCallbacks(testMethod) File "/Users/heckj/Documents/code/nova/nova/test.py", line 182, in _maybeInlineCallbacks g = f() File "/Users/heckj/Documents/code/nova/nova/tests/auth_unittest.py", line 162, in test_209_can_generate_x509 signed_cert = X509.load_cert_string(cert_str) File "/Users/heckj/Documents/code/nova/.nova-venv/lib/python2.6/site-packages/M2Crypto/X509.py", line 655, in load_cert_string return load_cert_bio(bio, format) File "/Users/heckj/Documents/code/nova/.nova-venv/lib/python2.6/site-packages/M2Crypto/X509.py", line 639, in load_cert_bio raise X509Error(Err.get_error()) M2Crypto.X509.X509Error: 140735090166816:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-32/src/crypto/pem/pem_lib.c:650:Expecting: CERTIFICATE
update: Turns out the error was directly related to the version of OpenSSL installed on my laptop. I had version 1.0.0a from MacPorts installed and in my default path, which caused the error. Version 0.9.8l (base install in MacOS X) works fine.
sudo port deactivate openssl
did the trick and the tests are all running now. I updated the bug against Nova with those details, leaving it open – it ought to at least fail reasonably.
Drop by #openstack on irc.freenode.com and ask about the error and those modules. You’ll find somebody in the channel that can help you at “most times”. Thanks for contributing to the wiki and helping us enable people doing dev work from OS X.
LikeLike
Thanks Bret –
I did earlier this afternoon, then decided to spend the afternoon playing Halo with my brother in law 🙂
LikeLike
Digging around in the auth code, the cert_string that’s causing this error is coming back empty in the unit tests. The pieces that generate it look to be shell calls to openssl – perhaps there’s a dependency on a version there that I’m not up with. I have a copy of openssl version 1.0.0a 1 installed from MacPorts.
LikeLike
reported the unit test failure as a bug: https://bugs.launchpad.net/nova/+bug/615518
LikeLike