source: trunk/CHANGES @ 123

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

pbs_python:

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