source: trunk/CHANGES @ 148

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

pbs_python.spec:

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