9f0f1fa2a8ce5a8ac48d7f67cf92dda1ba62d5b1
[monitor.git] / monitor-server.spec
1 #
2 # $Id$
3
4
5 %define url $URL: svn+ssh://svn.planet-lab.org/svn/Monitor/trunk/Monitor-server.spec $
6
7 %define name monitor-server
8 %define version 1.0
9 %define taglevel 6
10
11 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
12
13 Summary: Monitor backend scripts for server
14 Name: %{name}
15 Version: %{version}
16 Release: %{release}
17 Source0: %{name}-%{version}.tar.bz2
18 License: GPL
19 Group: Applications/System
20 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
21
22 Vendor: PlanetLab
23 Packager: PlanetLab Central <support@planet-lab.org>
24 Distribution: PlanetLab %{plrelease}
25 URL: %(echo %{url} | cut -d ' ' -f 2)
26
27 Requires: curl
28 Requires: coreutils
29 Requires: openssh-clients
30 Requires: PLCWWW >= 4.2
31 Requires: BootCD >= 4.2
32 Requires: MySQL-python
33 Requires: rt3 == 3.4.1
34
35 %description
36 Scripts for polling PLC, the node, and PCU status.  Also a collection of
37 command-line utilities for querying the status database. 
38
39 %prep
40 %setup -q
41
42 %build
43 # TODO: note that we should build the cmdamt/ with g++
44 cd cmdamt
45 export TMPDIR=$PWD/tmp
46 make
47 cd ..
48
49 %install
50
51 rm -rf $RPM_BUILD_ROOT
52 mkdir -p $RPM_BUILD_ROOT/usr/share/%{name}
53 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}
54 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/archive-pdb
55 mkdir -p $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/
56
57 echo " * Installing core scripts"
58 rsync -a --exclude www --exclude archive-pdb --exclude .svn --exclude CVS \
59           ./ $RPM_BUILD_ROOT/usr/share/%{name}/
60
61 echo " * Installing web pages"
62 rsync -a www/ $RPM_BUILD_ROOT/var/www/cgi-bin/monitor/
63
64 echo " * Installing cron job for automated polling"
65 install -D -m 755 %{name}.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/%{name}.cron
66 echo " * TODO: Setting up Monitor account in local MyPLC"
67 # TODO: 
68
69 cp $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig-default.py $RPM_BUILD_ROOT/usr/share/%{name}/monitorconfig.py
70
71 %clean
72 rm -rf $RPM_BUILD_ROOT
73
74 %files
75 %defattr(-,root,root)
76 %config /usr/share/%{name}/monitorconfig.py
77 /usr/share/%{name}
78 /var/lib/%{name}
79 /var/www/cgi-bin/monitor
80 %{_sysconfdir}/cron.d/%{name}.cron
81
82 %post
83 echo "Post processing"
84 # TODO: this will be nice when we have a web-based service running., such as
85 #               an API server or so on.
86 # TODO: create real monitorconfig.py from monitorconfig-default.py
87 # TODO: create monitorconfig.php using phpconfig.py 
88 # TODO: create symlink in /var/lib/monitor-server for chroot environments
89 # TODO: update the content of automate_pl03.sh 
90 # TODO: Use the installed version of bootcd to create custom boot images. ( or, use the api now).
91
92 #chkconfig --add monitor-server
93 #chkconfig monitor-server on
94
95 %changelog
96 * Mon Aug 11 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-1.0-6
97 - This is a major tag of every thing.  probably needs a very different release
98 - number.
99
100 * Wed Jul 30 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - Monitor-server-1.0-5
101 - initial creation of server-side package