source: trunk/pbs_swig/distro/CHANGES @ 109

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

Added new new_rack_pbsmon.py script by Walter/Bas?

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