log subprocess calls.
[nodemanager.git] / NodeManager.spec
1 #
2 # $Id$
3 #
4 %define url $URL$
5
6 %define slicefamily %{pldistro}-%{distroname}-%{_arch}
7
8 %define name NodeManager
9 %define version 1.7
10 %define taglevel 47
11
12 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
13
14 Summary: PlanetLab Node Manager
15 Name: %{name}
16 Version: %{version}
17 Release: %{release}
18 License: PlanetLab
19 Group: System Environment/Daemons
20 Source0: %{name}-%{version}.tar.gz
21 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
22
23 Vendor: PlanetLab
24 Packager: PlanetLab Central <support@planet-lab.org>
25 Distribution: PlanetLab %{plrelease}
26 URL: %(echo %{url} | cut -d ' ' -f 2)
27
28 BuildArch: noarch
29
30 # Old Node Manager
31 Obsoletes: sidewinder, sidewinder-common
32
33 # vuseradd, vuserdel
34 Requires: vserver-%{slicefamily}
35 Requires: util-vserver >= 0.30.208-17
36
37 # vserver.py
38 Requires: util-vserver-python
39
40 # Signed tickets
41 Requires: gnupg
42
43 # Contact API server
44 Requires: curl
45
46 # Uses function decorators
47 Requires: python >= 2.4
48
49 # sioc/plnet
50 Requires: pyplnet = 4.2
51
52 %description
53 The PlanetLab Node Manager manages all aspects of PlanetLab node and
54 slice management once the node has been initialized and configured by
55 the Boot Manager. It periodically contacts its management authority
56 for configuration updates. It provides an XML-RPC API for performing
57 local operations on slices.
58
59 %prep
60 %setup -q
61
62 %build
63 %{__make} %{?_smp_mflags}
64
65 %install
66 rm -rf $RPM_BUILD_ROOT
67 %{__make} %{?_smp_mflags} install DESTDIR="$RPM_BUILD_ROOT"
68
69 install -D -m 755 conf_files.init $RPM_BUILD_ROOT/%{_initrddir}/conf_files
70 install -D -m 755 fuse-pl.init $RPM_BUILD_ROOT/%{_initrddir}/fuse-pl
71 install -D -m 755 nm.init $RPM_BUILD_ROOT/%{_initrddir}/nm
72 install -D -m 644 nm.logrotate $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/nm
73
74 %post
75 chkconfig --add conf_files
76 chkconfig conf_files on
77 chkconfig --add nm
78 chkconfig nm on
79 chkconfig --add fuse-pl
80 chkconfig fuse-pl on
81 if [ "$PL_BOOTCD" != "1" ] ; then
82         service nm restart
83         service fuse-pl restart
84 fi
85
86
87 %preun
88 # 0 = erase, 1 = upgrade
89 if [ $1 -eq 0 ] ; then
90     chkconfig fuse-pl off
91     chkconfig --del fuse-pl
92     chkconfig nm off
93     chkconfig --del nm
94     chkconfig conf_files off
95     chkconfig --del conf_files
96 fi
97
98 %clean
99 rm -rf $RPM_BUILD_ROOT
100
101 %files
102 %defattr(-,root,root,-)
103 %{_datadir}/NodeManager/
104 %{_bindir}/forward_api_calls
105 %{_initrddir}/nm
106 %{_initrddir}/conf_files
107 %{_initrddir}/fuse-pl
108 %{_sysconfdir}/logrotate.d/nm
109
110 %changelog
111 * Tue Mar 10 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-47
112 - *  Removed thread in conf_files.  The thread with die but the module's callback would happily return without any errors.
113
114 * Tue Mar 10 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-46
115 - Log calls to vuseradd.  If vuseradd fails, the exception will be reported in /valog/nm.
116
117 * Mon Mar 02 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-45
118 - Allowing controller accounts to use unique GIDs can overwrite the default "slice" group.  Controllers now use the "slice" GID instead of unique GIDs.
119
120 * Thu Feb 26 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-44
121 - Delegation code optimization
122 - Fixed some comments
123
124 * Mon Feb 02 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-43
125 - BUGFIX:  Extra logging was causing the main thread to die when the API was unavailable (which happens nightly due to db cleanup job).  Fixed.
126
127 * Fri Jan 30 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-42
128 - * Can add or remove BW limits from PLC w/o reboots.
129
130 * Fri Jan 30 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-41
131 - Syntax fix.
132
133 * Fri Jan 30 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-40
134 - * Ensure RSPEC update on all account types per epoch.
135 - * BUGFIX:  HTBs were never being created when default slice's overrides weren'tset.
136
137 * Thu Jan 29 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-39
138 - Supports disabling of HTBs from PLC.
139
140 * Wed Dec 03 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - NodeManager-1.7-38
141 - Add support for plugins.
142 - Move network code to a separate module.
143 - Add AdminTicket API.
144 - Add support for sysctl slice attributes.
145
146 * Tue Sep 23 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-37
147 - Slices are created 1 at a time to avoid race conditions.
148
149 * Fri Sep 19 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-36
150 - Internet2 clique flow classification is now setup by NM.
151
152 * Wed Sep 17 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-35
153 - Clique network shares don't exist.  Removed from bwmon.
154
155 * Fri Sep 12 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-34
156 - * Fixed slice restart via xmlrpc to actually set resources
157 - * Reverted bwmon to check current min/max limits before manipulating HTB.
158
159 * Wed Sep 03 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-33
160 - bwmon now has enable/disable flag to control throttling.
161
162 * Mon Sep 01 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - NodeManager-1.7-32
163 - always log message when expected vserver reference is missing
164
165 * Mon Aug 25 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-31
166 - Emails were only being sent of high bandwidth caps were being exceeded.  Fixed.
167
168 * Thu Aug 21 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-30
169 - bwmon:  Only mention the limit the slice went over.  Not both it and the second limit.
170
171 * Wed Aug 20 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-29
172 - Fixed KeyError in logging.
173
174 * Wed Aug 20 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-28
175 - Fixed syntax error in notify function call.  Also fixed values in email message and logging.
176
177 * Mon Aug 18 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - NodeManager-1.7-27
178 - Fix the FUSE initscript.
179
180 * Sun Aug 17 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - NodeManager-1.7-26
181 - FUSE support.
182
183 * Wed Aug 13 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-25
184 - Removed thread created for each sliver (!!!).
185 - Slivers now spawned out of main thread.
186 - This closes the Delegation bug and closes the recent rash of NM instabilities due to queue overflows. [ticket: 384]
187
188 * Fri Aug 01 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-24
189 - * Update bandwidth related attributes on every NM sync.  Bwlimit will check if values have changed.
190 - * Vsys supports local_ scripts and NM will disregard them.
191
192 * Mon Jul 28 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-23
193 - After removing the fork() to the slice's uid when writing .ssh/authorized_keys, .ssh had the wrong owner/group.  Fixed.
194
195 * Fri Jul 25 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-22
196 - Small change.  Change uid to slice owner of authorized_keys.
197
198 * Wed Jul 23 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-21
199 - Slices with initscripts kept restarting.  Fixed.
200 - Also removed unnecessary fork just to write .ssh/authorized keys for every slice.
201
202 * Tue Jul 15 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-20
203 - * Check slice is_running() every cycle.  If not, assume damaged and restart.
204
205 * Mon Jul 07 2008 Daniel Hokka Zakrisson <daniel@hozac.com> - NodeManager-1.7-19
206 - chrooting is not thread-safe.
207
208 * Fri Jun 27 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-18
209 - Log disk init AFTER acquiring disk semaphore.
210
211 * Wed Jun 25 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - NodeManager-1.7-17
212 - unconditionnally passes node_id and slicefamily to conf_file scripts
213 - correctly set personality a sliver creation time (not yet used by util-vserver-pl though)
214
215 * Thu Jun 19 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - NodeManager-1.7-16
216
217 - enables a vsys slice attribute to end with 'a', 'c', or 'l' characters without
218 - NM going bonkers.
219
220
221 * Wed Jun 18 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - NodeManager-1.7-15
222
223 - enable restart if vsys.conf changes also.
224
225
226 * Wed Jun 18 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - NodeManager-1.7-14
227
228 - the _restart flag for vsys was getting lost when looking across multiple
229 - vservers.  adding the 'or' should preserve any 'True' returns from
230 - createVsysDir()
231
232
233 * Tue Jun 17 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-13
234
235 - Time out curl when no response for 90 seconds.
236
237
238 * Fri Jun 13 2008 Stephen Soltesz <soltesz@cs.princeton.edu> - NodeManager-1.7-12
239 - Patch designed to work around the vsys-fail-to-restart problem with
240 - non-existent directories, and the vuseradd-fail-to-work on directories that
241 - do exist.  
242
243 - This patch will work in conjunction with the new vsys patch.
244
245
246 * Wed May 14 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - NodeManager-1.7-10
247 - fixed doc build by locating locally installed DTDs at build-time
248
249 * Fri May 09 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-9
250 - * Reverted vserver start to forking before VServer.start to avoid defunct procs.* House keeping in various places.
251
252 * Fri May 09 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - NodeManager-1.7-8
253 - merge changes for myplc-docs from trunk
254
255 * Wed Apr 16 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-7
256
257 - Set vcVHI_CONTEXT as slice_id for fprobe-ulog to mark packets with.
258
259
260 * Wed Apr 09 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-5 NodeManager-1.7-6
261
262 - * Codemux will use PLC_API_HOST when PLC_PLANETFLOW_HOST isn't defined.
263
264
265 * Fri Apr 04 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-4 NodeManager-1.7-5
266 - * vdu limitting when NM restarts and slices are re-init'ed
267 - * CoDemux config parser update.  Now tolerates spaces.
268
269 * Wed Apr 02 2008 Faiyaz Ahmed <faiyaza@cs.prineton.edu - NodeManager-1.7.4
270 - Codemux supports multiple hosts mapping to single slice
271 - Fixed bug in delegation support where tickets delivered weren't
272   being passed to sm.deliver_ticket().
273 * Fri Mar 28 2008 Faiyaz Ahmed <faiyaza@cs.prineton.edu - NodeManager-1.7.3
274 - Codemux now configured via slice attribute (host,port)
275 - Support for multiple vserver reference images (including different archs)
276 - Mom BW emails are sent to list defined by MyPLC's config
277 - Sirius BW loans honored correctly.  Fixed.
278 - BW totals preserved for dynamic slices so as not to game the system.
279 * Thu Feb 14 2008 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - NodeManager-1.7-1 NodeManager-1.7-2
280 - Configures vsys via vsys slice attribute {name: vsys, value: script}
281 - CPU reservations are now calculated via percentages instead of shares
282 - BW totals preserved for dynamic slices
283 - Closes bug where node cap sets off bw slice alarms for all slices.
284
285 * Wed Oct 03 2007 Faiyaz Ahmed <faiyaza@cs.princeton.edu> .
286 - Switched to SVN.
287
288 * Mon Nov 13 2006 Mark Huang <mlhuang@paris.CS.Princeton.EDU> - 
289 - Initial build.