%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}}
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}/
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
}
dialog "$MESSAGE"
fi
- check_monitor_schema_and_data
+ check_monitor_schema_and_data_init
# create /etc/httpd/conf.d/monitorweb.conf
create_httpd_conf
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()
--- /dev/null
+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)
+
--- /dev/null
+
+monitor_version="3.0"
+
+pcucontrol_version=monitor_version
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)