source: trunk/CHANGES @ 125

Last change on this file since 125 was 125, checked in by bas, 18 years ago

pbs_python:

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