OpenPegasus Enhancement Proposal (PEP)
PEP #: 364
Title: Release Notes for OpenPegasus version 2.12.1
Created: 10
September 2012
Authors: Karl
Schopmeyer, Marek Szermutzky
Status: draft
Version History:
|
|
|
|
1.0 |
10 September 2012 |
Karl Schopmeyer |
Initial Submission |
1.01 | 10
September 2012 |
Karl
Schopmeyer |
Minor fixes
and complete links to PEPs |
1.1 | 11
September 2012 |
Karl
Schopmeyer |
Incorporate
all comments from first review |
1.2 | 18
September 2012 |
Karl
Schopmeyer |
Fix comments
on bug 8830 (compatibility considerations) and bug
9172(repupgrade) |
1.3 |
14
March 2013 |
Marek
Szermutzky |
Update for 2.12.1
Release |
Abstract: This document defines the release notes for the 2.12.1 release of the OpenPegasus CIM Server. The purpose of this PEP is to summarize the characteristics of this release, point to other documentation that defines the release in more detail, and provide additional information about this release that is not available in the other Pegasus documentation.
NOTE: This document defines the OpenPegasus 2.12.0 minor version release with comments added to define the 2.12.1 revision to that minor release. OpenPegasus 2.12.1 is a bug fix revision to OpenPegasus 2.12.0. The complete list of changes (total of 12 bugs fixed) is defined in OpenPegasus bugzilla with the 2.12.1_APPROVED bugs query. We recommend that all users of 2.12.0 review this list. OpenPegasus tries to execute only bug fixes for revision releases and not include enhancements. The OpenPegasus team recommends that users of Pegasus 2.12.0 update to Pegasus 2.12.1. Note that in OpenPegasus ALL changes including enhancements are defined as bugs and committed only when the APPROVED keyword is set so that the list in the query above defines ALL changes between 2.11.0 and 2.11.1.
This release is available in a number of forms including:
The instructions for acquiring the released code are on the Pegasus WEB site. Installation instructions are part of the README in the root of the Pegasus source tree.
OpenPegasus 2.12.1 is a Revision release.
NOTE: OpenPegasus releases are categorized as follows:
Table of Major Changes for this Release
PEP/BUG # | Description of Change | Posted PEP Version |
|
---|---|---|---|
PEP 360 | Provider Lifecycle Indications |
Ver
1.2 |
|
PEP 361 | cimcli support for embedded
instances |
Ver
1.1 |
|
PEP 304 |
Allow modification of name of
interop namespace |
Ver
1.5 |
|
PEP 358 |
WSMan indication handling and subscription support |
Ver
1.1 |
|
Bug
8891 |
Enhance cimsub to add operations to create filters,
destinations and subscriptions |
||
Bug
5667 |
Remove experimental from
buildInstance and filter functions in CIMInstance class |
||
Bug 8952 | Support Configurable cipher suites in OpenPegasus | ||
Bug 8984 | Add support for indication deliver connection pooling | ||
Bug 9008 | Add new Indication runtime configuration variables: maxIndicaitonDeliveryRetry Attempts and minIndicationdeliveryRetryInterval | ||
Bug
9013 |
Enable ordered indication delivery from provider through CIMServer when PEGASUS_ENABLE_DMTF_INDICATION_PROFILE compile flag is set | |
|
Bug 9080 | Guaranteed provider lifecycle indication delivery during CIMServer shutdown | ||
Bug
9112 |
Advertise IndicationService conformance to Indications Profile by imlementing CIM_ElementConformsToProfile when PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT defined | ||
Bug
9114 |
Advertise DMTF Indications Profile (DSP1054) 1.1.0 conformance | ||
Bug
9118 |
Add support for CIM_IndicationFilter.SourceNamespaces[]
property |
||
Bug 9136 | Runtime configuration option to restrict cimserver to listen on selected network interfaces | ||
Bug
9155 |
Update to include CIM 2.31 Schema and set this as
default schema |
||
Bug 9159 |
|
||
Bug
9172 |
Add capability for administrator to override hostname
used by providers. This adds new runtime
configuration variable hostname and
fullyQualifiedHostName. It is necessary to upgrade
existing repositories using repupgrade utility when
upgrading from OpenPegasus less than 2.12.0 and reusing an
existing repository. |
||
Bug
9215 |
Add support of CQL query language to ExecQuery operation
in general. When the server receives ExecQuery it
executes enumerate instance for providers that do not
support ExecQuery and filters result. |
||
Bug
9209 |
Add operations for display class tree and counting
instances to cimcli |
||
Bug
9227 |
Enhance cimsub for batches of subscription oriented
operations |
||
Bug
9229 |
Add gcc build support on hp-ux for the Common, Client and General libraries. | ||
Bug 9236 | Support for clang/clang++ compiler on Linux. This
version supports only X86 and X86_64 and requires clang
version 3 or greater. |
The status of several components of Pegasus functionality change status between Pegasus versions. Features that have changed status can be identified by a change in color from the previous release to this release on the Feature Status WEB Page.
Prior to version 2.12 OpenPegasus used an OpenPegasus internal
variable to define "root/PG_InterOp" as the name for the
OpenPegasus namespace with no defined way to change this
variable. Note that an unsupported method involving
editing one file and rebuilding OpenPegasus was defined as a
workaround in the OpenPegasus
wiki faqs.
However, since the definition of a standard name for this
namespace in DMTF and SNIA specifications ("interop" or
"root/interop" with "interop" being the preferred alternative)
the use of "root/PG_InterOp" has become an issue.
Effective OpenPegasus 2.12.0 a new build variable has been
defined (PEGASUS_INTEROP_NAMESPACE) which allows an
OpenPegasus builder to define an alternate name for the Interop
namespace to either "interop" or "root/interop" (ex.
PEGASUS_INTEROP_NAMESPACE = interop). Once this build
variable is defined and OpenPegasus compiled, the actual name of
the interop namespace is what was defined in this variable and
all components of OpenPegasus use this as the interop namespace
name include the complete OpenPegasus test suite. The only
name for the interop namespace will be the name defined through
this build variable.
However, today OpenPegasus is committed to the single namespace
defined at build "(root/PG_InterOp", "interop", or
"root/interop"). However, a number of OpenPegasus
installations are committed to the "root/PG_InterOp" name and
must maintain their repositories through updates of OpenPegasus.
While we are working on this issue today (which means that a
running version of OpenPegasus must accept both the and new
names and not confuse clients, listeners or providers that would
use either name) the OpenPegasus team did not complete that work
for this release. See bug 9250
for more information about possible solutions and our progress
on a solution.
NOTE: If you redefine the interop namespace name with
PEGASUS_INTEROP_NAMESPACE clients using the "root/PG_InterOp"
namespace will not connect with the updated version of
OpenPegasus.
NOTE: This functionality was incorporated in OpenPegasus 2.7.0 but it was felt that the information below was worth repeating in subsequent Release Notes
IPv6 is short for "Internet Protocol Version 6". IPv6 is the "next generation" protocol designed by the IETF to replace the current version Internet Protocol, IP Version 4 ("IPv4"). IPv6 Support for OpenPegasus is documented in PEP 291.
The IPv6 support in OpenPegasus is controlled by the
PEGASUS_ENABLE_IPV6 build variable. The default for this
variable is "true"; setting this to 'false' before building
OpenPegasus will disable the IPv6 support.
The following subsections provide some information on IPv6
support for the Linux and Windows platforms. Note that in the
2.6.1 release there is no automatic run-time detection of IPv6
support on a platform by OpenPegasus. If you build with
PEGASUS_ENABLE_IPV6=true, your platform must support IPv6 or you
will get a build failure (missing header files), a run-time
bind() failure, or possibly some other failure. This applies to
both the CIM Server and Listener components. For more
information on IPv6 support for your specific platform, refer to
the documentation for that platform.
All OpenPegasus externals that support either a hostname or an
IP address as input have been updated to allow an IPv6 address
to be specified. If the required input is just an IP address
(eg. no optional or required port number), then the IPv6 address
must be specified without brackets. For example, the OpenPegasus
osinfo client (which returns information about the OS running on
a host system) takes separate host and port options. In this
case a host with an IPv6-configured network interface would be
specified as:
But the cimcli command, which takes an optional "location"
option including an optional port number, requires the IPv6
address to be delimited with brackets, for example:
or
Modern Linux distributions already contain IPv6-ready kernels, the IPv6 capability is generally compiled as a module, but it's possible that this module is not loaded automatically on startup.
Note: you
shouldn't use kernel series 2.2.x, because it's not
IPv6-up-to-date anymore. Also the IPv6 support in series 2.4.x
is no longer improved according to definitions in latest RFCs.
It's recommend to use series 2.6.x now.
To check whether your current running kernel supports IPv6,
take a look into your /proc filesystem. The entry
/proc/net/if_inet6 must exist. A short automated test looks
like:
For more information on enabling IPv6 in the Linux kernel and
configuring network interfaces, refer to The
Linux Documentation Project's IPv6 HOWTO.
Warning: There is
currently an open issue with RedHat to address a problem that is
seen intermittently on RHEL5 and SLES10 systems. This problem is
described in Pegasus
bug
6586 and
RedHat
bug
248052, and manifests itself as an intermittent
IPv6 socket failure. You should be aware that OpenPegasus with
IPv6 enabled may be significantly impacted in these
environments.
Microsoft provides supported IPv6 implementations for Windows Server 2003, Windows XP with Service Pack 1 (SP1), Windows XP with Service Pack 2 (SP2), and Windows CE .NET 4.1 and later.
On Windows XP, you can use the ipv6.exe tool to install, uninstall, and query your IPv6 configuration. For example:Windows Vista and Windows Server 2008 support an integrated
IPv4 and IPv6 implementation known as the Next Generation TCP/IP
stack. Note that the OpenPegasus IPv6 support has not yet been
tested on Windows Vista or Windows Server 2008.
For more information on installing, configuring, and using IPv6
on Windows platforms, refer to the document IPv6 for Microsoft Windows: Frequently Asked
Questions.
Support for forward-compatibility is a fundamental design
principle for the OpenPegasus project. As a community, our goal
is for well-behaved OpenPegasus providers or clients, using only
the externally defined OpenPegasus interface, to continue to
work with a minor version upgrade of OpenPegasus. However, there
are certain classes of errors (e.g., non-compliance with a
standard that significantly affects interoperability) that may
require the community to make potentially incompatible changes.
The following table contains a list of defects/fixes that MAY
impact, even well-behaved, OpenPegasus providers or clients when
upgrading to this OpenPegasus release.
Bugzilla # | Description |
---|---|
Bug 8830 | Starting with OpenPegasus 2.11.0 the requirement for providers (CMPI and C++) to filter properties from instances has been relieved. The server will do the filtering at the protocol adapter level. To avoid a negative impact on performance the CIMInstance::filter() and CMPIInstanceFT.setPropertyFilter() functions have been changed to a NOP. This may be a change in behavior for provider relying in some unknown way on the instance being filtered through these functions. To allow users to actually filter properties from an instance, new function CIMInstance::filterInstance() will actually filter properties from an instance exactly as the CIMInstance::filter() did in previous versions of Pegasus. |
Bug
9369 |
Reregistering of an indication provider requires that the cimserver be restarted to send the enableIndication request to the providers. This issue has existed starting with OpenPegasus 2.10 to the current version. If the cimserver is not restarted the indication will not be enabled for the reregistered provider. |
Pegasus was designed and implemented to comply with the DMTF CIM/WBEM specifications The following table defines the level of the DMTF specifications to which this version of Pegasus aims to conform today.
DMTF Specification | Specification Version |
DSP 0004 - CIM Infrastructure Specification | Version 2.3 Final, 4 October 2005 |
DSP 0200 - CIM Operations over HTTP | Version 1.2, Final, January 09, 2007 |
DSP 0201 - Representation of CIM in XML | Version 2.2 Final, January 09, 2007 |
DSP 0202 - CIM Query Language Specification | 1.0.0, preliminary, 9 December 2004 |
DSP 0205 - WBEM Discovery using SLP | 1.0, preliminary, 27 January 2004 |
DSP 0206 - WBEM SLP Template | 1.0.0, Preliminary, January 2004 |
CIM Schema | 2.31.0 Final ( default) |
DSP0226 - Web Services for Management |
Version 1.1.1 |
DSP0227 - WS-Management CIM Binding Specification |
Version 1.2.0 |
DSP0230 - WS-CIM Mapping Specification | Version 1.1.0 |
Today OpenPegasus includes support for several DMTF profiles including the ones defined below:
It is a major goal of the OpenPegasus project to both drive and utilize the DMTF CIM/WBEM specifications. However, today there are a number of known differences. As of this release, some of the differences include the following:
IncludeQualifiers option on Instance Operations - The DMTF specifications have deprecated the use of qualifiers on instance operations with the 1.2 CIM Operations Specification and stated specifically that the client should NOT depend on the includeQualifiers parameter of the CIM/XML instance operations returning qualifiers. Some CIM Client implementations expect instances returned from the CIM Server to include the qualifiers defined in the class definition (such as KEY qualifiers on properties). Pegasus today expects the provider to complete the qualifiers on instances in accordance with the specification and generally the interpretation is that Pegasus applies class level qualifiers when the includeInstance parameter is supplied on instance operations. However, Pegasus today is inconsistent in the return of qualifiers so that the user should NOT depend on Pegasus accurately honoring the includeQualifier parameter for instance operations. In the future it is expected that Pegasus will deprecate the use of qualifiers on instance operations completely. When Pegasus uses object normalization, the normalizer does apply qualifiers to returned instances if the includeQualifiers operation parameter is set.
MultiRequest Operations - Pegasus does not support the DMTF defined MultiRequest Operation option.
MOF Compiler namespace pragma - The Pegasus compiler does not support the namespace pragma.
Each OpenPegasus release lists as 'active' platforms those hardware/software platforms that have recognized ports for the Pegasus code base including a maintainer for the platform that will be willing to regularly document issues and/or fix defects as the Pegasus code base is changed. Pegasus may be operable on other platforms (ex. Windows 98) but without a group to provide the role of test and maintenance, correct operation of Pegasus cannot be assured. In all cases, including the active platforms, it is the responsibility of the entity that packages and/or compiles OpenPegasus for shipment or deployment, to read, and actively monitor the Pegasus Bugzilla database for a list of relevant defects that affect their platform. The platforms that are considered ported are shown in the two tables below. The first table represents platform for which testing is done on a regular basis and reported to the Pegasus Nightly Build Test WEB Page. Those platforms which have been ported but do not have test results that are current at the time of the release are reported in the second table.
Actively Supported Platforms (Nightly Tests Reported for this release)
Platform
and OS |
Compilers |
HP-UX |
HP aC++ B3910B |
Linux on Power |
gcc |
zLinux |
gcc |
Linux
Itanium |
gcc |
Linux IA-32 | gcc (versions 3.xx,
4.xx) clang(The clang compiler usage is considered
experimental and is not part of the nightly tests
today) |
Linux
X86_64 |
gcc (versions 3.xx, 4.xx) clang(The clang compiler usage is considered experimental and is not part of the nightly tests today) |
z/OS V1.7 and up | XL C/C++ from z/OS Version 1.7 and up |
Platforms not Actively supported for this release (No current Nightly Build Test Results
Platform
and OS |
Compilers |
Windows XP, Windows Vista, Windows 7, Windows Server 2008 | Microsoft Visual C++ Compilers 2003 - 2010.. Note: Visual C++ Ver. 6 no longer being regular tested.Note that today there are some open issues with the Windows. |
MacOS version 10.3 and higher | gcc 4.01 |
Solaris 8 | GNU
2.95.3, Sun CC compiler V 5.8. Note that the
latest thread patch (108993) may be required. (see
Pegasus bug 4632) |
Solaris 9 | GNU 2.95.3, Sun
WorkShop 6 update 2 C++ 5.3, patch 111685-22 2005/04/09 |
HP OpenVMS 8.3 or later Alpha | HP C++ V7.3-009 or later required for OpenVMS Alpha |
HP OpenVMS 8.3 or later IA64 | HP C++ V7.3-023 or later required on OpenVMS IA64 |
Windows 2000 |
Microsoft Visual C++ Ver. 6 and Microsoft .Net compiler version. Works on VC .NET 2003 v7.1). NOTE: Visual C++ Ver. 6 no longer being regularly tested. |
Windows 2003 | Microsoft Visual C++ Ver. 6 and Microsoft .Net compiler Version 7.1. Note: Visual C++ Ver. 6 no longer being regular tested. |
OpenSolaris 11 (Nevada) Community Edition (Sparc and IX86) | CC Compiler Sun Studio 5.11 |
Platform patches
The following is a list known of platform patches Pegasus requires.
RHAS 2.1 needs the update to fix Red Hat Bugzilla 98815.
RHEL 4.4 multithreading bug in getpwuid-r could cause a CIM Server failure (Bugzilla 6232). This is fixed in RHEL 4.5
Red Hat and
SUSE Linux multiple versions - multithreaded client
intermittently fails connecting to IPv6 (Pegasus Bugzilla
6586) (Red Hat bug 248052)
Further information regarding Pegasus support on IBM platforms can be found at: http://publib.boulder.ibm.com/infocenter/eserver/v1r1/en_US/index.htm?info/icmain.htm
Further information regarding Pegasus support on HP platforms can be found at: http://www.hp.com/go/wbem.
The OpenPegasus Bugzilla database documents any defects found in Pegasus and is available through the following link: OpenPegasus bugzilla database. Effective with the start of the OpenPegasus 2.6 work, all changes to the CVS tree are documented through bugs. Bugs reports are filed not only for bugs and their corresponding fixes but also as part of the process of committing new code representing the work on PEPs done for OpenPegasus 2.6 and all subsequent versions. Therefore, a search of the OpenPegasus Bugzilla base for bugs with the tag for a particular version (ex. 2.6.0_APPROVED, 2.6.1_APPROVED, 2.7.0_APPROVED, etc) will yield all changes to the Pegasus CVS tree for that OpenPegasus release.
- Changes between the 2.12.0 release
and 2.12.1 revision are defined in bugs tagged
(2.12.1.APPROVED). The complete list of 12 bugs is 2.12.1_APPROVED
bugs
- Changes that were made in the minor
release 2.12 are in bugs Tagged 2.12.0_APPROVED. The link
is
Pegasus 2.12.0_APPROVED bug list.
The OpenPegasus project is controlled largely through the CVS repository and a set of documents (PEPs) that serve both as the definition and review mechanism for new and modified Pegasus functionality and for the definition and documentation of releases.
The following documentation defines the characteristics of this Pegasus release. The documents are available in the OpenPegasus CVS repository.The following documentation is available for the this Pegasus release:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.