source: trunk/pbs_swig/distro/CHANGES @ 52

Last change on this file since 52 was 52, checked in by bas, 20 years ago

Preparing a new ditribution for opnepbs and PBS

  • Property svn:keywords set to Id
File size: 4.7 KB
Line 
1=========== Version 2.7.2
2 Some minor changes to include files. Now the Scalable PBS keywords
3 are also supported ( server attribute names: node_ping_rate and
4 node_check_rate). This does not interfere with the openpbs software.
5
6
7=========== Version 2.7
8 Forgot to wrap the pbs_statfree() function. So we could not free
9 allocated memory from functions that return 'struct batch_status *'
10 like pbs_statjob().
11
12 pbsmon.py can now handle 2 and 3 digit hostnames. Patch supplied by
13 Daniel Olson
14
15=========== Version 2.6.1
16 Setup.py now checks if all openpbs libraries are installed to compile the
17 package.
18
19=========== Version 2.6
20
21 Fixed a bug in the pbs python module. Forgot to map the pbs_statjob()
22 function. This bug prevented to pass 'struct attrl' variables to this
23 function. Thanks to Evelyn Shiu for reporting this bug.
24
25
26=========== Version 2.5
27 Added the OpenPbs logging functions (log.h and liblog.a). There
28 is an example in the examples directory: logpbs.py
29
30 Fixed a bug in examples/resmom_info.py used the default port for
31 pbs_resmon if getservbyname fails.
32
33 Fixed a bug in resmom code. If the user has no permissions to query
34 the pbs_mom daemon a empty string is returned. Now we check for
35 the empty string. So we do not get a python exception.
36
37 Fixed a bug in setup.py forgot the exit statement when we did not
38 find the pbs libraries.
39
40=========== Version 2.3
41 Bugfix in the pbsnodes-a.py. Forgot to import the sys module.
42
43 Removed some obsolete code.
44
45 As for now we make use of the distutils module. So the package
46 is automatically compiled and installed in proper directories, usage:
47    python setup.py install
48 This requires that the package 'distutils' must be installed. As for
49 version 1.6 and higher it is in the distribution.
50
51 Added a function that prints the pbs python interface version. So we
52 can check if we have the right interface version:
53 import pbs
54 print pbs.version()
55 
56
57=========== Version 2.2
58
59In this release we can query the pbs_mom daemon with the aid of
60resource management functions:
61   pbs.openrm()
62   pbs.closerm()
63   pbs.downrm()
64   pbs.configrm()
65   pbs.addreq()
66   pbs.allreq()
67   pbs.flushreq()
68   pbs.activereq()
69   pbs.fullresp()
70   pbs.getreq()
71
72There is also a python function:
73   pbs.get_mom_values(id, [list]):
74     id   - connection id of pbs.openrm(node-name, port-number)
75     list - Is a optional paramter. A list of resource keywords
76
77   If 'list' is not supplied then this function will get the values
78   for the standard resource keywords, eg uname, loadave, .. + 'arch'
79   depended keywords. The arch feature is only implemented for linux,
80   but it can easily be ported to other oses.
81
82   if 'list' is supplied then we only fetch values for the keywords
83   that are in the list.
84
85   The function returns a dictonary. The keys are the resource keywords.
86
87   See 'resmom_info.py' for a example of this new feature.
88
89=========== Version 2.0
90
91The previous version was a simple interface above the PBS C API LIB.  This
92interface has gone a major changes. The most noticeable change is  that
93the functions accept/return Python lists instead of C-lists.  So you can now
94use standard Python syntax for manipulating Python lists. If you are familar
95with the Python syntax then you will appreciate this new interface.
96
97NOTE:
98  This interface is NOT compatible with the old one
99
100Here are some guidelines to convert your code to the new one:
101
102The constructors for the struct has gone a major change:
103  old code:
104    temp = pbs.new_attrl();
105    attrl_p = pbs.attrlPtr(temp)
106    attrl_p.name = 'state'
107
108  new_code:
109     attr_l = pbs.new_attrl(1)   // Creates a list of attrl structs length 1
110     attr_l[0].name = 'state'
111
112
113The pbs_stat functions returns Python lists instead of C-lists. There is
114NO next field anymore:
115  old_code:
116    temp = pbs.new_attrl();
117    attrl_p = pbs.attrlPtr(temp)
118    attrl_p.this = 'NULL'
119
120    nodes = pbs.pbs_statnode(con, "", attrl_p, "NULL")
121
122    while nodes.this != 'NULL':
123      print nodes.name
124
125      node_attrl = nodes.attribs
126      while node_attrl.this != 'NULL':
127        print '\t', node_attrl.name, '=', node_attrl.value
128        node_attrl = node_attrl.next
129
130    nodes = nodes.next
131
132
133  new_code:
134    nodes = pbs.pbs_statnode(con, "", "NULL", "NULL")
135    for node in nodes:
136      print node.name
137      for attrib in node.attribs:
138        print '\t', attrib.name, '=', attrib.value
139
140Another advantage is you can use the print statement to show the
141connect of attrl and attropl classes:
142   attr_l = pbs.new_attrl(2)
143   attr_l[0].name = 'bas'
144   attr_l[0].value = 'van der Vlies'
145
146   print  attr_l[0]
147   >> (bas,,van der Vlies)
148   
149I hope these examples illustrate the changes. If you specify a wrong type
150for a function then function wil raise a Python exception.
Note: See TracBrowser for help on using the repository browser.