source: trunk/CHANGES @ 159

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

debian/changelog, pbs_python.spec, setup.py.in:

  • New version 2.9.8

src/pbs_ifl, src/pbs_python.h, src/pbs_wrap.c, src/log.h:

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