%define url $URL: svn+ssh://svn.planet-lab.org/svn/monitor/trunk/monitor.spec $
%define name monitor
+# keep this version in sync with monitor/monitor_version.py
%define version 3.0
-%define taglevel 24
+%define taglevel 30
%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
%global python_sitearch %( python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)" )
Distribution: PlanetLab %{plrelease}
URL: %(echo %{url} | cut -d ' ' -f 2)
+
Summary: Monitor account initialization for the root image.
Group: Applications/System
Requires: python
Requires: python-setuptools-devel
Requires: python-peak-util-extremes
-Requires: TurboGears
Requires: compat-libstdc++-296
Requires: openssh-clients
Requires: python
Requires: monitor-server-deps
-Requires: monitor-pcucontrol
Requires: PLCWWW >= 4.2
Requires: bootcd-%{pldistro}-%{_arch} >= 4.2
+Requires: pcucontrol
%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
-requires: OpenIPMI-tools
-
-%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.
-
####################################### RunlevelAgent
%package runlevelagent
summary: the RunlevelAgent that reports node runlevels
%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 pcucontrol/models/intelamt
-export TMPDIR=$PWD/tmp
-make
-cd ..
-
%install
rm -rf $RPM_BUILD_ROOT
#################### CLIENT
#install -D -m 755 monitor-client.init $RPM_BUILD_ROOT/%{_initrddir}/monitor
#install -D -m 644 monitor.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor
-install -D -m 755 timeout.pl $RPM_BUILD_ROOT/usr/bin/timeout.pl
+install -D -m 755 tools/timeout.pl $RPM_BUILD_ROOT/usr/bin/timeout.pl
#################### SERVER
install -d $RPM_BUILD_ROOT/data/var/lib/%{name}/archive-pdb
install -d $RPM_BUILD_ROOT/var/lib/%{name}
install -d $RPM_BUILD_ROOT/var/lib/%{name}/archive-pdb
-install -d $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/
install -d $RPM_BUILD_ROOT/var/www/html/monitorlog/
+install -d $RPM_BUILD_ROOT/etc/httpd/conf.d/
+install -d $RPM_BUILD_ROOT/%{python_sitearch}/monitor
+# plc.d scripts
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
-echo " * Installing core scripts"
-rsync -a --exclude www --exclude archive-pdb --exclude .svn --exclude CVS \
- ./ $RPM_BUILD_ROOT/usr/share/%{name}/
+# cron job for automated polling
+install -D -m 644 monitor-server.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor-server.cron
-echo " * Installing web pages"
-rsync -a www/ $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/
-rsync -a log/ $RPM_BUILD_ROOT/var/www/html/monitorlog/
+# apache configuration
+install -D -m 644 web/monitorweb-httpd.conf $RPM_BUILD_ROOT/etc/httpd/conf.d/
-echo " * Installing cron job for automated polling"
-install -D -m 644 monitor-server.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/monitor-server.cron
-echo " * TODO: Setting up Monitor account in local MyPLC"
-# TODO:
+# we'll install monitor in site-packages install rest to
+# /usr/share/monitor
+rsync -a --exclude archive-pdb --exclude .svn --exclude CVS \
+ --exclude monitor/ \
+ ./ $RPM_BUILD_ROOT/usr/share/%{name}/
-install -d $RPM_BUILD_ROOT/%{python_sitearch}/monitor
-install -d -D -m 755 monitor $RPM_BUILD_ROOT/%{python_sitearch}/monitor
-# TODO: need a much better way to do this.
-rsync -a monitor/ $RPM_BUILD_ROOT/%{python_sitearch}/monitor/
-#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 monitor python package
+rsync -a --exclude .svn ./monitor/ $RPM_BUILD_ROOT/%{python_sitearch}/monitor/
+
+# install third-party module to site-packages
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
+# TODO:
+echo " * TODO: Setting up Monitor account in local MyPLC"
+
+#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
#%config /etc/monitor.conf
/usr/share/%{name}
/var/lib/%{name}
-/var/www/cgi-bin/monitor
+#/var/www/cgi-bin/monitor
%{_sysconfdir}/cron.d/monitor-server.cron
-%{python_sitearch}/threadpool.py
-%{python_sitearch}/threadpool.pyc
-%{python_sitearch}/threadpool.pyo
-%{python_sitearch}/monitor
%{_sysconfdir}/plc.d/monitor
%{_sysconfdir}/plc.d/monitor.functions
%{_sysconfdir}/plc.d/zabbix
+%{_sysconfdir}/httpd/conf.d
+%{python_sitearch}
%files client
%defattr(-,root,root)
#%{_sysconfdir}/cron.d/monitor
/usr/bin/timeout.pl
-%files pcucontrol
-%{python_sitearch}/pcucontrol
-
%files runlevelagent
-/usr/bin/RunlevelAgent.py
-/usr/bin/RunlevelAgent.pyo
-/usr/bin/RunlevelAgent.pyc
+/usr/bin/RunlevelAgent.py*
/%{_initrddir}/monitor-runlevelagent
%post server-deps
-#easy_install --build-directory /var/tmp -UZ ElementTree
-##easy_install --build-directory /var/tmp -UZ http://pypi.python.org/packages/2.5/E/Extremes/Extremes-1.1-py2.5.egg
-
-
-## TODO: something is bad wrong with this approach.
-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
+#
+# TODO: depend on distribution packages where feasible.
+#
+# it would be better to be able to depend on the distribution's
+# packages for these additional python modules, but packages provided
+# by fedora 8 (our current deployment) doesn't match the version
+# requirements.
+export TMPDIR=/var/tmp/
+easy_install -UZ http://files.turbogears.org/eggs/TurboGears-1.0.7-py2.5.egg
+easy_install -UZ http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.5.3.tar.gz
+easy_install -UZ Elixir
# crazy openssl libs for racadm binary
ln -s /lib/libssl.so.0.9.8b /usr/lib/libssl.so.2
# 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 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).
%changelog
+* Thu Jan 21 2010 Talip Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-30
+- * fix paths for automate script
+
+* Tue Dec 22 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-29
+- - separate pcucontrol as an svn module
+- - restore easy_instal back into post install stage of server-deps
+- - template imporovements for web interface
+
+* Thu Dec 17 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-28
+- do not need buildrequires. a new tag to fix centos builds
+
+* Thu Dec 17 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-27
+- fix rpm build issues
+
+* Wed Dec 16 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-26
+- to many changes, but mostly moved stuff around. there are some small fixes here and there.
+
+* Fri Nov 20 2009 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-3.0-25
+- add option for site status to include both node & pcu status
+- improve ticket handling
+- template gadget.xml for a site-specific google-gadget summary
+
* Thu Oct 22 2009 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - Monitor-3.0-24
- - add install_date