%define url $URL: svn+ssh://svn.planet-lab.org/svn/monitor/trunk/monitor.spec $
%define name monitor
-%define version 1.1
+%define version 2.0
%define taglevel 0
%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
interacting with PCU hardware, applying penalties to sites that violate
acceptable use.
+######################################## CLIENT
+
%package client
Summary: Monitor hooks for a PLC node
Group: Applications/System
will also include any cron or init scripts needed to perform this kind of
maintenance.
+######################################## Server
%package server
Summary: Monitor hooks for the PLC server.
Group: Applications/System
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
as Zabbix DB.
+######################################## PCU Control
+
+%package pcucontrol
+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
+supported models.
+
%prep
%setup -q
%build
# NOTE: the build uses g++ cmdamt/
# NOTE: TMPDIR is needed here b/c the tmpfs of the build vserver is too small.
-cd cmdamt
+cd pcucontrol/models/intelamt
export TMPDIR=$PWD/tmp
make
cd ..
#for file in __init__.py database.py config.py ; do
# install -D -m 644 monitor/$file $RPM_BUILD_ROOT/%{python_sitearch}/monitor/$file
#done
+rsync -a pcucontrol/ $RPM_BUILD_ROOT/%{python_sitearch}/pcucontrol/
install -D -m 755 threadpool.py $RPM_BUILD_ROOT/%{python_sitearch}/threadpool.py
touch $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php
chmod 777 $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/monitorconfig.php
-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
+#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
%clean
rm -rf $RPM_BUILD_ROOT
+
%files server
%defattr(-,root,root)
-%config /usr/share/%{name}/monitorconfig.py
-%config /etc/monitor.conf
+#%config /usr/share/%{name}/monitorconfig.py
+#%config /etc/monitor.conf
/usr/share/%{name}
/var/lib/%{name}
/var/www/cgi-bin/monitor
%{_initrddir}/monitor
%{_sysconfdir}/cron.d/monitor
+%files pcucontrol
+%{python_sitearch}/pcucontrol
+
%post server
# TODO: this will be nice when we have a web-based service running., such as
# an API server or so on.
# TODO: create real monitorconfig.py from monitorconfig-default.py
# TODO: create monitorconfig.php using phpconfig.py
-# TODO: create symlink in /var/lib/monitor-server for chroot environments
+# TODO: create symlink in /var/lib/monitor for chroot environments
# TODO: update the content of automate_pl03.sh
# 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
+
+# apply patches to zabbix
+patch -d /var/www/html/zabbix/ -p0 < /usr/share/%{name}/zabbix/zabbix-auto-login.diff
+
#chkconfig --add monitor-server
#chkconfig monitor-server on
chkconfig monitor on
%changelog
+* 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.
+
* Wed Sep 24 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-1.0-8
- These are all changes in the latest Monitor code. I will branch this version
- next, before making additional large changes.