While working on multiple nova (OpenStack Compute) environments at Rackspace, I found myself thrashing between multiple terminal windows where I had exported environment variables for python-novaclient to use. I ended up requesting some image and instance deletions in a terminal window only to find that I’d done the deletions in the wrong nova environment. Once I realized what I’d done (and after a small bit of cursing), I knew there had to be a better way to work with multiple environments.
That’s the purpose behind a small python project of mine: supernova.
Using supernova gives you a nice set of benefits:
- switch between environments quickly
- no worrying about which environment variables are exported in which terminal
- novarc files are a thing of the past
- share your simple configuration file skeleton with your teams
- credentials can be stored in your OS keyring/keychain
- add novaclient debugging to particular requests without touching configuration files
Installation is very straightforward:
git clone git://github.com/major/supernova.git cd supernova python setup.py install
All of the configuration instructions and usage examples are over in GitHub. As with any of the code I write, if you find a problem or spot an idea for an improvement, submit an issue or pull request. I try to jump on those as soon as I can.