- add db versioning.
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Mon, 14 Dec 2009 11:26:27 +0000 (11:26 +0000)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Mon, 14 Dec 2009 11:26:27 +0000 (11:26 +0000)
- reuse function in monitor.functions in monitor-server.init

Monitor.spec
monitor-server.init
monitor/database/info/__init__.py
monitor/database/info/version.py [new file with mode: 0644]
monitor/monitor_version.py [new file with mode: 0644]
setup.py

index ec6a5ac..92a8c10 100644 (file)
@@ -5,7 +5,7 @@
 %define url $URL: svn+ssh://svn.planet-lab.org/svn/monitor/trunk/monitor.spec $
 
 %define name monitor
-%define version 3.0
+%define version %(python -c "import sys; sys.path.append('$RPM_SOURCE_DIR')import setup; print setup.monitor_version")
 %define taglevel 25
 
 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
@@ -145,15 +145,17 @@ install -d $RPM_BUILD_ROOT/%{python_sitearch}/
 
 export PYTHONPATH=$PYTHONPATH:$RPM_BUILD_ROOT/%{python_sitearch}/
 # pack monitor's dependencies in RPM to make it easier to deploy.
-easy_install --build-directory /var/tmp -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg
-easy_install --build-directory /var/tmp -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz
-easy_install --build-directory /var/tmp -UZ Elixir
+easy_install --build-directory /var/tmp -d $RPM_BUILD_ROOT/%{python_sitearch}/ -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg
+easy_install --build-directory /var/tmp -d $RPM_BUILD_ROOT/%{python_sitearch}/ -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz
+easy_install --build-directory /var/tmp -d $RPM_BUILD_ROOT/%{python_sitearch}/ -UZ Elixir
 rm -rf $RPM_BUILD_ROOT/%{python_sitearch}/site.py*
 
 install -D -m 644 monitor.functions $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/monitor.functions
 install -D -m 755 monitor-server.init $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/monitor
 install -D -m 755 zabbix/monitor-zabbix.init $RPM_BUILD_ROOT/%{_sysconfdir}/plc.d/zabbix
 
+install -D -m 644 monitor_version.py $RPM_BUILD_ROOT/usr/share/%{name}/
+
 echo " * Installing core scripts"
 rsync -a --exclude www --exclude archive-pdb --exclude .svn --exclude CVS \
          ./ $RPM_BUILD_ROOT/usr/share/%{name}/
index aed298c..32d1209 100644 (file)
@@ -75,10 +75,11 @@ function check_gadget_config ()
        done
 }
 
-function check_monitor_schema_and_data() 
+function check_monitor_schema_and_data_init() 
 {
-       # NOTE: call create_all() to setup the database from the info model.
-       python -c "from monitor.database.info.model import *; from elixir import create_all; create_all()"
+       # from monitor.functions
+        check_monitor_schema_and_data
+
        $MONITORPATH/config.d/init-bootman-sequence.py
 }
 
@@ -247,7 +248,7 @@ case "$1" in
                        dialog "$MESSAGE"
                fi
 
-               check_monitor_schema_and_data
+               check_monitor_schema_and_data_init
 
                # create /etc/httpd/conf.d/monitorweb.conf
                create_httpd_conf
index 03a1b74..bab03f5 100644 (file)
@@ -45,4 +45,5 @@ from monitor.database.info.action import *
 from monitor.database.info.findbad import *
 from monitor.database.info.history import *
 from monitor.database.info.plc import *
+from monitor.database.info.version import *
 setup_all()
diff --git a/monitor/database/info/version.py b/monitor/database/info/version.py
new file mode 100644 (file)
index 0000000..38d5ea7
--- /dev/null
@@ -0,0 +1,12 @@
+from elixir import Entity, Field
+from elixir import Integer
+
+from monitor.monitor_version import monitor_version
+
+major_version = int(monitor_version.split('.')[0])
+minor_version = int(monitor_version.split('.')[-1])
+
+class DBVersion(Entity):
+       major = Field(Integer, required=True, default=major_version)
+       minor = Field(Integer, required=True, default=minor_version)
+
diff --git a/monitor/monitor_version.py b/monitor/monitor_version.py
new file mode 100644 (file)
index 0000000..e55af94
--- /dev/null
@@ -0,0 +1,4 @@
+
+monitor_version="3.0"
+
+pcucontrol_version=monitor_version
index 6dd7d31..a9744ee 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -2,46 +2,44 @@
 
 from distutils.core import setup
 
-packages=[     'monitor', 
-                       'monitor.database', 
-                       'monitor.Rpyc', 
-                       'monitor.database.zabbixapi', 
-                       'monitor.database.info', 
-                       'monitor.sources', 
-                       'monitor.util', 
-                       'monitor.wrapper' ]
+from monitor.monitor_version import *
+
+packages=['monitor', 
+          'monitor.database', 
+          'monitor.Rpyc', 
+          'monitor.database.zabbixapi', 
+          'monitor.database.info', 
+          'monitor.sources', 
+          'monitor.util', 
+          'monitor.wrapper']
 
 print packages
 setup(name='MonitorModule',
-      version='2.0',
+      version=monitor_version,
       description='Monitor Utility Module',
       author='Stephen Soltesz',
       author_email='soltesz@cs.princeton.edu',
       url='http://www.planet-lab.org',
-         packages=packages,
-)
+      packages=packages)
 
 packages=['pcucontrol', 
-               'pcucontrol.util',
-               'pcucontrol.transports',
-               'pcucontrol.transports.ssh',
-               'pcucontrol.transports.pyssh',
-               'pcucontrol.models',
-               'pcucontrol.models.hpilo',
-               'pcucontrol.models.hpilo.iloxml',
-               'pcucontrol.models.intelamt',
-               'pcucontrol.models.intelamt',
-
-       ]
+          'pcucontrol.util',
+          'pcucontrol.transports',
+          'pcucontrol.transports.ssh',
+          'pcucontrol.transports.pyssh',
+          'pcucontrol.models',
+          'pcucontrol.models.hpilo',
+          'pcucontrol.models.hpilo.iloxml',
+          'pcucontrol.models.intelamt',
+          'pcucontrol.models.intelamt']
 
 # TODO: add data dir for intelamt and hpilo stuff
 print packages
 setup(name='PCUControlModule',
-      version='2.0',
+      version=pcucontrol_version,
       description='PCU Control Module',
       author='Stephen Soltesz',
       author_email='soltesz@cs.princeton.edu',
       url='http://www.planet-lab.org',
-         packages=packages,
-)
+      packages=packages)