source: tags/2.9.4/CHANGES

Last change on this file was 144, checked in by bas, 17 years ago

Preparing for new release 2.9.4

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