I just got back from the OpenStack Developers Summit and while I am still trying to compile my thoughts on the event, I thought I’d dash off this little tidbit:
A slight annoyance in administering (and troubleshooting) OpenStack Nova is identifying your installed version. This information is actually readily (i.e. programmatically) available within the code (and logged at the beginning of most logfiles), but we hadn’t exposed it to administrators on the command line until Nova trunk revision #1036. With this change, you can now simply type nova-manage version list to find which OpenStack Nova version is installed. For example:
$ nova-manage version list 2011.3-dev (2011.3-workspace:tarmac-20110428165803-elcz2wp2syfzvxm8)
As you can probably guess, this machine is installed with a post-Cactus / pre-Diablo version of Nova (“2011.3-dev”) from the ppa:trunk packages (“tarmac-20110428165803”). Final released versions will report non-dev version numbers like
2011.2 (Cactus) or
2011.3 (upcoming Diablo). Releases from Launchpad’s ppa/trunk or ppa/release repositories will report “tarmac” in the string.
For those who aren’t following Nova trunk (cutting edge builds) or wanting to understand this deeper: In nova/version.py there are two methods,
version_string_with_vcs(). You can see their use here in the python shell:
$ nova-manage shell python Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from nova import version >>> version.version_string() '2011.3-dev' >>> version.version_string_with_vcs() u'2011.3-workspace:tarmac-20110428165803-elcz2wp2syfzvxm8' >>>
version_string() pulls info straight from constants in the source code while
version_string_with_vcs() is generated at package creation time in the setup.py file (which basically writes the
nova/vcsversion.py file with bzr version-info –python output). Unless you have run setup.py (such as when you are developing a local branch), you’ll just see
2011.3-LOCALBRANCH:LOCALREVISION as your
I am working on adding more diagnostic, operational support features for Diablo (service versions, flag state, etc.) and will post as they merge into OpenStack Nova trunk.