%define url $URL: svn+ssh://svn.planet-lab.org/svn/monitor/trunk/monitor.spec $
%define name monitor
-%define version 2.0
-%define taglevel 0
+%define version 3.0
+%define taglevel 3
%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
%global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
include configuration setup for the monitoring agent running on the node. It
will also include any cron or init scripts needed to perform this kind of
maintenance.
-
-######################################## Server
-%package server
+######################################## Server Deps
+%package server-deps
Summary: Monitor hooks for the PLC server.
Group: Applications/System
Requires: python
-Requires: python-sqlalchemy
-Requires: python-elixir
+Requires: python-setuptools-devel
Requires: openssh-clients
Requires: perl-libwww-perl
Requires: perl-IO-Socket-SSL
Requires: MySQL-python
-Requires: rt3 == 3.4.1
Requires: nmap
+Requires: rt3
+
+#Requires: python-sqlalchemy
+#Requires: python-elixir
+#Requires: zabbix-client
+#Requires: zabbix-gui
+#Requires: zabbix-server
+
+%description server-deps
+The server side include all python modules and scripts needed to fully
+
+######################################## Server
+%package server
+Summary: Monitor hooks for the PLC server.
+Group: Applications/System
+
+Requires: python
+
+Requires: monitor-server-deps
+Requires: monitor-pcucontrol
Requires: PLCWWW >= 4.2
Requires: bootcd-planetlab-i386 >= 4.2
-Requires: zabbix-client
-Requires: zabbix-gui
-Requires: zabbix-server
-
%description server
The server side include all python modules and scripts needed to fully
operation, track, and interact with any third-party monitoring software, such
######################################## PCU Control
%package pcucontrol
-Summary: PCU Controls for Monitor and PLCAPI
-Group: Applications/System
-Requires: python
+summary: pcu controls for monitor and plcapi
+group: applications/system
+requires: python
%description pcucontrol
-Both Monitor and the PLCAPI use a set of common commands to reboot machines
-using their external or internal PCUs. This package is a library of several
+both monitor and the plcapi use a set of common commands to reboot machines
+using their external or internal pcus. this package is a library of several
supported models.
+####################################### RunlevelAgent
+%package runlevelagent
+summary: the RunlevelAgent that reports node runlevels
+group: applications/system
+requires: python
+
+%description runlevelagent
+The RunlevelAgent starts as early as possible during boot-up and production
+mode to actively report the observed runlevel to PLC and update the
+'last_contact' field.
+
%prep
%setup -q
#install -D -m 755 monitor-default.conf $RPM_BUILD_ROOT/etc/monitor.conf
#cp $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig-default.py $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig.py
+#################### RunlevelAgent
+install -D -m 755 RunlevelAgent.py $RPM_BUILD_ROOT/usr/bin/RunlevelAgent.py
+install -D -m 755 monitor-runlevelagent.init $RPM_BUILD_ROOT/%{_initrddir}/monitor-runlevelagent
+
+mkdir -p $RPM_BUILD_ROOT/var/log
+touch $RPM_BUILD_ROOT/var/log/server-deps.log
+
+
%clean
rm -rf $RPM_BUILD_ROOT
+%files server-deps
+/var/log/server-deps.log
%files server
%defattr(-,root,root)
%files pcucontrol
%{python_sitearch}/pcucontrol
+%files runlevelagent
+/usr/bin/RunlevelAgent.py
+/usr/bin/RunlevelAgent.pyo
+/usr/bin/RunlevelAgent.pyc
+/%{_initrddir}/monitor-runlevelagent
+
+%post server-deps
+easy_install -UZ Elixir
+easy_install -UZ ElementTree
+easy_install -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz
+easy_install -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg
+
+# NOTE: add the default xml stuff if it's not already in the default xml config.
+if ! grep '<category id="plc_monitor">' /etc/planetlab/default_config.xml ; then
+ sed -i 's|<category id="plc_net">| <category id="plc_monitor">\n <name>Monitor Service Configuration</name>\n <description>Monitor</description>\n <variablelist>\n <variable id="enabled" type="boolean">\n <name>Enabled</name>\n <value>true</value>\n <description>Enable on this machine.</description>\n </variable>\n <variable id="email">\n <value></value>\n </variable>\n <variable id="dbpassword">\n <value></value>\n </variable>\n <variable id="host" type="hostname">\n <name>Hostname</name>\n <value>pl-virtual-06.cs.princeton.edu</value>\n <description>The fully qualified hostname.</description>\n </variable>\n <variable id="ip" type="ip">\n <name>IP Address</name>\n <value/>\n <description>The IP address of the monitor server.</description>\n </variable>\n </variablelist>\n </category>\n <category id="plc_net">|' /etc/planetlab/default_config.xml
+fi
+
+
%post server
# TODO: this will be nice when we have a web-based service running., such as
# an API server or so on.
# TODO: Use the installed version of bootcd to create custom boot images. ( or, use the api now).
# NOTE: generate the python defines from zabbix include files.
-php /usr/share/%{name}/zabbix/getdefines.php > %{python_sitearch}/monitor/database/zabbixapi/defines.py
+#php /usr/share/%{name}/zabbix/getdefines.php > %{python_sitearch}/monitor/database/zabbixapi/defines.py
# apply patches to zabbix
-patch -d /var/www/html/zabbix/ -p0 < /usr/share/%{name}/zabbix/zabbix/zabbix-auto-login.diff
+#patch -d /var/www/html/zabbix/ -p0 < /usr/share/%{name}/zabbix/zabbix-auto-login.diff
#chkconfig --add monitor-server
#chkconfig monitor-server on
chkconfig --add monitor
chkconfig monitor on
+%post runlevelagent
+chkconfig --add monitor-runlevelagent
+chkconfig monitor-runlevelagent on
+
%changelog
+* Tue Apr 28 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-3.0-3
+- same as 2.0-12 tag.
+
+* Mon Apr 27 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-3.0-2
+- merge from 2.0, remove more zabbix code, simplify install, etc.
+
+* Thu Apr 16 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-3.0-1
+- major merge from 2.0 branch.
+- ready to be updated with 4.3 and web changes.
+
+* Fri Feb 27 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-2.0-1
+- preparing to make a 2.0 branch for monitor.
+
* Mon Jan 05 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-2.0-0
- new changes are significantly different, that I'm upping the number for clarity.
* Mon Apr 07 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - monitor-1.0-0
- initial addition.
-%define module_current_branch 1.0
+%define module_current_branch 2.0