source: trunk/CHANGES @ 152

Last change on this file since 152 was 152, checked in by dennis, 16 years ago

Preperation for version 2.9.6 release

  • Property svn:keywords set to Id
File size: 10.0 KB
Line 
1=========== XXXXXXX
2        - pbs_python.spec file patch added libdir and python defines so it will
3          build for RHEL5.1/CentOS 5.1
4          by        : Michael Sternberg <sternberg add anl dot gov>
5          applied by: Bas van der Vlies
6
7=========== Version 2.9.6
8        - Added two new attributes to the pbs_ifl.h
9                * ATTR_NODE_status
10                * ATTR_NODE_note
11
12=========== Version 2.9.4
13        -  Function pbs.pbs_geterrmsg does not exits any more is
14           replaced by pbs.error():
15                errno, text = pbs.error()
16                print errno, text
17           Reported by: pk at q-leap dot com
18           Fixed by   : Bas van der Vlies
19
20        - PBSQuery.py
21           * Added get_version() for server class, returns the version of
22             the batch server
23             Added by    : Bas van der Vlies
24
25           * Added get_nodes() for job class, returns a list of nodes on
26             which the job is run
27             Added by    : Bas van der Vlies
28
29           * PBSQuery.py rewrite make use of UserDict module.
30             Suggested by: Ramon Bastiaans
31             Fixed by    : Bas van der Vlies
32
33=========== Version 2.9.2
34        - The function pbs_rescquery() did not work. Fixed it
35        - The function avail(), did not work fixed it
36        - The functions pbs_rescreserve and pbs_rescrelease did not work
37          fixed it
38
39        - Fixed a bug in new_rack_pbsmon.py. Counting of serial
40          nodes was wrong and state down has topmost priority
41
42=========== Version 2.9.0
43        - Added support for new torque build system 2.1.0
44        - Added new_rack_pbsmon.py
45          Authors: Walter de Jong & Bas van der Vlies
46
47=========== Version 2.8.2
48
49Configure has a new option:
50        --with-pbsdir=PATH
51
52If set it will use PATH specified as argument to
53find the pbs/torque libraries. If unset it will use
54some useful defaults to find the libaries.
55Suggested by: Troy Baer
56
57PBSQuery.py:
58        - If we can not make a connection with the server
59          then raise an exception and let the programmer
60          decides what to do.
61
62pbs_python.spec:
63        - It can now handle mode bits
64          Author: Martin Pels from SARA
65       
66=========== Version 2.8.0
67
68setup.py:
69        - Added /usr/lib to PBS_LIB_DIR
70
71pbs.py:
72        - Added new function "pbs.error()". This function checks if
73          an error has occured with a pbs function, eg:
74            task_id = pbs.pbs_submit(c, attrl, "A.tsk", 'NULL', 'NULL')
75            error_number, err_txt = pbs.error()
76            if error_number:
77                print error_number, err_txt
78
79          prints the following message if script A.tsk does not exists:
80            15042 (qsub) cannot access script file
81
82pbs_python.spec:
83        - to make rpm packages from the source package, initial version
84        Author: Martin Pels from SARA
85
86README:
87        - Now requires python 2.1 and higher
88        - Explain how to build DEBIAN package
89
90=========== Version 2.7.10
91
92PBSQuery.py:
93        Fixed an error. You always got all resources from eg nodes
94        even when you supplied an attribute list where you only
95        requested the 'state' of the node.
96
97        Updated the inline python documentation
98
99=========== Version 2.7.9
100
101Fixed an error the previous version was in DEBUG mode. So
102you get an lot undesired output on the screen.
103
104debian package now also generated a package with the write
105version info.
106
107=========== Version 2.7.8
108
109Setup.py:
110        Can also handle ROCKS installations + the version
111        info is now the same as pbs.py
112        Thanks to: Roy Dragseth
113
114=========== Version 2.7.7
115
116PBSQuery module:
117  It can now be used in daemon programs. The pbs_server closes
118  the connection after an certain amount of time. This is fixed,
119  before every query there is an new connection and if the query
120  is finished the connection is closed.
121 
122=========== Version 2.7.6
123
124Now setup.py can also handle old Oscar Installations.
125Thanks To: Robin Humble
126
127Fixed an print statement fix in new_interface.py:
128Thanks To: Robin Humble
129
130Made some improvements for PBSQuery module:
131        - Updated the documentation
132        - Added the has_key() function to all
133          PBSObjects. So that the behaviour is similar to
134          an dictionary
135          Suggested By: Ramon Bastiaans
136       
137=========== Version 2.7.5
138 Added PBSQuery module.  This module requires pbs.py and it a simple module
139 for querying the pbs server. The documentation is in the module. Use for
140 example ipython to read it.
141
142 Written By: Roy Dragseth
143             Bas van der Vlies
144
145 eg: ( see also examples/new_interface.py)
146
147 from PBSQuery import PBSQuery
148 p = PBSQuery()
149
150 jobs = p.getjobs()
151 for name, job in jobs.items()
152        print job
153
154=========== Version 2.7.4
155 New versions fixes an bug in function pbs.pbs_statnode().
156 Reported by: Keith Poirier
157
158 Configure support:
159 Contributed By: Yaroslav Halchenko
160
161 Debian package support:
162 Contributed By: Yaroslav Halchenko
163
164 Added Support for Debuging the interface, You must edit pbs_wrap.c
165 and search for SARA_DEBUG:
166        #define SARA_DEBUG 1
167 Implemented by: Ramon Bastiaans
168
169 examples/pbsmon.py:
170        - Fixed an error when regex fails to determine node number,
171          no status was displayed
172        - It will now display and 'j' if the node is free for the batch
173          system and a job runs on the node (SMP-systems).
174 Changed by: Bas van der Vlies
175
176 examples/rack_pbsmon.py:
177        - An pbsmon that display node info per rack
178        - Edit the rack_pbsmon.py to adjust the values. It requires
179          that hostname contains rack and node id's,
180          eg: gb-r<number>n<number>
181 Contributed by: Walter de Jong
182
183=========== Version 2.7.3
184 The name SPBS is changed to the new name TORQUE (Tera-scale Open-source
185 Resource and QUEing manager).
186
187 The interface support OPENPBS and TORQUE.
188
189=========== Version 2.7.2
190 Some minor changes to include files. Now the Scalable PBS keywords
191 are also supported ( server attribute names: node_ping_rate and
192 node_check_rate). This does not interfere with the openpbs software.
193
194 pbsmon.py could not handle an one node cluster. Fixed it.
195
196=========== Version 2.7
197 Forgot to wrap the pbs_statfree() function. So we could not free
198 allocated memory from functions that return 'struct batch_status *'
199 like pbs_statjob().
200
201 pbsmon.py can now handle 2 and 3 digit hostnames. Patch supplied by
202 Daniel Olson
203
204=========== Version 2.6.1
205 Setup.py now checks if all openpbs libraries are installed to compile the
206 package.
207
208=========== Version 2.6
209
210 Fixed a bug in the pbs python module. Forgot to map the pbs_statjob()
211 function. This bug prevented to pass 'struct attrl' variables to this
212 function. Thanks to Evelyn Shiu for reporting this bug.
213
214
215=========== Version 2.5
216 Added the OpenPbs logging functions (log.h and liblog.a). There
217 is an example in the examples directory: logpbs.py
218
219 Fixed a bug in examples/resmom_info.py used the default port for
220 pbs_resmon if getservbyname fails.
221
222 Fixed a bug in resmom code. If the user has no permissions to query
223 the pbs_mom daemon a empty string is returned. Now we check for
224 the empty string. So we do not get a python exception.
225
226 Fixed a bug in setup.py forgot the exit statement when we did not
227 find the pbs libraries.
228
229=========== Version 2.3
230 Bugfix in the pbsnodes-a.py. Forgot to import the sys module.
231
232 Removed some obsolete code.
233
234 As for now we make use of the distutils module. So the package
235 is automatically compiled and installed in proper directories, usage:
236    python setup.py install
237 This requires that the package 'distutils' must be installed. As for
238 version 1.6 and higher it is in the distribution.
239
240 Added a function that prints the pbs python interface version. So we
241 can check if we have the right interface version:
242 import pbs
243 print pbs.version()
244 
245
246=========== Version 2.2
247
248In this release we can query the pbs_mom daemon with the aid of
249resource management functions:
250   pbs.openrm()
251   pbs.closerm()
252   pbs.downrm()
253   pbs.configrm()
254   pbs.addreq()
255   pbs.allreq()
256   pbs.flushreq()
257   pbs.activereq()
258   pbs.fullresp()
259   pbs.getreq()
260
261There is also a python function:
262   pbs.get_mom_values(id, [list]):
263     id   - connection id of pbs.openrm(node-name, port-number)
264     list - Is a optional paramter. A list of resource keywords
265
266   If 'list' is not supplied then this function will get the values
267   for the standard resource keywords, eg uname, loadave, .. + 'arch'
268   depended keywords. The arch feature is only implemented for linux,
269   but it can easily be ported to other oses.
270
271   if 'list' is supplied then we only fetch values for the keywords
272   that are in the list.
273
274   The function returns a dictonary. The keys are the resource keywords.
275
276   See 'resmom_info.py' for a example of this new feature.
277
278=========== Version 2.0
279
280The previous version was a simple interface above the PBS C API LIB.  This
281interface has gone a major changes. The most noticeable change is  that
282the functions accept/return Python lists instead of C-lists.  So you can now
283use standard Python syntax for manipulating Python lists. If you are familar
284with the Python syntax then you will appreciate this new interface.
285
286NOTE:
287  This interface is NOT compatible with the old one
288
289Here are some guidelines to convert your code to the new one:
290
291The constructors for the struct has gone a major change:
292  old code:
293    temp = pbs.new_attrl();
294    attrl_p = pbs.attrlPtr(temp)
295    attrl_p.name = 'state'
296
297  new_code:
298     attr_l = pbs.new_attrl(1)   // Creates a list of attrl structs length 1
299     attr_l[0].name = 'state'
300
301
302The pbs_stat functions returns Python lists instead of C-lists. There is
303NO next field anymore:
304  old_code:
305    temp = pbs.new_attrl();
306    attrl_p = pbs.attrlPtr(temp)
307    attrl_p.this = 'NULL'
308
309    nodes = pbs.pbs_statnode(con, "", attrl_p, "NULL")
310
311    while nodes.this != 'NULL':
312      print nodes.name
313
314      node_attrl = nodes.attribs
315      while node_attrl.this != 'NULL':
316        print '\t', node_attrl.name, '=', node_attrl.value
317        node_attrl = node_attrl.next
318
319    nodes = nodes.next
320
321
322  new_code:
323    nodes = pbs.pbs_statnode(con, "", "NULL", "NULL")
324    for node in nodes:
325      print node.name
326      for attrib in node.attribs:
327        print '\t', attrib.name, '=', attrib.value
328
329Another advantage is you can use the print statement to show the
330connect of attrl and attropl classes:
331   attr_l = pbs.new_attrl(2)
332   attr_l[0].name = 'bas'
333   attr_l[0].value = 'van der Vlies'
334
335   print  attr_l[0]
336   >> (bas,,van der Vlies)
337   
338I hope these examples illustrate the changes. If you specify a wrong type
339for a function then function wil raise a Python exception.
Note: See TracBrowser for help on using the repository browser.