source: trunk/pbs_swig/distro/CHANGES @ 110

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

distro:

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