source: trunk/CHANGES @ 165

Last change on this file since 165 was 165, checked in by bas, 16 years ago

specify for which torque version

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