source: trunk/CHANGES @ 169

Last change on this file since 169 was 169, checked in by sil, 16 years ago

trunk/src/PBSQuery.py:

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