source: tags/2.8.2/CHANGES

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

pbs_swig/distro/CHANGES

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