[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [XEND] Add some sort of rudimentary version embedding into the source



# HG changeset patch
# User Alastair Tse <atse@xxxxxxxxxxxxx>
# Node ID 397cc120ae18e18204c8b2c72d9dd7580c15b081
# Parent  2ea55aa1dd46839927c4be17b988e01b42951f74
[XEND] Add some sort of rudimentary version embedding into the source
so we can report the Xend version number as opposed to Xen's version
number.

Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx>
---
 tools/python/setup.py                     |   37 +++++++++++++++++++++++++++++-
 tools/python/xen/__init__.py              |    3 +-
 tools/python/xen/xend/XendNode.py         |    4 ++-
 tools/python/xen/xend/server/SrvDaemon.py |    6 ++++
 4 files changed, 47 insertions(+), 3 deletions(-)

diff -r 2ea55aa1dd46 -r 397cc120ae18 tools/python/setup.py
--- a/tools/python/setup.py     Sat Oct 07 18:22:48 2006 +0100
+++ b/tools/python/setup.py     Thu Oct 12 12:27:56 2006 +0100
@@ -1,6 +1,38 @@
+#!/usr/bin/python
 
 from distutils.core import setup, Extension
 import os
+
+XEN_TOOLS_VERSION = '3.0.4'
+
+def embed_version():
+    """ Embed Mercurial Changeset Version in xen/__init__.py. """
+    try:
+        import commands
+        import re
+        output = commands.getoutput('hg tip')
+        version = XEN_TOOLS_VERSION
+        changeset = ''
+        date = ''
+        if output:
+            for line in output.split('\n'):
+                is_changeset = re.search(r'^changeset:\s*(.*)$', line)
+                if is_changeset:
+                    changeset = is_changeset.group(1)
+                is_date = re.search(r'^date:\s*(.*)$', line)
+                if is_date:
+                    date = is_date.group(1)
+
+        xen_init = open('xen/__init__.py', 'w')
+        xen_init.write('# Warning, this file is autogenerated by setup.py\n')
+        if version and changeset and date:
+            xen_init.write('VERSION = "%s-%s (%s)"\n' %
+                           (version, changeset, date))
+        else:
+            xen_init.write('VERSION = "%s"\n' % version)
+        xen_init.close()
+    except:
+        print 'Warning: Unable to extract version.'
 
 XEN_ROOT = "../.."
 
@@ -38,8 +70,11 @@ acm = Extension("acm",
                libraries          = libraries,
                sources            = [ "xen/lowlevel/acm/acm.c" ])
 
+
+embed_version()
+
 setup(name            = 'xen',
-      version         = '3.0',
+      version         = XEN_TOOLS_VERSION,
       description     = 'Xen',
       packages        = ['xen',
                          'xen.lowlevel',
diff -r 2ea55aa1dd46 -r 397cc120ae18 tools/python/xen/__init__.py
--- a/tools/python/xen/__init__.py      Sat Oct 07 18:22:48 2006 +0100
+++ b/tools/python/xen/__init__.py      Thu Oct 12 12:27:56 2006 +0100
@@ -1,1 +1,2 @@
- 
+# Warning, this file is autogenerated by setup.py
+VERSION = "3.0.4-50:fa1d6b491cc5 (Fri Oct 06 22:50:29 2006 +0100)"
diff -r 2ea55aa1dd46 -r 397cc120ae18 tools/python/xen/xend/XendNode.py
--- a/tools/python/xen/xend/XendNode.py Sat Oct 07 18:22:48 2006 +0100
+++ b/tools/python/xen/xend/XendNode.py Thu Oct 12 12:27:56 2006 +0100
@@ -71,7 +71,9 @@ class XendNode:
 
     def xen_version(self):
         info = self.xc.xeninfo()
-        return {'Xen': '%(xen_major)d.%(xen_minor)d' % info}
+        from xen import VERSION
+        return {'Xen': '%(xen_major)d.%(xen_minor)d' % info,
+                'Xend': VERSION}
 
     def get_name(self):
         return self.name
diff -r 2ea55aa1dd46 -r 397cc120ae18 tools/python/xen/xend/server/SrvDaemon.py
--- a/tools/python/xen/xend/server/SrvDaemon.py Sat Oct 07 18:22:48 2006 +0100
+++ b/tools/python/xen/xend/server/SrvDaemon.py Thu Oct 12 12:27:56 2006 +0100
@@ -289,6 +289,12 @@ class Daemon:
             log.info("Xend changeset: %s.", xinfo['xen_changeset'])
             del xc
 
+            try:
+                from xen import VERSION
+                log.info("Xend version: %s", VERSION)
+            except ImportError:
+                log.info("Xend version: Unknown.")
+
             relocate.listenRelocation()
             servers = SrvServer.create()
             servers.start(status)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.