-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNEWS
563 lines (385 loc) · 22 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
pywbem-0.8.0~dev (last updated: 2014-10-10, includes commits up to r672)
ENHANCEMENTS:
* Verify certificates against platform provided CA trust store in
/etc/pki/tls/certs. Linux only. (Peter Hatina)
* Added '-d' option to MOF compiler that causes the compiler to perform a
dry-run and just check the MOF file syntax. This allows to more easily
detect included MOF files when used together with the '-v' option.
(Jan Safranek)
* Added support for non-ASCII (Unicode) characters. (Michal Minar, Andreas
Maier)
* Improved information in the message text of some exceptions (TypeError
and KeyError in cim_obj.py, ValueError in cim_obj.py, and ParseError in
tupleparse.py). (Andreas Maier)
* Moved the definition of the pywbem version from setup.py to __init__.py,
in order to make it available to programs using pywbem as
pywbem.__version__. (Andreas Maier)
* Added support for direct iteration over NocaseDict objects using 'for'
and 'in' by adding __iter__(), e.g. for use with CIMInstance.properties.
(Andreas Maier)
* Added more instance attributes to be shown in repr() on CIMProperty and
other classes in cim_obj. (Andreas Maier)
* Added and improved docstring-based documentation in the pywbem modules
cim_operations, cim_http, cim_obj, cim_types, and the pywbem module.
(Andreas Maier)
* Improved the way missing file:// URL support on Windows is handled, by
now issuing a proper error message instead of stumbling across the
missing socket.AF_UNIX constant. (Andreas Maier)
* Improved the way missing OWLocal authorization with the OpenWBEM server
is handled on Windows, by now issuing a proper error message instead of
stumbling across the missing os.getuid() function. (Andreas Maier)
* Improved Windows portability by no longer attempting to import 'pwd' in
case the userid is not set in the environment variables that are checked
when the WBEM server is local. (Andreas Maier)
BUG FIXES:
* Fix syntax error in CIM DTDVERSION error path. Allow KEYVALUE
VALUETYPE attribute to be optional as specified in the DTD.
(Andreas Linke)
* Added parsing of InvokeMethod return value and output parameters for
Twisted Python client. (Tim Potter)
* Fixed cim_provider2.py to properly support shutdown() and can_unload()
(called from CMPI cleanup() functions). Support was recently added
to cmpi-bindings for this. (Bart Whiteley)
* Fixed XML parsing to accept SFCB-style embedded instance parameters.
(Mihai Ibanescu)
* Use getpass module instead of pwd to detect local user to fix Win32.
(Tim Potter)
* Re-throw KeyError exceptions with capitalised key string instead
of lower cased version in NocaseDict.__getitem__(). (Tim Potter)
* Use base64.b64encode() instead of base64.encodestring() in Twisted
client. (Mihai Ibanescu)
* Fix missing CIMDateTime import in Twisted client. (Mihai Ibanescu)
* Fixed CIMInstanceName rendering to string. It is now possible to pass the
rendered string value as an instance path argument of a CIM method.
(Jan Safranek, Michal Minar)
* For Python providers, fixed the comparsion of the Role parameter in
association operations to be case insensitive, and removed an erroneous
test that raised an exception when the property specified in the Role
parameter was not also in the property list specified by the Properties
parameter. (Jan Safranek)
* For Python providers, converted debug 'print' statements to trace
messages that end up in the system log. (Jan Safranek)
* The CIM-XML parser no longer throws an exception when parsing a
qualifier declaration.
Note: The CIM-XML supported by this fix does not conform to DSP0201 so
far. Further fixes are pending. (Jan Safranek)
* Fixed parsing errors for connection URLs with IPv6 addresses.
Note: The parsing support does not address all issues with IPv6 addresses,
and it does not support zone indexes (aka scope IDs). Further fixes are
pending. (Peter Hatina)
* Fixed the hard coded socket addressing family used for HTTPS that was
incorrect in some IPv6 cases, by determining it dynamically.
(Peter Hatina)
* Fixed the list of output parameters of extrinsic method calls to be
returned as a case insensitive dictionary (using cim_obj.NocaseDict).
(Jan Safranek)
* Fixed the checking of CIMVERSION attributes in CIM-XML to only verify the
major version, consistent with DSP0201 (see subclause 5.2.1, in DSP0201
version 2.3.1). (Jan Safranek)
* Fixed error in cim_http.py related to stronger type checking of Python
2.7. (Eduardo de Barros Lima)
* Removed erroneous qualifier scopes SCHEMA and QUALIFIER from the MOF
compiler (see DSP0004). (Andreas Maier)
* Fixed debug logging of CIM-XML payload (that is, conn.last_*request/reply
attributes) for extrinsic method calls, to now be consistent with
intrinsic method calls. (Andreas Maier)
* Fixed TOCTOU (time-of-check-time-of-use) error when validating peer's
certificate. (Michal Minar)
* Added a check in the CIMInstanceName constructor that the 'classname'
argument is not None. (Andreas Maier)
* Fixed the issue in the CIMProperty constructor that specifying a tuple
for the 'value' argument was incorrectly detected to be a scalar (and not
an array). (Andreas Maier)
* Fixed the issue in the CIMProperty constructor that specifying a
datetime or timedelta typed value resulted in storing the provided object
in the 'value' attribute, instead of converting it to a CIMDateTime
object. (Andreas Maier)
* Fixed the issue in the CIMProperty constructor that specifying a datetime
formatted string typed 'value' argument along with type='datetime'
resulted in storing the provided string object in the 'value' attribute,
instead of converting it to a CIMDateTime object. (Andreas Maier)
* Fixed several cases in the CIMProperty constructor of unnecessarily
requiring the optional arguments 'type', 'is_array', 'embedded_object',
or 'reference_class'. These optional arguments are now only necessary to
be provided if they cannot be implied from provided arguments (mainly
from 'value'). (Andreas Maier)
* Fixed the issue in the CIMProperty constructor that an 'embedded_object'
argument value of 'object' was changed to 'instance' when a CIMInstance
typed 'value' argument was also provided. (Andreas Maier)
* Fixed the issue in the CIMProperty constructor that the first array
element was used for defaulting the 'type' attribute, without checking
that for None, causing an exception to be raised in this case.
(Andreas Maier)
* Added a check in the CIMProperty constructor that the 'name' argument is
not None. (Andreas Maier)
* Fixed the issue that the CIMProperty constructor raised only TypeError
even when the issue was not about types; it now raises in addition
ValueError. (Andreas Maier)
* Changed the exception that is raised in NocaseDict.__setitem__() for
invalid key types, to be TypeError in instead of KeyError. Updated the
testcases accordingly. (Andreas Maier)
* Added checks for more than one argument and for unsupported argument
types to the constructor of NocaseDict. (Andreas Maier)
TESTING:
* Added support for running the unit test cases without having to be in the
testsuite directory. This was done by setting up the DTD_FILE path
correctly for any XML tests. (Andreas Maier)
* Improved the quality of assertion messages issued when testcases fail, to
include context information and types. (Andreas Maier)
* Added docstrings to test cases. (Andreas Maier)
* Added testcases for CIMProperty.__init__() to be comprehensive.
(Andreas Maier)
* In XML validation tests, added the expected XML root element.
(Andreas Maier)
* Added a header to any error messages issued by xmllint. (Andreas Maier)
* Fix: Merged stderr into stdout for the xmllint invocation, xmllint error
messages go to stderr and had been dropped before. (Andreas Maier)
* Fix: The "mkdir -p ..:" command in the comfychair testcase constructor
created subdirectories named "-p" when running on Windows; replaced that
command with os.makedirs(). (Andreas Maier)
* Fix: Replaced the "rm -fr ..." command in the comfychair testcase
constructor with shutil.rmtree(), in order to better run on Windows.
(Andreas Maier)
* Fix: In comfychair._enter_rundir(), moved registration of cleanup
function _restore_directory() to the end, so cleanup happens only if no
errors happened. (Andreas Maier)
* Fixed a bug in pywbem/trunk/testsuite/test_tupleparse.py in function
ParseCIMProperty.runtest(), where the use of real tab characters caused
a few lines to be incorrectly indented, and as a result, ignored for the
test. (Andreas Maier)
* Improved Windows portability in testsuite: Moved from using the Unix-only
functions posix.WIFSIGNALED() and posix.WEXITSTATUS() for testing the
success of subprocess.wait(), to simply testing for 0.
CLEAN CODE:
* Removed dangerous default parameter '{}' from CIMProperty and
CIMInstanceName, and replaced it with 'None'. To support that, added
support for initializing an empty NocaseDict object from 'None'.
* In cim_obj, changed the use of the deprecated backticks to using %r in
the format string (which produces the same result).
* In the constructor of CIMInstanceName, added assertions to some paths
that cannot possibly be taken based on the fact that the keybindings
attribute is always a NocaseDict. They should be removed at some point.
* Addressed PyLint issues:
- Consolidated imports at the top of the module (after module docstring),
consistent with the PEP-8 recommendation.
- Ensured order of imports: standard, non-standard, pywbem, local (on a
subset of modules only).
- Replaced wildcard imports with specific imports, as much as possible.
- Removed unused imports.
- Addressed PyLint issues that are related to whitespace, continuation
indentation, and line length.
- Replaced all real tab characters with spaces.
PACKAGING / BUILD:
* Fixed grammatical funkiness in the license text. No change to actual
license - still LGPLv2. (Tim Potter)
* Added LICENSE.txt file to release. (Tim Potter)
* Added LICENSE.txt, NEWS, README and INSTALL files to distribution
archive. (Andreas Maier)
* Removed confusing section about build from INSTALL file, to scope it just
to the topic of installation. (Andreas Maier)
* Restructured pywbem/trunk subtree to move pywbem package files into a
pywbem subdirectory. (Andreas Maier)
* Added a makefile (invoke 'make help' for valid targets). (Andreas Maier)
* Added support for checking the Python source code using PyLint.
(Andreas Maier)
* Added support for generating HTML documentation using epydoc, and
included the documentation into the distribution archive. The syntax
used in Python docstrings is reStructuredText markdown. (Andreas Maier)
pywbem-0.7 2008-12-12
BUG FIXES:
* Fixed enumInstances and references in cim_provider to do a deep
copy of the model before filtering instances so provider writers
are less surprised. (Bart Whiteley)
* Added CIMDateTime.__cmp__() so that CIMDateTime instances can be
compared. (Bart Whiteley)
* Fixed data types of method return values for python providers.
(Bart Whiteley)
* Fixed REF array out parameters in tupleparse.py.
(Bart Whiteley)
* Fixed Array parameters with no elements. (Bart Whiteley)
* Fixed precision for real32 and real64 types. (Bart Whiteley)
* Fixed Array properties where is_array isn't set in __init__.
(Bart Whiteley)
* Added NocaseDict.__cmp__(self, other). (Bart Whiteley)
* Fixed WBEMConnection.__repr__ for anonymous connections. (Tim Potter)
* Fixed XML encoding of CIMQualifierDeclarations. (Bart Whiteley)
* Fixed EnumerateQualifiers if there are no qualifiers. (Bart Whiteley)
* Fixed InvokeMethod to only send a LOCALCLASSPATH or LOCALINSTANCEPATH,
not a CLASSPATH or INSTANCEPATH. (Bart Whiteley)
* Fix unexpected line break in basic auth header for long
credentials. (Daniel Hiltgen)
* Fix Host: HTTP header when connecting to a unix domain socket.
(Bart Whiteley)
* Fix deprecation warnings with Python 2.6. (Bart Whiteley)
ENHANCEMENTS:
* Added support for generating Pegasus provider registration MOF in
cim_provider.codegen(). (Bart Whiteley)
* Implemented methods to parse indication export requests.
(Bart Whiteley)
* Python provider code generation enhancements. (Bart Whiteley)
* Support for Pegasus Local authentication. (Bart Whiteley)
* Support for Pegasus and OpenWBEM Unix Domain Socket. (Tim and Bart)
* Added support for Pegasus non-compliant EMBEDDEDOBJECT XML attribute.
(Bart Whiteley)
* Added CIMQualifierDeclaration.tomof(). (Bart Whiteley)
* Added a powerful MOF compiler. (Bart Whiteley)
* Added property filtering to CIMInstance. (Bart Whiteley)
* Added value attribute to CIMParameter. (Bart Whiteley)
* Rigged CIMInstance to automagically update CIMInstance.path.keybindings
as key properties are set. (Bart Whiteley)
* Added cim_provider2.py: A new provider interface. Python providers
using this interface can use the cmpi-bindings project within OMC
(http://omc-project.org/) to run under any CIMOM supporting the
CMPI interface. This is prefered to the old cim_provider.py interface
that was used with the Python Provider Managers for OpenWBEM and Pegasus.
* Changed __init__.py to not import anything from cim_provider.py (or
cim_provider2.py) into the pywbem namespace. Existing providers based
on cim_provider.py can still work with a minor adjustment involving
importing CIMProvider from pywbem.cim_provider. The codegen funtion
can now be obtained with 'from pywbem.cim_provider import codegen', or
'from pywbem.cim_provider2 import codegen' or similar.
* Added wbemcli.py command line utility. (Tim Potter)
* Pass keyword args in unix domain socket connection functions down to
WBEMConnection(). (Tim Potter)
pywbem-0.6 2007-10-26
LICENSING:
* Relicensed from the GNU GPLv2 to the GNU LGPLv2.
API CHANGES:
* Add a type keyword arg and attribute to CIMQualifier, similar to
the CIMProperty object, to allow the creation of null qualifiers.
(Tim Potter)
* Remove the toxml() method from CIM object classes. Use
tocimxml().toxml() instead which specifies the CIM-XML
representation of the object. (Tim Potter)
* CIMDateTime class should now be used instead of datetime.datetime
and datetime.timedelta.
* Added a new method, CIMInstance.update_existing(). This behaves
like update() on a dict, but only assigns new values to existing
properties. It skips values for properties not already present
in the instance. This is useful for honoring PropertyList within
python providers.
BUG FIXES:
* Explicitly specify charset="utf-8" in HTTP Content-type header
as this is required now by the Pegasus cimserver. (Tim Potter)
* Parse VALUETYPE elements that contain a TYPE attribute. This
feature was introduced in version 2.2 of the CIM-XML DTD and
produced by some CIMOMs such as the Java WBEM Server. (Tim Potter)
* Don't require CreateInstance to have the path attribute set but
if it is, use the namespace from it. (Tim Potter)
* Allow extrinsic methods to return object references. (Tim Potter)
* Fix CIMInstanceName to support more numeric types of keybindings.
(Bart Whiteley)
* Fix datetime values to support utc offset. (Bart Whiteley)
* Fix http client to monitor the connection more closely (RFC 2616
section 8.2.2). Previously, a large request could cause a socket
exception with no ability to read the response and respond to
an authentication challenge.
* Fix NULL qualifiers to have a (required) type. (Martin Mrazik)
* Fix initialising CIMInstanceName keys from a NocaseDict. (Bart
Whiteley)
* Return correct namespace in path for return value from
GetInstance. (Tim Potter)
* Numerous bugfixes to Twisted Python client. (Tim Potter)
* Fix for x.509 SSL certificate handling. (Bas ten Berge)
* EnumerateClassNames() now returns an empty list instead of None
if there are no classes. (Bart Whiteley)
ENHANCEMENTS:
* Support for OpenWBEM password-less local authentication.
(Bart Whiteley)
* Support for embedded objects is described in DSP0201-2.2.0
(Bart Whiteley)
* New CIMDateTime class to deal with CIM-isms of datetimes.
Most notably, datetime deals with timezone info poorly.
(Bart Whiteley)
* Add InvokeMethod() support in Twisted Python client. (Tim
Potter)
pywbem-0.5 2006-11-21
API CHANGES:
* Many API changes were made to simplify the function and object
interface of PyWBEM. Aspects of just about every CIM operation
call and CIM object have changed. The major changes are:
- The "LocalNamespacePath" keyword argument has been renamed to
simply "namespace" for all CIM operations.
- Replaced all object location classes with CIMInstanceName, and
all instance classes with CIMInstance. CIMInstanceName now
has "host" and "namespace" attributes to fully name a
reference to an instance. The CIMInstance class now has a
"path" attribute which is of type CIMInstanceName.
- EnumerateInstances() now returns a list of CIMInstance objects
(with path attribute set) instead of a list of
CIMNamedInstance or tuples of (CIMInstanceName, CIMInstance).
- All representations of properties can now be represented with
the CIMProperty class.
* All classes now have a copy() method which return a deep copy of
the object. PyWBEM makes extensive use of dictionary objects
which are passed by reference in Python. Use the copy() method
to create and manipulate objects without modifying them by
accident.
BUG FIXES:
* Fix parse bug when a CIMInstanceName is passed as the
localobject parameter to WBEMConnection.InvokeMethod().
* Fix parsing of INSTANCE elements containing PROPERTY.REFERENCE
elements bug found by Bart Whiteley. This turns up when
processing associations. (Tim Potter)
* Handle extrinsic method calls that don't return a value or any
output parameters. (Tim Potter)
* Fixed parsing of PARAMETER.ARRAY and PARAMETER.REFARRAY to
not require optional attrs. (Bart Whiteley)
* Atomic_to_cim_xml string generation for a datetime - was missing
a >> '.' in the string. (Norm Paxton)
* InvokeMethod did not provide for 'None' in output parameters.
(Norm Paxton)
ENHANCEMENTS:
* More parts of the class provider interface have been
implemented. (Tim Potter, Bart Whiteley)
* Many case-sensitivity bugs, mostly in __cmp__ methods, were
found and fixed. (Tim Potter)
* Implemented a test suite for maintaining backward compatibility
and testing new features. (Tim Potter)
* Implemented ExecQuery. (Bart Whiteley)
* Allow a string classname to be passed as the localobject
parameter to WBEMConnection.InvokeMethod(). (Tim Potter)
* Add missing qualifiers on array properties. (Bart Whiteley)
* Added code for performing asynchronous WBEM client operations
using the Twisted Python framework. (Tim Potter)
* Allow extrinsic method calls that take parameters. (Tim Potter)
* Added cim_http.AuthError exception class. This is raised if the
CIMOM returns a 401 (Unauthorized). Now the client can
distinguish this condition, and (re)prompt for credentials.
(Bart Whiteley)
* Created cim_obj.CIMParameter class. Added return type,
class origin, propagated to CIMMethod. CIMParameter object
now allows parameter types and qualifiers to be obtained.
(Bart Whiteley)
* Implemented case-insensitive keys for property and qualifier
dictionaries, as per the CIM specification. (Tim Potter, Bart
Whitely)
pywbem-0.4 2005-11-15
BUG FIXES:
* Correctly calculate value of Content-Length HTTP header to include
opening XML stanza. (Szalai Ferenc)
* Fix syntax error when re-raising socket errors. (Pat Knight)
ENHANCEMENTS:
* Support for marshaling and unmarshaling CIM dates object into
Python datetime objects. (Szalai Ferenc)
* Experimental module for making asynchronous WBEM calls with
PyWBEM in Twisted Python. (Tim Potter)
* Add parameter type checking for object location classes. (Tim
Potter)
* Allow caller to pass in a dictionary containing the location of
the SSL certificate and key files as per the httplib.HTTPSConnection()
class constructor. (Pat Knight)
API CHANGES:
* Change association provider API functions to take a fixed
parameter for the named object instead of a keyword argument.
This breaks backward compatibility. (Tim Potter)
* Remove the CIMLocalNamespacePath class and replaced by a Python
string. (Tim Potter)
PORTABILITY:
* Don't use UserDict.DictMixin base class as it only exists in
Python 2.3 and higher. (Tim Potter)
TESTS:
* Add tests for parameter type checking for object location
classes. (Tim Potter)
* Add tests for string representation of object location classes.
(Tim Potter)