source: trunk/pbs_swig/distro/CHANGES @ 88

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

distro/pbs_python.spec:

  • Added by Martin Pels

CHANGES:

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