Jump to: navigation, search

Difference between revisions of "HackingNovaMacOSX"

Line 4: Line 4:
 
Notes for hacking and cleaning on Nova on MacOS X
 
Notes for hacking and cleaning on Nova on MacOS X
  
Install BZR
+
== Bazaar and Launchpad ==
 +
 
 +
[[OpenStack]] uses Launchpad, so you need to install the Bazaar client tools.
 +
See also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])
  
  
Line 12: Line 15:
  
  
Register your username
+
Register your username (your username substitues for heckj):
  
  
Line 20: Line 23:
 
   
 
   
  
(your username substitues for heckj, see also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])
+
Checkout the Nova trunk.
 +
 
 +
 
 +
<pre><nowiki>
 +
bzr branch lp:nova
 +
</nowiki></pre>
 +
 
  
Get Virtual Env
+
== Install Python Dependencies ==
 +
 
 +
Use Python's easy_install to install virtualenv
  
  
Line 29: Line 40:
 
</nowiki></pre>
 
</nowiki></pre>
  
 +
 +
== Initial code setup ==
  
 
Initial Code Setup:
 
Initial Code Setup:
  
 
<pre><nowiki>
 
<pre><nowiki>
bzr branch lp:nova
 
 
cd nova
 
cd nova
 
python tools/install_venv.py
 
python tools/install_venv.py
Line 39: Line 51:
 
pip install pep8 # submitting patch so that Nova has pep8 and pylint in PIP requirements file
 
pip install pep8 # submitting patch so that Nova has pep8 and pylint in PIP requirements file
 
pip install pylint
 
pip install pylint
 +
</nowiki></pre>
  
 +
 +
== OpenSSL Dependency ==
 +
 +
If you have installed OpenSSL 1.0.0a on MacOS, which can happen when installing a [[MacPorts]] package for OpenSSL, you will see an error when running nova.tests.auth_unittest.[[AuthTestCase]].test_209_can_generate_x509. The version that functions correctly is OpenSSL 0.9.8l 5, installed with MacOS 10.6 as a base element. 
 +
 +
There is no easy way to install an older package version using macports, but if it had been installed you can reactivate it.
 +
 +
<pre><nowiki>
 +
sudo port activate openssl @0.9.8n_0+darwin
 
</nowiki></pre>
 
</nowiki></pre>
  
  
If you have installed OpenSSL 1.0.0a on MacOS, which can happen when installing a [[MacPorts]] package for OpenSSL, you will see an error when running nova.tests.auth_unittest.[[AuthTestCase]].test_209_can_generate_x509. The version that functions correctly is OpenSSL 0.9.8l 5, installed with MacOS 10.6 as a base element.
+
The alternative is to remove it and use the default OSX openssl. This will give you dependency errors on the port command, so you need to force it.
 
 
from http://wiki.openstack.org/InstallationNova20100729 (I do this in a separate window that I hide to let Redis be as noisy as it wants to in the background. Redis won't be needed after the Austin release, most likely.)
 
  
 
<pre><nowiki>
 
<pre><nowiki>
cd nova
+
sudo - f port uninstall openssl
curl http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz -o redis-2.0.0-rc4.tar.gz
 
tar xvfz redis-2.0.0-rc4.tar.gz
 
cd redis-2.0.0-rc4
 
# Make and start Redis server
 
make
 
./redis-server &
 
 
</nowiki></pre>
 
</nowiki></pre>
  
 +
 +
== Run the Tests ==
  
  
Line 63: Line 79:
 
bzr pull # get the latest stuff...
 
bzr pull # get the latest stuff...
 
source .nova_venv/bin/activate
 
source .nova_venv/bin/activate
redis-2.0.0-rc4/redis-server &
 
 
./run_tests.sh
 
./run_tests.sh
  

Revision as of 21:50, 11 January 2011

How to Set up a Development Environment on MacOS X

Notes for hacking and cleaning on Nova on MacOS X

Bazaar and Launchpad

OpenStack uses Launchpad, so you need to install the Bazaar client tools. See also [[[LifeWithBzrAndLaunchpad|| learning BZR and Launchpad]]])


brew install bzr


Register your username (your username substitues for heckj):


bzr lp-login heckj


Checkout the Nova trunk.


bzr branch lp:nova


Install Python Dependencies

Use Python's easy_install to install virtualenv


sudo easy_install virtualenv


Initial code setup

Initial Code Setup:

cd nova
python tools/install_venv.py
source .nova_venv/bin/activate
pip install pep8 # submitting patch so that Nova has pep8 and pylint in PIP requirements file
pip install pylint


OpenSSL Dependency

If you have installed OpenSSL 1.0.0a on MacOS, which can happen when installing a MacPorts package for OpenSSL, you will see an error when running nova.tests.auth_unittest.AuthTestCase.test_209_can_generate_x509. The version that functions correctly is OpenSSL 0.9.8l 5, installed with MacOS 10.6 as a base element.

There is no easy way to install an older package version using macports, but if it had been installed you can reactivate it.

sudo port activate openssl @0.9.8n_0+darwin


The alternative is to remove it and use the default OSX openssl. This will give you dependency errors on the port command, so you need to force it.

sudo - f port uninstall openssl


Run the Tests

cd nova
bzr pull # get the latest stuff...
source .nova_venv/bin/activate
./run_tests.sh

#... do cleaning work ...

bzr push lp:~heckj/nova/cleaning


To submit the merge/patch:

Open questions

  • Once merged in and accepted, does the proposal get closed?
  Once a proposal is reviewed, merged, and accepted, Launchpad sets the branch status to "Merged" which effectively closes the proposal. 
  • Do we then delete this branch and create another with the next cleaning/merge request?
    Yes, a branch can be deleted locally and you just create another branch next time you want to modify code to be merged into another branch.
  • Or do we make more changes, push to this branch, and then submit another merge request?
    You can do either though the merging is more complicated the further from trunk that your branch gets, I believe.