summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumpf <kumpf>2008-10-07 19:05:56 +0000
committerkumpf <kumpf>2008-10-07 19:05:56 +0000
commit03a0af477789c78a813660ea227d6a88559b05e5 (patch)
treea17016b29d051e026d3df35b531636327ab8004e
parentf49256d9f5d5402fcdfe60fac6f59a45ffacac90 (diff)
downloadtog-pegasus-TASK-PEP311_WSMan-branch.zip
tog-pegasus-TASK-PEP311_WSMan-branch.tar.gz
tog-pegasus-TASK-PEP311_WSMan-branch.tar.xz
TITLE: WS-Management Support in CIM Server DESCRIPTION: Merge with the latest changes.
-rw-r--r--doc/BuildAndReleaseOptions.html3236
-rw-r--r--src/Pegasus/Server/CIMOperationRequestDispatcher.cpp1094
-rw-r--r--src/Pegasus/Server/CIMServer.cpp511
-rw-r--r--src/Pegasus/WsmServer/CimToWsmResponseMapper.cpp881
-rw-r--r--src/Pegasus/msg/Server/pegasusServer_en.txt997
5 files changed, 5575 insertions, 1144 deletions
diff --git a/doc/BuildAndReleaseOptions.html b/doc/BuildAndReleaseOptions.html
new file mode 100644
index 0000000..77fca01
--- /dev/null
+++ b/doc/BuildAndReleaseOptions.html
@@ -0,0 +1,3236 @@
+<html>
+<head>
+ <link rel="stylesheet" href=
+ "http://www.opengroup.org/stylesheets/info1.css">
+</head>
+
+<body>
+<hr>
+
+<p align="center">
+ <b><font size="4">Recommended OpenPegasus Build and Configuration Options for Selected Platforms</font></b>
+</p>
+
+<hr>
+
+<p><b>Abstract: </b>
+ This document defines a set of recommended options for building,
+ testing and running OpenPegasus on a selected set of
+ platforms. In this version of the document, platform-specific configuration
+ information have been documented for the platforms described in the
+ &quot;Documented Platforms&quot; section of this document.
+</p>
+
+<p><b>Note 1: </b>
+ The recommendations defined in this document are not intended to document
+ the feature set included in any vendor's OpenPegasus-based product.
+ Rather, the purpose of this document is to provide input to vendors when
+ making product decisions.<BR>
+</p>
+
+<hr>
+
+<h2>Definition of the Problem</h2>
+
+<p>OpenPegasus supports a large number of build and runtime options.
+Determining which options to use can be challenging. The purpose of this
+document is to simplify the build, testing and administration of OpenPegasus
+by providing a recommended, tested set of options.</p>
+
+<h2>Documented Platforms</h2>
+
+<p>Support for the OpenPegasus build and runtime options described in
+this document varies by platform.&nbsp;&nbsp; In this version of the
+document, platform-specific configuration information has been included
+for the platforms described in the following table.&nbsp; For all other
+platforms, please consult the OpenPegasus Platform Advocate for
+additional information.</p>
+
+<ul>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=20%>
+ <tr>
+ <th bgcolor="#CAE6CA" align=center>Platform</th>
+ <th bgcolor="#CAE6CA" align=center>Status</th>
+ </tr>
+ <tr align="left">
+ <td>HPUX_IA64_ACC</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>HPUX_PARISC_ACC</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_IA64_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_IX86_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_PPC64_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_PPC_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_XSCALE_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_ZSERIES64_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>LINUX_ZSERIES_GNU</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>VMS_ALPHA_DECCXX</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr align="left">
+ <td>VMS_IA64_DECCXX</td>
+ <td>&nbsp;</td>
+ </tr>
+ </table>
+</ul>
+
+<h2>Proposed Solution</h2>
+
+<h3>Security Considerations</h3>
+<ol>
+ <li>
+ To avoid introducing security vulnerabilities, vendors must never
+ ship providers incompatible with the security assumptions used in
+ their deployment.
+ For example, providers designed for a single-user deployment that
+ don't perform authorization must not be shipped with a CIM Server
+ that expects the providers to perform authorization. Note that
+ this authorization burden is considerably lighter if the provider
+ is registered as 'run as requestor' and if the CIM Server enables
+ that feature. See <a href=
+ "http://www.openpegasus.org/pp/uploads/40/7197/SecurityGuidePEP.htm">
+ PEP#223 - Security Coding Guidelines</a> for additional
+ details.
+ </li>
+ <li>
+ Vendors should ensure they configure the CIM Server consistently
+ with the security requirements of their deployment.
+ </li>
+</ol>
+
+<h3>Terminology Notes</h3>
+<ol>
+ <li>
+ In this document, the term &quot;Not Set&quot; is used to indicate
+ that the a value for the environment variable has not been defined.
+ &quot;Set&quot; is used to indicate that the value must be defined,
+ but the actual value of the variable is not checked.
+ </li>
+</ol>
+
+<h3>General Notes</h3>
+
+<ol>
+ <li>
+ Not all functionality described in this document has achieved
+ &quot;Green&quot;status, please refer to the
+ <a href="http://www.openpegasus.org/page.tpl?CALLER=index.tpl&ggid=799">
+ OpenPegasus Project Feature Status </a>page for information on
+ the maturity level of OpenPegasus features.
+ </li>
+ <li>
+ To encourage testing of new functionality, recommendations for the
+ Development Build may include features that are not yet recommended
+ for Release Builds.
+ </li>
+</ol>
+
+<h3>Environment Variable Settings for <u>Building</u> OpenPegasus</h3>
+
+<h4>Definitions</h4>
+
+<h5>ICU_INSTALL</h5>
+<ul>
+ <b>Description:&nbsp;</b>When set, points to the directory containing
+ the <a href="%20http:/oss.software.ibm.com/icu"> ICU(International
+ Components for Unicode)</a> installation. The 'include'
+ subdirectory is used to locate ICU header files at build time. The
+ 'lib' subdirectory is used to locate ICU libraries at link
+ time.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No.&nbsp; However, if PEGASUS_HAS_ICU is
+ set and ICU_INSTALL is not defined, the ICU libraries and header
+ files are expected to be installed in directories (e.g.,/usr/lib,
+ /usr/include)&nbsp; that are searched by default.<br>
+ <b>Considerations:&nbsp;</b>This environment variable is only used
+ if PEGASUS_HAS_MESSAGES is set. Refer to PEGASUS_HAS_MESSAGES for
+ additional details.
+</ul>
+
+<h5>ICU_NO_UPPERCASE_ROOT</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, the messages in the root resource
+ bundle will NOT be capitalized. By default, the root resource
+ bundle is capitalized.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This environment variable is only used
+ if PEGASUS_HAS_MESSAGES is set. Refer to PEGASUS_HAS_MESSAGES for
+ additional details.
+</ul>
+
+<h5>ICU_ROOT_BUNDLE_LANG</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, specifies the language
+ to be used to generate the root resource bundle. The
+ default value for ICU_ROOT_BUNDLE_LANG is _en.<br>
+ <b>Default Value:&nbsp;</b>_en<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>No
+ Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>No Recommendation<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This environment variable is
+ only used if PEGASUS_HAS_MESSAGES is set. Refer to
+ PEGASUS_HAS_MESSAGES for additional details.<br>
+ If set, resource bundles for the designated language must
+ exist for the following files:
+ <ul>
+ <li>pegasus/src/Pegasus/msg/Server/pegasusServer_en.txt</li>
+ <li>pegasus/src/Pegasus/msg/Listener/pegasusListener_en.txt</li>
+ </ul>
+</ul>
+
+
+<h5>OPENSSL_BIN</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the
+ OpenSSL <i>binary</i> directory. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. By default, the openssl binary is
+ expected to be installed in a directory that is searched by default
+ (e.g., /usr/bin). For platforms where this isn't true, the
+ OPENSSL_BIN environment variable may be used to define an
+ alternative path. This environment variable is only used if
+ PEGASUS_HAS_SSL is set.
+</ul>
+
+<h5>OPENSSL_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the OpenSSL
+ SDK directory. This directory must contain the OpenSSL
+ <i>include</i> directory, $(OPENSSL_HOME)/include, and the OpenSSL
+ <i>library</i> directory, $(OPENSSL_HOME)/lib.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>Yes for Windows, if PEGASUS_HAS_SSL
+ is set. No for all other platforms. For AIX, the default
+ value for OPENSSL_HOME is /usr/linux.&nbsp; For all other
+ platforms, the OpenSSL include files and libraries are expected
+ to be installed in directories that are searched by default (e.g.,
+ /usr/bin, /usr/lib(64), and /usr/include).
+ For platforms where the default value is not correct, the
+ OPENSSL_HOME environment variable may be used to define an
+ alternative path (i.e., $(OPENSSL_HOME)/lib and
+ $(OPENSSL_HOME)/include). This environment variable
+ is only used if PEGASUS_HAS_SSL is set.
+</ul>
+
+<h5>PEGASUS_ALLOW_ABSOLUTEPATH_IN_PROVIDERMODULE</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set to true, a version of OpenPegasus
+ will be built that allows an absolute path to be specified as the
+ value of the Location property of PG_ProviderModule class.&nbsp;
+ Otherwise it does not allow the absolute path to be specified.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<p>
+ <b>Considerations:&nbsp;</b>To avoid introducing security
+ vulnerabilities, vendors should analyze their deployment
+ environments to understand the security implications of allowing
+ providers to be loaded from a dynamically changing set of
+ directories.<br>
+</ul>
+
+<h5>PEGASUS_CCOVER</h5>
+<ul>
+ <b>Description:&nbsp;</b>This flag is currently only supported on
+ HP-UX. It is enabled on the Nightly Build &amp; Test system,
+ HP-UX_11iv3_Integrity_C-Cover.&nbsp; This system is
+ used to generate the nightly BullseyeCoverage code coverage
+ metrics.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations: </b>This flag is only supported on HP-UX to enable
+ CCOVER for the NB&T system.<br>
+</ul>
+
+<h5>PEGASUS_CIM_SCHEMA</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is used internally by the
+ OpenPegasus development team when upgrading the OpenPegasus build
+ environment to a new version of the CIM Schema.<br>
+ <b>Default Value:&nbsp;</b>CIM217<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No <br>
+ <b>Considerations:</b> Additional code changes may be required when
+ upgrading or downgrading the CIM Schema version.</p>
+</ul>
+
+<h5>PEGASUS_CLASS_CACHE_SIZE</h5>
+<ul>
+ <b>Description:&nbsp;</b>This environment variable gives the size of
+ the class cache used by CIM repository. This variable defines the
+ size of the class cache (i.e., the maximum number of classes that
+ may be included). If this variable is set to 0, class caching is
+ disabled.<br>
+ <b>Default Value:&nbsp;</b>8<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>8<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>8<br>
+ <b>Required:&nbsp;</b>No </p>
+</ul>
+
+<h5>PEGASUS_DEBUG</h5>
+<ul>
+ <b>Description:&nbsp;</b>Builds a debug version of OpenPegasus.
+ Concurrently, this flag controls a) enabling compiler specific
+ debug flags and b) the inclusion of debug-specific
+ functionality.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_DEFAULT_USERCTXT_REQUESTOR</h5>
+<ul>
+ <b>Description:&nbsp;</b> If set to true, the <i>Requestor</i> user
+ context is used for providers that do not specify a UserContext
+ value in their registration. Otherwise, the <i>Privileged</i> user
+ context value is used by default. <br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>false<br>
+ <b>Required:&nbsp;</b>No
+ <b>Considerations:</b> Use of the <i>Requestor</i> default has
+ improved provider security characteristics. However, some providers
+ may not operate correctly when run in the <i>Requestor</i> user
+ context and setting this value to true may cause those providers to
+ fail.&nbsp; Providers that can run in the <i>Requestor</i>
+ user context are encouraged to explicitly set the UserContext value
+ in their registration rather than rely on the default setting
+ default by this variable. Please refer to
+ SecurityGuidelinesForDevelopers.html. PEP 223 for a discussion
+ of the rationale/advantages of running providers in the
+ <i>Requestor </i> user context. <b>Note:</b> This build
+ variable is not meaningful if the Provider User Context feature is
+ disabled with the PEGASUS_DISABLE_PROV_USERCTXT
+ setting.&nbsp;
+</ul>
+
+
+<h5>PEGASUS_DEFAULT_ENABLE_OOP</h5>
+<ul>
+ <b>Description:&nbsp;</b>When this variable is set to false, by
+ default, Providers are run in the cimserver process
+ (forceProviderProcesses=false). If this value is set true,
+ Providers are run out-of-process by default.<br>
+ <b>Default Value:&nbsp;</b>true for HP-UX and Linux, false for
+ other platforms<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>true (HP-UX,
+ Linux)<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true (HP-UX,
+ Linux)<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations: </b>This environment variable can be used to
+ change the &quot;hard-coded&quot; default setting for the
+ forceProviderProcesses configuration value.&nbsp;
+ Refer to the definition of <b>forceProviderProcesses</b> for
+ additional information.
+</ul>
+
+<h5>PEGASUS_DEST_LIB_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of OpenPegasus
+ shared libraries.<br>
+ <b>Default Value:&nbsp;</b>$(PEGASUS_HOME)/lib<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ $(PEGASUS_HOME)/lib<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation <br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This variable is NOT is used to define
+ the location of the Provider library directories.&nbsp;
+ Please refer to the providerDir configuration option for details
+ on defining the directories for the Provider libraries.
+</ul>
+
+
+<h5>PEGASUS_DISABLE_DEPRECATED_INTERFACES</h5>
+<ul>
+ <b>Description:&nbsp;</b>Removes deprecated symbol definitions
+ from OpenPegasus runtime libraries.<br>
+ <b>Default Value:</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Development Build):</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Release Build): </b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If this option is set, the resulting
+ OpenPegasus libraries will not be binary compatible with
+ clients and providers built using interface definitions from
+ prior releases. This option may be used to slightly reduce binary
+ footprint in an environment where compatibility is not required.<br>
+</ul>
+
+<h5>PEGASUS_DISABLE_INSTANCE_QUALIFIERS</h5>
+<ul>
+ <b>Description:&nbsp;</b>In the CIM Infrastructure Specification,
+ version 2.3, the DMTF clarified that instance-level qualifiers are
+ not allowed.&nbsp; In Version 1.2 of the Specification CIM
+ Operations over HTTP, use of the IncludeQualifiers parameter has
+ been DEPRECATED.<br>
+ <b>Default Value:</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Development Build):</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Release Build): </b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Existing CIM Clients may depend on
+ qualifiers being returned in the response. In this case, the
+ PEGASUS_DISABLE_INSTANCE_QUALIFIERS should not be set.&nbsp;
+ If this flag is set, the value of the IncludeQualifiers parameter
+ passed on the GetInstance and EnumerateInstance operations is
+ ignored and qualifiers are not returned.&nbsp;
+ Disabling the return of qualifiers as part of a CIM Instance will
+ improve performance.<br>
+</ul>
+
+<h5>PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET</h5>
+<ul>
+ <b>Description:&nbsp;</b>Disables support for local (same-system)
+ connections over a Unix domain socket. If this option is NOT set,
+ the CIM Server is built to allow connections to be established
+ using a domain socket rather than a TCP port.<br>
+ <b>Default Value:&nbsp;</b>Not Set&nbsp; <br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>(1) In high-threat environments, a
+ customer may want to disable all ports or reduce the number of
+ exposed network ports. Supporting a local connection mechanism
+ using Unix domain socket allows the CIM Server to continue to
+ receive and process requests from local CIM Clients. (2)
+ Enabling this option may result in lose of functionality when
+ sslClientVerificationMode = required. (3)The
+ &quot;LOCAL_DOMAIN_SOCKET&quot; functionality has not been
+ implemented for&nbsp; Windows or OpenVMS.&nbsp; Therefore, by
+ default, this option is &quot;Set&quot; for Windows and OpenVMS
+ platforms.
+</ul>
+
+<h5>PEGASUS_DISABLE_PERFINST</h5>
+<ul>
+ <b>Description:&nbsp;</b>Builds a version of OpenPegasus that
+ disables support for gathering performance data.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build): </b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>The CIM_ObjectManager.GatherStatisticalData
+ property is used to control statistic gathering.&nbsp; Once enabled,
+ statistical data can be viewed by retrieving instances of the
+ CIM_StatisticalData class. Support for gathering performance
+ data requires PEGASUS_ENABLE_INTEROP_PROVIDER to be enabled. If
+ PEGASUS_ENABLE_INTEROP_PROVIDER is explicitly disabled (i.e., set
+ to false),&nbsp; then PEGASUS_DISABLE_PERFINST must be set to
+ true.&nbsp; If PEGASUS_DISABLE_PERFINST is not defined or set to
+ false and PEGASUS_ENABLE_INTEROP_PROVIDER is not set,
+ PEGASUS_ENABLE_INTEROP_PROVIDER will be automatically enabled.
+</ul>
+
+<h5>PEGASUS_DISABLE_PRIVILEGED_TESTS</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is used only in the development
+ environment to restrict the level of testing performed by default.
+ If set, tests that require the CIM Server to run in a privileged
+ mode will not be run.&nbsp; Setting this variable allows
+ developers, without privileged access, to successfully run a
+ subset of the OpenPegasus test suit.&nbsp; This variable does
+ not affect CIM Server functionality.&nbsp; It merely controls
+ the level of testing.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Enabling this variable will significantly
+ reduce the testing of security related features (e.g.,
+ authentication and authorization) and can affect testing in other
+ areas.
+</ul>
+
+<h5>PEGASUS_DISABLE_PROV_USERCTXT</h5>
+<ul>
+ <b>Description:&nbsp;</b>Builds a version of OpenPegasus that
+ disables supports for the Provider User Context feature.&nbsp;
+ This feature allows a Provider to choose the user context in
+ which it is invoked, including the ability to run in the context of
+ the user requesting an operation.<br>
+ <b>Default Value:&nbsp;</b>Set for Windows and OpenVMS, Not Set
+ for all other platforms<br>
+ <b>Recommended Value (Development Build): </b>Set for Windows and
+ OpenVMS, Not Set for all other platforms<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set for Windows and
+ OpenVMS, Not Set for all other platforms<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>The Provider User Context feature may be
+ disabled by compiling with the PEGASUS_DISABLE_PROV_USERCTXT flag
+ defined. In this case, the Provider Registration Manager rejects
+ provider registration requests that specify a UserContext property
+ value. The user context in which providers run is then unchanged by
+ this enhancement. Some platforms, such as OS/400 and z/OS may
+ define the PEGASUS_DISABLE_PROV_USERCTXT as part of the platform
+ configuration, since these platforms already set the provider user
+ context on a per-thread basis.&nbsp; When the Provider User Context
+ feature is enabled, support for each of the User Context types may
+ be disabled individually. Provider registration fails when an
+ unsupported UserContext value is specified. Please refer to
+ SecurityGuidelinesForDevelopers.html / PEP 223 for a discussion of
+ the rationale/advantages of user context providers to many
+ platforms.<br>
+</ul>
+
+<h5>PEGASUS_EMANATE_INCLUDE_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the EMANATE
+ <i>include</i> directory. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. By default, the EMANATE include files
+ are expected to be installed in directories that are searched by
+ default (e.g., /usr/include). For platforms where this isn't true,
+ the PEGASUS_EMANATE_INCLUDE_DIR environment variable may be used to
+ define an alternative path. This environment variable is only used
+ if PEGASUS_USE_EMANATE is set.<br>
+ <b>Considerations: </b>Refer to the description of PEGASUS_USE_EMANATE
+ for additional details.<br>
+</ul>
+
+<h5>PEGASUS_EMANATE_LIB_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the EMANATE
+ <i>lib</i> directory. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. By default, the EMANATE libraries are
+ expected to be installed in directories that are searched by
+ default (e.g., /usr/lib, /usr/lib64). For platforms where this
+ isn't true, the PEGASUS_EMANATE_LIB_DIR environment variable may
+ be used to define an alternative path. This environment variable
+ is only used if PEGASUS_USE_EMANATE is set.<br>
+ <b>Considerations: </b>Refer to the description of PEGASUS_USE_EMANATE
+ for additional details.<br>
+</ul>
+
+<h5>PEGASUS_ENABLE_AUDIT_LOGGER</h5>
+<ul>
+ <b>Description:&nbsp;</b>When this variable is set to false, support
+ for audit logging will NOT be built into OpenPegasus. If this
+ variable is set to true, or not set, support for audit logging
+ will be included in the build. All other values are invalid.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true<br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+
+<h5>PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set to true, a version of OpenPegasus
+ that supports CMPI providers and their dependent components is
+ built.&nbsp; If this variable is not set or set to false, support
+ for CMPI providers will not be included. <br>
+ <b>Default Value:&nbsp;</b>true for Linux and OpenVMS, false for
+ other platforms<br>
+ <b>Recommended Value (Development Build): </b>true (Linux
+ Platform Only)<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true (Linux Platform
+ Only)<br>
+ <b>Required:&nbsp;</b>No</p>
+</ul>
+
+<h5>PEGASUS_ENABLE_COMPRESSED_REPOSITORY</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set the Repository Compression logic is
+ built and enabled and compressed and non compressed repositories
+ are supported. If not set then compressed repositories are not
+ supported.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<p>
+ <b>Considerations:&nbsp;</b>See
+ pegasus/readme.compressed_repository</p>
+</ul>
+
+
+<h5>PEGASUS_ENABLE_CQL</h5>
+<ul>
+ <b>Description:&nbsp;</b>When this variable is set to false, support
+ for Indication Subscription filters that have CQL as the language
+ is disabled. It does not remove CQL from the build.<br>
+ <b>Default Value:</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Development Build):</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Release Build):</b>&nbsp;false<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>The DMTF CIM Query Language
+ Specification is Preliminary and subject to backward incompatible
+ changes.
+</ul>
+
+<h5>PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT</h5>
+<ul>
+ <b>Description: </b>When this variable is set to true, support the
+ DMTF Indications Profile (DSP1054) is included in OpenPegasus.&nbsp;
+ If this variable is not set or set to false, support for the DMTF
+ Indications Profile will not be included.<br>
+ <b>Default Value:</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Development Build):</b>&nbsp;Not Set<br>
+ <b>Recommended Value (Release Build):</b>&nbsp;Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations: </b>The implementation of this feature is
+ based on a preliminary version of the DMTF Indications Profile,
+ DSP1053, and subject to change.&nbsp; If this variable is enabled,
+ two DMTF experimental class definitions, CIM_IndicationService and
+ CIM_IndicationServiceCapabilities, will be added to the
+ root/PG_InterOp namespace. Experimental class definitions are
+ subject to change.&nbsp;
+ PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT requires
+ PEGASUS_ENABLE_INTEROP_PROVIDER to be enabled.
+ If PEGASUS_ENABLE_INTEROP_PROVIDER is not set, setting
+ PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT to true, will also
+ enable PEGASUS_ENABLE_INTEROP_PROVIDER. If
+ PEGASUS_ENABLE_INTEROP_PROVIDER is explicitly disabled (i.e., set
+ to false), a build error will be generated.
+</ul>
+
+<h5>PEGASUS_ENABLE_EXECQUERY</h5>
+<ul>
+ <b>Description:&nbsp;</b>When this environment variable is set,
+ processing of ExecQuery operations is enabled. When not set,
+ ExecQuery operation requests get a NotSupported response. (Note:
+ The PEGASUS_ENABLE_EXECQUERY environment variable controls
+ the definition of the PEGASUS_DISABLE_EXECQUERY compile macro.) <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_ENABLE_EMAIL_HANDLER</h5>
+<ul>
+ <b>Description:&nbsp;</b> When this environment variable is set, an
+ E-Mail Indication Handler is built as part of the OpenPegasus
+ build.&nbsp; The E-Mail Indication Handler can be used to
+ delivered CIM Indications to a designated e-mail address.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If PEGASUS_ENABLE_EMAIL_HANDLER is
+ not set when OpenPegasus is built, a request to create an Email
+ Indication Handler instance will be rejected will the error
+ CIM_ERR_NOT_SUPPORTED.
+</ul>
+
+<h5>PEGASUS_ENABLE_GCOV</h5>
+<ul>
+ <b>Description:&nbsp;</b>GCOV,
+ <a href="http://gcc.gnu.org/onlinedocs/gcc/index.html#toc_Gcov">
+ http://gcc.gnu.org/onlinedocs/gcc/index.html#toc_Gcov</a>, is a
+ code coverage utility.&nbsp; If PEGASUS_ENABLE_GCOV is set,&nbsp;
+ GCC will instrument the code to support analysis by GCOV.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br><b>Considerations:&nbsp;</b>
+ This flag is currently only supported with GCC on Linux.
+ <ul>
+ Note: LCOV, <a href=
+ "http://ltp.sourceforge.net/coverage/lcov.php">
+ http://ltp.sourceforge.net/coverage/lcov.php</a>, is a
+ graphical front-end extension for GCOV. It collects GCOV data
+ for multiple source files and creates HTML pages with coverage
+ information. You can use the following steps to use LCOV to
+ analyze OpenPegasus GCOV data.
+ <ol>
+ <li>Set PEGASUS_ENABLE_GCOV = true.</li>
+ <li>Build and test OpenPegasus (e.g.,
+ <i>make -f pegasus/TestMakefile&nbsp; build
+ alltests</i>).</li>
+ <li>For each source directory,
+ <ul>
+ <li>copy the .gcda and .gcno files from the object
+ directory to the source directory (e.g.,
+ <i>cp build/obj/Pegasus/Common/*.gcda
+ src/Pegasus/Common/</i>);</li>
+ <li>execute the <b>lcov</b> command
+ (e.g.,
+ <i>lcov --directory src/Pegasus/Common/ --capture
+ --output-file result.info</i>) to build the result.info
+ file; and finally,</li>
+ <li>use the <b>genhtml</b> command to generate the .html
+ output (e.g., <i>genhtml result.info</i>).&nbsp; The
+ top .html file is named index.html.</li>
+ </ul>
+ </ol>
+ </ul>
+</ul>
+
+<h5>PEGASUS_ENABLE_INDICATION_COUNT</h5>
+<ul>
+ <b>Description: </b>If true, the CIM
+ Server will be built to count the number of CIM indications
+ generated by providers and matched with subscriptions. If false
+ or not set, indication statistic support will not be included.
+ <b>Default Value: </b>true<br>
+ <b>Recommended Value (Development Build): </b>true <br>
+ <b>Recommended Value (Release Build): </b>true <br>
+ <b>Required: </b>No <br>
+ <b>Considerations: </b>The number of CIM indications generated by
+ providers and matched with subscriptions is stored in hash tables
+ which causes memory usage to increase by 4 bytes for each
+ active subscription and by about 400 bytes for each active
+ indication provider.<br>
+</ul>
+
+<h5>PEGASUS_ENABLE_INTEROP_PROVIDER</h5>
+<ul>
+ <b>Description: </b>If true, the OpenPegasus Interop Provider
+ will be build. If false or not set, the OpenPegasus Interop
+ Provider will not be built.<br>
+ <b>Default Value: </b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build): </b>false<br>
+ <b>Required: </b>No <br>
+ <b>Considerations: </b>&nbsp;A number of features controlled by
+ OpenPegasus build options are dependent on the Interop
+ Provider.&nbsp; Please refer to PEGASUS_ENABLE_SLP,
+ PEGASUS_DISABLE_PERFINST, and
+ PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT for additional
+ details.<br>
+</ul>
+
+<h5>PEGASUS_ENABLE_IPV6</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable can be used to specify
+ whether IPv6 support should be included in OpenPegasus.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Value (Development Build): </b>true<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>When this variable is set to
+ 'false', support for IPv6 socket APIs and structures is disabled,
+ and the CIM Server will not accept connections to or from IPv6
+ network interfaces. When this variable is set to 'true', the
+ newer IPv6 socket APIs and structures will be included when
+ OpenPegasus is built, so they must be supported on the build
+ platform. However, if IPv6 is not supported on the platform on
+ which an IPv6-enabled version of OpenPegasus is run, then the IPv6
+ feature will be disabled at run-time and only IPv4 connections
+ will be supported.
+</ul>
+
+<h5>PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, a version of OpenPegasus that
+ supports JMPI providers and their dependent components is built.
+ If false or not set, support for JMPI Providers is not included
+ in OpenPegasus.&nbsp; All other values are invalid.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>false<br>
+ <b>Required:&nbsp;</b>No</p>
+</ul>
+
+<h5>PEGASUS_ENABLE_OBJECT_NORMALIZATION</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, builds in support so that objects
+ returned from provider instance operations can be validated.
+ The enableNormalization must also be set to 'true' (default)<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No&nbsp;&nbsp;&nbsp; <br>
+ <b>Considerations: </b>If PEGASUS_ENABLE_OBJECT_NORMALIZATION is
+ set, two new configuration options are defined: enableNormalization
+ and excludeModulesFromNormalization.
+</ul>
+
+<h5>PEGASUS_ENABLE_PRIVILEGE_SEPARATION</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, a version of OpenPegasus that
+ enables the Privilege Separation feature is built. This feature
+ allows the CIM Server to run in a non-privileged user context and
+ use a small executor process to perform privileged operations. If
+ false or not set, the Privilege Separate feature will not be
+ included.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>true (HP-UX,
+ Linux)<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true (HP-UX,
+ Linux)<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b> The Privilege Separation feature is
+ only supported on HP-UX and Linux platforms. The 'cimsrvr' user
+ must be defined on the system. If the umask setting in the
+ environment is not 0, PEGASUS_TMP must be set to a directory that
+ is writable by the 'cimsrvr' user for the tests to run
+ successfully.
+</ul>
+
+<h5>PEGASUS_ENABLE_PROTOCOL_WSMAN</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, a version of OpenPegasus is
+ built that accepts and processes WS-Management requests. This
+ feature is initially limited to WS-Transfer and WS-Enumeration
+ operations. If false or not set, WS-Management support is not
+ built or included in any way.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>false<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b> The WS-Management standards are not
+ mature, and interoperability problems may arise. The WS-Management
+ functionality may change in incompatible ways in subsequent
+ releases. Also note the known limitations specified in PEP 311.<br>
+</ul>
+
+<h5>PEGASUS_ENABLE_REMOTE_CMPI</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, a version of OpenPegasus that
+ support Remote CMPI providers and their dependent components
+ is built.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No</p>
+</ul>
+
+<h5>PEGASUS_ENABLE_SLP</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable controls of the inclusion
+ of SLP functionality in the OpenPegasus build.&nbsp;When this
+ environment variable is set to 'true', SLP functionality will be
+ included as part of the OpenPegasus build.&nbsp; If
+ this variable is set to 'false' or not set, the SLP functionality
+ will not be included.&nbsp; All other values are considered
+ invalid and will result in a build error
+ (e.g., &quot;PEGASUS_ENABLE_SLP ($(PEGASUS_ENABLE_SLP)) invalid,
+ must be true or false&quot;).<br>
+ <b>Default Value: </b>'true' for Windows; 'false' for all other
+ Platforms<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>'true' for
+ Windows; 'false' for all other Platforms<br>
+ <b>Recommended Value (Release Build):&nbsp;</b><br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>PEGASUS_ENABLE_SLP requires
+ PEGASUS_ENABLE_INTEROP_PROVIDER to be enabled. If
+ PEGASUS_ENABLE_INTEROP_PROVIDER is not set, setting
+ PEGASUS_ENABLE_SLP to true, will also enable
+ PEGASUS_ENABLE_INTEROP_PROVIDER. If
+ PEGASUS_ENABLE_INTEROP_PROVIDER is explicitly disabled
+ (i.e., set to false), a build error will be generated.<br>
+</ul>
+
+
+<h5>PEGASUS_ENABLE_SORTED_DIFF</h5>
+<ul>
+ <b>Description:&nbsp;</b>This controls if the DIFFSORT function
+ is used rather than a simple DIFF of the test results files
+ to the static results file. Set to 'true' enables the sorted
+ diffs of results to static results files. Otherwise results
+ in regular diffs of results to static results files.
+ See OpenPegasus bug 2283 for background information concerning
+ this config variable. <br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true<br>
+ <b>Required:&nbsp;</b>No<p>&nbsp;</p>
+</ul>
+
+<h5>PEGASUS_ENABLE_SYSTEM_LOG_HANDER</h5>
+<ul>
+ <b>Description:&nbsp;</b>When this environment variable is set, a
+ SysLog Indication Handler is built as part of the OpenPegasus
+ build.&nbsp; The SysLog Indication Handler can be used to
+ delivered CIM Indications to the system log file.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If PEGASUS_ENABLE_SYSTEM_LOG_HANDLER
+ is not set when OpenPegasus is built, a request to create a SysLog
+ Indication Handler instance will be rejected with the error
+ CIM_ERR_NOT_SUPPORTED.<br>
+</ul>
+
+<h5>PEGASUS_ENABLE_SSLV2</h5>
+<ul>
+ <b>Description:&nbsp;</b>By default, support for the SSLV2 protocol
+ is disabled in OpenPegasus. The option can be used to build a
+ version of OpenPegasus that supports SSLV2. This variable affects
+ how SSL contexts are constructed for both the CIM Server and CIM
+ Clients.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:</b> Unless SSLV2 is required for backward
+ compatibility, enabling this protocol is not recommended (SSLV3
+ or later is preferred).
+ </ul>
+
+<h5>PEGASUS_ENABLE_USERGROUP_AUTHORIZATION</h5>
+<ul>
+ <b>Description:&nbsp;</b>Builds a version of OpenPegasus that
+ allows an administrator to restrict access to CIM operations
+ to members of a designated set of groups.&nbsp; Refer to the
+ <b>authorizedUserGroups</b>configuration option for additional
+ details.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+<h5>PEGASUS_EXTRA_C_FLAGS</h5>
+<ul>
+ <b>Description:&nbsp; </b>This environment variable allows a
+ developer to specify an additional set of flags to be included
+ on&nbsp; the C compile command line.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>No Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_EXTRA_CXX_FLAGS</h5>
+<ul>
+ <b>Description:&nbsp; </b>This environment variable allows a
+ developer to specify an additional set of flags to be included
+ on the C++ compile command line.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_EXTRA_LIBRARY_LINK_FLAGS</h5>
+<ul>
+ <b>Description:&nbsp; </b>This environment variable allows a
+ developer to specify an additional set of flags to include on
+ the link command line used to build a library.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_EXTRA_LINK_FLAGS</h5>
+<ul>
+ <b>Description:&nbsp; </b>This environment variable allows a
+ developer to specify an additional set of flags to be included
+ on the link command line.&nbsp; These flags will be included on
+ both library and program executable link command lines.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+ <b>Considerations: </b>Refer to PEGASUS_EXTRA_LIBRARY_LINK_FLAGS and
+ PEGASUS_EXTRA_PROGRAM_FLAGS to add flags specific to either a
+ library or program link command line.<br>
+</ul>
+
+<h5>PEGASUS_EXTRA_PROGRAM_LINK_FLAGS</h5>
+<ul>
+ <b>Description:&nbsp; </b>This environment variable allows a
+ developer to specify an additional set of flags to include on
+ the link command line used to build an executable program.<br>
+ <b>Recommended Value (Development Build): </b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_HAS_MESSAGES</h5>
+<ul>
+ <b>Description:&nbsp;</b>When set (to anything) during the build,
+ OpenPegasus compiles with localization support. The
+ ICU (International Components for Unicode) variables,
+ ICU_ROOT and ICU_INSTALL, indicate that the
+ localization support is based on ICU. Only ICU is supported
+ at this time.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If the PEGASUS_HAS_MESSAGES is not
+ set, OpenPegasus is built without localization support. This
+ means that all messages sent by the CIM Server and the CLIs are in
+ English. ICU is an open source project at
+ <a href="http://oss.software.ibm.com/icu">
+ http://oss.software.ibm.com/icu</a>.
+ Only English translations are included with the OpenPegasus
+ distribution. The OpenPegasus distribution does not provide
+ translated messages. But, enabling for ICU would allow vendor to
+ provide the translations. Refer to the OpenPegasus Release README
+ for additional information regarding the use of ICU. Although, in
+ OpenPegasus 2.3.2, experience with localization support
+ has been limited to a select set of platforms, wider platform
+ adoption of this technology is planned for 2.5.<br>
+</ul>
+
+<h5>PEGASUS_HAS_SSL</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, a version of OpenPegasus that
+ supports SSL (i.e., https) is built.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Support for SSL in OpenPegasus is
+ dependent on the OpenSSL software developed by the
+ <a href="http://www.openssl.org/">
+ OpenSSL Project (http://www.openssl.org/)</a>.
+
+ If the PEGASUS_HAS_SSL variable is set, the variable OPENSSL_HOME
+ must also be defined. The OPENSSL_HOME variable is used, by the
+ OpenPegasus build, to determine the location of the OpenSSL
+ include files, libraries and binaries.
+</ul>
+
+<h5>PEGASUS_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the
+ OpenPegasus working directory. The OpenPegasus
+ build will use this directory as the default location
+ for files generated during the build (e.g., binaries,
+ libraries, objects).<br>
+ <b>Default Value:&nbsp;</b>None<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b>The error &quot;PEGASUS_HOME
+ environment variable undefined&quot; is returned if the
+ PEGASUS_HOME environment variable is not set.
+ This variable is also used during runtime. Refer to the section
+ titled &quot;Environment Variable Settings for Running OpenPegasus
+ 2.3.2 on Linux&quot; for additional details.<br>
+</ul>
+
+<h5>PEGASUS_INDICATIONS_Q_THRESHOLD</h5>
+<ul>
+ <b>Description:&nbsp;</b>Controls if indications providers are stalled
+ if the indications service queue is too large. It can be set
+ to any positive value. If not set providers are never
+ stalled. This implies that the indications service
+ queue may become as large as necessary to hold all the
+ indications generated. If set to any value then
+ providers are stalled by forcing them to sleep when they
+ try to deliver an indication and the indications service
+ queue exceeds this value. They are resumed when the queue
+ count falls 10 percent below this value. Stall and resume log
+ entries are made to inform the administrator the condition has
+ occurred.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Use of this setting may have
+ unintended side-effects when using Out-of-Process Providers
+ including delayed processing of CIM Operation Requests.
+</ul>
+
+<h5>PEGASUS_MAX_THREADS_PER_SVC_QUEUE</h5>
+<ul>
+ <b>Description:&nbsp;</b>Controls the maximum number of threads
+ allowed per message service queue. It is allowed to range
+ between 1 and MAX_THREADS_PER_SVC_QUEUE_LIMIT (currently 5000)
+ as set in pegasus/src/Pegasus/Common/MessageQueueService.cpp.
+ If set to 0 (zero) the max threads per service queue is then
+ set to MAX_THREADS_PER_SVC_QUEUE_LIMIT. If set larger than the
+ MAX_THREADS_PER_SVC_QUEUE_LIMIT it is set equal to
+ MAX_THREADS_PER_SVC_QUEUE_LIMIT. There are no other limits on the
+ total number of threads that can exist within the system at this
+ time. When the server starts there on the order of 10 to 20
+ message service queues created dependent upon
+ build options.&nbsp; <br>
+ <b>Default Value:&nbsp;</b>5<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>5<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>5<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations: </b>This flag affects consumption of
+ system resources. Not setting, or inappropriately setting
+ this value, may cause the cimserver to hang or crash.<br>
+</ul>
+
+<h5>PEGASUS_ROOT</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the directory
+ that corresponds to "pegasus" source directory defined in the
+ OpenPegasus CVS source tree. This environment variable is
+ used by the OpenPegasus build to locate the required build
+ and source files (e.g., $(PEGASUS_ROOT)/mak and
+ $(PEGASUS_ROOT)/src).<br>
+ <b>Default Value:&nbsp;</b>None<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b>The error "PEGASUS_ROOT environment
+ variable undefined" is returned if the PEGASUS_ROOT
+ environment variable is not set.
+</ul>
+
+
+<h5>PEGASUS_NET_SNMP_INCLUDE_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the NET-SNMP
+ <i>include</i> directory. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. By default, the NET-SNMP include
+ files are expected to be installed in directories that
+ are searched by default (e.g., /usr/include). For platforms
+ where this isn't true, the PEGASUS_NET_SNMP_INCLUDE_DIR
+ environment variable may be used to define an alternative path.
+ This environment variable is only used if PEGASUS_USE_NET_SNMP
+ is set.<br>
+</ul>
+
+<h5>PEGASUS_NET_SNMP_LIB_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the NET-SNMP
+ <i>lib </i>directory. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. By default, the NET-SNMP library is
+ expected to be installed in a directory that is searched by
+ default (e.g., /usr/lib, /usr/lib64). For platforms where
+ this isn't true, the PEGASUS_NET_SNMP_LIB_DIR environment
+ variable may be used to define an alternative path. This
+ environment variable is only used if PEGASUS_USE_NET_SNMP is set.
+</ul>
+
+
+<h5>PEGASUS_NOASSERTS</h5>
+<ul>
+ <b>Description:&nbsp;</b>Defines the NDEBUG compilation macro, which
+ causes the preprocessor to remove PEGASUS_ASSERT() statements.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+<h5>PEGASUS_OPENSLP_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the OpenSLP
+ SDK directory. This directory must contain the OpenSLP
+ <i>include</i> directory, $(PEGASUS_OPENSLP_HOME)/include,
+ and the OpenSLP <i>library</i> directory,
+ $(PEGASUS_OPENSLP_HOME)/lib.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>No. If not set, no additional include or
+ library search paths will be included.
+ <b>Considerations: </b>This value is not used if PEGASUS_USE_OPENSLP
+ is not defined. <br>
+</ul>
+
+<h5>PEGASUS_PAM_AUTHENTICATION</h5>
+<ul>
+ <b>Description:&nbsp;</b>Enables support for PAM-(Pluggable
+ Authentication Modules) based authentication.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Support for PAM in OpenPegasus is
+ dependent on platform support for PAM.<br>
+</ul>
+
+<h5>PEGASUS_PLATFORM</h5>
+<ul>
+ <b>Description:&nbsp;</b>Describes the target platform for the
+ build. The list of supported values for this variable
+ is defined in pegasus/mak/config.mak.&nbsp; Please refer to
+ that file for a complete list of valid PEGASUS_PLATFORM
+ values.&nbsp; This document includes platform-specific configuration
+ data for only a subset of the supported platforms.&nbsp; The
+ following table describes the platforms documented in
+ this version of the document. <br>
+ <b>Default Value:&nbsp;</b>None<p>&nbsp;</p>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=542
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="190">Platform</th>
+ <th bgcolor="#CAE6CA" width=351>Recommended Value <br>
+ Development Build</th>
+ <th bgcolor="#CAE6CA" width=338>Recommended Value <br>
+ Release Build</th>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">Linux IA32</td>
+ <td width="351">LINUX_IX86_GNU</td>
+ <td width="338">LINUX_IX86_GNU</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">Linux IA64</td>
+ <td width="351">LINUX_IA64_GNU</td>
+ <td width="338">LINUX_IA64_GNU</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">Linux X86_64</td>
+ <td width="351">LINUX_X86_64_GNU</td>
+ <td width="338">LINUX_X86_64_GNU</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">HP-UX PA-RISC</td>
+ <td width="351">HPUX_PARISC_ACC</td>
+ <td width="338">HPUX_PARISC_ACC</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">HP-UX IPF</td>
+ <td width="351">HPUX_IA64_ACC</td>
+ <td width="338">HPUX_IA64_ACC</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">OpenVMS Alpha</td>
+ <td width="351">VMS_ALPHA_DECCXX</td>
+ <td width="338">VMS_ALPHA_DECCXX</td>
+ </tr>
+ <tr align="center">
+ <td width="190" align="left">OpenVMS IA64</td>
+ <td width="351">VMS_IA64_DECCXX</td>
+ <td width="338"> VMS_IA64_DECCXX</td>
+ </tr>
+ </table>
+ <br><br>
+ <b>Required:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b>The error "PEGASUS_PLATFORM
+ environment variable undefined." is returned if the
+ PEGASUS_PLATFORM environment variable is not set.
+</ul>
+
+<h5>PEGASUS_REMOVE_METHODTRACE</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server is compiled without
+ method enter and exit trace statements.&nbsp; Trace Level 5 will
+ continue to be accepted as a valid trace level but, without the
+ method enter and exit trace statements, it will be equivalent to
+ Trace Level 4. If PEGASUS_REMOVE_METHODTRACE is false or not set,
+ method enter and exit trace statements are included.&nbsp; All
+ other values are considered invalid and will result in a build
+ error.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set (The
+ Considerations section gives guidance on when a different
+ decision would be made.)<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set (The
+ Considerations section gives guidance on when a different
+ decision would be made.)<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This option completely removes the
+ method enter/exit trace statements from the generated object code.
+ It defines the PEG_METHOD_ENTER and PEG_METHOD_EXIT macros
+ to null statements. This helps to keep static code size small
+ but reduces the serviceability of the CIM server.<br>
+</ul>
+
+
+<h5>PEGASUS_REPOSITORY_MODE</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable defines the default mode
+ used to create repositories that are constructed as part of the
+ automated build tests.&nbsp; It does not affect the runtime
+ environment. Valid values include: XML (causes
+ the repository to be built in XML mode); BIN (causes
+ the repository to be built in binary mode). Use cimconfig to
+ modify the runtime environment.<br>
+ <b>Default Value:&nbsp;</b>XML<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>XML<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>XML<br>
+ <b>Required:&nbsp;</b>No<p>&nbsp;</p>
+</ul>
+
+<h5>PEGASUS_REPOSITORY_STORE_COMPLETE_CLASSES</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable defines the default contents of a
+ class definition in the repository store when a new repository is created.
+ Specifically, when set to true, propagated elements are included in a
+ class definition in the persistent store. The contents of a class
+ definition returned from the repository interface is not affected by this
+ option.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>false<br>
+ <b>Required:&nbsp;</b>No<p>&nbsp;</p>
+ <b>Considerations:&nbsp;</b>A repository which stores complete class
+ definitions does not allow modifications to non-leaf classes or changes
+ to a superclass designation. Complete classes use more storage space,
+ often twice as much as local (incomplete) classes. Class retrieval may
+ be more expensive when local classes are stored. No specific mechanism
+ is available to change this setting in an existing repository.<br>
+</ul>
+
+<h5>PEGASUS_SLP_REG_TIMEOUT</h5>
+<ul>
+ <b>Description:&nbsp;</b>Most SLP implementations allow a lifetime
+ value to be specified in the registration sent to the SLP SA or
+ DA. The PEGASUS_SLP_REG_TIMEOUT build variable allows a lifetime
+ (ie. timeout) value to be specified on the SLP registration, with
+ a 're-registration' being sent to SLP at the same specified
+ timeout interval. The purpose of this lifetime or timeout value
+ is to avoid the accumulation of stale service information
+ in the SA or DA.<br>
+ <b>Default Value:&nbsp;</b>Undefined<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Undefined<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Undefined<br>
+ <b>Required:&nbsp;</b>No<p><b>Example: </b>
+ PEGASUS_SLP_REG_TIME=1440 (ie. 24 hours or 1 day)<br>
+ <b>Considerations:&nbsp;</b>(1) The OpenPegasus internal SLP
+ implementation does not support timeout registrations. This
+ build option is useful, for example, if PEGASUS_USE_OPENSLP is
+ defined. (2) Some SLP implementations may impose a
+ maximum value for the lifetime parameter. For example, OpenSLP
+ limits this value to SLP_LIFETIME_MAXIMUM (or 0xFFFF), and
+ if this maximum value is passed to OpenSLP, then the timeout
+ feature is disabled. Refer to the documentation of your SLP
+ implementation for more information. (3) OpenPegasus will not
+ do any validity checking on the specified value, either
+ to determine if it is a valid positive integer or if it
+ exceeds some maximum value.<br>
+</ul>
+
+<h5>PEGASUS_SNIA_EXTENSIONS</h5>
+<ul>
+ <b>Description:&nbsp;</b> This variable is used to enable a
+ set of workarounds that support the use of OpenPegasus
+ in the SNIA Test Environment.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>The functionality enabled with this
+ variable is experimental and subject to change.
+</ul>
+
+<h5>PEGASUS_SKIP_MOST_TEST_DIRS</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set to true, this variable can be used
+ to reduce the time required to build OpenPegasus by significantly
+ reducing the number of tests that are built.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Setting this variable to true
+ affects the behavior of all recursive make targets (e.g.,
+ clean, depend, all, unittests, alltests, and slptests).
+ Use of this variable with test-related targets (e.g., unittests,
+ alltests and slptests) can produce unexpected results.
+ To avoid creating an inconsistent PEGASUS_HOME directory,
+ the PEGASUS_HOME directory (i.e., the OpenPegasus build
+ directory) should be removed prior to enabling or disabling
+ this variable. This variable should not be used to characterize
+ the set of files to be packaged in a release build. Please
+ refer to the Runtime Packaging Definition PEP for the release
+ for a recommended list of files to be included in a release.
+</ul>
+
+<h5>PEGASUS_TEST_ENABLE_DEBUG_TRACE</h5>
+<ul>
+ <b>Description:&nbsp;</b>
+ This variable is only used for testing. If set to true,
+ Discarded data trace will be enabled by the install_run
+ target of the src/Server/Makefile before running the
+ OpenPegasus TestMakefile test suite. <br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>
+ This variable is useful in certain test environments to
+ explicitly enable tracing to aid in better troubleshooting and
+ detection of test failures (E.g. Test systems are experiencing
+ test failures due to connection timeouts, lost indications
+ etc).<br>
+</ul>
+
+<h5>PEGASUS_TEST_ISGROUP_GROUP/PEGASUS_TEST_ISGROUP_USER_SUCCESS/PEGASUS_TEST_ISGROUP_USER_FAILURE</h5>
+<ul>
+ <b>Description:&nbsp;</b>These variables are only used for testing.
+ These variables allow the developer to define a valid group name,
+ PEGASUS_TEST_ISGROUP_GROUP, a valid user name that is in the
+ group, PEGASUS_TEST_ISGROUP_USER_SUCCESS, and an a valid user
+ name that is not in the group, PEGASUS_TEST_ISGROUP_USER_FAILURE.
+ These variables are only used for testing and NOT part of the
+ release.<br>
+ <b>Default Value(Windows):</b>
+ Administrator/Administrators/Guest<br>
+ <b>Default Value(Non-Windows):&nbsp;</b>root/root/guest<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_TEST_IPV6</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is only used for
+ testing.&nbsp; If set to true, the IPv6-specific tests will
+ be run as part of the &quot;alltests&quot; OpenPegasus
+ TestMakefile test suite. If this variable is not set or set to
+ false,&nbsp; the IPv6-specific tests will not be run.&nbsp; All
+ other values are invalid.<br>
+ <b>Default Value:&nbsp; </b>If PEGASUS_TEST_IPV6 is not defined,
+ PEGASUS_TEST_IPV6 is set to the value of PEGASUS_ENABLE_IPV6.<br>
+ <b>Recommended Value (Development Build): </b>Set to the value
+ of PEGASUS_ENABLE_IPV6<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This variable is useful in certain
+ test environments to explicitly disable running the IPv6
+ tests (e.g., when running an IPv6-enabled version of
+ OpenPegasus on an an IPv4 system).<br>
+</ul>
+
+<h5>PEGASUS_TEST_SDK</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is only used for
+ testing.&nbsp; It is used to control testing of the SDK
+ sample providers and clients. If set, the setup, building and
+ testing of the SDK samples is enabled as part of the
+ OpenPegasus automated build and test.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_TEST_USER_DEFINED</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is only used for testing.
+ If this variable is set, the tests will assume that the
+ PEGASUS_TEST_USER_ID and PEGASUS_TEST_USER_PASS variables
+ defines a valid user/password pair and can be used for
+ certificate-based authentication testing.&nbsp; These tests
+ also assumes that &quot;invalidUser&quot; is not a valid
+ user.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No
+</ul>
+
+<h5>PEGASUS_TEST_USER_ID/PEGASUS_TEST_USER_PASS</h5>
+<ul>
+ <b>Description:&nbsp;</b>These variables are only used for
+ testing. These variables allow the developer to define a
+ valid, non-privileged&nbsp; user name and password
+ on the test system that can be used as part of the OpenPegasus
+ automated test scripts to perform authentication and
+ authorization testing.&nbsp; These variables are only used for
+ testing and NOT part of the release.<br>
+ <b>Default Value:&nbsp;</b>guest/guest<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+<h5>PEGASUS_TEST_VALGRIND_LOG_DIR</h5>
+<ul>
+ <b>Description:&nbsp;</b>
+ This variable is currently only supported on Linux. It may be
+ set to run regression tests under the
+ <a href="http://www.valgrind.org/">Valgrind</a> memory
+ checking tool. It must specify a directory for writing
+ Valgrind log files. The file name format for a particular
+ log is PEGASUS_TEST_VALGRIND_LOG_DIR/PROGRAM_NAME.pid.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This flag is only supported on Linux to
+ enable running tests under Valgrind.<br>
+</ul>
+
+<h5>PEGASUS_TMP</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable is only used in a test
+ environment. It can be used to define the directory that
+ OpenPegasus test programs should use to store temporary files.<br>
+ <b>Default Value:&nbsp;</b>"."<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Used<br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+<h5>PEGASUS_USE_DEBUG_BUILD_OPTIONS</h5>
+<ul>
+ <b>Description:&nbsp;</b>The PEGASUS_DEBUG flag is used to control
+ a variety of settings, including compile options, assertion
+ enablement, method definitions for testing, and diagnostic
+ output.&nbsp; The PEGASUS_USE_DEBUG_BUILD_OPTIONS variable
+ can be used to enable just the compiler specific debug options
+ (e.g., -g in g++) .<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This variable is automatically set
+ if PEGASUS_DEBUG is set.<br>
+</ul>
+
+<h5>PEGASUS_USE_EMANATE</h5>
+<ul>
+ <b>Description:&nbsp;</b>EMANATE,
+ <a href="http://www.snmp.com/products/emanate.html">
+ http://www.snmp.com/products/emanate.html</a>, is an SNMP Research
+ International product that supports SNMPv1, SNMPv2c, and
+ SNMPv3.&nbsp; If the PEGASUS_USE_EMANATE variable is defined,
+ the OpenPegasus SNMP Handler will use the EMANATE libraries
+ to send traps to the SNMP Management application.&nbsp;
+ The EMANATE libraries are NOT included as part of OpenPegasus.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<p>
+ <b>Considerations:&nbsp;</b>Either the PEGASUS_USE_NET_SNMP or
+ PEGASUS_USE_EMANATE variable must be set for the SNMP
+ Handler to be supported.<br>
+</ul>
+
+
+<h5>PEGASUS_USE_NET_SNMP</h5>
+<ul>
+ <b>Description:&nbsp;</b>NET-SNMP,
+ <a href="http://net-snmp.sourceforge.net">
+ http://net-snmp.sourceforge.net</a>,&nbsp; is an OSS
+ implementation of a suite of applications used to implement
+ <a href="http://www.ietf.org/rfc/rfc1157.txt">SNMP v1</a>,
+ <a href="http://www.ietf.org/rfc/rfc1901.txt">SNMP v2c</a> and
+ <a href="http://www.ietf.org/rfc/rfc2571.txt">SNMP v3</a> using
+ both IPv4 and IPv6.&nbsp;&nbsp; If the PEGASUS_USE_NET_SNMP
+ variable is defined, the OpenPegasus SNMP Handler will use
+ the NET-SNMP libraries to send traps to the SNMP Management
+ application.&nbsp; The NET-SNMP libraries are NOT included
+ as part of OpenPegasus.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>true for Linux,
+ false for all other platforms<br>
+ <b>Required:&nbsp;</b>No<p>
+ <b>Considerations:&nbsp;</b>Either the PEGASUS_USE_NET_SNMP or
+ PEGASUS_USE_EMANATE variable must be set for the SNMP
+ Handler to be supported.<br>
+</ul>
+
+<h5>PEGASUS_USE_OPENSLP</h5>
+<ul>
+ <b>Description:&nbsp;</b>OpenSLP, <a href="http://www.openslp.org">
+ http://openslp.org</a>, is an open-source implementation of
+ Service Location Protocol. If the PEGASUS_USE_OPENSLP variable
+ is defined, OpenPegasus will be built to use the OpenSLP
+ implementation of SLP instead of the internal OpenPegasus
+ implementation of SLP. The OpenSLP libaries are NOT included
+ as part of OpenPegasus.
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>PEGASUS_ENABLE_SLP must be defined
+ if this variable is set.
+</ul>
+
+<h5>PEGASUS_USE_PAM_STANDALONE_PROC</h5>
+<ul>
+ <b>Description:&nbsp;</b>Moves the processing of PAM requests from
+ the CIM Server process to a separate process managed by the
+ CIM Server.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If PAM Authentication is enabled,
+ the PAM API is used, during the processing of each request, to
+ authenticate the client. This level of use makes the CIM Server
+ extremely sensitive to memory leaks in the PAM library. In
+ addition, certain PAM modules are not thread-safe. If your
+ platform is experiencing problems with PAM Authentication,
+ use of option may provide a work-around.
+ PEGASUS_USE_PAM_STANDALONE_PROC requires
+ PEGASUS_PAM_AUTHENTICATION to be set.<br>
+</ul>
+
+<h5>PEGASUS_USE_RELEASE_CONFIG_OPTIONS</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, OpenPegasus is built using
+ the "Release Build" configuration options. By default,
+ OpenPegasus is built using the &quot;Development Build"
+ configuration options.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>(1)The
+ PEGASUS_USE_RELEASE_CONFIG_OPTIONS variable allows a platform
+ vendor to easily toggle between two sets of configurations
+ options, a set of options tuned for the development/debug
+ (&quot;Development Build") environment and a set of options
+ tuned for the production environment ("Release Build").
+ Refer the section titled "Configuration Properties" for
+ additional detail.&nbsp; (2) For each configuration
+ variable,&nbsp; the &quot;Recommended Value (Release Build)&quot;
+ value defines the recommended settings to use for a
+ &quot;Release Build&quot;.&nbsp; Please refer to the
+ description of each variable for additional information.
+</ul>
+
+<h5>PEGASUS_USE_RELEASE_DIRS</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, OpenPegasus is built using
+ the "Release Build" directory definitions. By default,
+ OpenPegasus is built using the &quot;Development Build"
+ directory definitions.<br>
+ <b>Default Value:&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Not Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>
+ The PEGASUS_USE_RELEASE_DIRS variable allows a platform
+ vendor to easily toggle between two sets of directory
+ definitions, a set tuned for the development/debug
+ (&quot;Development Build") environment and a set tuned for the
+ production environment ("Release Build"). Refer the section
+ titled "Configuration Properties" for additional detail.<br>
+</ul>
+
+<h5>PEGASUS_USE_SYSLOGS</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, OpenPegasus will be built
+ to send log messages to the system logger (syslog).
+ Otherwise, log messages will be sent to OpenPegasus
+ specific log files.<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>Set<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This variable is currently
+ not implemented as an environment variable. To use
+ the option -DPEGASUS_USE_SYSLOGS must
+ be explicitly included in the appropriate platform
+ makefile (pegasus/mak/platform_*.mak).</ul>
+
+<h5>PEGASUS_WINDOWS_SDK_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>This variable should be set to point
+ to the Microsoft Platform SDK on Windows if using a compiler
+ version &lt; 1300 (i.e. VC6). If using VC7 or VC8, this flag
+ does not need to be set, as the necessary libraries are already
+ included.<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>
+ No Specific Recommendation<br>
+ <b>Required:&nbsp;</b>Yes, if building on Windows with a
+ compiler version &lt; 1300.<br>
+</ul>
+
+<h4>Examples Building a Linux IA32 (#IA64) Development/Debug Version</h4>
+<ul>
+ export PEGASUS_ROOT=/home/pegasusbld/pegasus<br>
+ export PEGASUS_HOME=/home/pegasusbld/pegasus/build<br>
+ export PEGASUS_PLATFORM=LINUX_IX86_GNU<br>
+ #export PEGASUS_PLATFORM=LINUX_IA64_GNU<br>
+ export PEGASUS_PAM_AUTHENTICATION=true<br>
+ export PEGASUS_USE_PAM_STANDALONE_PROC=true<br>
+ export PEGASUS_HAS_SSL=yes<br>
+ export PEGASUS_DEBUG=TRUE<br>
+ export ENABLE_CMPI_PROVIDER_MANAGER=true<br>
+ export PEGASUS_USE_SYSLOGS=true<br>
+ export PATH=/home/pegasusbld:/home/pegasusbld/pegasus/build/bin:/usr/local/bin:$PATH<br>
+</ul>
+
+<h4>Building a Linux IA32 (#IA64) Production Release Version</h4>
+<ul>
+ export PEGASUS_ROOT=/home/pegasusbld/pegasus<br>
+ export PEGASUS_HOME=/home/pegasusbld/pegasus/build<br>
+ export PEGASUS_PLATFORM=LINUX_IX86_GNU<br>
+ #export PEGASUS_PLATFORM=LINUX_IA64_GNU<br>
+ export PEGASUS_DISABLE_CQL=true <br>
+ export PEGASUS_PAM_AUTHENTICATION=true <br>
+ export PEGASUS_USE_PAM_STANDALONE_PROC=true<br>
+ export PEGASUS_HAS_SSL=yes<br>
+ export PEGASUS_USE_RELEASE_CONFIG_OPTIONS=true<br>
+ export PEGASUS_USE_RELEASE_DIRS=true<br>
+ export PEGASUS_NOASSERTS=true<br>
+ export ENABLE_CMPI_PROVIDER_MANAGER=true<br>
+ export PEGASUS_ENABLE_USERGROUP_AUTHORIZATION=true<br>
+ export PEGASUS_USE_SYSLOGS=true<br>
+ export PATH=/home/pegasusbld:/home/pegasusbld/pegasus/build/bin:/usr/local/bin:$PATH<br>
+</ul>
+
+<h3>Environment Variable Settings for <u>Running</u> OpenPegasus</h3>
+
+<h4>Definitions</h4>
+
+<h5>PEGASUS_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>There are multiple options for
+ configuring the location of OpenPegasus runtime
+ files (e.g., configuration files, libraries,
+ repository, executables). If no other option is
+ specified, OpenPegasus will attempt to use the value
+ PEGASUS_HOME.<br>
+ <b>Default Value:&nbsp;</b>"."<br>
+ <b>Recommended Value (Development Build):&nbsp;</b>
+ The same value defined at build time.<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set<br>
+ <b>Required:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Although this variable can be
+ useful in a development environment use of this environment
+ variable is not recommended in a production environment.
+ Instead, the use of configuration properties to explicitly
+ set the location of runtime files and directories is recommended.
+</ul>
+
+<h5>PEGASUS_MSG_HOME</h5>
+<ul>
+ <b>Description:&nbsp;</b>This value is not used by the CIM
+ Server.&nbsp; The CIM Server uses the messageDir configuration
+ parameter to locate the directory where the ICU resource bundles.
+ However, CIM Client applications must rely on an alternative
+ mechanism to locate this directory.<br>
+ <b>Default Value:&nbsp;</b>if $PEGASUS_HOME is set then
+ &quot;$PEGASUS_HOME/msg&quot; else &quot;.&quot;<br>
+ <b>Recommended Value (Development Build): </b>$PEGASUS_HOME/msg<br>
+ <b>Recommended Value (Release Build):&nbsp;</b>Not Set <br>
+ <b>Required:&nbsp;</b>No<br>
+</ul>
+
+<h3>Configuration Properties</h3>
+
+<h4>Notation</h4>
+
+<p>This section describes the notation used to define the
+configuration properties.</p>
+
+<ul>
+
+<h5>Default Value</h5>
+ The value of <i>Default Value</i> is the OpenPegasus
+ default setting for this configuration option. This
+ value is used if a platform-specific setting is not
+ defined.
+
+<h5>Recommended Default Value</h5>
+ The PEGASUS_USE_RELEASE_CONFIG_OPTIONS variable allows a
+ platform vendor to easily toggle between two sets of
+ configurations options, a set of options tuned for the
+ development/debug (&quot;Development Build") environment
+ and a set of options tuned for the production environment
+ ("Release Build"). The value of
+ <i>Recommended Value (Development Build)</i>
+ is the recommended default value for use in a development/
+ debug environment. The value of
+ <i>Recommended Value (Release Build)</i> is the recommended
+ default value for use in a production environment.
+
+<h5>Recommend To Be Fixed/Hidden</h5>
+ Configuration options can be defined as fixed or hidden.
+ A "fix" configuration option is set at build time
+ and cannot be changed without rebuilding. "Fixed"
+ configuration options are not displayed using the cimconfig
+ command. This feature can be used by vendors to limit
+ OpenPegasus functionality and configurability.
+
+ A "hidden" configuration option is an option that is
+ configurable (i.e., "not fixed"), but not externally
+ advertised using the cimconfig command. The "hidden"
+ feature can be used to define "internal use only"
+ configuration options.
+
+<h5>Dynamic?</h5>
+ If yes, the value of the configuration option can be
+ changed without stopping and restarting the CIM Server.
+
+<h5>Directory Specifications</h5>
+ <p>Note that the variables included in the following table
+ (e.g., $LOGDIR) are for documentation purposes only and
+ have been defined to simplify the description of the
+ configuration options.&nbsp; In particular,
+ these variables DO NOT correspond to environment variables
+ implemented in the OpenPegasus code.&nbsp; Default values
+ for the following variables are platform
+ and vendor dependent and not documented in this document.</p>
+
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=148
+ style='font-size=10.0pt;font-family:Arial' height="228">
+ <tr>
+ <th bgcolor="#CAE6CA" width=1 height="16">&nbsp;</th>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="12">$LOGDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$PROVIDERDIRS</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">
+ $PROVIDERMANAGERDIRS</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$REPOSITORYDIR </td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$CERTIFICATEDIR&nbsp;
+ </td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$LOCALAUTHDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$TRACEDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$CONFIGDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$PIDFILE</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$RANDOMDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$SOCKETDIR</td>
+ </tr>
+ <tr align="center">
+ <td align="left" width="1" height="14">$MESSAGEDIR</td>
+ </tr>
+ </table>
+</ul>
+
+<h4>Definitions</h4>
+
+<h5>authorizedUserGroups</h5>
+<ul>
+ <b>Description:</b>&nbsp;If the <b>authorizedUserGroups</b>
+ property is set, the value is interpreted as a list of
+ comma-separated user groups whose members may issue CIM
+ requests. A user who is not a member of any of these groups is
+ restricted from issuing CIM requests, with the exception of
+ privileged users (root user). If the <b>authorizedUserGroups</b>
+ property is not set, any user may issue CIM requests.<br>
+ <b>Default Value:&nbsp;</b>blank<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>blank<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>blank<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):&nbsp;</b>
+ No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Example: </b>
+ #cimconfig -s authorizedUserGroups=users,systemusers -p<br>
+ <b>Considerations:&nbsp;</b>This feature is available only when
+ the OpenPegasus source is compiled with the flag
+ PEGASUS_ENABLE_USERGROUP_AUTHORIZATION set.
+</ul>
+
+<h5>daemon</h5>
+<ul>
+ <b>Description:&nbsp;</b>This option enables/disables forking of
+ the code to create a background daemon process.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):&nbsp;</b>
+ No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>
+ No/Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<p>&nbsp;<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>enableAssociationTraversal</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server will support
+ the four association traversal operators: Associators,
+ AssociatorNames,References, and ReferenceNames.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):&nbsp;</b>
+ No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>There is still an outstanding
+ Provider Registration issue that restricts the degree to
+ which separate Providers can register for Associations.<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>enableAuditLog</h5>
+<ul>
+ <b>Description:&nbsp;</b>Used to enable or disable audit
+ logging at run time. If true, audit logging will be enabled.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):&nbsp;</b>
+ No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/DefaultPropertyTable.h<br>
+</ul>
+
+<h5>enableAuthentication</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, a Client must be authenticated
+ to access the CIM Server.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp<br>
+</ul>
+
+<h5>enableBinaryRepository</h5>
+<ul>
+ <b>Description:&nbsp;</b>Setting this to true will activate the
+ binary repository support on the next restart of cimserver.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>false<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):&nbsp;</b>Yes<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Repositories containing a mixture
+ of binary and XML objects are supported.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/RepositoryPropertyOwner.cpp</p>
+</ul>
+
+
+<h5>enableHttpConnection</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, allows connections to
+ the CIM Server using the HTTP protocol<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>
+ Enabling HTTP will allow clients to connect with security
+ properties different than those associated with encrypted SSL
+ traffic, and its configured SSL authentication or other security
+ behavior. This option should only be enabled in environments
+ where sending the HTTP Request and HTTP Response as
+ clear text messages does not introduce a security risk.&nbsp;
+ Note that if authentication is enabled (enableAuthentication),
+ user names and passwords will be included in the text of the
+ HTTP message.<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>enableHttpsConnection</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, allows connections to
+ the CIM Server using the HTTPS protocol (HTTP using
+ Secure Socket Layer encryption)<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>For this option to work,
+ the environment variable PEGASUS_HAS_SSL must have
+ been set when CIM Server was built.<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>enableIndicationService</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server will support
+ CIM Indications.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<p>&nbsp;<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>enableNamespaceAuthorization</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server restricts
+ access to namespaces based on configured user authorizations
+ [user authorizations may be configured using the cimauth
+ command]<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Default Value (Development Build): </b>false<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>
+ This option offers limited functionality and, in most
+ environments, expensive to administer. It's use is not
+ recommended.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp</ul>
+
+<h5>enableNormalization</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, objects returned from instance
+ providers are validated and normalized. <br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>
+ <ul>
+ <li>Any errors encountered during normalization result in a
+ CIMException with the status code set to CIM_ERR_FAILED
+ and a meaningful, context specific error description
+ (messages will be localized). Providers that catch the
+ exception have an opportunity to handle the error.
+ Otherwise, the exception is passed to the Provider Manager
+ and becomes the response for that Provider.
+ <li>Provider Modules that are listed on the
+ excludeModulesFromNormalization
+ configuration option are excluded from normalization.
+ <li>Since the concept of normalization is relatively new to
+ OpenPegasus and it establishes and enforces rules for
+ objects returned by providers, it should only
+ apply to providers written against the SDK in which it was
+ introduced (or later). Therefore only Provider Modules that
+ have the following InterfaceType and InterfaceVersion
+ combination will be subject to normalization:
+ <ul>
+ <li>'C++Default' / 2.5.0 or greater
+ <li>'CMPI' / 2.0.0 or greater
+ <li>'JMPI' / 1.0.0 or greater
+ </ul>
+ </ul>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/NormalizationPropertyOwner.cpp<br>
+</ul>
+
+
+<h5>enableRemotePrivilegedUserAccess</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server allows
+ access by a privileged user from a remote system<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Many management operations require
+ privileged user access. Disabling remote access by
+ privileged user could significantly affect
+ functionality.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp<p>&nbsp;</p>
+</ul>
+
+<h5>enableSSLExportClientVerification</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server allows HTTPS
+ connection for CIMExport requests on the port specified by the
+ service name &quot;wbem-exp-https&quot;.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp</p>
+</ul>
+
+
+<h5>enableSubscriptionsForNonprivilegedUsers</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, operations (create instance,
+ modify instance, delete instance, get instance, enumerate
+ instances, enumerate instance names) on indication
+ filter, listener destination, and subscription instances
+ may be performed by non-privileged users. Otherwise, these
+ operations may only be performed on these instances by
+ privileged users.<br>
+ <b>Default Value:&nbsp;</b>true<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This option has meaning only if
+ enableIndicationService=true.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp<p>&nbsp;</p>
+</ul>
+
+<h5>excludeModulesFromNormalization</h5>
+<ul>
+ <b>Description:&nbsp;</b>If the excludeModulesfromNormalization
+ property is set, the value is interpreted as a list of
+ comma-separated Provider Module names (as specified in
+ PG_ProviderModule.Name) to exclude from validation and
+ normalization.<br>
+ <b>Default Value:&nbsp;</b>&quot;&quot;<br>
+ <b>Recommended Default Value (Development Build):</b>
+ &quot;&quot;<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ &quot;&quot;<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>All objects managed by all
+ providers will be excluded from validation and normalization
+ if its module name appears in this list.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/NormalizationPropertyOwner.cpp
+</ul>
+
+
+<h5><b>exportSSLTrustStore</b></h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the OpenSSL
+ truststore for Indications. Consistent with the OpenSSL
+ implementation, a truststore can be either a file or directory.
+ If the truststore is a directory, all the certificates within
+ the directory are considered trusted.<br>
+ <b>Default Value:&nbsp;</b>indication_trust.pem<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ indication_trust.pem<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CERTIFICATEDIR/indication_trust.pem<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp</p>
+</ul>
+
+<h5>forceProviderProcesses</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the CIM Server runs Providers
+ in separate processes rather than loading and calling Provider
+ libraries directly within the CIM Server process.<br>
+ <b>Default Value:&nbsp;</b>Dependent on the value of
+ PEGASUS_DEFAULT_ENABLE_OOP<br>
+ <b>Recommended Default Value (Development Build):</b>true (HP-UX,
+ Linux)<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>true (HP-UX,
+ Linux)<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations: </b>In a dynamic, potentially multi-vendor,
+ environment, the ability to run Providers in separate processes
+ can significantly increase the stability, maintainability and
+ supportability of the overall solution.&nbsp; Running Providers
+ in separate process spaces: (1) helps isolate components (i.e.,
+ cimserver and Providers) from a catastrophic failure
+ (segmentation faults, memory leaks) of a single Provider and (2)
+ reduces the risk of accidental or malicious sharing of sensitive
+ data among Providers.&nbsp; This benefit comes at a cost.&nbsp;
+ Moving Providers out of the cimserver process increases
+ communication costs and can significantly increase response
+ time.&nbsp; Actual results will vary, but it is common for
+ response times to increase by a factor of 2.<br>
+ <b>Note 1: </b>When forceProviderProcesses is true, the CIM
+ Server will load each Provider Module (i.e., library) into a
+ separate process. Providers in different Provider Modules
+ cannot depend on a communication mechanism that
+ requires them to run in the same process space.<br>
+ <b>Note 2: </b>Although the catastrophic failure of an
+ Out-Of-Process (OOP) Provider Module will not result in a
+ failure of the CIM Server process, if the failed OOP Provider
+ Module included Indication Providers, Indications may be
+ lost.&nbsp; If logging is enabled, the CIM Server will log a
+ message informing administrators of what happened and what
+ corrective actions can be taken.<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>home</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set, this configuration option defines
+ the runtime default value for PEGASUS_HOME.<br>
+ <b>Default Value:&nbsp;</b>"./"<br>
+ <b>Recommended Default Value (Development Build)</b>"./"<br>
+ <b>Recommended Default Value (Release Build)""</b><br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<p>&nbsp;<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>httpPort</h5>
+<ul>
+ <b>Description:&nbsp;</b>OpenPegasus first attempts to look up the
+ port number for HTTP using getservbyname for the 'wbem-http'
+ service. The httpPort configuration setting is used only when the
+ getservbyname lookup fails.<br>
+ <b>Default Value:&nbsp;</b>blank<br>
+ <b>Recommended Default Value (Development Build): </b>blank<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>5988<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>(1)The use of 5988 for WBEM HTTP is
+ recommended by the DMTF. This port has been registered with
+ <a href="http://www.iana.org/assignments/port-numbers">
+ IANA</a>. In a production environment, the recommendation is
+ to use /etc/services to configure the value of this port. (2)
+ With the release of OpenPegasus 2.5, the default values for
+ httpPort was changed from 5988 to &quot;&quot;. This
+ change was made to allow the OpenPegasus to differentiate
+ between a default setting of 5988 and a customer-defined
+ setting of 5988.&nbsp; With this change,&nbsp; if the port
+ number is explicitly set, the configured port will be used
+ regardless of the settings in /etc/services. If no port number
+ is specified, the server will continue to use the value in
+ /etc/services.<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>httpsPort</h5>
+<ul>
+ <b>Description:&nbsp;</b>
+ OpenPegasus first attempts to look up the port number for HTTPS
+ using getservbyname for the 'wbem-https' service. The httpsPort
+ configuration setting is used only when the getservbyname lookup
+ fails.<br>
+ <b>Default Value:&nbsp;</b>blank<br>
+ <b>Recommended Default Value (Development Build): </b>blank<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>5989<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>(1)The use of 5989 for WBEM HTTPS
+ is recommended by the DMTF. This port has been registered with
+ <a href="http://www.iana.org/assignments/port-numbers">IANA</a>.
+ In a production environment, the recommendation is to use
+ /etc/services to configure the value of this port.(2)
+ With the release of OpenPegasus 2.5, the default values for
+ httpPort was changed from 5989 to &quot;&quot;. This
+ change was made to allow the OpenPegasus to differentiate
+ between a default setting of 5989 and a customer-defined
+ setting of 5989.&nbsp; With this change,&nbsp; if the port number
+ is explicitly set, the configured port will be used regardless
+ of the settings in /etc/services. If no port number is specified,
+ the server will continue to use the value in /etc/services.<br>
+ <br>
+
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>idleConnectionTimeout</h5>
+<ul>
+ <b>Description:&nbsp;</b>If set to a positive integer, this value
+ specifies a minimum timeout value for idle client connections.
+ If set to zero, idle client connections do not time out.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>0<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>0<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Considerations:&nbsp;</b>A client connection is considered
+ idle when it is not in the process of sending a request and
+ the CIM Server is not processing a request from that connection.
+ An idle connection timeout allows reclamation of the system
+ resources allocated for idle CIM Server connections. Note that
+ the CIM Server may allow an idle connection to persist longer
+ than the configured timeout value based on server activity.
+ Some client applications may not behave correctly if a
+ connection timeout is introduced. Client compatibility should be
+ considered when configuring an idle connection timeout value.
+ The idle connection time is computed using the system clock.
+ Thus, resetting the system clock may cause unexpected timeout
+ behavior.<br>
+</ul>
+
+<h5>logdir</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the name of the directory
+ to be used for the OpenPegasus specific log files.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>logs<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>$LOGDIR<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b>This option is not supported if
+ PEGASUS_USE_SYSLOGS is defined.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/LogPropertyOwner.cpp<br>
+</ul>
+
+<h5>logLevel</h5>
+<ul>
+ <b>Description:&nbsp;</b>Defines the desired level of logging.
+ Valid values include: TRACE, INFORMATION, WARNING, SEVERE,
+ FATAL.<br>
+ <b>Default Value:&nbsp;</b>"INFORMATION"<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ "INFORMATION"<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>"SEVERE"<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b><br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegsus/Config/LogPropertyOwner.cpp<p>&nbsp;</p>
+</ul>
+
+<h5>maxLogFileSizeKBytes</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the maximum size of the logfile in Kilo
+ Bytes. If the logfile size exceeds maxLogFileSizeKBytes logfile will be pruned.<br>
+ <b>Default Value:&nbsp;</b>32768<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b> 32768<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>32768<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):</b>&nbsp;No/No<br>
+ <b>Dynamic?:</b>&nbsp;Yes<br>
+ <b>Considerations:</b> This option is not supported if PEGASUS_USE_SYSLOGS is defined. Minimum accepted value is 32 KB.&nbsp;<br>
+ <b>Source Configuration File:</b>&nbsp; Pegsus/Config/LogPropertyOwner.cpp<p>&nbsp;</p>
+</ul>
+<h5>maxProviderProcesses</h5>
+<ul>
+ <b>Description:</b>&nbsp;Limits the number of provider
+ processes (see 'forceProviderProcesses) that may run
+ concurrently. A 'maxProviderProcesses' value of '0' indicates
+ that the number of Provider Agent processes is unlimited<br>
+ <b>Default Value:&nbsp;</b>0<br>
+ <b>Recommended Default Value (Development Build):</b>&nbsp;0<br>
+ <b>Recommended Default Value (Release Build):</b>&nbsp;0<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b><br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>messageDir</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the name of the directory to
+ be used for the OpenPegasus translated messages.<br>
+ <b>Default Value:&nbsp;</b>msg<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>msg<br>
+ <b>Recommended Default Value (Release Build):</b>
+ $MESSAGEDIR/msg<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Only used when message localization
+ is enabled. &nbsp;See PEGASUS_HAS_MESSAGES for details.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ FileSystemPropertyOwner.cpp<br>
+</ul>
+
+<h5>providerDir</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the names of the directories
+ that contains Provider executables.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>lib<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $PROVIDERDIRS<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>The CIM Server runs as a privileged
+ user. And, since Providers run in the same process space as the
+ CIM Server, Providers also have privileged access to the
+ system. Allowing a registered Provider’s executable to be
+ replaced with malicious code would result in a critical
+ security defect, giving a malicious user privileged access
+ to the system. Adminstrators are responsible for ensuring
+ that only trusted Providers are loaded into providerDir.
+ In order to simplify the management task associated with
+ securing Provider executable, the value of providerDir can be
+ fixed at build time (i.e., set to one or more fixed, well-known
+ locations).<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/FileSystemPropertyOwner.cpp<br>
+</ul>
+
+<h5>providerManagerDir</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the name of the directory that
+ contains the ProviderManager plugin libraries.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>lib<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $PROVIDERMANAGERDIRS<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Should be a dedicated directory to
+ minimize inspection of non-applicable files. Additionally,
+ since all calls to the providers go through the provider
+ managers, the same care should be taken with regards to
+ security for the provider manager directory, as for provider
+ directories.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/FileSystemPropertyOwner.cpp<br>
+</ul>
+
+<h5>repositoryDir</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the name of the directory
+ to be used for the OpenPegasus repository.<br>
+ <b>Recommended Default Value (Development Build): </b>repository<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $REPOSITORYDIR/repository<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b><br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/FileSystemPropertyOwner.cpp<p><br>
+</ul>
+
+<h5>repositoryIsDefaultInstanceProvider</h5>
+<ul>
+ <b>Description:&nbsp;</b>If true, the Repository functions
+ as the Instance Provider for all classes for which there
+ is not an explicitly registered Provider. This flag is
+ also used to control the behavior of the repository when
+ processing association operators.<br>
+ <b>Recommended Default Value (Development Build): </b>true<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/Yes<br>
+ <b>Dynamic?: &nbsp;</b>No<br>
+ <b>Considerations: &nbsp;</b>This flag can be used to configure
+ the CIM Server to allow the Repository to be used by CIM Clients
+ and CIM Providers as a dynamic data store. The setting of this
+ flag will significantly affect CIM Server behavior as viewed
+ by the CIM Client.<br>
+
+ The following issues should be considered when setting
+ repositoryIsDefaultInstanceProvider=true:
+
+ <ul>
+ <li><b>Authorization.</b> &nbsp;The repository has no
+ concept of which users (or components) are authorized to
+ perform which operations.</li>
+ <li><b>Appearance of instrumentation.</b>  A client application
+ cannot determine whether instrumentation exists for a
+ given CIM class. For example,&nbsp; imagine a client
+ issues a CreateInstance operation on a Disk class
+ for&nbsp;&nbsp;&nbsp; which no provider is registered.
+ &nbsp;The instance will be stored in the repository, and
+ the client gets a "success" response. Does that mean a
+ disk device has been created on the server? Even worse,
+ when another client issues an EnumerateInstances
+ operation,&nbsp;the spurious Disk instance is returned.
+ &nbsp;With repositoryIsDefaultInstanceProvider=false, the
+ CreateInstance operation above would have returned a
+ NOT_SUPPORTED error.</li>
+ <li><b>Potential for inconsistent data.</b>  Using the
+ repository as a data cache increases the probability
+ that a client will see stale or incorrect data. A
+ provider can better control the correlation
+ between the data returned and the current state of the
+ underlying managed resource (whether or not the provider
+ caches the data).</li>
+ </ul>
+ <br>
+
+ The following issues should be considered when setting
+ repositoryIsDefaultInstanceProvider=false:
+
+ <ul>
+ <li><b>Provider Availability.</b> Certain Providers have been
+ developed to use the Repository as a dynamic data store.
+ These Providers are currently not supported on system
+ where this flag is disabled. E.g., the Common Diagnostics
+ Model (CDM) Provider
+ (http://developer.intel.com/design/servers/cdm/)
+ relies on use of the Repository to store instances
+ of CIM_DiagnosticSetting.&nbsp; If this flag set to
+ false, this Provider will not function correctly. Note
+ that this feature is supported by other WBEM
+ implementation.&nbsp; Therefore, disabling this feature
+ can increase the cost of migrating existing Providers to
+ OpenPegasus.</li>
+ </ul>
+
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/RepositoryPropertyOwner.cpp<br>
+</ul>
+
+<h5>shutdownTimeout</h5>
+<ul>
+ <b>Description:&nbsp;</b>When a cimserver -s shutdown command is
+ issued, specifies the maximum time in seconds for the CIM Server
+ to complete outstanding CIM operation requests before shutting
+ down; if the specified timeout period expires, the CIM Server
+ will shut down, even if there are still CIM operations in
+ progress. Minimum value is 2 seconds.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>10<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>10<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Considerations:&nbsp;</b><br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/ShutdownPropertyOwner.cpp<br>
+</ul>
+
+<h5>slp</h5>
+<ul>
+ <b>Description:&nbsp;</b>When set to true, OpenPegasus activates
+ an SLP SA and issues DMTF defined SLP advertisements to this SA
+ on startup.<br>
+ <b>Default Value:&nbsp;</b>false<br>
+ <b>Recommended Default Value (Development Build): </b>false<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>false<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<p>&nbsp;<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial' height="80">
+ <tr>
+ <th bgcolor="#CAE6CA" width="168" height="16">Platform</th>
+ <th bgcolor="#CAE6CA" width=350 height="16">
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168" height="14">Linux</td>
+ <td align="left" width="350" height="14">
+ Pegasus/Config/DefaultPropertyTableLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168" height="14">HP-UX</td>
+ <td align="left" width="350" height="14">
+ Pegasus/Config/DefaultPropertyTableHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168" height="16">OpenVMS</td>
+ <td align="left" width="350" height="16">
+ Pegasus/Config/DefaultPropertyTableVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>socketWriteTimeout</h5>
+<ul>
+ <b>Description:&nbsp;</b>If the CIM Server receives an
+ EWOULDBLOCK/EAGAIN error on a non-blocking write,
+ socketWriteTimeout defines the number of seconds the
+ CIM Server will wait for the socket to get ready and resume
+ writing data.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ 20 (seconds)<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ 20 (seconds)<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/DefaultPropertyTable.h
+</ul>
+
+<h5>sslCertificateFilePath</h5>
+<ul>
+ <b>Description:&nbsp;</b>Contains the CIM Server SSL
+ Certificate.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ server.pem<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CERTIFICATEDIR/server.pem"<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations: </b>For a more detailed look at SSL options
+ and their ramifications, please see the SSL guidelines.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp
+</ul>
+
+<h5>sslClientVerificationMode</h5>
+<ul>
+ <b>Description:&nbsp;</b>Describes the desired level of support
+ for certificate-based authentication.
+ <ul style="MARGIN-TOP: 0in" type="circle">
+ <li>“<b>required</b>” – The server requires certificate-based
+ client authentication.&nbsp; A client MUST present a
+ trusted certificate in order to access the CIM Server.&nbsp;
+ If the client fails to send a certificate or sends an
+ untrusted certificate, the connection will be rejected.</li>
+ <li>“<b>optional</b>” – The server supports, but does not
+ require, certificate-based client authentication. The
+ server will request and attempt to validate a client
+ certificate, however the connection will be accepted even
+ if no certificate is sent or an untrusted certificate is
+ sent.&nbsp; The server will then seek to authenticate the
+ client via an authentication header.</li>
+ <li>“<b>disabled</b>” – The server does not support
+ certificate-based client authentication.</li>
+ </ul>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ disabled<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ disabled<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>(1) This property is only used if
+ <b>enableHttpsConnection</b> is <b>&quot;true&quot;</b>.
+ (2) If the platform does not support PEGASUS_LOCAL_DOMAIN_SOCKET,
+ OpenPegasus attempts to use either HTTPS or
+ HTTP to establish a local connection (connectLocal).&nbsp;
+ For platforms that do not support PEGASUS_LOCAL_DOMAIN_SOCKET,
+ Clients which use connectLocal, such as cimconfig -l -c,
+ cimprovider -l -s and cimserver -s, will not work if&nbsp; the
+ &quot;sslClientVerificationMode&quot; variable is set to
+ &quot;required&quot; and HTTP is disabled.&nbsp; For these
+ platforms, the recommended course of action is to change the
+ property value to &quot;optional.&quot;<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp
+</ul>
+
+<h5>sslKeyFilePath</h5>
+<ul>
+ <b>Description:&nbsp;</b>Contains the private key for the CIM
+ Server SSL Certificate.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ file.pem<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CERTIFICATEDIR/file.pem<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations: </b>File should be readable only by the
+ user the cimserver is running as and/or privileged users. The
+ file should be writeable only by a privileged user.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/SecurityPropertyOwner.cpp<br>
+</ul>
+
+<h5>sslTrustStore</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the OpenSSL
+ truststore. Consistent with the OpenSSL implementation, a
+ truststore can be either a file or directory. If the truststore
+ is a directory, all the certificates within the directory are
+ considered trusted.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ client.pem<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CERTIFICATEDIR/client.pem<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegsus/Config/SecurityPropertyOwner.cpp
+</ul>
+
+<h5>sslTrustStoreUserName</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the system user name to be
+ associated with all certificate-based authenticated requests.<br>
+ <b>Recommended Default Value (Development Build): </b>NONE<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>NONE<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/No<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>This property has no default; for
+ security reasons, the system administrator must explicitly
+ specify this value.&nbsp; This feature allows a single user
+ name to be specified.&nbsp; This user will be associated
+ with all certificates in the truststore.&nbsp; In the future,
+ OpenPegasus will allow a system administrator to associate a
+ distinct user name with each certificate.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegsus/Config/SecurityPropertyOwner.cpp<br>
+</ul>
+
+<h5>traceComponents</h5>
+<ul>
+ <b>Description:&nbsp;</b>Defines the components to be traced.<br>
+ <b>Default Value:&nbsp;</b>""<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>""<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>""<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build):&nbsp;</b>No/Yes<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/TracePropertyOwner.cpp<br>
+</ul>
+
+<h5>traceFacility</h5>
+<ul>
+ <b>Description:&nbsp;</b>Defines the desired facility for trace
+ messages. Valid values include: &quot;File&quot;
+ and &quot;Log&quot;.<br>
+ <b>Default Value:&nbsp;</b>File<br>
+ <b>Recommended Default Value (Development Build): </b>File<br>
+ <b>Recommended Default Value (Release Build): </b>File<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/Yes<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Case Sensitive?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>If you specify &quot;File&quot;,
+ trace messagesare written into the file specified by the
+ configuration option traceFilePath. If you specify
+ &quot;Log&quot;, trace messages are written to the
+ OpenPegasus Log.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/TracePropertyOwner.cpp<br>
+</ul>
+
+<h5>traceFilePath</h5>
+<ul>
+ <b>Description:&nbsp;</b>Specifies the location of the
+ OpenPegasus trace file.<br>
+ <b>Default Value:&nbsp;</b>cimserver.trc<br>
+ <b>Recommended Default Value (Development Build):</b>
+ cimserver.trc<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $TRACEDIR/cimserver.trc<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build):</b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>Yes<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/TracePropertyOwner.cpp<br>
+</ul>
+
+<h5>traceLevel</h5>
+<ul>
+ <b>Description:&nbsp;</b></b>Defines the desired level of
+ tracing. Valid values include: 0, 1, 2, 3, 4, 5.<br>
+ <b>Default Value:&nbsp;</b>0<br>
+ <b>Recommended Default Value (Development Build): </b>0<br>
+ <b>Recommended Default Value (Release Build): </b>0<<br>
+ <b>Recommend To Be Fixed/Hidden (Development Build): </b>No/No<br>
+ <b>Recommend To Be Fixed/Hidden (Release Build): </b>No/Yes<br>
+ <b>Dynamic?:&nbsp;</b>Yes<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Config/TracePropertyOwner.cpp<br>
+</ul>
+
+<h3>Configuration Constants</h3>
+
+<h4>Definitions</h4>
+
+<h5>static char CURRENT_CONFIG_FILE [] = </h5>
+<ul>
+ <b>Description:&nbsp;</b>Default file name for the current
+ configuration file.<br>
+ <b>Recommended Default Value (Development Build):</b>
+ cimserver_current.conf<br>
+ <b>Recommended Default Value (Release Build): </b>
+ $CONFIGDIR/cimserver_current.conf<br>
+ <b>Dynamic?:&nbsp;</b>No&nbsp;<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">ConfigFileDirHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>static char PLANNED_CONFIG_FILE [] = </h5>
+<ul>
+ <b>Description:&nbsp;</b>Default file name for the planned
+ configuration file.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ cimserver_planned.conf<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CONFIGDIR/cimserver_planned.conf<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h5>static char CIMSERVER_START_FILE [] = </h5>
+<ul>
+ <b>Description:&nbsp;</b>This is for the default file name
+ for the cimserver startup file containing the PID.<br>
+ <b>Default Value:&nbsp;</b>/tmp/cimserver_start.conf<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ /tmp/cimserver_start.conf<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $PIDFILE<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <br>
+ <table border="1" cellspacing="1" bordercolordark="#666666"
+ bordercolorlight="#CCCCCC" width=531
+ style='font-size=10.0pt;font-family:Arial'>
+ <tr>
+ <th bgcolor="#CAE6CA" width="168">Platform</th>
+ <th bgcolor="#CAE6CA" width=350>
+ Source Configuration File</th>
+ </tr>
+ <tr align="center">
+ <td width="168">Linux</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirLinux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">HP-UX</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirHpux.h</td>
+ </tr>
+ <tr align="center">
+ <td width="168">OpenVMS</td>
+ <td align="left" width="350">
+ Pegasus/Config/ConfigFileDirVms.h</td>
+ </tr>
+ </table>
+</ul>
+
+<h3>Configuration Macros</h3>
+
+<h4>Definitions</h4>
+
+<h5>PEGASUS_SSLCLIENT_CERTIFICATEFILE</h5>
+<ul>
+ <b>Description:&nbsp;</b><br>
+ <b>Recommended Default Value (Development Build): </b>client.pem<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $CERTIFICATEDIR/client.pem<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Common/Constants.h<br>
+</ul>
+
+<h5>PEGASUS_SSLCLIENT_RANDOMFILE</h5>
+<ul>
+ <b>Description:&nbsp;</b>On platforms that do not support
+ /dev/random or /dev/urandom, OpenSSL will use this file to
+ seed the PRNG (Pseudo-Random Number Generator). This
+ PEGASUS_SSLCLIENT_RANDOMFILE defines the default CIM
+ Client random file.<br>
+ <b>Recommended Default Value (Development Build):</b>ssl.rnd<br>
+ <b>Recommended Default Value (Release Build):</b>
+ $RANDOMDIR/ssl.rnd<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>Use of this variable requires&nbsp;
+ PEGASUS_HAS_SSL to be set.&nbsp; CIM Client use of a
+ shared random file is not recommended.&nbsp; On systems where
+ /dev/random or /dev/urandom are not available, CIM Clients are
+ encouraged to generate a unique random file which
+ contains sufficient entropy.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Common/Constants.h<br>
+</ul>
+
+<h5>PEGASUS_SSLSERVER_RANDOMFILE</h5>
+<ul>
+ <b>Description:&nbsp;</b>On platforms that do not support
+ /dev/random or /dev/urandom, OpenSSL will use this file
+ to seed the PRNG (Pseudo-Random Number Generator). This
+ PEGASUS_SSLSERVER_RANDOMFILE defines the CIM Server
+ random file.<br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ cimserver.rnd<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $RANDOMDIR/cimserver.rnd<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Considerations:&nbsp;</b>1)Use of this variable
+ requires&nbsp; PEGASUS_HAS_SSL to be set.(2) On systems where
+ /dev/random or /dev/urandom are not available, CIM Server
+ vendors need to be sure that the cimserver.rnd file
+ contains sufficient entropy and is uniquely generated for
+ each system.<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Common/Constants.h<b><br>
+</ul>
+
+<h5>PEGASUS_LOCAL_AUTH_DIR</h5>
+<ul>
+ <b>Description:</b>&nbsp;</b>For local connections (i.e.,
+ connectLocal), OpenPegasus uses a file-based authentication
+ mechanism.<br>
+ <b>Recommended Default Value (Development Build): </b>/tmp<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $LOCALAUTHDIR/localauth<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Common/Constants.h<br>
+</ul>
+
+<h5>PEGASUS_LOCAL_DOMAIN_SOCKET_PATH</h5>
+<ul>
+ <b>Description:&nbsp;</b><br>
+ <b>Recommended Default Value (Development Build):&nbsp;</b>
+ /tmp/cimxml.socket<br>
+ <b>Recommended Default Value (Release Build):&nbsp;</b>
+ $SOCKETDIR/cimxml.socket<br>
+ <b>Dynamic?:&nbsp;</b>No<br>
+ <b>Source Configuration File:&nbsp;</b>
+ Pegasus/Common/Constants.h<br>
+</ul>
+
+<hr>
+<p><font size="2">
+Copyright (c) 2004 EMC Corporation; Hewlett-Packard Development
+Company, L.P.; IBM Corp.; The Open Group; VERITAS Software Corporation<br>
+Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+EMC Corporation; Symantec Corporation; The Open Group.<br>
+<br>
+Permission is hereby granted, free of charge, to any person
+obtaining a copy&nbsp; of this software and associated documentation files
+(the &quot;Software&quot;), 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:
+<br><br>
+THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED
+IN ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE
+SOFTWARE IS PROVIDED&nbsp; &quot;AS IS&quot;, 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.
+</font></p>
+
+<hr>
+<p>Template last modified: January 20th 2004 by Martin Kirk<br>Template version: 1.6</p>
+
+</body>
+</html>
diff --git a/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp b/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp
index 09681dd..cc4c34f 100644
--- a/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp
+++ b/src/Pegasus/Server/CIMOperationRequestDispatcher.cpp
@@ -27,13 +27,14 @@
// 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.
//
-//==============================================================================
+//=============================================================================
//
-//%/////////////////////////////////////////////////////////////////////////////
+//%////////////////////////////////////////////////////////////////////////////
#include "CIMOperationRequestDispatcher.h"
#include <Pegasus/Common/Constants.h>
+#include <Pegasus/WsmServer/WsmConstants.h>
#include <Pegasus/Common/XmlReader.h> // stringToValue(), stringArrayToValue()
#include <Pegasus/Common/ContentLanguageList.h>
#include <Pegasus/Common/MessageLoader.h>
@@ -45,6 +46,8 @@
PEGASUS_NAMESPACE_BEGIN
+#define CSTRING(ARG) (const char*) ARG.getCString()
+
static DynamicRoutingTable _routing_table;
// Local save for host name. save host name here. NOTE: Problem if hostname
@@ -179,14 +182,15 @@ void OperationAggregate::resequenceResponse(CIMResponseMessage& response)
_totalReceivedNotSupported++;
}
_totalReceivedErrors++;
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::TRACE,
- "$0: Response has error. Namespace: $1, Class name: $2, "
- "Response Sequence: $3",
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
+ "%s: Response has error. Namespace: %s, Class name: %s, "
+ "Response Sequence: %s",
func,
- _nameSpace.getString(),
- _className.getString(),
- _totalReceived));
+ CSTRING(_nameSpace.getString()),
+ CSTRING(_className.getString()),
+ (_totalReceived) ? "true" : "false"));
}
Boolean isComplete = response.isComplete();
@@ -227,19 +231,8 @@ void OperationAggregate::resequenceResponse(CIMResponseMessage& response)
}
else
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
- "$0: All completed responses ($1) for current request "
- "have been accounted for but expected count ($2) does "
- "not match the received count ($3). error count ($4). "
- "Attempting to continue ...",
- func,
- _totalReceivedComplete,
- _totalReceivedExpected,
- _totalReceived,
- _totalReceivedErrors));
PEG_TRACE((
- TRC_DISCARDED_DATA, Tracer::LEVEL2,
+ TRC_DISCARDED_DATA, Tracer::LEVEL1,
"All completed responses (%u) for current request "
"have been accounted for but expected count (%u) does "
"not match the received count (%u). error count (%u).",
@@ -384,7 +377,7 @@ void CIMOperationRequestDispatcher::_getProviderName(
}
CIMConstInstance provider = pidc.getProvider();
- pos = provider.findProperty("Name");
+ pos = provider.findProperty(PEGASUS_PROPERTYNAME_NAME);
if (pos != PEG_NOT_FOUND)
{
provider.getProperty(pos).getValue().get(providerName);
@@ -686,11 +679,13 @@ Boolean CIMOperationRequestDispatcher::_enqueueResponse(
default:
static const char failMsg[] =
"Invalid response type to aggregate: ";
- char typeP[11];
- sprintf(typeP,"%u", type);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::TRACE,
- String(func) + String(failMsg) + String(typeP)));
+ PEG_TRACE((
+ TRC_DISCARDED_DATA,
+ Tracer::LEVEL1,
+ "%s%s%u",
+ func,
+ failMsg,
+ type));
PEGASUS_ASSERT(0);
break;
} // switch
@@ -726,7 +721,8 @@ Boolean CIMOperationRequestDispatcher::_enqueueResponse(
const char* name = q ? q->getQueueName() : 0;
Boolean isDestinationQueueAsync = !(name &&
(strcmp(name, PEGASUS_QUEUENAME_BINARY_HANDLER) == 0 ||
- strcmp(name, PEGASUS_QUEUENAME_INTERNALCLIENT) == 0));
+ strcmp(name, PEGASUS_QUEUENAME_INTERNALCLIENT) == 0 ||
+ strcmp(name, PEGASUS_QUEUENAME_WSMPROCESSOR) == 0));
// for non-async queues, we'll just keep appending until all responses
// have come in
@@ -765,8 +761,12 @@ Boolean CIMOperationRequestDispatcher::_enqueueResponse(
{
static const char failMsg[] =
"Failed to resequence/aggregate/forward response";
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::TRACE, String(func) + String(failMsg)));
+ PEG_TRACE((
+ TRC_DISCARDED_DATA,
+ Tracer::LEVEL1,
+ "%s%s",
+ func,
+ failMsg));
if (response->cimException.getCode() != CIM_ERR_SUCCESS)
response->cimException =
@@ -908,7 +908,7 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
PEGASUS_QUEUENAME_CONTROLSERVICE);
#endif
-#ifndef PEGASUS_DISABLE_CQL
+#ifdef PEGASUS_ENABLE_CQL
_routing_table.insert_record(
PEGASUS_CLASSNAME_CIMQUERYCAPABILITIES,
//PEGASUS_NAMESPACENAME_CIMQUERYCAPABILITIES,
@@ -1051,8 +1051,8 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
PEGASUS_QUEUENAME_CONTROLSERVICE);
_routing_table.insert_record(
- PEGASUS_CLASSNAME_PG_REGISTEREDSUBPROFILE,
- PEGASUS_NAMESPACENAME_INTEROP,
+ PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE,
+ _wild,
DynamicRoutingTable::INTERNAL,
0,
static_cast<MessageQueueService*>(
@@ -1061,7 +1061,17 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
PEGASUS_QUEUENAME_CONTROLSERVICE);
_routing_table.insert_record(
- PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE,
+ PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE_RP_RP,
+ _wild,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(
+ MessageQueue::lookup(PEGASUS_QUEUENAME_CONTROLSERVICE)),
+ PEGASUS_MODULENAME_INTEROPPROVIDER,
+ PEGASUS_QUEUENAME_CONTROLSERVICE);
+
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_PG_PROVIDERPROFILECAPABILITIES,
_wild,
DynamicRoutingTable::INTERNAL,
0,
@@ -1111,6 +1121,38 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
PEGASUS_QUEUENAME_CONTROLSERVICE);
#endif // PEGASUS_ENABLE_SLP
+#ifdef PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_PG_ELEMENTCAPABILITIES,
+ PEGASUS_NAMESPACENAME_INTEROP,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(
+ MessageQueue::lookup(PEGASUS_QUEUENAME_CONTROLSERVICE)),
+ PEGASUS_MODULENAME_INTEROPPROVIDER,
+ PEGASUS_QUEUENAME_CONTROLSERVICE);
+
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_PG_HOSTEDINDICATIONSERVICE,
+ PEGASUS_NAMESPACENAME_INTEROP,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(
+ MessageQueue::lookup(PEGASUS_QUEUENAME_CONTROLSERVICE)),
+ PEGASUS_MODULENAME_INTEROPPROVIDER,
+ PEGASUS_QUEUENAME_CONTROLSERVICE);
+
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_PG_SERVICEAFFECTSELEMENT,
+ PEGASUS_NAMESPACENAME_INTEROP,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(
+ MessageQueue::lookup(PEGASUS_QUEUENAME_CONTROLSERVICE)),
+ PEGASUS_MODULENAME_INTEROPPROVIDER,
+ PEGASUS_QUEUENAME_CONTROLSERVICE);
+#endif
+
_routing_table.insert_record(
PEGASUS_CLASSNAME_PROVIDERMODULE,
PEGASUS_NAMESPACENAME_PROVIDERREG,
@@ -1153,6 +1195,27 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
if (_enableIndicationService)
{
+#ifdef PEGASUS_ENABLE_DMTF_INDICATION_PROFILE_SUPPORT
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_CIM_INDICATIONSERVICE,
+ PEGASUS_NAMESPACENAME_INTEROP,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(MessageQueue::lookup(
+ PEGASUS_QUEUENAME_INDICATIONSERVICE)),
+ String::EMPTY,
+ PEGASUS_QUEUENAME_INDICATIONSERVICE);
+
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_CIM_INDICATIONSERVICECAPABILITIES,
+ PEGASUS_NAMESPACENAME_INTEROP,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(MessageQueue::lookup(
+ PEGASUS_QUEUENAME_INDICATIONSERVICE)),
+ String::EMPTY,
+ PEGASUS_QUEUENAME_INDICATIONSERVICE);
+#endif
_routing_table.insert_record(
PEGASUS_CLASSNAME_INDSUBSCRIPTION,
_wild,
@@ -1242,6 +1305,28 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
PEGASUS_QUEUENAME_INDICATIONSERVICE)),
String::EMPTY,
PEGASUS_QUEUENAME_INDICATIONSERVICE);
+
+#ifdef PEGASUS_ENABLE_INDICATION_COUNT
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_PROVIDERINDDATA,
+ PEGASUS_NAMESPACENAME_INTERNAL,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(MessageQueue::lookup(
+ PEGASUS_QUEUENAME_INDICATIONSERVICE)),
+ String::EMPTY,
+ PEGASUS_QUEUENAME_INDICATIONSERVICE);
+
+ _routing_table.insert_record(
+ PEGASUS_CLASSNAME_SUBSCRIPTIONINDDATA,
+ PEGASUS_NAMESPACENAME_INTERNAL,
+ DynamicRoutingTable::INTERNAL,
+ 0,
+ static_cast<MessageQueueService*>(MessageQueue::lookup(
+ PEGASUS_QUEUENAME_INDICATIONSERVICE)),
+ String::EMPTY,
+ PEGASUS_QUEUENAME_INDICATIONSERVICE);
+#endif
}
_initialized = 1;
}
@@ -1255,9 +1340,10 @@ Boolean CIMOperationRequestDispatcher::_lookupInternalProvider(
0,
provider,
service);
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Internal provider Service = " + service + " provider " + provider +
- " found.");
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Internal provider Service = %s provider %s found.",
+ (const char*)service.getCString(),
+ (const char*)provider.getCString()));
PEG_METHOD_EXIT();
return (router != 0);
@@ -1293,12 +1379,13 @@ Array<CIMName> CIMOperationRequestDispatcher::_getSubClassNames(
// getSubClassNames throws an exception if the class does not exist
_repository->getSubClassNames(nameSpace,
className, true, subClassNames);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
"CIMOperationRequestDispatcher::_getSubClassNames - "
- "Namespace: $0 Class name: $1",
- nameSpace.getString(),
- className.getString()));
+ "Namespace: %s Class name: %s",
+ CSTRING(nameSpace.getString()),
+ CSTRING(className.getString())));
}
// Prepend the array with the classname that formed the array.
subClassNames.prepend(className);
@@ -1390,14 +1477,12 @@ Array<ProviderInfo> CIMOperationRequestDispatcher::_lookupAllInstanceProviders(
{
providerCount++;
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "Provider found for class = " +
- providerInfo.className.getString() +
- " servicename = " + providerInfo.serviceName +
- " controlProviderName = " +
- providerInfo.controlProviderName);
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL4,
+ "Provider found for class = %s servicename = %s "
+ "controlProviderName = %s",
+ (const char*)providerInfo.className.getString().getCString(),
+ (const char*)providerInfo.serviceName.getCString(),
+ (const char*)providerInfo.controlProviderName.getCString()));
}
providerInfoList.append(providerInfo);
@@ -1441,10 +1526,8 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
if (router)
{
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "providerName = " + providerName + " found.");
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL4,
+ "providerName = %s found.",(const char*)providerName.getCString()));
providerInfo.serviceName = serviceName;
providerInfo.controlProviderName = providerName;
@@ -1494,8 +1577,6 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
new ProviderIdContainer(pmInstance, pInstance));
#endif
- Uint32 pos = PEG_NOT_FOUND;
-
#ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION
if (_enableNormalization)
{
@@ -1507,6 +1588,7 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
String interfaceType;
String interfaceVersion;
+ Uint32 pos = PEG_NOT_FOUND;
// get the provder interface type
if ((pos = pmInstance.findProperty("InterfaceType")) !=
@@ -1552,8 +1634,9 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
String moduleName;
- // get the provder module name
- if ((pos = pmInstance.findProperty("Name")) != PEG_NOT_FOUND)
+ // get the provider module name
+ if ((pos = pmInstance.findProperty(PEGASUS_PROPERTYNAME_NAME)) !=
+ PEG_NOT_FOUND)
{
pmInstance.getProperty(pos).getValue().get(moduleName);
}
@@ -1571,13 +1654,11 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
}
}
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "Normalization for provider module " + moduleName + " is " +
- (providerInfo.hasProviderNormalization ?
- "enabled" : "disabled") +
- ".");
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL4,
+ "Normalization for provider module %s is %s.",
+ (const char*)moduleName.getCString(),
+ (providerInfo.hasProviderNormalization ?
+ "enabled" : "disabled")));
}
#endif
PEG_METHOD_EXIT();
@@ -1585,10 +1666,9 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupInstanceProvider(
return providerInfo;
}
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "Provider for " + className.getString() + " not found.");
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL2,
+ "Provider for %s not found.",
+ (const char*)className.getString().getCString()));
PEG_METHOD_EXIT();
@@ -1639,24 +1719,17 @@ ProviderInfo CIMOperationRequestDispatcher::_lookupNewInstanceProvider(
className);
}
- PEG_TRACE_STRING(
+ PEG_TRACE((
TRC_DISPATCHER,
Tracer::LEVEL4,
- "Lookup Provider = " + providerInfo.serviceName +
- " provider " + providerInfo.controlProviderName + " found."
- + " return = " + (providerInfo.hasProvider ? "true" : "false"));
-
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
"CIMOperationRequestDispatcher::_lookupNewInstanceProvider - "
- "Namespace: $0 Class Name: $1 Service Name: $2 "
- "Provider Name: $3",
- nameSpace.getString(),
- className.getString(),
- providerInfo.serviceName,
- providerInfo.controlProviderName));
+ "Namespace: %s Class Name: %s Service Name: %s "
+ "Provider Name: %s found. hasProvider = %s",
+ CSTRING(nameSpace.getString()),
+ CSTRING(className.getString()),
+ CSTRING(providerInfo.serviceName),
+ CSTRING(providerInfo.controlProviderName),
+ (providerInfo.hasProvider ? "true" : "false")));
PEG_METHOD_EXIT();
@@ -1686,8 +1759,8 @@ String CIMOperationRequestDispatcher::_lookupMethodProvider(
serviceName);
if (router)
{
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "providerName = " + providerName + " found.");
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "providerName = %s found.",(const char*)providerName.getCString()));
PEG_METHOD_EXIT();
return providerName;
}
@@ -1700,9 +1773,11 @@ String CIMOperationRequestDispatcher::_lookupMethodProvider(
#ifdef PEGASUS_ENABLE_REMOTE_CMPI
String remoteInformation;
Boolean isRemote = false;
- isRemote = _repository->isRemoteNameSpace(nameSpace, remoteInformation);
+ isRemote = _repository->isRemoteNameSpace(
+ nameSpace,
+ remoteInformation);
if (isRemote)
- providercontainer = new ProviderIdContainer(
+ providercontainer = new ProviderIdContainer(
pmInstance, pInstance, isRemote, remoteInformation);
else
providercontainer = new ProviderIdContainer(pmInstance, pInstance);
@@ -1711,7 +1786,7 @@ String CIMOperationRequestDispatcher::_lookupMethodProvider(
#endif
(*providerIdContainer) = providercontainer;
// get the provder name
- Uint32 pos = pInstance.findProperty(CIMName ("Name"));
+ Uint32 pos = pInstance.findProperty(PEGASUS_PROPERTYNAME_NAME);
if (pos != PEG_NOT_FOUND)
{
@@ -1763,9 +1838,10 @@ Array<ProviderInfo>
Array<ProviderInfo> providerInfoList;
CIMName className = objectName.getClassName();
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Association Class Lookup for Class " + className.getString() +
- " and assocClass " + assocClass.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Association Class Lookup for Class %s and assocClass %s",
+ (const char*)className.getString().getCString(),
+ (const char*)assocClass.getString().getCString()));
// The association class is the basis for association registration.
// When an association class request is received by the CIMOM the target
@@ -1798,12 +1874,12 @@ Array<ProviderInfo>
}
catch (...)
{
- Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL1,
"CIMOperationRequestDispatcher::lookupAllAssociationProvider "
- "exception. Namespace: $0 Object Name: $1 Assoc Class: $2",
- nameSpace.getString(),
- objectName.toString(),
- assocClass.getString());
+ "exception. Namespace: %s Object Name: %s Assoc Class: %s",
+ (const char*)nameSpace.getString().getCString(),
+ (const char*)objectName.toString().getCString(),
+ (const char*)assocClass.getString().getCString()));
throw;
}
@@ -1840,15 +1916,6 @@ Array<ProviderInfo>
pi.hasProvider = true;
pi.providerIdContainer.reset(container);
providerCount++;
-
- // ATTN: Do not need this trace. The _LookupNewAssoc Function
- // should handle it.
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Provider found for Class = " + classNames[i].getString() +
- " servicename = " + serviceName +
- " controlProviderName = " +
- ((controlProviderName.size()) ? controlProviderName
- : String("None")));
}
else
{
@@ -1883,15 +1950,15 @@ Boolean CIMOperationRequestDispatcher::_lookupNewAssociationProvider(
{
PEG_METHOD_ENTER(TRC_DISPATCHER,
"CIMOperationRequestDispatcher::_lookupNewAssociationProvider");
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "assocClass = " + assocClass.getString());
Boolean hasProvider = false;
String providerName;
// Check for class provided by an internal provider
if (_lookupInternalProvider(
nameSpace, assocClass, serviceName, controlProviderName))
+ {
hasProvider = true;
+ }
else
{
// get provider for class. Note that we reduce it from
@@ -1907,14 +1974,24 @@ Boolean CIMOperationRequestDispatcher::_lookupNewAssociationProvider(
}
}
- if (providerName != String::EMPTY)
+ if (0 != providerName.size())
{
serviceName = PEGASUS_QUEUENAME_PROVIDERMANAGER_CPP;
hasProvider = true;
}
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Lookup Provider = " + serviceName + " provider " + providerName +
- " found." + " return = " + (hasProvider? "true" : "false"));
+
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
+ "Provider %s for class=\"%s\" in namespace \"%s\"."
+ " servicename=\"%s\" provider = \"%s\" controlProvider = \"%s\"",
+ (hasProvider? "found" : "NOT found"),
+ CSTRING(assocClass.getString()),
+ CSTRING(nameSpace.getString()),
+ CSTRING(serviceName),
+ (providerName.size() ? CSTRING(providerName) : "none"),
+ (controlProviderName.size() ? CSTRING(controlProviderName) : "none")));
+
PEG_METHOD_EXIT();
return hasProvider;
@@ -1946,7 +2023,7 @@ Array<String> CIMOperationRequestDispatcher::_lookupAssociationProvider(
Array<String> providerNames;
String providerName;
- // Isolate the provider names from the response and return list of providers
+ //Isolate the provider names from the response and return list of providers
Boolean returnValue =
_providerRegistrationManager->lookupAssociationProvider(
nameSpace, assocClass, pInstances, pmInstances);
@@ -1988,15 +2065,16 @@ Array<String> CIMOperationRequestDispatcher::_lookupAssociationProvider(
(*providerIdContainer) = providercontainer;
}
// get the provider name
- Uint32 pos = pInstances[i].findProperty(CIMName ("Name"));
+ Uint32 pos = pInstances[i].findProperty(PEGASUS_PROPERTYNAME_NAME);
if ( pos != PEG_NOT_FOUND )
{
pInstances[i].getProperty(pos).getValue().get(providerName);
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Association providerName = " + providerName + " found." +
- " for Class " + assocClass.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Association providerName = %s found for Class %s",
+ (const char*)providerName.getCString(),
+ (const char*)assocClass.getString().getCString()));
providerNames.append(providerName);
}
}
@@ -2004,9 +2082,10 @@ Array<String> CIMOperationRequestDispatcher::_lookupAssociationProvider(
if (providerNames.size() == 0)
{
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Association Provider NOT found for Class " + assocClass.getString()
- + " in nameSpace " + nameSpace.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL2,
+ "Association Provider NOT found for Class %s in nameSpace %s",
+ (const char*)assocClass.getString().getCString(),
+ (const char*)nameSpace.getString().getCString()));
}
PEG_METHOD_EXIT();
return providerNames;
@@ -2181,18 +2260,17 @@ void CIMOperationRequestDispatcher::_forwardRequestToService(
new AsyncLegacyOperationStart(
op,
serviceIds[0],
- request,
- this->getQueueId());
+ request);
asyncRequest->dest = serviceIds[0];
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL3,
- "Forwarding " + String(MessageTypeToString(request->getType())) +
- " to service " + serviceName + ". Response should go to queue " +
- ((MessageQueue::lookup(request->queueIds.top())) ?
- String(((MessageQueue::lookup(
- request->queueIds.top()))->getQueueName()) ) :
- String("BAD queue name")));
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
+ "Forwarding %s to service %s. Response should go to queue %s.",
+ MessageTypeToString(request->getType()),
+ (const char*)serviceName.getCString(),
+ ((MessageQueue::lookup(request->queueIds.top())) ?
+ ((MessageQueue::lookup(request->queueIds.top()))->getQueueName()) :
+ "BAD queue name")));
SendAsync(
op,
@@ -2246,17 +2324,15 @@ void CIMOperationRequestDispatcher::_forwardRequestForAggregation(
new AsyncLegacyOperationStart(
op,
serviceIds[0],
- request,
- this->getQueueId());
-
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL3,
- "Forwarding " + String(MessageTypeToString(request->getType())) +
- " to service " + serviceName +
- ". Response should go to queue " +
- ((MessageQueue::lookup(request->queueIds.top())) ?
- String(((MessageQueue::lookup(
- request->queueIds.top()))->getQueueName())) :
- String("BAD queue name")));
+ request);
+
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
+ "Forwarding %s to service %s. Response should go to queue %s.",
+ MessageTypeToString(request->getType()),
+ (const char*)serviceName.getCString(),
+ ((MessageQueue::lookup(request->queueIds.top())) ?
+ ((MessageQueue::lookup(request->queueIds.top()))->getQueueName()) :
+ "BAD queue name")));
SendAsync(
op,
@@ -2276,14 +2352,15 @@ void CIMOperationRequestDispatcher::_forwardRequestForAggregation(
controlProviderName,
request);
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL3,
- "Forwarding " + String(MessageTypeToString(request->getType())) +
- " to service " + serviceName + ", control provider " +
- controlProviderName + ". Response should go to queue " +
- ((MessageQueue::lookup(request->queueIds.top())) ?
- String(((MessageQueue::lookup(
- request->queueIds.top()))->getQueueName())) :
- String("BAD queue name")));
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
+ "Forwarding %s to service %s, control provider %s. "
+ "Response should go to queue %s.",
+ MessageTypeToString(request->getType()),
+ (const char*)serviceName.getCString(),
+ (const char*)controlProviderName.getCString(),
+ ((MessageQueue::lookup(request->queueIds.top())) ?
+ ((MessageQueue::lookup(request->queueIds.top()))->getQueueName()) :
+ "BAD queue name")));
SendAsync(
op,
@@ -2328,19 +2405,19 @@ void CIMOperationRequestDispatcher::_forwardRequestToProviderManager(
new AsyncLegacyOperationStart(
op,
serviceIds[0],
- request,
- this->getQueueId());
+ request);
asyncRequest->dest = serviceIds[0];
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL3,
- "Forwarding " + String(MessageTypeToString(request->getType())) +
- " on class " + className.getString() + " to service " +
- serviceName + ". Response should go to queue " +
- ((MessageQueue::lookup(request->queueIds.top())) ?
- String(((MessageQueue::lookup(
- request->queueIds.top()))->getQueueName())) :
- String("BAD queue name")));
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
+ "Forwarding %s on class %s to service %s. "
+ "Response should go to queue %s.",
+ MessageTypeToString(request->getType()),
+ (const char*)className.getString().getCString(),
+ (const char*)serviceName.getCString(),
+ ((MessageQueue::lookup(request->queueIds.top())) ?
+ ((MessageQueue::lookup(request->queueIds.top()))->getQueueName()) :
+ "BAD queue name")));
SendAsync(
op,
@@ -2360,15 +2437,17 @@ void CIMOperationRequestDispatcher::_forwardRequestToProviderManager(
controlProviderName,
request);
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL3,
- "Forwarding " + String(MessageTypeToString(request->getType())) +
- " on class " + className.getString() + " to service " +
- serviceName + ", control provider " + controlProviderName +
- ". Response should go to queue " +
- ((MessageQueue::lookup(request->queueIds.top())) ?
- String(((MessageQueue::lookup(
- request->queueIds.top()))->getQueueName())) :
- String("BAD queue name")));
+
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
+ "Forwarding %s on class %s to service %s, control provider %s. "
+ "Response should go to queue %s.",
+ MessageTypeToString(request->getType()),
+ (const char*)className.getString().getCString(),
+ (const char*)serviceName.getCString(),
+ (const char*)controlProviderName.getCString(),
+ ((MessageQueue::lookup(request->queueIds.top())) ?
+ ((MessageQueue::lookup(request->queueIds.top()))->getQueueName()) :
+ "BAD queue name")));
// Send to the Control provider
SendAsync(
@@ -2398,7 +2477,7 @@ void CIMOperationRequestDispatcher::_enqueueResponse(
PEG_TRACE((
TRC_HTTP,
- Tracer::LEVEL3,
+ Tracer::LEVEL4,
"_CIMOperationRequestDispatcher::_enqueueResponse - "
"request->getCloseConnect() returned %d",
request->getCloseConnect()));
@@ -2427,8 +2506,10 @@ void CIMOperationRequestDispatcher::handleEnqueue(Message* request)
PEGASUS_ASSERT(request != 0);
PEGASUS_DEBUG_ASSERT(request->magic);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
- "CIMOperationRequestDispatcher::handleEnqueue - Case: $0",
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
+ "CIMOperationRequestDispatcher::handleEnqueue - Case: %u",
request->getType()));
CIMOperationRequestMessage* opRequest =
@@ -2640,12 +2721,13 @@ void CIMOperationRequestDispatcher::handleGetClassRequest(
request->includeClassOrigin,
request->propertyList);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleGetClassRequest - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->className.getString()));
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->className.getString())));
AutoPtr<CIMGetClassResponseMessage> response(
dynamic_cast<CIMGetClassResponseMessage*>(
@@ -2681,15 +2763,15 @@ void CIMOperationRequestDispatcher::handleGetInstanceRequest(
if (checkClassException.getCode() != CIM_ERR_SUCCESS)
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
"CIMOperationRequestDispatcher::handleGetInstanceRequest - "
- "CIM exist exception has occurred. Namespace: $0 "
- "Class Name: $1",
- request->nameSpace.getString(),
- className.getString()));
+ "CIM exist exception has occurred. Namespace: %s "
+ "Class Name: %s Exception message: \"%s\"",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(className.getString()),
+ CSTRING(checkClassException.getMessage())));
CIMResponseMessage* response = request->buildResponse();
response->cimException = checkClassException;
@@ -2762,7 +2844,7 @@ void CIMOperationRequestDispatcher::handleGetInstanceRequest(
{
CIMResponseMessage* response = request->buildResponse();
response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY),
+ PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
_enqueueResponse(request, response);
}
@@ -2784,12 +2866,13 @@ void CIMOperationRequestDispatcher::handleDeleteClassRequest(
request->nameSpace,
request->className);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleDeleteClassRequest - "
- "Namespace: $0 Class Name: $1",
- request->nameSpace.getString(),
- request->className.getString()));
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->className.getString())));
AutoPtr<CIMDeleteClassResponseMessage> response(
dynamic_cast<CIMDeleteClassResponseMessage*>(
@@ -2815,15 +2898,14 @@ void CIMOperationRequestDispatcher::handleDeleteInstanceRequest(
if (!_checkExistenceOfClass(request->nameSpace, className))
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
"CIMOperationRequestDispatcher::handleDeleteInstanceRequest - "
- "CIM exist exception has occurred. Namespace: $0 "
- "Class Name: $1",
- request->nameSpace.getString(),
- className.getString()));
+ "CIM class does not exist exception has occurred. "
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(className.getString())));
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION(
@@ -2867,15 +2949,14 @@ void CIMOperationRequestDispatcher::handleDeleteInstanceRequest(
_repository->deleteInstance(
request->nameSpace,
request->instanceName);
-
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleDeleteInstanceRequest - "
- "Namespace: $0 Instance Name: $1",
- request->nameSpace.getString(),
- request->instanceName.toString()));
+ "Namespace: %s Instance Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->instanceName.toString())));
AutoPtr<CIMDeleteInstanceResponseMessage> response(
dynamic_cast<CIMDeleteInstanceResponseMessage*>(
@@ -2887,7 +2968,7 @@ void CIMOperationRequestDispatcher::handleDeleteInstanceRequest(
{
CIMResponseMessage* response = request->buildResponse();
response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY),
+ PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
_enqueueResponse(request, response);
}
@@ -2913,12 +2994,13 @@ void CIMOperationRequestDispatcher::handleCreateClassRequest(
((ContentLanguageListContainer)request->operationContext.get(
ContentLanguageListContainer::NAME)).getLanguages());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleCreateClassRequest - "
- "Namespace: $0 Class Name: $1",
- request->nameSpace.getString(),
- request->newClass.getClassName().getString()));
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->className.getString())));
AutoPtr<CIMCreateClassResponseMessage> response(
dynamic_cast<CIMCreateClassResponseMessage*>(
@@ -2944,15 +3026,14 @@ void CIMOperationRequestDispatcher::handleCreateInstanceRequest(
if (!_checkExistenceOfClass(request->nameSpace, className))
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
"CIMOperationRequestDispatcher::handleCreateInstanceRequest - "
- "CIM exist exception has occurred. Namespace: $0 "
- "Class Name: $1",
- request->nameSpace.getString(),
- className.getString()));
+ "CIM class does not exist exception has occurred. "
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(className.getString())));
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION(
@@ -3000,15 +3081,14 @@ void CIMOperationRequestDispatcher::handleCreateInstanceRequest(
request->newInstance,
((ContentLanguageListContainer)request->operationContext.get(
ContentLanguageListContainer::NAME)).getLanguages());
-
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleCreateInstanceRequest - "
- "Namespace: $0 Instance name: $1",
- request->nameSpace.getString(),
- request->newInstance.getClassName().getString()));
+ "Namespace: %s Instance Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->newInstance.getClassName().getString())));
AutoPtr<CIMCreateInstanceResponseMessage> response(
dynamic_cast<CIMCreateInstanceResponseMessage*>(
@@ -3059,7 +3139,6 @@ void CIMOperationRequestDispatcher::handleModifyClassRequest(
/**$*******************************************************
handleModifyInstanceRequest
- ATTN: FIX LOOKUP
**********************************************************/
void CIMOperationRequestDispatcher::handleModifyInstanceRequest(
@@ -3068,22 +3147,18 @@ void CIMOperationRequestDispatcher::handleModifyInstanceRequest(
PEG_METHOD_ENTER(TRC_DISPATCHER,
"CIMOperationRequestDispatcher::handleModifyInstanceRequest");
- // ATTN: Who makes sure the instance name and the instance match?
- // ATTN: KS May 28. Change following to reflect new instancelookup
- // get the class name
CIMName className = request->modifiedInstance.getClassName();
if (!_checkExistenceOfClass(request->nameSpace, className))
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
"CIMOperationRequestDispatcher::handleModifyInstanceRequest - "
- "CIM exist exception has occurred. Namespace: $0 "
- "Class Name: $1",
- request->nameSpace.getString(),
- className.getString()));
+ "CIM class does not exist exception has occurred. "
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(className.getString())));
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION(
@@ -3130,14 +3205,13 @@ void CIMOperationRequestDispatcher::handleModifyInstanceRequest(
((ContentLanguageListContainer)request->operationContext.get(
ContentLanguageListContainer::NAME)).getLanguages());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleModifyInstanceRequest - "
- "Namespace: $0 Instance name: $1",
- request->nameSpace.getString(),
- request->modifiedInstance.getClassName().getString()));
+ "Namespace: %s Instance Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->modifiedInstance.getClassName().getString())));
AutoPtr<CIMModifyInstanceResponseMessage> response(
dynamic_cast<CIMModifyInstanceResponseMessage*>(
@@ -3176,12 +3250,13 @@ void CIMOperationRequestDispatcher::handleEnumerateClassesRequest(
request->includeQualifiers,
request->includeClassOrigin);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleEnumerateClassesRequest - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->className.getString()));
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->className.getString())));
AutoPtr<CIMEnumerateClassesResponseMessage> response(
dynamic_cast<CIMEnumerateClassesResponseMessage*>(
@@ -3208,12 +3283,13 @@ void CIMOperationRequestDispatcher::handleEnumerateClassNamesRequest(
request->className,
request->deepInheritance);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleEnumerateClassNamesRequest - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->className.getString()));
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->className.getString())));
AutoPtr<CIMEnumerateClassNamesResponseMessage> response(
dynamic_cast<CIMEnumerateClassNamesResponseMessage*>(
@@ -3258,42 +3334,47 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesRequest(
PEG_METHOD_ENTER(TRC_DISPATCHER,
"CIMOperationRequestDispatcher::handleEnumerateInstancesRequest");
- // get the class name
- CIMName className = request->className;
- CIMException checkClassException;
-
- CIMClass cimClass = _getClass(
- request->nameSpace,
- className,
- checkClassException);
+ //
+ // Validate the class name and set the request propertry list
+ //
- if (checkClassException.getCode() != CIM_ERR_SUCCESS)
{
- CIMResponseMessage* response = request->buildResponse();
- response->cimException = checkClassException;
+ CIMException checkClassException;
- _enqueueResponse(request, response);
+ CIMClass cimClass = _getClass(
+ request->nameSpace,
+ request->className,
+ checkClassException);
- PEG_METHOD_EXIT();
- return;
- }
+ if (checkClassException.getCode() != CIM_ERR_SUCCESS)
+ {
+ CIMResponseMessage* response = request->buildResponse();
+ response->cimException = checkClassException;
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- String("PropertyList = ") + _showPropertyList(request->propertyList));
+ _enqueueResponse(request, response);
- // If DeepInheritance==false and no PropertyList was specified by the
- // client, the provider PropertyList should contain all the properties
- // in the specified class.
- if (!request->deepInheritance && request->propertyList.isNull())
- {
- Array<CIMName> propertyNameArray;
- Uint32 numProperties = cimClass.getPropertyCount();
- for (Uint32 i = 0; i < numProperties; i++)
- {
- propertyNameArray.append(cimClass.getProperty(i).getName());
+ PEG_METHOD_EXIT();
+ return;
}
- request->propertyList.set(propertyNameArray);
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,"PropertyList = %s",
+ (const char*)
+ _showPropertyList(request->propertyList).getCString()));
+
+ // If DeepInheritance==false and no PropertyList was specified by the
+ // client, the provider PropertyList should contain all the properties
+ // in the specified class.
+ if (!request->deepInheritance && request->propertyList.isNull())
+ {
+ Array<CIMName> propertyNameArray;
+ Uint32 numProperties = cimClass.getPropertyCount();
+ for (Uint32 i = 0; i < numProperties; i++)
+ {
+ propertyNameArray.append(cimClass.getProperty(i).getName());
+ }
+
+ request->propertyList.set(propertyNameArray);
+ }
}
//
@@ -3306,7 +3387,7 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesRequest(
Array<ProviderInfo> providerInfos =
_lookupAllInstanceProviders(
request->nameSpace,
- className,
+ request->className,
providerCount);
Uint32 toIssueCount = providerInfos.size();
@@ -3319,10 +3400,9 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesRequest(
if ((providerCount == 0) && !(_repository->isDefaultInstanceProvider()))
{
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "CIM_ERROR_NOT_SUPPORTED for " + request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL1,
+ "CIM_ERROR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
CIMResponseMessage* response = request->buildResponse();
response->cimException =
@@ -3366,7 +3446,7 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesRequest(
PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
"Routing EnumerateInstances request for class %s to the "
"repository. Class # %u of %u, aggregation SN %u.",
- (const char*)providerInfo.className.getString().getCString(),
+ CSTRING(providerInfo.className.getString()),
(unsigned int)(i + 1),
(unsigned int)numClasses,
(unsigned int)(poA->_aggregationSN)));
@@ -3500,9 +3580,9 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesRequest(
if (checkClassException.getCode() == CIM_ERR_SUCCESS)
{
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- String("PropertyList = ") +
- _showPropertyList(requestCopy->propertyList));
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,"PropertyList = %s",
+ (const char*)
+ _showPropertyList(requestCopy->propertyList).getCString()));
_forwardRequestForAggregation(
providerInfo.serviceName,
@@ -3548,24 +3628,28 @@ void CIMOperationRequestDispatcher::handleEnumerateInstanceNamesRequest(
PEG_METHOD_ENTER(TRC_DISPATCHER,
"CIMOperationRequestDispatcher::handleEnumerateInstanceNamesRequest");
- CIMName className = request->className;
+ //
+ // Validate the class name
+ //
- CIMException checkClassException;
+ {
+ CIMException checkClassException;
- CIMClass cimClass = _getClass(
- request->nameSpace,
- className,
- checkClassException);
+ CIMClass cimClass = _getClass(
+ request->nameSpace,
+ request->className,
+ checkClassException);
- if (checkClassException.getCode() != CIM_ERR_SUCCESS)
- {
- CIMResponseMessage* response = request->buildResponse();
- response->cimException = checkClassException;
+ if (checkClassException.getCode() != CIM_ERR_SUCCESS)
+ {
+ CIMResponseMessage* response = request->buildResponse();
+ response->cimException = checkClassException;
- _enqueueResponse(request, response);
+ _enqueueResponse(request, response);
- PEG_METHOD_EXIT();
- return;
+ PEG_METHOD_EXIT();
+ return;
+ }
}
//
@@ -3588,10 +3672,9 @@ void CIMOperationRequestDispatcher::handleEnumerateInstanceNamesRequest(
// return CIM_ERR_NOT_SUPPORTED
if ((providerCount == 0) && !(_repository->isDefaultInstanceProvider()))
{
- PEG_TRACE_STRING(
- TRC_DISPATCHER,
- Tracer::LEVEL4,
- "CIM_ERROR_NOT_SUPPORTED for " + request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER,Tracer::LEVEL1,
+ "CIM_ERROR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
CIMResponseMessage* response = request->buildResponse();
response->cimException =
@@ -3820,17 +3903,20 @@ void CIMOperationRequestDispatcher::handleAssociatorsRequest(
CIM_ERR_INVALID_PARAMETER, request->objectName.toString());
}
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleAssociators - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->objectName.toString()));
-
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->objectName.toString())));
+
// ATTN-CAKG-P2-20020726: The following condition does not correctly
// distinguish instanceNames from classNames in every case
// The instanceName of a singleton instance of a keyless class also
// has no key bindings
- Boolean isClassRequest = (request->objectName.getKeyBindings().size() == 0);
+ Boolean isClassRequest =
+ (request->objectName.getKeyBindings().size() == 0);
if (isClassRequest)
{
@@ -3838,7 +3924,7 @@ void CIMOperationRequestDispatcher::handleAssociatorsRequest(
// For Class requests, get the results from the repository
//
- PEG_TRACE_CSTRING(TRC_DISPATCHER, Tracer::LEVEL4,
+ PEG_TRACE_CSTRING(TRC_DISPATCHER, Tracer::LEVEL3,
"Associators executing Class request");
Array<CIMObject> cimObjects =
@@ -3880,7 +3966,7 @@ void CIMOperationRequestDispatcher::handleAssociatorsRequest(
String::EMPTY,
providerCount);
- PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL3,
"providerCount = %u.", providerCount));
//
@@ -3924,14 +4010,15 @@ void CIMOperationRequestDispatcher::handleAssociatorsRequest(
// No provider is registered and the repository isn't the
// default. Return CIM_ERR_NOT_SUPPORTED.
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "CIM_ERR_NOT_SUPPORTED for " +
- request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL1,
+ "CIM_ERR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
response.reset(dynamic_cast<CIMAssociatorsResponseMessage*>(
request->buildResponse()));
- response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
+ response->cimException = PEGASUS_CIM_EXCEPTION(
+ CIM_ERR_NOT_SUPPORTED,
+ String::EMPTY);
}
_enqueueResponse(request, response.release());
@@ -3984,9 +4071,10 @@ void CIMOperationRequestDispatcher::handleAssociatorsRequest(
requestCopy->operationContext.insert(
*(providerInfos[i].providerIdContainer.get()));
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Forwarding to provider for class " +
- providerInfos[i].className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Forwarding to provider for class %s",
+ (const char*)
+ providerInfos[i].className.getString().getCString()));
_forwardRequestForAggregation(providerInfos[i].serviceName,
providerInfos[i].controlProviderName, requestCopy, poA);
// Note: poA must not be referenced after last "forwardRequest"
@@ -4054,17 +4142,20 @@ void CIMOperationRequestDispatcher::handleAssociatorNamesRequest(
CIM_ERR_INVALID_PARAMETER, request->objectName.toString());
}
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleAssociatorNames - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->objectName.toString()));
-
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->objectName.toString())));
+
// ATTN-CAKG-P2-20020726: The following condition does not correctly
// distinguish instanceNames from classNames in every case
// The instanceName of a singleton instance of a keyless class also
// has no key bindings
- Boolean isClassRequest = (request->objectName.getKeyBindings().size() == 0);
+ Boolean isClassRequest =
+ (request->objectName.getKeyBindings().size() == 0);
if (isClassRequest)
{
@@ -4072,7 +4163,7 @@ void CIMOperationRequestDispatcher::handleAssociatorNamesRequest(
// For Class requests, get the results from the repository
//
- PEG_TRACE_CSTRING(TRC_DISPATCHER, Tracer::LEVEL4,
+ PEG_TRACE_CSTRING(TRC_DISPATCHER, Tracer::LEVEL3,
"AssociatorNames executing Class request");
Array<CIMObjectPath> objectNames =
@@ -4152,14 +4243,16 @@ void CIMOperationRequestDispatcher::handleAssociatorNamesRequest(
// No provider is registered and the repository isn't the
// default. Return CIM_ERR_NOT_SUPPORTED.
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "CIM_ERR_NOT_SUPPORTED for " +
- request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL1,
+ "CIM_ERR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
- response.reset(dynamic_cast<CIMAssociatorNamesResponseMessage*>(
- request->buildResponse()));
- response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
+ response.reset(
+ dynamic_cast<CIMAssociatorNamesResponseMessage*>(
+ request->buildResponse()));
+ response->cimException = PEGASUS_CIM_EXCEPTION(
+ CIM_ERR_NOT_SUPPORTED,
+ String::EMPTY);
}
_enqueueResponse(request, response.release());
@@ -4212,9 +4305,10 @@ void CIMOperationRequestDispatcher::handleAssociatorNamesRequest(
requestCopy->operationContext.insert(
*(providerInfos[i].providerIdContainer.get()));
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Forwarding to provider for class " +
- providerInfos[i].className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Forwarding to provider for class %s",
+ (const char*)
+ providerInfos[i].className.getString().getCString()));
_forwardRequestForAggregation(providerInfos[i].serviceName,
providerInfos[i].controlProviderName, requestCopy, poA);
// Note: poA must not be referenced after last "forwardRequest"
@@ -4268,17 +4362,20 @@ void CIMOperationRequestDispatcher::handleReferencesRequest(
CIM_ERR_INVALID_PARAMETER, request->objectName.toString());
}
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleReferences - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->objectName.toString()));
-
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->objectName.toString())));
+
// ATTN-CAKG-P2-20020726: The following condition does not correctly
// distinguish instanceNames from classNames in every case
// The instanceName of a singleton instance of a keyless class also
// has no key bindings
- Boolean isClassRequest = (request->objectName.getKeyBindings().size() == 0);
+ Boolean isClassRequest =
+ (request->objectName.getKeyBindings().size() == 0);
if (isClassRequest)
{
@@ -4368,14 +4465,15 @@ void CIMOperationRequestDispatcher::handleReferencesRequest(
// No provider is registered and the repository isn't the
// default. Return CIM_ERR_NOT_SUPPORTED.
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "CIM_ERR_NOT_SUPPORTED for " +
- request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL1,
+ "CIM_ERR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
response.reset(dynamic_cast<CIMReferencesResponseMessage*>(
request->buildResponse()));
- response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
+ response->cimException = PEGASUS_CIM_EXCEPTION(
+ CIM_ERR_NOT_SUPPORTED,
+ String::EMPTY);
}
_enqueueResponse(request, response.release());
@@ -4428,9 +4526,10 @@ void CIMOperationRequestDispatcher::handleReferencesRequest(
requestCopy->operationContext.insert(
*(providerInfos[i].providerIdContainer.get()));
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Forwarding to provider for class " +
- providerInfos[i].className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Forwarding to provider for class %s",
+ (const char*)
+ providerInfos[i].className.getString().getCString()));
_forwardRequestForAggregation(providerInfos[i].serviceName,
providerInfos[i].controlProviderName, requestCopy, poA);
// Note: poA must not be referenced after last "forwardRequest"
@@ -4492,17 +4591,20 @@ void CIMOperationRequestDispatcher::handleReferenceNamesRequest(
CIM_ERR_INVALID_PARAMETER, request->objectName.toString());
}
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleReferenceNames - "
- "Namespace: $0 Class name: $1",
- request->nameSpace.getString(),
- request->objectName.toString()));
-
+ "Namespace: %s Class name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->objectName.toString())));
+
// ATTN-CAKG-P2-20020726: The following condition does not correctly
// distinguish instanceNames from classNames in every case
// The instanceName of a singleton instance of a keyless class also
// has no key bindings
- Boolean isClassRequest = (request->objectName.getKeyBindings().size() == 0);
+ Boolean isClassRequest =
+ (request->objectName.getKeyBindings().size() == 0);
if (isClassRequest)
{
@@ -4586,14 +4688,15 @@ void CIMOperationRequestDispatcher::handleReferenceNamesRequest(
// No provider is registered and the repository isn't the
// default. Return CIM_ERR_NOT_SUPPORTED.
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "CIM_ERR_NOT_SUPPORTED for " +
- request->className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL1,
+ "CIM_ERR_NOT_SUPPORTED for %s",
+ (const char*)request->className.getString().getCString()));
response.reset(dynamic_cast<CIMReferenceNamesResponseMessage*>(
request->buildResponse()));
- response->cimException =
- PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, String::EMPTY);
+ response->cimException = PEGASUS_CIM_EXCEPTION(
+ CIM_ERR_NOT_SUPPORTED,
+ String::EMPTY);
}
_enqueueResponse(request, response.release());
@@ -4645,9 +4748,10 @@ void CIMOperationRequestDispatcher::handleReferenceNamesRequest(
requestCopy->operationContext.insert(
*(providerInfos[i].providerIdContainer.get()));
- PEG_TRACE_STRING(TRC_DISPATCHER, Tracer::LEVEL4,
- "Forwarding to provider for class " +
- providerInfos[i].className.getString());
+ PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL4,
+ "Forwarding to provider for class %s",
+ (const char*)
+ providerInfos[i].className.getString().getCString()));
_forwardRequestForAggregation(providerInfos[i].serviceName,
providerInfos[i].controlProviderName, requestCopy, poA);
// Note: poA must not be referenced after last "forwardRequest"
@@ -4660,7 +4764,6 @@ void CIMOperationRequestDispatcher::handleReferenceNamesRequest(
/**$*******************************************************
handleGetPropertyRequest
- ATTN: FIX LOOKUP
**********************************************************/
void CIMOperationRequestDispatcher::handleGetPropertyRequest(
@@ -4671,12 +4774,8 @@ void CIMOperationRequestDispatcher::handleGetPropertyRequest(
CIMName className = request->instanceName.getClassName();
- // check the class name for an "external provider"
- // Assumption here is that there are no "internal" property requests.
- // teATTN: KS 20030402 - This needs cleanup along with the setproperty.
-
ProviderInfo providerInfo =
- _lookupInstanceProvider(
+ _lookupNewInstanceProvider(
request->nameSpace,
className);
@@ -4694,8 +4793,10 @@ void CIMOperationRequestDispatcher::handleGetPropertyRequest(
CIMGetPropertyRequestMessage* requestCallbackCopy =
new CIMGetPropertyRequestMessage(*requestCopy);
- _forwardRequestToService(
- PEGASUS_QUEUENAME_PROVIDERMANAGER_CPP,
+ _forwardRequestToProviderManager(
+ providerInfo.className,
+ providerInfo.serviceName,
+ providerInfo.controlProviderName,
requestCopy,
requestCallbackCopy);
}
@@ -4727,7 +4828,6 @@ void CIMOperationRequestDispatcher::handleGetPropertyRequest(
/**$*******************************************************
handleSetPropertyRequest
- ATTN: FIX LOOKUP
**********************************************************/
void CIMOperationRequestDispatcher::handleSetPropertyRequest(
@@ -4740,10 +4840,10 @@ void CIMOperationRequestDispatcher::handleSetPropertyRequest(
CIMName className = request->instanceName.getClassName();
- // check the class name for an "external provider"
- ProviderInfo providerInfo = _lookupInstanceProvider(
- request->nameSpace,
- className);
+ ProviderInfo providerInfo =
+ _lookupNewInstanceProvider(
+ request->nameSpace,
+ className);
if (providerInfo.hasProvider)
{
@@ -4759,8 +4859,10 @@ void CIMOperationRequestDispatcher::handleSetPropertyRequest(
CIMSetPropertyRequestMessage* requestCallbackCopy =
new CIMSetPropertyRequestMessage(*requestCopy);
- _forwardRequestToService(
- PEGASUS_QUEUENAME_PROVIDERMANAGER_CPP,
+ _forwardRequestToProviderManager(
+ providerInfo.className,
+ providerInfo.serviceName,
+ providerInfo.controlProviderName,
requestCopy,
requestCallbackCopy);
}
@@ -4774,15 +4876,16 @@ void CIMOperationRequestDispatcher::handleSetPropertyRequest(
((ContentLanguageListContainer)request->operationContext.get(
ContentLanguageListContainer::NAME)).getLanguages());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleSetPropertyRequest - "
- "Namespace: $0 Instance Name: $1 Property Name: $2 New "
- "Value: $3",
- request->nameSpace.getString(),
- request->instanceName.getClassName().getString(),
- request->propertyName.getString(),
- request->newValue.toString()));
+ "Namespace: %s Instance Name: %s Property Name: %s New "
+ "Value: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->instanceName.getClassName().getString()),
+ CSTRING(request->propertyName.getString()),
+ CSTRING(request->newValue.toString())));
AutoPtr<CIMSetPropertyResponseMessage> response(
dynamic_cast<CIMSetPropertyResponseMessage*>(
@@ -4817,12 +4920,13 @@ void CIMOperationRequestDispatcher::handleGetQualifierRequest(
request->nameSpace,
request->qualifierName);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleGetQualifierRequest - "
- "Namespace: $0 Qualifier Name: $1",
- request->nameSpace.getString(),
- request->qualifierName.getString()));
+ "Namespace: %s Qualifier Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->qualifierName.getString())));
AutoPtr<CIMGetQualifierResponseMessage> response(
dynamic_cast<CIMGetQualifierResponseMessage*>(
@@ -4850,12 +4954,13 @@ void CIMOperationRequestDispatcher::handleSetQualifierRequest(
((ContentLanguageListContainer)request->operationContext.get(
ContentLanguageListContainer::NAME)).getLanguages());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleSetQualifierRequest - "
- "Namespace: $0 Qualifier Name: $1",
- request->nameSpace.getString(),
- request->qualifierDeclaration.getName().getString()));
+ "Namespace: %s Qualifier Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->qualifierDeclaration.getName().getString())));
AutoPtr<CIMSetQualifierResponseMessage> response(
dynamic_cast<CIMSetQualifierResponseMessage*>(
@@ -4880,12 +4985,13 @@ void CIMOperationRequestDispatcher::handleDeleteQualifierRequest(
request->nameSpace,
request->qualifierName);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleDeleteQualifierRequest - "
- "Namespace: $0 Qualifier Name: $1",
- request->nameSpace.getString(),
- request->qualifierName.getString()));
+ "Namespace: %s Qualifier Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->qualifierName.getString())));
AutoPtr<CIMDeleteQualifierResponseMessage> response(
dynamic_cast<CIMDeleteQualifierResponseMessage*>(
@@ -4909,11 +5015,12 @@ void CIMOperationRequestDispatcher::handleEnumerateQualifiersRequest(
Array<CIMQualifierDecl> qualifierDeclarations =
_repository->enumerateQualifiers(request->nameSpace);
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::handleEnumerateQualifiersRequest - "
- "Namespace: $0",
- request->nameSpace.getString()));
+ "Namespace: %s",
+ CSTRING(request->nameSpace.getString())));
AutoPtr<CIMEnumerateQualifiersResponseMessage> response(
dynamic_cast<CIMEnumerateQualifiersResponseMessage*>(
@@ -4995,13 +5102,14 @@ void CIMOperationRequestDispatcher::handleInvokeMethodRequest(
if (!_checkExistenceOfClass(request->nameSpace, className))
{
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
- "CIMOperationRequestDispatcher::handleInvokeMethodRequest - "
- "CIM exist exception has occurred. Namespace: $0 "
- "Class Name: $1",
- request->nameSpace.getString(),
- className.getString()));
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
+ "CIMOperationRequestDispatcher::handleInvokeMethodRequest - "
+ "CIM class does not exist exception has occurred. "
+ "Namespace: %s Class Name: %s",
+ (const char*) request->nameSpace.getString().getCString(),
+ (const char*) className.getString().getCString()));
PEG_METHOD_EXIT();
throw PEGASUS_CIM_EXCEPTION(
@@ -5101,11 +5209,13 @@ void CIMOperationRequestDispatcher::handleAssociatorNamesResponseAggregation(
"handleAssociatorNamesResponseAggregation");
CIMAssociatorNamesResponseMessage* toResponse =
(CIMAssociatorNamesResponseMessage*) poA->getResponse(0);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::AssociatorNames Response - "
- "Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
// This double loop has 2 purposes:
@@ -5158,13 +5268,15 @@ void CIMOperationRequestDispatcher::handleAssociatorsResponseAggregation(
CIMAssociatorsResponseMessage* toResponse =
(CIMAssociatorsResponseMessage*) poA->getResponse(0);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::Associators Response - "
- "Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
-
+
// This double loop has 2 purposes:
// 1. To work backward and delete each response off the end of the array
// and append each instance to the list of instances of the first
@@ -5216,11 +5328,13 @@ void CIMOperationRequestDispatcher::handleReferencesResponseAggregation(
CIMReferencesResponseMessage* toResponse =
(CIMReferencesResponseMessage*) poA->getResponse(0);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::References Response - "
- "Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
// This double loop has 2 purposes:
@@ -5278,11 +5392,13 @@ void CIMOperationRequestDispatcher::handleReferenceNamesResponseAggregation(
// Work backward and delete each response off the end of the array
// adding it to the toResponse, which is really the first response.
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::ReferenceNames Response - "
- "Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
// This double loop has 2 purposes:
@@ -5336,11 +5452,13 @@ void CIMOperationRequestDispatcher::
CIMEnumerateInstanceNamesResponseMessage* toResponse =
(CIMEnumerateInstanceNamesResponseMessage*) poA->getResponse(0);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::EnumerateInstanceNames Response - "
- "Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
// Work backward and delete each response off the end of the array
@@ -5369,8 +5487,9 @@ void CIMOperationRequestDispatcher::
2. prune the properties if localOnly or deepInheritance are set.
This function does not send any responses.
*/
-void CIMOperationRequestDispatcher::handleEnumerateInstancesResponseAggregation(
- OperationAggregate* poA)
+void CIMOperationRequestDispatcher::
+ handleEnumerateInstancesResponseAggregation(
+ OperationAggregate* poA)
{
PEG_METHOD_ENTER(TRC_DISPATCHER,
"CIMOperationRequestDispatcher::handleEnumerateInstancesResponse");
@@ -5378,11 +5497,13 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesResponseAggregation(
CIMEnumerateInstancesResponseMessage* toResponse =
(CIMEnumerateInstancesResponseMessage*)poA->getResponse(0);
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::EnumerateInstancesResponseAggregation"
- "- Namespace: $0 Class name: $1 Response Count: $2",
- poA->_nameSpace.getString(),
- poA->_className.getString(),
+ "- Namespace: %s Class name: %s Response Count: %u",
+ CSTRING(poA->_nameSpace.getString()),
+ CSTRING(poA->_className.getString()),
poA->numberResponses()));
CIMEnumerateInstancesRequestMessage* request =
@@ -5403,10 +5524,12 @@ void CIMOperationRequestDispatcher::handleEnumerateInstancesResponseAggregation(
poA->deleteResponse(i);
}
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
"CIMOperationRequestDispatcher::"
"EnumerateInstancesResponseAggregation - "
- "Local Only: $0 Include Qualifiers: $1 Include Class Origin: $2",
+ "Local Only: %s Include Qualifiers: %s Include Class Origin: %s",
(request->localOnly == true ? "true" : "false"),
(request->includeQualifiers == true ? "true" : "false"),
(request->includeClassOrigin == true ? "true" : "false")));
@@ -5569,13 +5692,14 @@ void CIMOperationRequestDispatcher::_fixInvokeMethodParameterTypes(
false, //includeClassOrigin,
CIMPropertyList());
- PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
"CIMOperationRequestDispatcher::"
"_fixInvokeMethodParameterTypes - "
- "Namespace: $0 Class Name: $1",
- request->nameSpace.getString(),
- request->instanceName.getClassName().getString()));
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->instanceName.getClassName().getString())));
//
// Get the method definition from the class
@@ -5610,7 +5734,9 @@ void CIMOperationRequestDispatcher::_fixInvokeMethodParameterTypes(
if (inParameters[i].getValue().isNull())
{
- newValue.setNullValue(param.getType(), param.isArray());
+ newValue.setNullValue(
+ param.getType(),
+ param.isArray());
}
else if (inParameters[i].getValue().isArray() !=
param.isArray())
@@ -5622,7 +5748,8 @@ void CIMOperationRequestDispatcher::_fixInvokeMethodParameterTypes(
}
else
{
- newValue = _convertValueType(inParameters[i].getValue(),
+ newValue = _convertValueType(
+ inParameters[i].getValue(),
paramType);
}
@@ -5673,12 +5800,13 @@ void CIMOperationRequestDispatcher::_fixSetPropertyValueType(
false, //includeClassOrigin,
CIMPropertyList());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
"CIMOperationRequestDispatcher::_fixSetPropertyValueType - "
- "Namespace: $0 Class Name: $1",
- request->nameSpace.getString(),
- request->instanceName.getClassName().getString()));
+ "Namespace: %s Class Name: %s",
+ CSTRING(request->nameSpace.getString()),
+ CSTRING(request->instanceName.getClassName().getString())));
}
catch (CIMException& exception)
{
@@ -5771,12 +5899,13 @@ Boolean CIMOperationRequestDispatcher::_checkExistenceOfClass(
throw;
}
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL4,
"CIMOperationRequestDispatcher::_checkExistenceOfClass - "
- "Namespace: $0 Class Name: $1",
- nameSpace.getString(),
- className.getString()));
+ "Namespace: %s Class Name: %s found.",
+ (const char*) nameSpace.getString().getCString(),
+ (const char*) className.getString().getCString()));
PEG_METHOD_EXIT();
return true;
@@ -5792,7 +5921,7 @@ CIMClass CIMOperationRequestDispatcher::_getClass(
CIMClass __namespaceClass(PEGASUS_CLASSNAME___NAMESPACE);
// ATTN: Qualifiers not added here, but they shouldn't be needed
__namespaceClass.addProperty(
- CIMProperty(CIMName("Name"), String::EMPTY));
+ CIMProperty(PEGASUS_PROPERTYNAME_NAME, String::EMPTY));
return __namespaceClass;
}
@@ -5809,12 +5938,13 @@ CIMClass CIMOperationRequestDispatcher::_getClass(
true,
CIMPropertyList());
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL3,
"CIMOperationRequestDispatcher::_getClass - "
- "Namespace: $0 Class Name: $1",
- nameSpace.getString(),
- className.getString()));
+ "Namespace: %s Class Name: %s",
+ CSTRING(nameSpace.getString()),
+ CSTRING(className.getString())));
}
catch (const CIMException& exception)
{
@@ -5848,20 +5978,14 @@ void CIMOperationRequestDispatcher::_checkEnumerateTooBroad(
Uint32 providerCount)
{
if (providerCount > _maximumEnumerateBreadth)
- {
- PEG_LOGGER_TRACE((
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE,
- "Request-too-broad exception. Namespace: $0 Class Name: $1 "
- "Limit: $2 ProviderCount: $3",
- nameSpace.getString(),
- className.getString(),
- _maximumEnumerateBreadth,
- providerCount));
-
- PEG_TRACE((TRC_DISPATCHER, Tracer::LEVEL2,
+ {
+ PEG_TRACE((
+ TRC_DISPATCHER,
+ Tracer::LEVEL1,
"ERROR: Enumerate operation too broad for class %s. "
- "Limit = %u, providerCount = %u",
- (const char*)className.getString().getCString(),
+ " Namespace: %s Limit = %u, providerCount = %u",
+ CSTRING(className.getString()),
+ CSTRING(nameSpace.getString()),
_maximumEnumerateBreadth,
providerCount));
diff --git a/src/Pegasus/Server/CIMServer.cpp b/src/Pegasus/Server/CIMServer.cpp
index 5d6f365..b77924c 100644
--- a/src/Pegasus/Server/CIMServer.cpp
+++ b/src/Pegasus/Server/CIMServer.cpp
@@ -43,10 +43,6 @@
# include <errno.h>
#endif
-#ifdef PEGASUS_OS_PASE
-#include <as400_protos.h> // for systemCL()
-#endif
-
#include <Pegasus/Common/Constants.h>
#include <Pegasus/Common/FileSystem.h>
#include <Pegasus/Common/Signal.h>
@@ -79,13 +75,6 @@
# include <Pegasus/Client/CIMClient.h>
#endif
-// PEGASUS_SLP_REG_TIMEOUT is the time interval in minute for reregistration
-// with SLP.
-#ifdef PEGASUS_SLP_REG_TIMEOUT
-#include "SLPAttrib.h"
-#include <slp/slp_client/src/cmd-utils/slp_client/lslp-common-defs.h>
-#include <slp/slp_client/src/cmd-utils/slp_client/slp_client.h>
-#endif
#include "CIMServer.h"
#include "CIMOperationRequestDispatcher.h"
#include "CIMOperationResponseEncoder.h"
@@ -111,7 +100,7 @@ ProviderRegistrationProvider.h>
# include <Pegasus/ControlProviders/CertificateProvider/CertificateProvider.h>
#endif
-#ifndef PEGASUS_DISABLE_CQL
+#ifdef PEGASUS_ENABLE_CQL
# include <Pegasus/ControlProviders/QueryCapabilitiesProvider/\
CIMQueryCapabilitiesProvider.h>
#endif
@@ -120,6 +109,10 @@ CIMQueryCapabilitiesProvider.h>
# include <Pegasus/ControlProviders/InteropProvider/InteropProvider.h>
#endif
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+# include <Pegasus/WsmServer/WsmProcessor.h>
+#endif
+
PEGASUS_NAMESPACE_BEGIN
#ifdef PEGASUS_SLP_REG_TIMEOUT
ThreadReturnType PEGASUS_THREAD_CDECL registerPegasusWithSLP(void *parm);
@@ -130,8 +123,6 @@ ThreadReturnType PEGASUS_THREAD_CDECL registerPegasusWithSLP(void *parm);
static CIMServer* _cimserver = NULL;
-static Boolean _slpRegistrationComplete;
-
// Need a static method to act as a callback for the control provider.
// This doesn't belong here, but I don't have a better place to put it.
static Message* controlProviderReceiveMessageCallback(
@@ -157,7 +148,7 @@ Boolean handleShutdownSignal = false;
void shutdownSignalHandler(int s_n, PEGASUS_SIGINFO_T* s_info, void* sig)
{
PEG_METHOD_ENTER(TRC_SERVER, "shutdownSignalHandler");
- PEG_TRACE((TRC_SERVER, Tracer::LEVEL2, "Signal %d received.", s_n));
+ PEG_TRACE((TRC_SERVER, Tracer::LEVEL3, "Signal %d received.", s_n));
CIMServer::shutdownSignal();
@@ -183,12 +174,9 @@ static void _synchronousSignalHandler(int s_n, PEGASUS_SIGINFO_T* s_info,
mark = true;
Logger::put_l(Logger::ERROR_LOG, "CIMServer", Logger::SEVERE,
- "Pegasus.Server.CIMServer.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE", \
- "Synchronous signal received.");
-
- /* save job log */
- systemCL ("QSYS/CHGJOB JOB(*) LOG(4 00 *NOLIST)",
- SYSTEMCL_MSG_STDOUT | SYSTEMCL_MSG_STDERR);
+ MessageLoaderParms(
+ "Pegasus.Server.CIMServer.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE",
+ "Synchronous signal received."));
CIMServer::shutdownSignal();
}
@@ -203,8 +191,9 @@ static void _asynchronousSignalHandler(int s_n, PEGASUS_SIGINFO_T* s_info,
mark = true;
Logger::put_l(Logger::ERROR_LOG, "CIMServer", Logger::SEVERE,
- "Pegasus.Server.CIMServer.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE", \
- "Asynchronous signal received.");
+ MessageLoaderParms(
+ "Pegasus.Server.CIMServer.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE",
+ "Asynchronous signal received."));
CIMServer::shutdownSignal();
}
@@ -237,11 +226,6 @@ void CIMServer::_init()
{
_monitor.reset(new Monitor());
-#ifdef PEGASUS_ENABLE_SLP
- _runSLP = true; // Boolean cannot be set in definition.
- _slpRegistrationComplete = false;
-#endif
-
#if (defined(PEGASUS_OS_HPUX) || defined(PEGASUS_OS_LINUX)) \
&& defined(PEGASUS_USE_RELEASE_DIRS)
if (chdir(PEGASUS_CORE_DIR) != 0)
@@ -311,24 +295,20 @@ void CIMServer::_init()
new ConfigSettingProvider(), 0, 0, false);
_controlProviders.append(configProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_CONFIGPROVIDER,
configProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
// Create the User/Authorization control provider
ProviderMessageHandler* userAuthProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "UserAuthProvider",
new UserAuthProvider(_repository), 0, 0, false);
_controlProviders.append(userAuthProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_USERAUTHPROVIDER,
userAuthProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
// Create the Provider Registration control provider
ProviderMessageHandler* provRegProvider = new ProviderMessageHandler(
@@ -338,36 +318,30 @@ void CIMServer::_init()
// Warning: The ProviderRegistrationProvider destructor deletes
// _providerRegistrationManager
_controlProviders.append(provRegProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_PROVREGPROVIDER,
provRegProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
// Create the Shutdown control provider
ProviderMessageHandler* shutdownProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "ShutdownProvider",
new ShutdownProvider(this), 0, 0, false);
_controlProviders.append(shutdownProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_SHUTDOWNPROVIDER,
shutdownProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
// Create the namespace control provider
ProviderMessageHandler* namespaceProvider = new ProviderMessageHandler(
"CIMServerControlProvider", "NamespaceProvider",
new NamespaceProvider(_repository), 0, 0, false);
_controlProviders.append(namespaceProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_NAMESPACEPROVIDER,
namespaceProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
//
// Create a SSLContextManager object
@@ -383,12 +357,10 @@ void CIMServer::_init()
new CertificateProvider(_repository, _sslContextMgr),
0, 0, false);
_controlProviders.append(certificateProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_CERTIFICATEPROVIDER,
certificateProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
#endif
#ifndef PEGASUS_DISABLE_PERFINST
@@ -397,15 +369,13 @@ void CIMServer::_init()
"CIMServerControlProvider", "CIMOMStatDataProvider",
new CIMOMStatDataProvider(), 0, 0, false);
_controlProviders.append(cimomstatdataProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_CIMOMSTATDATAPROVIDER,
cimomstatdataProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
#endif
-#ifndef PEGASUS_DISABLE_CQL
+#ifdef PEGASUS_ENABLE_CQL
// Create the Query Capabilities control provider
ProviderMessageHandler* cimquerycapprovider = new ProviderMessageHandler(
@@ -413,12 +383,10 @@ void CIMServer::_init()
new CIMQueryCapabilitiesProvider(),
0, 0, false);
_controlProviders.append(cimquerycapprovider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_CIMQUERYCAPPROVIDER,
cimquerycapprovider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
#endif
#if defined PEGASUS_ENABLE_INTEROP_PROVIDER
@@ -428,12 +396,10 @@ void CIMServer::_init()
"CIMServerControlProvider", "InteropProvider",
new InteropProvider(_repository), 0, 0, false);
_controlProviders.append(interopProvider);
- ModuleController::register_module(
- PEGASUS_QUEUENAME_CONTROLSERVICE,
+ _controlService->register_module(
PEGASUS_MODULENAME_INTEROPPROVIDER,
interopProvider,
- controlProviderReceiveMessageCallback,
- 0);
+ controlProviderReceiveMessageCallback);
#endif
_cimOperationResponseEncoder = new CIMOperationResponseEncoder;
@@ -446,6 +412,8 @@ void CIMServer::_init()
Boolean enableAuthentication = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("enableAuthentication"));
+ MessageQueueService* cimOperationProcessorQueue = 0;
+
//
// Create Authorization queue only if authentication is enabled
//
@@ -453,20 +421,18 @@ void CIMServer::_init()
{
_cimOperationRequestAuthorizer = new CIMOperationRequestAuthorizer(
_cimOperationRequestDispatcher);
-
- _cimOperationRequestDecoder = new CIMOperationRequestDecoder(
- _cimOperationRequestAuthorizer,
- _cimOperationResponseEncoder->getQueueId());
+ cimOperationProcessorQueue = _cimOperationRequestAuthorizer;
}
else
{
_cimOperationRequestAuthorizer = 0;
-
- _cimOperationRequestDecoder = new CIMOperationRequestDecoder(
- _cimOperationRequestDispatcher,
- _cimOperationResponseEncoder->getQueueId());
+ cimOperationProcessorQueue = _cimOperationRequestDispatcher;
}
+ _cimOperationRequestDecoder = new CIMOperationRequestDecoder(
+ cimOperationProcessorQueue,
+ _cimOperationResponseEncoder->getQueueId());
+
_cimExportRequestDispatcher = new CIMExportRequestDispatcher();
_cimExportResponseEncoder = new CIMExportResponseEncoder;
@@ -480,6 +446,14 @@ void CIMServer::_init()
_cimExportRequestDecoder->getQueueId(),
_repository);
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+ _wsmProcessor = new WsmProcessor(
+ cimOperationProcessorQueue,
+ _repository);
+ _httpAuthenticatorDelegator->setWsmQueueId(
+ _wsmProcessor->getWsmRequestDecoderQueueId());
+#endif
+
// IMPORTANT-NU-20020513: Indication service must start after ExportService
// otherwise HandlerService started by indicationService will never
// get ExportQueue to export indications for existing subscriptions
@@ -507,6 +481,13 @@ void CIMServer::_init()
getSigHandle()->registerHandler(SIGIO, _asynchronousSignalHandler);
getSigHandle()->activate(SIGIO);
#endif
+#ifdef PEGASUS_OS_ZOS
+ // Establish handling signal send to us on USS shutdown
+ getSigHandle()->registerHandler(PEGASUS_SIGDANGER, shutdownSignalHandler);
+ getSigHandle()->activate(PEGASUS_SIGDANGER);
+ // enable process to receive SIGDANGER on USS shutdown
+ __shutdown_registration(_SDR_NOTIFY, _SDR_REGPROCESS, _SDR_SENDSIGDANGER);
+#endif
//
// Set up an additional thread waiting for commands from the
@@ -573,9 +554,14 @@ CIMServer::~CIMServer ()
// CIMOperationRequestDecoder depends on CIMOperationRequestAuthorizer
// and CIMOperationResponseEncoder
delete _cimOperationRequestDecoder;
-
delete _cimOperationResponseEncoder;
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+ // WsmProcessor depends on CIMOperationRequestAuthorizer/Dispatcher and
+ // CIMRepository
+ delete _wsmProcessor;
+#endif
+
// BinaryMessageHandler depends on CIMOperationRequestDispatcher
delete _binaryMessageHandler;
@@ -626,7 +612,6 @@ CIMServer::~CIMServer ()
delete _repository;
// Destroy the singleton services
- ConfigManager::destroy();
UserManager::destroy();
ShutdownService::destroy();
@@ -693,29 +678,9 @@ void CIMServer::runForever()
if (!_dieNow)
{
- struct timeval now;
-#ifdef PEGASUS_ENABLE_SLP
-# ifdef PEGASUS_SLP_REG_TIMEOUT
- static struct timeval lastReregistrationTime = {0,0};
- Time::gettimeofday(&now);
-
- // If PEGASUS_SLP_REG_TIMEOUT (SLP registration timeout in minutes) is
- // defined, then when this SLP registration timeout is exceeded, we
- // need to call startSLPProvider() to update our registration with SLP.
- // Convert SLP registration timeout to seconds for this check.
- if (now.tv_sec - lastReregistrationTime.tv_sec >
- (PEGASUS_SLP_REG_TIMEOUT * 60))
- {
- lastReregistrationTime.tv_sec = now.tv_sec;
-# endif
- startSLPProvider();
-# ifdef PEGASUS_SLP_REG_TIMEOUT
- }
-# endif // PEGASUS_SLP_REG_TIMEOUT
-#endif // PEGASUS_ENABLE_SLP
-
_monitor->run(500000);
static struct timeval lastIdleCleanupTime = {0, 0};
+ struct timeval now;
Time::gettimeofday(&now);
if (now.tv_sec - lastIdleCleanupTime.tv_sec > 300)
@@ -726,6 +691,10 @@ void CIMServer::runForever()
{
_providerManager->unloadIdleProviders();
MessageQueueService::get_thread_pool()->cleanupIdleThreads();
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+ _wsmProcessor->cleanupExpiredContexts();
+#endif
+
}
catch (...)
{
@@ -824,14 +793,12 @@ void CIMServer::setState(Uint32 state)
if (state == CIMServerState::TERMINATING)
{
-#ifdef PEGASUS_SLP_REG_TIMEOUT
- // To deregister Pegasus with SLP
- unregisterPegasusFromSLP();
-#endif
-
// tell decoder that CIMServer is terminating
_cimOperationRequestDecoder->setServerTerminating(true);
_cimExportRequestDecoder->setServerTerminating(true);
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+ _wsmProcessor->setServerTerminating(true);
+#endif
// tell authorizer that CIMServer is terminating ONLY if
// authentication and authorization are enabled
@@ -846,6 +813,9 @@ void CIMServer::setState(Uint32 state)
// tell decoder that CIMServer is not terminating
_cimOperationRequestDecoder->setServerTerminating(false);
_cimExportRequestDecoder->setServerTerminating(false);
+#ifdef PEGASUS_ENABLE_PROTOCOL_WSMAN
+ _wsmProcessor->setServerTerminating(false);
+#endif
// tell authorizer that CIMServer is terminating ONLY if
// authentication and authorization are enabled
@@ -925,8 +895,8 @@ SSLContext* CIMServer::_getSSLContext()
trustStore = ConfigManager::getHomedPath(trustStore);
}
- PEG_TRACE_STRING(TRC_SERVER, Tracer::LEVEL4,
- "Server trust store name: " + trustStore);
+ PEG_TRACE((TRC_SERVER, Tracer::LEVEL4,"Server trust store name: %s",
+ (const char*)trustStore.getCString()));
//
// Get the sslTrustStoreUserName property from the Config Manager.
@@ -1052,7 +1022,7 @@ SSLContext* CIMServer::_getSSLContext()
//
if (String::equal(verifyClient, "required"))
{
- PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL2,
+ PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL3,
"SSL Client verification REQUIRED.");
_sslContextMgr->createSSLContext(
@@ -1060,7 +1030,7 @@ SSLContext* CIMServer::_getSSLContext()
}
else if (String::equal(verifyClient, "optional"))
{
- PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL2,
+ PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL3,
"SSL Client verification OPTIONAL.");
_sslContextMgr->createSSLContext(
@@ -1069,7 +1039,7 @@ SSLContext* CIMServer::_getSSLContext()
else if (String::equal(verifyClient, "disabled") ||
verifyClient == String::EMPTY)
{
- PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL2,
+ PEG_TRACE_CSTRING(TRC_SERVER, Tracer::LEVEL3,
"SSL Client verification DISABLED.");
_sslContextMgr->createSSLContext(
@@ -1077,6 +1047,17 @@ SSLContext* CIMServer::_getSSLContext()
}
sslContext = _sslContextMgr->getSSLContext();
+ try
+ {
+ sslContext->_validateCertificate();
+ }
+ catch (SSLException& e)
+ {
+ Logger::put(
+ Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
+ e.getMessage());
+ }
+
PEG_METHOD_EXIT();
return sslContext;
}
@@ -1119,66 +1100,29 @@ void CIMServer::auditLogInitializeCallback()
ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm);
// This is a control function that starts a new thread which issues a
-// cim operation to start the slp provider.
+// cim operation to start the slp provider. Used for both External and
+// Embedded SLP registrations.
//
-// If PEGASUS_ENABLE_SLP is defined, then startSLPProvider is called for
-// each iteration of the runForever "loop". The _runSLP variable will be
-// set from the "slp" configuration variable, and if true, SLP registration
-// will occur, but only once. After registering, _runSLP is set to false
-// and remains so for the life of this process.
-//
-// If *both* PEGASUS_ENABLE_SLP and PEGASUS_SLP_REG_TIMEOUT are defined,
-// then the first call to startSLPProvider is for the initial SLP
-// registration, and each subsequent call is to "reregister" or update our
-// SLP registration based on the timeout interval. In this case _runSLP
-// will still be set from the "slp" configuration variable, and tested,
-// but it will retain this setting for the life of this process.
-//
-// Note that the SLP registration needs to be performed from within the
-// runForever "loop" because it will actually call connectLocal() and
-// client.invokeMethod() to perform the SLP registration, so the CIM
-// Server needs to be able to accept connectLocal requests
void CIMServer::startSLPProvider()
{
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::startSLPProvider");
-#ifndef PEGASUS_SLP_REG_TIMEOUT
- // This is a onetime function. If already issued, or config is not to
- // use simply return
- if (!_runSLP)
- {
- return;
- }
-#endif
-
// Get Config parameter to determine if we should start SLP.
ConfigManager* configManager = ConfigManager::getInstance();
- _runSLP = ConfigManager::parseBooleanValue(
+ Boolean _runSLP = ConfigManager::parseBooleanValue(
configManager->getCurrentValue("slp"));
// If false, do not start slp provider
if (!_runSLP)
{
+ PEG_METHOD_EXIT();
return;
}
-#ifndef PEGASUS_SLP_REG_TIMEOUT
- //SLP startup is onetime function; reset the switch so this
- // function does not get called a second time.
- _runSLP = false;
-#endif
- // Start SLPProvider for Built-in SA and Open SLP SA. If the
- // PEGASUS_SLP_REG_TIMEOUT is defined and if Open SLP is not used, start a
- // thread which advertises CIMOM with a external SLP SA( i.e . IBM SA).
-#if defined( PEGASUS_SLP_REG_TIMEOUT ) && !defined( PEGASUS_USE_OPENSLP )
- Thread SLPThread(registerPegasusWithSLP,0,true);
- SLPThread.run();
-#else
// Create a separate thread, detach and call function to execute the
// startup.
Thread t( _callSLPProvider, 0, true );
t.run();
-#endif
PEG_METHOD_EXIT();
return;
@@ -1198,27 +1142,14 @@ ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm)
{
PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::_callSLPProvider()");
- //
- // Create CIMClient object
- //
CIMClient client;
-
- //
- // open connection to CIMOM
- //
String hostStr = System::getHostName();
try
{
- //
client.connectLocal();
-
- //
// set client timeout to 2 seconds
- //
client.setTimeout(40000);
- // construct CIMObjectPath
- //
String referenceStr = "//";
referenceStr.append(hostStr);
referenceStr.append("/");
@@ -1226,7 +1157,6 @@ ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm)
referenceStr.append(":");
referenceStr.append(PEGASUS_CLASSNAME_WBEMSLPTEMPLATE.getString());
CIMObjectPath reference(referenceStr);
-
//
// issue the invokeMethod request on the register method
//
@@ -1240,27 +1170,47 @@ ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm)
inParams,
outParams);
- _slpRegistrationComplete = true;
-
Logger::put_l(
Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
- "Pegasus.Server.SLP.SLP_REGISTRATION_INITIATED",
- "SLP Registration Initiated");
+ MessageLoaderParms(
+ "Pegasus.Server.SLP.SLP_REGISTRATION_INITIATED",
+ "SLP Registration Initiated"));
}
catch(Exception& e)
{
- Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
- "Pegasus.Server.SLP.INTERNAL_SLP_REGISTRATION_FAILED_EXCEPTION",
- "CIM Server registration with Internal SLP Failed. Exception: $0",
- e.getMessage());
+#ifdef PEGASUS_SLP_REG_TIMEOUT
+ Logger::put_l(
+ Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
+ MessageLoaderParms(
+ "Pegasus.Server.SLP.EXTERNAL_SLP_REGISTRATION_FAILED_EXCEPTION",
+ "CIM Server registration with External SLP Failed. "
+ "Exception: $0",
+ e.getMessage()));
+#else
+ Logger::put_l(
+ Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
+ MessageLoaderParms(
+ "Pegasus.Server.SLP.INTERNAL_SLP_REGISTRATION_FAILED_EXCEPTION",
+ "CIM Server registration with Internal SLP Failed. "
+ "Exception: $0",
+ e.getMessage()));
+#endif
}
catch(...)
{
+#ifdef PEGASUS_SLP_REG_TIMEOUT
Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
- "Pegasus.Server.SLP.INTERNAL_SLP_REGISTRATION_FAILED_ERROR",
- "CIM Server registration with Internal SLP Failed.");
+ MessageLoaderParms(
+ "Pegasus.Server.SLP.EXTERNAL_SLP_REGISTRATION_FAILED_ERROR",
+ "CIM Server registration with External SLP Failed."));
+#else
+ Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
+ MessageLoaderParms(
+ "Pegasus.Server.SLP.INTERNAL_SLP_REGISTRATION_FAILED_ERROR",
+ "CIM Server registration with Internal SLP Failed."));
+#endif
}
client.disconnect();
@@ -1268,225 +1218,6 @@ ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm)
PEG_METHOD_EXIT();
return( (ThreadReturnType)32 );
}
-
-#ifdef PEGASUS_SLP_REG_TIMEOUT
-// This thread advertises pegasus to a listening SA. The attributes for
-// the Pegasus advertisement is obtained from CIM classes with the help
-// of SLPAttrib class methods.
-ThreadReturnType PEGASUS_THREAD_CDECL registerPegasusWithSLP(void* parm)
-{
-
- PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::registerPegasusWithSLP()");
- Boolean foundHttpProtocol=false, foundHttpsProtocol=false;
- SLPAttrib SLPHttpAttribObj;
- SLPAttrib SLPHttpsAttribObj;
- struct slp_client *client;
- const char *scopes = "DEFAULT";
- Uint16 life = PEGASUS_SLP_REG_TIMEOUT * 60, port=SLP_DEFAULT_PORT;
- const char *addr = LOCALHOST_IP;
- const char *iface = NULL;
- CString type, httpUrl, httpsUrl, httpAttrs, httpsAttrs;
-
- try
- {
- // Get all the SLP attributes and data for the Pegasus cimserver.
- foundHttpProtocol = SLPHttpAttribObj.fillData("http");
- foundHttpsProtocol = SLPHttpsAttribObj.fillData("https");
- if (!foundHttpProtocol && !foundHttpsProtocol)
- {
- Logger::put_l(
- Logger::STANDARD_LOG,
- System::CIMSERVER,
- Logger::WARNING,
- "Pegasus.Server.SLP.PROTOCOLS_NOT_ENABLED",
- "Both Http and Https protocols are disabled, "
- "SLP registration skipped.");
- PEG_METHOD_EXIT();
- return( (ThreadReturnType)32 );
- }
-
- // Populate datastructures required for registering a service with SLP
- if (foundHttpProtocol)
- {
- SLPHttpAttribObj.formAttributes();
- type = SLPHttpAttribObj.getServiceType().getCString();
- httpUrl = SLPHttpAttribObj.getServiceUrl().getCString();
- httpAttrs = SLPHttpAttribObj.getAttributes().getCString();
- }
- if (foundHttpsProtocol)
- {
- SLPHttpsAttribObj.formAttributes();
- if (!foundHttpProtocol)
- {
- type = SLPHttpsAttribObj.getServiceType().getCString();
- }
- httpsUrl = SLPHttpsAttribObj.getServiceUrl().getCString();
- httpsAttrs = SLPHttpsAttribObj.getAttributes().getCString();
- }
-
- if (NULL != (client = create_slp_client(addr,
- iface,
- SLP_DEFAULT_PORT,
- "DSA",
- scopes,
- FALSE,
- FALSE,
- 0)))
- {
- if (foundHttpProtocol)
- {
- if (!client->srv_reg_local(client,
- (const char*)httpUrl,
- (const char*)httpAttrs,
- (const char*)type,
- scopes,
- life))
- {
- Logger::put_l(
- Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::WARNING,
- "Pegasus.Server.SLP."
- "EXTERNAL_SLP_REGISTRATION_FAILED_ERROR",
- "CIM Server registration with External SLP Failed.");
- }
- else
- {
- _slpRegistrationComplete = true;
- }
- }
- if (foundHttpsProtocol)
- {
- if (!client->srv_reg_local(client,
- (const char*)httpsUrl,
- (const char*)httpsAttrs,
- (const char*)type,
- scopes,
- life))
- {
- Logger::put_l(
- Logger::STANDARD_LOG, System::CIMSERVER,
- Logger::WARNING,
- "Pegasus.Server.SLP."
- "EXTERNAL_SLP_REGISTRATION_FAILED_ERROR",
- "CIM Server registration with External SLP Failed.");
- }
- else
- {
- _slpRegistrationComplete = true;
- }
- }
- }
- }
-
- catch(Exception& e)
- {
- Logger::put_l(
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
- "Pegasus.Server.SLP.EXTERNAL_SLP_REGISTRATION_FAILED_EXCEPTION",
- "CIM Server registration with External SLP Failed. Exception: $0",
- e.getMessage());
- }
-
- catch(...)
- {
- Logger::put_l(
- Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
- "Pegasus.Server.SLP.EXTERNAL_SLP_REGISTRATION_FAILED_ERROR",
- "CIM Server registration with External SLP Failed.");
- }
-
- destroy_slp_client(client);
-
- PEG_METHOD_EXIT();
- return (ThreadReturnType)32;
-}
-
-// This routine deregisters the CIM Server registration with external SLP SA.
-
-void PEGASUS_SERVER_LINKAGE unregisterPegasusFromSLP()
-{
- PEG_METHOD_ENTER(TRC_SERVER, "unregisterPegasusFromSLP()");
- Boolean foundHttpProtocol=false, foundHttpsProtocol=false;
- SLPAttrib SLPHttpAttribObj;
- SLPAttrib SLPHttpsAttribObj;
- struct slp_client *client;
- const char *scopes = "DEFAULT";
- Uint16 port=SLP_DEFAULT_PORT;
- const char *addr = LOCALHOST_IP;
- const char *iface = NULL;
- CString type, httpUrl, httpsUrl, httpAttrs, httpsAttrs;
-
- // If Pegasus did not successfully register with SLP, just return
- if (!_slpRegistrationComplete)
- {
- PEG_METHOD_EXIT();
- return;
- }
-
- // Get all the SLP attributes and data for the Pegasus cimserver.
- foundHttpProtocol = SLPHttpAttribObj.fillData("http");
- foundHttpsProtocol = SLPHttpsAttribObj.fillData("https");
- if (!foundHttpProtocol && !foundHttpsProtocol)
- {
- PEG_METHOD_EXIT();
- return;
- }
- if (foundHttpProtocol)
- {
- SLPHttpAttribObj.formAttributes();
- type = SLPHttpAttribObj.getServiceType().getCString();
- httpUrl = SLPHttpAttribObj.getServiceUrl().getCString();
- httpAttrs = SLPHttpAttribObj.getAttributes().getCString();
- }
- if (foundHttpsProtocol)
- {
- SLPHttpsAttribObj.formAttributes();
- if (!foundHttpProtocol)
- {
- type = SLPHttpsAttribObj.getServiceType().getCString();
- }
- httpsUrl = SLPHttpsAttribObj.getServiceUrl().getCString();
- httpsAttrs = SLPHttpsAttribObj.getAttributes().getCString();
- }
-
- if (NULL != (client = create_slp_client(addr,
- iface,
- SLP_DEFAULT_PORT,
- "DSA",
- scopes,
- FALSE,
- FALSE,
- 0)))
- {
- if (foundHttpProtocol)
- {
- client->srv_reg_local(
- client,
- (const char*)httpUrl,
- (const char*)httpAttrs,
- (const char*)type,
- scopes,
- 0);
- }
-
- if (foundHttpsProtocol)
- {
- client->srv_reg_local(
- client,
- (const char*)httpsUrl,
- (const char*)httpsAttrs,
- (const char*)type,
- scopes,
- 0);
- }
-
- destroy_slp_client(client);
- }
-
- PEG_METHOD_EXIT();
- return;
- }
-#endif // PEGASUS_SLP_REG_TIMEOUT
#endif
PEGASUS_NAMESPACE_END
diff --git a/src/Pegasus/WsmServer/CimToWsmResponseMapper.cpp b/src/Pegasus/WsmServer/CimToWsmResponseMapper.cpp
new file mode 100644
index 0000000..043dd63
--- /dev/null
+++ b/src/Pegasus/WsmServer/CimToWsmResponseMapper.cpp
@@ -0,0 +1,881 @@
+//%2006////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
+// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
+// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation, The Open Group.
+// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
+// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; VERITAS Software Corporation; The Open Group.
+// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
+// EMC Corporation; Symantec Corporation; The Open Group.
+//
+// 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.
+//
+//=============================================================================
+//
+//%////////////////////////////////////////////////////////////////////////////
+
+#include <cctype>
+#include <cstdio>
+#include <Pegasus/Common/Config.h>
+#include <Pegasus/Common/Tracer.h>
+#include <Pegasus/Common/String.h>
+#include <Pegasus/Common/StringConversion.h>
+#include <Pegasus/Common/MessageLoader.h>
+#include <Pegasus/WsmServer/WsmConstants.h>
+#include "CimToWsmResponseMapper.h"
+
+#ifdef PEGASUS_OS_VMS
+# define PEGASUS_NAN "NaNQ"
+# define PEGASUS_INF "Infinity"
+# define PEGASUS_NEG_INF "-Infinity"
+#else
+# define PEGASUS_NAN "nan"
+# define PEGASUS_INF "inf"
+# define PEGASUS_NEG_INF "-inf"
+#endif
+
+PEGASUS_USING_STD;
+PEGASUS_NAMESPACE_BEGIN
+
+CimToWsmResponseMapper::CimToWsmResponseMapper()
+{
+}
+
+CimToWsmResponseMapper::~CimToWsmResponseMapper()
+{
+}
+
+WsmResponse* CimToWsmResponseMapper::mapToWsmResponse(
+ const WsmRequest* wsmRequest,
+ const CIMResponseMessage* message)
+{
+ AutoPtr<WsmResponse> wsmResponse;
+
+ if (message->cimException.getCode() != CIM_ERR_SUCCESS)
+ {
+ wsmResponse.reset(_mapToWsmFaultResponse(wsmRequest, message));
+ }
+ else
+ {
+ switch (wsmRequest->getType())
+ {
+ case WS_TRANSFER_GET:
+ wsmResponse.reset(_mapToWxfGetResponse(
+ (WxfGetRequest*) wsmRequest,
+ (CIMGetInstanceResponseMessage*) message));
+ break;
+
+ case WS_TRANSFER_PUT:
+ wsmResponse.reset(_mapToWxfPutResponse(
+ (WxfPutRequest*) wsmRequest,
+ (CIMModifyInstanceResponseMessage*) message));
+ break;
+
+ case WS_TRANSFER_CREATE:
+ wsmResponse.reset(_mapToWxfCreateResponse(
+ (WxfCreateRequest*) wsmRequest,
+ (CIMCreateInstanceResponseMessage*) message));
+ break;
+
+ case WS_TRANSFER_DELETE:
+ wsmResponse.reset(_mapToWxfDeleteResponse(
+ (WxfDeleteRequest*) wsmRequest,
+ (CIMDeleteInstanceResponseMessage*) message));
+ break;
+
+ case WS_ENUMERATION_ENUMERATE:
+ if (((WsenEnumerateRequest*) wsmRequest)->enumerationMode ==
+ WSEN_EM_OBJECT)
+ {
+ wsmResponse.reset(_mapToWsenEnumerateResponseObject(
+ (WsenEnumerateRequest*) wsmRequest,
+ (CIMEnumerateInstancesResponseMessage*) message));
+ }
+ else if (((WsenEnumerateRequest*)
+ wsmRequest)->enumerationMode ==
+ WSEN_EM_OBJECT_AND_EPR)
+ {
+ wsmResponse.reset(_mapToWsenEnumerateResponseObjectAndEPR(
+ (WsenEnumerateRequest*) wsmRequest,
+ (CIMEnumerateInstancesResponseMessage*) message));
+ }
+ else if (((WsenEnumerateRequest*) wsmRequest)->
+ enumerationMode == WSEN_EM_EPR)
+ {
+ wsmResponse.reset(_mapToWsenEnumerateResponseEPR(
+ (WsenEnumerateRequest*) wsmRequest,
+ (CIMEnumerateInstanceNamesResponseMessage*) message));
+ }
+ else
+ {
+ PEGASUS_ASSERT(0);
+ }
+ break;
+
+ default:
+ PEGASUS_ASSERT(0);
+ break;
+ }
+ }
+ return wsmResponse.release();
+}
+
+WsmFaultResponse* CimToWsmResponseMapper::_mapToWsmFaultResponse(
+ const WsmRequest* wsmRequest,
+ const CIMResponseMessage* response)
+{
+ WsmFault fault = mapCimExceptionToWsmFault(response->cimException);
+
+ WsmFaultResponse* wsmResponse = new WsmFaultResponse(wsmRequest, fault);
+
+ return wsmResponse;
+}
+
+WsmFault CimToWsmResponseMapper::mapCimExceptionToWsmFault(
+ const CIMException& cimException)
+{
+ WsmFault::Subcode subcode;
+ const ContentLanguageList& languageList =
+ cimException.getContentLanguages();
+ String reason = TraceableCIMException(cimException).getDescription();
+ String faultDetail;
+
+ switch (cimException.getCode())
+ {
+ case CIM_ERR_FAILED: // Too general to specify fault
+ case CIM_ERR_CLASS_HAS_CHILDREN: // Only ModifyClass and DeleteClass
+ case CIM_ERR_CLASS_HAS_INSTANCES: // Only ModifyClass and DeleteClass
+ case CIM_ERR_INVALID_SUPERCLASS: // Only CreateClass and ModifyClass
+ // These could map to wsa_ActionNotSupported if InvokeMethod is
+ // supported through Custom Actions.
+ case CIM_ERR_METHOD_NOT_FOUND: // Only InvokeMethod
+ case CIM_ERR_METHOD_NOT_AVAILABLE: // Only InvokeMethod
+ case CIM_ERR_NO_SUCH_PROPERTY: // Only GetProperty and SetProperty
+ case CIM_ERR_TYPE_MISMATCH: // Only SetProperty
+ subcode = WsmFault::wsman_InternalError;
+ break;
+
+ case CIM_ERR_ACCESS_DENIED:
+ subcode = WsmFault::wsman_AccessDenied;
+ break;
+
+ case CIM_ERR_ALREADY_EXISTS:
+ subcode = WsmFault::wsman_AlreadyExists;
+ break;
+
+ case CIM_ERR_INVALID_CLASS:
+ subcode = WsmFault::wsa_DestinationUnreachable;
+ faultDetail = WSMAN_FAULTDETAIL_INVALIDRESOURCEURI;
+ break;
+
+ case CIM_ERR_INVALID_NAMESPACE:
+ // Consider wsman_InvalidSelectors?
+ subcode = WsmFault::wsa_DestinationUnreachable;
+ // faultDetail is not set to WSMAN_FAULTDETAIL_INVALIDRESOURCEURI
+ // since this error reflects an incorrect Selector value rather
+ // than an incorrect ResourceURI.
+ break;
+
+ case CIM_ERR_INVALID_PARAMETER:
+ // For InvokeMethod, this would map to wsman_InvalidParameter.
+ // It is difficult to discern the correct fault for other
+ // operations. It make sense to use wxf_InvalidRepresentation for
+ // Create and Put, and wsman_InvalidSelectors for Get and Put.
+ subcode = WsmFault::wsman_InvalidParameter;
+ break;
+
+ case CIM_ERR_INVALID_QUERY:
+ // Note that Enumerate operations have a different subcode:
+ // wsen_CannotProcessFilter.
+ subcode = WsmFault::wsen_CannotProcessFilter;
+ break;
+
+ case CIM_ERR_NOT_FOUND:
+ // DSP0226 Table 10 of master faults calls for
+ // DestinationUnreachable in cases when the resource is no found.
+ subcode = WsmFault::wsa_DestinationUnreachable;
+ break;
+
+ case CIM_ERR_NOT_SUPPORTED:
+ subcode = WsmFault::wsa_ActionNotSupported;
+ faultDetail = WSMAN_FAULTDETAIL_ACTIONMISMATCH;
+ break;
+
+ case CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED:
+ // DSP0227 section 15.1.11 indicates that ExecuteQuery operations
+ // through WS-Management use CQL filter dialect. If this status
+ // code results, it is fair to assume filtering is not supported
+ // at all. Another option would be to use
+ // wsen_FilterDialectRequestedUnavailable.
+ subcode = WsmFault::wsen_FilteringNotSupported;
+ break;
+
+ default:
+ PEGASUS_ASSERT(0);
+ }
+
+ return WsmFault(subcode, reason, languageList, faultDetail);
+}
+
+WxfGetResponse* CimToWsmResponseMapper::_mapToWxfGetResponse(
+ const WxfGetRequest* wsmRequest,
+ const CIMGetInstanceResponseMessage* response)
+{
+ WsmInstance wsmInstance;
+
+ convertCimToWsmInstance(response->cimInstance, wsmInstance,
+ wsmRequest->epr.getNamespace());
+
+ WxfGetResponse* wsmResponse =
+ new WxfGetResponse(
+ wsmInstance,
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WxfPutResponse* CimToWsmResponseMapper::_mapToWxfPutResponse(
+ const WxfPutRequest* wsmRequest,
+ const CIMModifyInstanceResponseMessage* response)
+{
+ WxfPutResponse* wsmResponse =
+ new WxfPutResponse(
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WxfCreateResponse* CimToWsmResponseMapper::_mapToWxfCreateResponse(
+ const WxfCreateRequest* wsmRequest,
+ const CIMCreateInstanceResponseMessage* response)
+{
+ WsmEndpointReference epr;
+
+ convertObjPathToEPR(response->instanceName, epr,
+ wsmRequest->epr.getNamespace());
+
+ WxfCreateResponse* wsmResponse =
+ new WxfCreateResponse(
+ epr,
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WxfDeleteResponse* CimToWsmResponseMapper::_mapToWxfDeleteResponse(
+ const WxfDeleteRequest* wsmRequest,
+ const CIMDeleteInstanceResponseMessage* response)
+{
+ WxfDeleteResponse* wsmResponse =
+ new WxfDeleteResponse(
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WsenEnumerateResponse*
+ CimToWsmResponseMapper::_mapToWsenEnumerateResponseObject(
+ const WsenEnumerateRequest* wsmRequest,
+ const CIMEnumerateInstancesResponseMessage* response)
+{
+ Array<WsmInstance> instances;
+ Array<WsmEndpointReference> EPRs;
+ for (Uint32 i = 0; i < response->cimNamedInstances.size(); i++)
+ {
+ WsmInstance wsmInstance;
+ convertCimToWsmInstance(response->cimNamedInstances[i], wsmInstance,
+ wsmRequest->epr.getNamespace());
+ instances.append(wsmInstance);
+ }
+
+ WsenEnumerateResponse* wsmResponse =
+ new WsenEnumerateResponse(
+ instances,
+ instances.size(),
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WsenEnumerateResponse*
+ CimToWsmResponseMapper::_mapToWsenEnumerateResponseObjectAndEPR(
+ const WsenEnumerateRequest* wsmRequest,
+ const CIMEnumerateInstancesResponseMessage* response)
+{
+ Array<WsmInstance> instances;
+ Array<WsmEndpointReference> EPRs;
+ for (Uint32 i = 0; i < response->cimNamedInstances.size(); i++)
+ {
+ WsmInstance wsmInstance;
+ convertCimToWsmInstance(response->cimNamedInstances[i], wsmInstance,
+ wsmRequest->epr.getNamespace());
+ instances.append(wsmInstance);
+
+ WsmEndpointReference epr;
+ convertObjPathToEPR(response->cimNamedInstances[i].getPath(), epr,
+ wsmRequest->epr.getNamespace());
+ EPRs.append(epr);
+ }
+
+ WsenEnumerateResponse* wsmResponse =
+ new WsenEnumerateResponse(
+ instances,
+ EPRs,
+ instances.size(),
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+WsenEnumerateResponse*
+CimToWsmResponseMapper::_mapToWsenEnumerateResponseEPR(
+ const WsenEnumerateRequest* wsmRequest,
+ const CIMEnumerateInstanceNamesResponseMessage* response)
+{
+ Array<WsmEndpointReference> EPRs;
+ for (Uint32 i = 0; i < response->instanceNames.size(); i++)
+ {
+ WsmEndpointReference epr;
+ convertObjPathToEPR(response->instanceNames[i], epr,
+ wsmRequest->epr.getNamespace());
+ EPRs.append(epr);
+ }
+
+ WsenEnumerateResponse* wsmResponse =
+ new WsenEnumerateResponse(
+ EPRs,
+ EPRs.size(),
+ wsmRequest,
+ _getContentLanguages(response->operationContext));
+
+ return wsmResponse;
+}
+
+void CimToWsmResponseMapper::convertCimToWsmInstance(
+ const CIMInstance& cimInstance,
+ WsmInstance& wsmInstance,
+ const String& nameSpace)
+{
+ wsmInstance.setClassName(cimInstance.getClassName().getString());
+
+ for (Uint32 i = 0, n = cimInstance.getPropertyCount(); i < n; i++)
+ {
+ CIMConstProperty cimProperty = cimInstance.getProperty(i);
+ const String& propertyName = cimProperty.getName().getString();
+ const CIMValue& cimValue = cimProperty.getValue();
+
+ WsmValue wsmValue;
+ convertCimToWsmValue(cimValue, wsmValue, nameSpace);
+
+ WsmProperty wsmProperty(propertyName, wsmValue);
+ wsmInstance.addProperty(wsmProperty);
+ }
+}
+
+template<class T>
+static void _convertCimToWsmArrayValue(
+ const CIMValue& cimValue,
+ WsmValue& wsmValue)
+{
+ Array<T> arr;
+ Array<String> strs;
+
+ cimValue.get(arr);
+ for (Uint32 i = 0, n = arr.size(); i < n; i++)
+ {
+ CIMValue val(arr[i]);
+ String str(val.toString());
+ if (val.getType() == CIMTYPE_BOOLEAN)
+ {
+ str.toLower();
+ }
+ strs.append(str);
+ }
+ wsmValue.set(strs);
+}
+
+void CimToWsmResponseMapper::convertCimToWsmValue(
+ const CIMValue& cimValue,
+ WsmValue& wsmValue,
+ const String& nameSpace)
+{
+ if (cimValue.isNull())
+ {
+ wsmValue.setNull();
+ return;
+ }
+
+ if (cimValue.isArray())
+ {
+ switch (cimValue.getType())
+ {
+ case CIMTYPE_BOOLEAN:
+ {
+ _convertCimToWsmArrayValue<Boolean>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_UINT8:
+ {
+ _convertCimToWsmArrayValue<Uint8>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_SINT8:
+ {
+ _convertCimToWsmArrayValue<Sint8>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_UINT16:
+ {
+ _convertCimToWsmArrayValue<Uint16>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_SINT16:
+ {
+ _convertCimToWsmArrayValue<Sint16>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_UINT32:
+ {
+ _convertCimToWsmArrayValue<Uint32>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_SINT32:
+ {
+ _convertCimToWsmArrayValue<Sint32>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_UINT64:
+ {
+ _convertCimToWsmArrayValue<Uint64>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_SINT64:
+ {
+ _convertCimToWsmArrayValue<Sint64>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_REAL32:
+ {
+ _convertCimToWsmArrayValue<Real32>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_REAL64:
+ {
+ _convertCimToWsmArrayValue<Real64>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_CHAR16:
+ {
+ _convertCimToWsmArrayValue<Char16>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_STRING:
+ {
+ _convertCimToWsmArrayValue<String>(cimValue, wsmValue);
+ break;
+ }
+
+ case CIMTYPE_DATETIME:
+ {
+ Array<CIMDateTime> dates;
+ Array<String> strs;
+ cimValue.get(dates);
+ for (Uint32 i = 0, n = dates.size(); i < n; i++)
+ {
+ String wsmDT;
+ convertCimToWsmDatetime(dates[i], wsmDT);
+ strs.append(wsmDT);
+ }
+ wsmValue.set(strs);
+ break;
+ }
+
+ case CIMTYPE_REFERENCE:
+ {
+ Array<WsmEndpointReference> eprs;
+ Array<CIMObjectPath> objPaths;
+ cimValue.get(objPaths);
+
+ for (Uint32 i = 0, n = objPaths.size(); i < n; i++)
+ {
+ WsmEndpointReference epr;
+ convertObjPathToEPR(objPaths[i], epr, nameSpace);
+ eprs.append(epr);
+ }
+ wsmValue.set(eprs);
+ break;
+ }
+
+ case CIMTYPE_OBJECT:
+ {
+ Array<WsmInstance> wsmInstances;
+ Array<CIMObject> cimObjects;
+ cimValue.get(cimObjects);
+ for (Uint32 i = 0, n = cimObjects.size(); i < n; i++)
+ {
+ if (cimObjects[i].isInstance())
+ {
+ WsmInstance wsmInstance;
+ convertCimToWsmInstance(
+ CIMInstance(cimObjects[i]),
+ wsmInstance,
+ nameSpace);
+ wsmInstances.append(wsmInstance);
+ }
+ else
+ {
+ throw WsmFault(WsmFault::wsman_InternalError,
+ MessageLoaderParms(
+ "WsmServer.CimToWsmResponseMapper."
+ "EMBEDDED_CLASS_NOT_SUPPORTED",
+ "Embedded class objects in WS-Management "
+ "responses are not supported."));
+ }
+ }
+ wsmValue.set(wsmInstances);
+ break;
+ }
+
+ case CIMTYPE_INSTANCE:
+ {
+ Array<WsmInstance> wsmInstances;
+ Array<CIMInstance> cimInstances;
+ cimValue.get(cimInstances);
+ for (Uint32 i = 0, n = cimInstances.size(); i < n; i++)
+ {
+ WsmInstance wsmInstance;
+ convertCimToWsmInstance(
+ cimInstances[i], wsmInstance, nameSpace);
+ wsmInstances.append(wsmInstance);
+ }
+ wsmValue.set(wsmInstances);
+ break;
+ }
+
+ default:
+ {
+ PEGASUS_ASSERT(0);
+ }
+ }
+ }
+ else
+ {
+ switch (cimValue.getType())
+ {
+ case CIMTYPE_BOOLEAN:
+ {
+ String str(cimValue.toString());
+ str.toLower();
+ wsmValue.set(str);
+ break;
+ }
+ case CIMTYPE_UINT8:
+ case CIMTYPE_SINT8:
+ case CIMTYPE_UINT16:
+ case CIMTYPE_SINT16:
+ case CIMTYPE_UINT32:
+ case CIMTYPE_SINT32:
+ case CIMTYPE_UINT64:
+ case CIMTYPE_SINT64:
+ case CIMTYPE_CHAR16:
+ case CIMTYPE_STRING:
+ {
+ wsmValue.set(cimValue.toString());
+ break;
+ }
+ case CIMTYPE_REAL32:
+ case CIMTYPE_REAL64:
+ {
+ String str(cimValue.toString());
+ if (String::compareNoCase(str, PEGASUS_NAN) == 0)
+ wsmValue.set("NaN");
+ else if (String::compareNoCase(str, PEGASUS_INF) == 0)
+ wsmValue.set("INF");
+ else if (String::compareNoCase(str, PEGASUS_NEG_INF) == 0)
+ wsmValue.set("-INF");
+ else
+ wsmValue.set(str);
+ break;
+ }
+ case CIMTYPE_DATETIME:
+ {
+ String wsmDT;
+ CIMDateTime cimDT;
+ cimValue.get(cimDT);
+ convertCimToWsmDatetime(cimDT, wsmDT);
+ wsmValue.set(wsmDT);
+ break;
+ }
+ case CIMTYPE_REFERENCE:
+ {
+ WsmEndpointReference epr;
+ CIMObjectPath objPath;
+ cimValue.get(objPath);
+ convertObjPathToEPR(objPath, epr, nameSpace);
+ wsmValue.set(epr);
+ break;
+ }
+ case CIMTYPE_OBJECT:
+ {
+ CIMObject cimObject;
+ cimValue.get(cimObject);
+ if (cimObject.isInstance())
+ {
+ WsmInstance wsmInstance;
+ convertCimToWsmInstance(
+ CIMInstance(cimObject), wsmInstance, nameSpace);
+ wsmValue.set(wsmInstance);
+ }
+ else
+ {
+ throw WsmFault(WsmFault::wsman_InternalError,
+ MessageLoaderParms(
+ "WsmServer.CimToWsmResponseMapper."
+ "EMBEDDED_CLASS_NOT_SUPPORTED",
+ "Embedded class objects in WS-Management "
+ "responses are not supported"));
+ }
+ break;
+ }
+ case CIMTYPE_INSTANCE:
+ {
+ WsmInstance wsmInstance;
+ CIMInstance cimInstance;
+ cimValue.get(cimInstance);
+ convertCimToWsmInstance(cimInstance, wsmInstance, nameSpace);
+ wsmValue.set(wsmInstance);
+ break;
+ }
+ default:
+ {
+ PEGASUS_ASSERT(0);
+ }
+ }
+ }
+}
+
+void CimToWsmResponseMapper::convertObjPathToEPR(
+ const CIMObjectPath& objPath,
+ WsmEndpointReference& epr,
+ const String& nameSpace)
+{
+ // Since the connection protocol is unknown at this point, we assume
+ // it's http and form an EPR address by concatenating "http://" with
+ // the host name in the object path, with "/wsman".
+ if (objPath.getHost().size() > 0)
+ epr.address = "http://" + objPath.getHost() + "/wsman";
+ else
+ epr.address = WSM_ADDRESS_ANONYMOUS;
+
+ epr.resourceUri = String(WSM_RESOURCEURI_CIMSCHEMAV2) + "/" +
+ objPath.getClassName().getString();
+
+ CIMNamespaceName cimNS = objPath.getNameSpace();
+ if (!cimNS.isNull())
+ {
+ WsmSelector selector(String("__cimnamespace"), cimNS.getString());
+ epr.selectorSet->selectors.append(selector);
+ }
+ else
+ {
+ WsmSelector selector(String("__cimnamespace"), nameSpace);
+ epr.selectorSet->selectors.append(selector);
+ }
+
+ const Array<CIMKeyBinding>& keyBindings = objPath.getKeyBindings();
+ for (Uint32 i = 0, n = keyBindings.size(); i < n; i++)
+ {
+ CIMKeyBinding binding = keyBindings[i];
+ if (binding.getType() == CIMKeyBinding::REFERENCE)
+ {
+ CIMObjectPath cimRef = binding.getValue();
+ WsmEndpointReference wsmRef;
+ convertObjPathToEPR(cimRef, wsmRef, nameSpace);
+ WsmSelector selector(binding.getName().getString(), wsmRef);
+ epr.selectorSet->selectors.append(selector);
+ }
+ else
+ {
+ WsmSelector selector(binding.getName().getString(),
+ binding.getValue());
+ epr.selectorSet->selectors.append(selector);
+ }
+ }
+}
+
+void CimToWsmResponseMapper::convertCimToWsmDatetime(
+ const CIMDateTime& cimDT, String& wsmDT)
+{
+ char buffer[50];
+ Uint32 size;
+
+ String cimStrDT = cimDT.toString();
+ CString cimCStrDT = cimStrDT.getCString();
+ const char* cimStr = (const char*) cimCStrDT;
+ Uint32 firstAsteriskPos = cimStrDT.find('*');
+
+ // DSP0230.
+ // 1. If CIM datetime string contains ":", use Interval cim:cimDateTime
+ // element.
+ // 2. If CIM datetime string contains "+" or "-" and does not contain any
+ // asterisks, use Datetime cim:cimDateTime element.
+ // 3. If CIM datetime string contains "+" or "-" and no asterisks in
+ // the hhmmss.mmmmmm portion, and only asterisks in the yyyymmdd portion,
+ // ATTN: this makes no sense. yyyymmdd cannot be wildcarded unless
+ // previous sections are wildcarded.
+ // use Time cim:cimDateTime element.
+ // 4. If CIM datetime string contains "+" or "-" and no asterisks in the
+ // yyyymmdd portion, and only asterisks in the hhmmss.mmmmmm portion,
+ // use Date cim:cimDateTime element.
+ // 5. In all other cases use CIM_DateTime element.
+
+ if (cimStr[21] == ':')
+ {
+ // Interval
+ Uint32 days = 0, hrs = 0, mins = 0, secs = 0, msecs = 0;
+ int conversions = sscanf(cimStr, "%8u%2u%2u%2u.%u:000",
+ &days, &hrs, &mins, &secs, &msecs);
+ if (conversions == 0 && cimStr[0] == '*')
+ days = 1;
+
+ wsmDT = "P";
+ if (conversions >= 1 && days)
+ {
+ wsmDT.append(Uint32ToString(buffer, days, size));
+ wsmDT.append(Char16('D'));
+ }
+ if (conversions >= 2 )
+ {
+ wsmDT.append(Char16('T'));
+ if (hrs)
+ {
+ wsmDT.append(Uint32ToString(buffer, hrs, size));
+ wsmDT.append(Char16('H'));
+ }
+ }
+ if (conversions >= 3 && mins)
+ {
+ wsmDT.append(Uint32ToString(buffer, mins, size));
+ wsmDT.append(Char16('M'));
+ }
+ if (conversions >= 4 && secs)
+ {
+ wsmDT.append(Uint32ToString(buffer, secs, size));
+ if (conversions >= 5 && msecs)
+ {
+ wsmDT.append(Char16('.'));
+ wsmDT.append(Uint32ToString(buffer, msecs, size));
+ }
+ wsmDT.append(Char16('S'));
+ }
+ }
+ else if ((cimStr[21] == '+' || cimStr[21] == '-') &&
+ firstAsteriskPos == PEG_NOT_FOUND)
+ {
+ // Datetime
+ Uint32 year = 0, month = 0, day = 0, utcoff = 0,
+ hrs = 0, mins = 0, secs = 0, msecs = 0;
+ char sign;
+ int conversions = sscanf(cimStr,
+ "%4u%2u%2u%2u%2u%2u.%6u%c%3u",
+ &year, &month, &day, &hrs, &mins, &secs, &msecs, &sign, &utcoff);
+
+ PEGASUS_ASSERT(conversions == 9);
+
+ if (utcoff == 0)
+ {
+ if (msecs)
+ {
+ sprintf(buffer, "%.4u-%.2u-%.2uT%.2u:%.2u:%.2u.%.6uZ",
+ year, month, day, hrs, mins, secs, msecs);
+ }
+ else
+ {
+ sprintf(buffer, "%.4u-%.2u-%.2uT%.2u:%.2u:%.2uZ",
+ year, month, day, hrs, mins, secs);
+ }
+ }
+ else
+ {
+ Uint32 utch = utcoff / 60;
+ Uint32 utcm = utcoff % 60;
+ if (msecs)
+ {
+ sprintf(buffer, "%.4u-%.2u-%.2uT%.2u:%.2u:%.2u.%.6u%c%.2u:%.2u",
+ year, month, day, hrs, mins, secs, msecs,
+ sign, utch, utcm);
+ }
+ else
+ {
+ sprintf(buffer, "%.4u-%.2u-%.2uT%.2u:%.2u:%.2u%c%.2u:%.2u",
+ year, month, day, hrs, mins, secs, sign, utch, utcm);
+ }
+ }
+ wsmDT = buffer;
+ }
+ else if ((cimStr[21] == '+' || cimStr[21] == '-') &&
+ firstAsteriskPos == 8)
+ {
+ // Date
+ Uint32 year = 0, month = 0, day = 0, utcoff = 0;
+ char sign;
+ int conversions = sscanf(cimStr, "%4u%2u%2u******.******%c%3u",
+ &year, &month, &day, &sign, &utcoff);
+
+ PEGASUS_ASSERT(conversions == 5);
+
+ if (utcoff == 0)
+ {
+ sprintf(buffer, "%.4u-%.2u-%.2uZ", year, month, day);
+ }
+ else
+ {
+ Uint32 utch = utcoff / 60;
+ Uint32 utcm = utcoff % 60;
+ sprintf(buffer, "%.4u-%.2u-%.2u%c%.2u:%.2u",
+ year, month, day, sign, utch, utcm);
+ }
+ wsmDT = buffer;
+ }
+ else
+ {
+ // CIM_DateTime
+ wsmDT = cimStr;
+ }
+}
+PEGASUS_NAMESPACE_END
diff --git a/src/Pegasus/msg/Server/pegasusServer_en.txt b/src/Pegasus/msg/Server/pegasusServer_en.txt
index 9c729e9..47f8c2a 100644
--- a/src/Pegasus/msg/Server/pegasusServer_en.txt
+++ b/src/Pegasus/msg/Server/pegasusServer_en.txt
@@ -95,7 +95,7 @@ en:table {
/**
* This message is no longer used as of version 2.7.0
*/
- Common.CIMStatusCode.CIM_ERR_SUCCESS:string {"CIM_ERR_SUCCESS: Successful."}
+ Common.CIMStatusCode.CIM_ERR_SUCCESS:string {"CIM_ERR_SUCCESS: Successful."}
/**
* This message is no longer used as of version 2.7.0
@@ -201,7 +201,7 @@ en:table {
* @note PGS00201:
* Substitution {0} is a qualifier name (a string)
*/
- Common.InternalException.UNDECLARED_QUALIFIER:string { "PGS00201: The {0} qualifier is not declared."}
+ Common.InternalException.UNDECLARED_QUALIFIER:string { "PGS00201: The {0} qualifier is not declared."}
/**
* @note PGS00202:
@@ -224,42 +224,48 @@ en:table {
/**
* @note PGS00205:
- * Substitution {0} is a class name (a string)
+ * Substitution {0} is a class name (a string)
+ * This message is no longer used as of Pegasus 2.8.
*/
Common.InternalException.CLASS_ALREADY_RESOLVED:string {"PGS00205: Attempted to resolve a class that is already resolved: {0}."}
/**
* @note PGS00206:
- * Substitution {0} is a class name (a string)
+ * Substitution {0} is a class name (a string)
+ * This message is no longer used as of Pegasus 2.8.
*/
Common.InternalException.CLASS_NOT_RESOLVED:string {"PGS00206: Class {0} is not yet resolved."}
+ /**
+ * @note PGS00207:
+ * This message is no longer used as of Pegasus 2.8.
+ */
Common.InternalException.InstanceAlreadyResolved:string {"PGS00207: Attempted to resolve an instance that is already resolved."}
/**
* @note PGS00208:
* Substitution {0} is a class name (a string)
*/
- Common.InternalException.INSTANTIATED_ABSTRACT_CLASS:string {"PGS00208: Attempted to create an instance of the abstract class {0}."}
+ Common.InternalException.INSTANTIATED_ABSTRACT_CLASS:string {"PGS00208: Attempted to create an instance of the abstract class {0}."}
/**
* @note PGS00209:
* Substitution {0} is a property name (a string)
*/
- Common.InternalException.NO_SUCH_PROPERTY:string { "PGS00209: The {0} property does not exist."}
+ Common.InternalException.NO_SUCH_PROPERTY:string { "PGS00209: The {0} property does not exist."}
/**
* @note PGS00210:
* Substitution {0} is a file name (a string)
*/
- Common.InternalException.NO_SUCH_FILE:string { "PGS00210: File {0} does not exist."}
+ Common.InternalException.NO_SUCH_FILE:string { "PGS00210: File {0} does not exist."}
/**
* @note PGS00211:
* Substitution {0} is a file name (a string)
*/
- Common.InternalException.FILE_NOT_READABLE:string { "PGS00211: File {0} cannot be read."}
+ Common.InternalException.FILE_NOT_READABLE:string { "PGS00211: File {0} cannot be read."}
/**
* @note PGS00212:
@@ -283,17 +289,17 @@ en:table {
* @note PGS00215:
* Substitution {0} is a directory path (a string)
*/
- Common.InternalException.NO_SUCH_DIRECTORY:string {"PGS00215: Directory {0} does not exist."}
+ Common.InternalException.NO_SUCH_DIRECTORY:string {"PGS00215: Directory {0} does not exist."}
/**
* @note PGS00216:
* Substitution {0} is a directory path (a string)
*/
- Common.InternalException.CANNOT_CREATE_DIRECTORY:string {"PGS00216: Cannot create directory {0}."}
+ Common.InternalException.CANNOT_CREATE_DIRECTORY:string {"PGS00216: Cannot create directory {0}."}
- Common.InternalException.CANNOT_OPEN_FILE:string { "PGS00217: Cannot open file {0}."}
+ Common.InternalException.CANNOT_OPEN_FILE:string { "PGS00217: Cannot open file {0}."}
- Common.InternalException.NOT_IMPLEMENTED:string {"PGS00218: Method {0} is not implemented."}
+ Common.InternalException.NOT_IMPLEMENTED:string {"PGS00218: Method {0} is not implemented."}
Common.InternalException.STACK_UNDERFLOW:string {"PGS00219: Stack is empty."}
@@ -308,13 +314,17 @@ en:table {
*/
Common.InternalException.BAD_FORMAT:string { "PGS00222: Incorrect format is passed to Formatter::format()."}
- Common.InternalException.BADLY_FORMED_CGI_QUERY_STRING:string { "PGS00223: The CGI query string is not valid."}
+ /**
+ * @note PGS00223:
+ * This message is no longer used as of Pegasus 2.8.
+ */
+ Common.InternalException.BADLY_FORMED_CGI_QUERY_STRING:string { "PGS00223: The CGI query string is not valid."}
/**
* @note PGS00224:
* Substitution {0} is a library name (a string)
*/
- Common.InternalException.DYNAMIC_LOAD_FAILED:string { "PGS00224: Failed to load dynamic library {0}."}
+ Common.InternalException.DYNAMIC_LOAD_FAILED:string { "PGS00224: Failed to load dynamic library {0}."}
/**
* @note PGS00225:
@@ -332,15 +342,15 @@ en:table {
* @note PGS00227:
* Substitution {0} is a message string
*/
- Common.InternalException.PARSE_ERROR:string { "PGS00227: Parse error: {0}"}
+ Common.InternalException.PARSE_ERROR:string { "PGS00227: Parse error: {0}"}
- Common.InternalException.MISSING_NULL_TERMINATOR:string { "PGS00228: The character string end delimiter is missing."}
+ Common.InternalException.MISSING_NULL_TERMINATOR:string { "PGS00228: The character string end delimiter is missing."}
/**
* @note PGS00229:
* Substitution {0} is a message string
*/
- Common.InternalException.MALFORMED_LANGUAGE_HEADER:string { "PGS00229: The language header is not valid: {0}"}
+ Common.InternalException.MALFORMED_LANGUAGE_HEADER:string { "PGS00229: The language header is not valid: {0}"}
/**
* @note PGS00230:
@@ -365,9 +375,40 @@ en:table {
Common.InternalException.UNAUTHORIZED_ACCESS:string {"PGS00233: Unauthorized access."}
/**
- * @version 2.8
+ * @note PGS00234:
+ * Substitution {0} is an error message string
+ */
+ Common.InternalException.MUTEX_LOCK_FAILED:string {"PGS00234: Failed to acquire mutex lock: {0}"}
+
+ /**
+ * @note PGS00235:
+ * Substitution {0} is an error message string
+ */
+ Common.InternalException.READ_LOCK_FAILED:string {"PGS00235: Failed to acquire read lock: {0}"}
+
+ /**
+ * @note PGS00236:
+ * Substitution {0} is an error message string
+ */
+ Common.InternalException.WRITE_LOCK_FAILED:string {"PGS00236: Failed to acquire write lock: {0}"}
+
+ /**
+ * @note PGS00237:
+ * Substitution {0} is an error message string
+ */
+ Common.InternalException.SEMAPHORE_INIT_FAILED:string {"PGS00237: Semaphore initialization failed: {0}"}
+
+ /**
+ * @note PGS00238:
+ * Substitution {0} is an error message string
+ */
+ Common.InternalException.SEMAPHORE_WAIT_FAILED:string {"PGS00238: Semaphore wait failed: {0}"}
+
+ /**
+ * @note PGS00239:
+ * Substitution {0} is an error message string
*/
- Common.InternalException.INSTANCE_ALREADY_RESOLVED:string {"PGS00234: Attempted to resolve an instance that is already resolved."}
+ Common.InternalException.SEMAPHORE_SIGNAL_FAILED:string {"PGS00239: Failed to signal semaphore: {0}"}
// ==========================================================
@@ -395,7 +436,7 @@ en:table {
*/
Common.Exception.INVALID_NAMESPACE_NAME_EXCEPTION:string {"PGS00403: The CIM namespace name is not valid: {0}"}
- Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION:string {"PGS00404: The object is not initialized."}
+ Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION:string {"PGS00404: The object is not initialized."}
Common.Exception.TYPE_MISMATCH_EXCEPTION:string {"PGS00405: The CIM type does not match the expected CIM type."}
@@ -405,7 +446,7 @@ en:table {
* @note PGS00407:
* Do not translate the word 'datetime' since it is a standard CIM type
*/
- Common.Exception.INVALID_DATETIME_FORMAT_EXCEPTION:string {"PGS00407: The format of the CIM datetime type is not valid."}
+ Common.Exception.INVALID_DATETIME_FORMAT_EXCEPTION:string {"PGS00407: The format of the CIM datetime type is not valid."}
/**
* @note PGS00408:
@@ -500,7 +541,7 @@ en:table {
* Substitution {0} is a line number (Uint32)
* Substitution {1} is a message
*/
- Common.XmlParser.UNTERMINATED_COMMENT:string {"PGS00606: Expected an end comment on line {0}. {1}"}
+ Common.XmlParser.UNTERMINATED_COMMENT:string {"PGS00606: Expected an end comment on line {0}. {1}"}
/**
* @note PGS00607:
@@ -522,6 +563,7 @@ en:table {
* @note PGS00609:
* Substitution {0} is a line number (Uint32)
* Substitution {1} is a message
+ * This message is no longer used as of version 2.8.0
*/
Common.XmlParser.TOO_MANY_ATTRIBUTES:string {"PGS00609: Too many attributes on line {0}. The XML parser handles a maximum of 10. {1}"}
@@ -575,6 +617,13 @@ en:table {
*/
Common.XmlParser.SEMANTIC_ERROR:string {"PGS00616: Semantic error on line {0}. {1}"}
+ /**
+ * @note PGS00617:
+ * Substitution {0} is a line number (Uint32)
+ * Substitution {1} is a message
+ */
+ Common.XmlParser.UNDECLARED_NAMESPACE:string {"PGS00617: Undeclared namespace on line {0}. {1}"}
+
// ==========================================================
// Messages for Repository InheritanceTree
@@ -609,7 +658,7 @@ en:table {
Repository.CIMRepository.COMPACT_FAILED:string {"PGS01200: Failed to compact the Repository Instance Data file."}
- Repository.CIMRepository.ROLLBACK_FAILED:string {"PGS01201: The rollback operation failed."}
+ Repository.CIMRepository.ROLLBACK_FAILED:string {"PGS01201: The rollback operation failed."}
Repository.CIMRepository.BEGIN_FAILED:string {"PGS01202: The attempt to begin the transaction failed."}
@@ -676,6 +725,19 @@ en:table {
Repository.CIMRepository.INDEX_COMPACT_FAILED:string {"PGS01215: Failed to compact the Repository Instance Index file."}
+ /**
+ * @note PGS01216:
+ * Substitution {0} is a file name (a string)
+ * Substitution {1} is a file entry (a string)
+ */
+ Repository.CIMRepository.INVALID_CONFIG_FILE_ENTRY:string {"PGS01216: File {0} contains an invalid entry: ''{1}''."}
+
+ /**
+ * @note PGS01217:
+ * Substitution {0} is a file name (a string)
+ */
+ Repository.CIMRepository.EMPTY_CONFIG_FILE:string {"PGS01217: File {0} is empty."}
+
// ==========================================================
// Messages for Security UserExceptions
@@ -734,10 +796,7 @@ en:table {
* @note PGS01409:
* Do not translate the word "UserManager" since it is a class name.
*/
-
- Security.UserManager.UserExceptions.CANT_CREATE_USERMANAGER_INSTANCE:string
-{"PGS01409: Cannot create a UserManager instance. The repository handle may
-not be valid."}
+ Security.UserManager.UserExceptions.CANT_CREATE_USERMANAGER_INSTANCE:string {"PGS01409: Cannot create a UserManager instance. The repository handle may not be valid."}
// ==========================================================
// Messages for Security PasswordFile
@@ -814,6 +873,10 @@ not be valid."}
Security.UserManager.UserFileHandler.TIMEOUT:string {"PGS01800: Timed out while attempting to perform the requested operation. Try the operation again."}
+ /**
+ * @note PGS01801:
+ * This message is no longer used as of version 2.9.0
+ */
Security.UserManager.UserFileHandler.DEADLOCK:string {"PGS01801: Deadlock encountered while attempting to perform the requested operation. Try the operation again."}
/**
@@ -855,7 +918,7 @@ not be valid."}
* @note PGS02203:
* Substitution {0} is the option (a string)
*/
- Config.ConfigExceptions.DUPLICATE_OPTION:string {"PGS02203: Duplicate option {0}."}
+ Config.ConfigExceptions.DUPLICATE_OPTION:string {"PGS02203: Duplicate option {0}."}
/**
* @note PGS02204:
@@ -873,7 +936,7 @@ not be valid."}
* @note PGS02206:
* Substitution {0} is the name of a property (a string)
*/
- Config.ConfigExceptions.UNRECOGNIZED_CONFIG_PROPERTY:string {"PGS02206: The configuration property {0} is not recognized."}
+ Config.ConfigExceptions.UNRECOGNIZED_CONFIG_PROPERTY:string {"PGS02206: The configuration property {0} is not recognized."}
/**
* @note PGS02207:
@@ -1103,7 +1166,7 @@ not be valid."}
ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.DISABLE_PROVIDER_MODULE_FAILED:string {"PGS03021: Failed to disable the CIM provider module."}
- ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_DISABLE_ENABLE_PROVIDERS:string {"PGS03022: Superuser authority is required to disable or enable CIM providers."}
+ ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_DISABLE_ENABLE_PROVIDERS:string {"PGS03022: Superuser authority is required to disable or enable CIM providers."}
/**
* @note PGS03023:
@@ -1233,60 +1296,65 @@ not be valid."}
// Please use message prefix "PGS03300"
// ==========================================================
- ControlProviders.CertificateProvider.MUST_BE_PRIVILEGED_USER:string {"PGS03301: Superuser authority is required to run this CIM operation."}
+ ControlProviders.CertificateProvider.MUST_BE_PRIVILEGED_USER:string {"PGS03301: Superuser authority is required to run this CIM operation."}
/**
- * @note PGS03302
- * Substitution {0} is the name of the directory
- */
- ControlProviders.CertificateProvider.COULD_NOT_READ_DIRECTORY:string {"PGS03302: Cannot read directory {0}."}
+ * @note PGS03302
+ * Substitution {0} is the name of the directory
+ */
+ ControlProviders.CertificateProvider.COULD_NOT_READ_DIRECTORY:string {"PGS03302: Cannot read directory {0}."}
/**
- * @note PGS03303
- * Substitution {0} is the name of the directory
- */
- ControlProviders.CertificateProvider.INVALID_DIRECTORY:string {"PGS03303: Directory {0} is not valid."}
+ * @note PGS03303
+ * Substitution {0} is the name of the directory
+ */
+ ControlProviders.CertificateProvider.INVALID_DIRECTORY:string {"PGS03303: Directory {0} is not valid."}
/**
- * @note PGS03304
- * Substitution {0} is the name of the file
- */
- ControlProviders.CertificateProvider.DELETE_FAILED:string {"PGS03304: Could not delete file {0}."}
+ * @note PGS03304
+ * Substitution {0} is the name of the file
+ */
+ ControlProviders.CertificateProvider.DELETE_FAILED:string {"PGS03304: Could not delete file {0}."}
- /**
- * @note PGS03305
- * Substitution {0} is the name of the file
- */
- ControlProviders.CertificateProvider.FILE_DNE:string {"PGS03305: File does not exist {0}."}
+ /**
+ * @note PGS03305
+ * Substitution {0} is the name of the file
+ */
+ ControlProviders.CertificateProvider.FILE_DNE:string {"PGS03305: File does not exist {0}."}
- ControlProviders.CertificateProvider.BAD_X509_FORMAT:string {"PGS03306: Could not read x509 PEM format."}
+ ControlProviders.CertificateProvider.BAD_X509_FORMAT:string {"PGS03306: Could not read x509 PEM format."}
- ControlProviders.CertificateProvider.CERT_NOT_VALID_YET:string {"PGS03307: The certificate is not valid yet. Check the timestamps on your machine."}
+ ControlProviders.CertificateProvider.CERT_NOT_VALID_YET:string {"PGS03307: The certificate is not valid yet. Check the timestamps on your machine."}
- ControlProviders.CertificateProvider.CERT_EXPIRED:string {"PGS03308: The certificate has expired."}
+ ControlProviders.CertificateProvider.CERT_EXPIRED:string {"PGS03308: The certificate has expired."}
- ControlProviders.CertificateProvider.BAD_DATE_FORMAT:string {"PGS03309: The validity dates are out of range."}
+ ControlProviders.CertificateProvider.BAD_DATE_FORMAT:string {"PGS03309: The validity dates are out of range."}
- ControlProviders.CertificateProvider.CRL_NOT_VALID_YET:string {"PGS03310: The certificate revocation list is not valid yet. Check the timestamps on your machine.."}
+ ControlProviders.CertificateProvider.CRL_NOT_VALID_YET:string {"PGS03310: The certificate revocation list is not valid yet. Check the timestamps on your machine.."}
- ControlProviders.CertificateProvider.CRL_EXPIRED:string {"PGS03311: The certificate revocation list is not up-to-date. Check with the issuing CA for the latest one."}
+ ControlProviders.CertificateProvider.CRL_EXPIRED:string {"PGS03311: The certificate revocation list is not up-to-date. Check with the issuing CA for the latest one."}
- ControlProviders.CertificateProvider.EMPTY_CRL:string {"PGS03312: The certificate revocation list is empty."}
+ ControlProviders.CertificateProvider.EMPTY_CRL:string {"PGS03312: The certificate revocation list is empty."}
- ControlProviders.CertificateProvider.TRUSTSTORE_RELOAD_FAILED:string {"PGS03313: Trust store reload failed. Certificate deletion will not be effective until cimserver restart."}
+ ControlProviders.CertificateProvider.TRUSTSTORE_RELOAD_FAILED:string {"PGS03313: Trust store reload failed. Certificate deletion will not be effective until cimserver restart."}
- ControlProviders.CertificateProvider.ERROR_WRITING_CERT:string {"PGS03314: Unable to add certificate to truststore. Error while trying to write certificate."}
+ ControlProviders.CertificateProvider.ERROR_WRITING_CERT:string {"PGS03314: Unable to add certificate to truststore. Error while trying to write certificate."}
- ControlProviders.CertificateProvider.ERROR_WRITING_CRL:string {"PGS03315: Unable to add CRL to truststore. Error while trying to write CRL."}
+ ControlProviders.CertificateProvider.ERROR_WRITING_CRL:string {"PGS03315: Unable to add CRL to truststore. Error while trying to write CRL."}
- ControlProviders.CertificateProvider.MULTIPLE_CERT_IN_FILE:string {"PGS03316: Specified certificate file contains more than one certificate."}
+ ControlProviders.CertificateProvider.MULTIPLE_CERT_IN_FILE:string {"PGS03316: Specified certificate file contains more than one certificate."}
- ControlProviders.CertificateProvider.CERT_WITH_SAME_SUBJECT:string {"PGS03317: Another certificate with the same subject name already exists."}
+ ControlProviders.CertificateProvider.CERT_WITH_SAME_SUBJECT:string {"PGS03317: Another certificate with the same subject name already exists."}
/**
* @version 2.8
*/
ControlProviders.CertificateProvider.CERT_DNE:string {"PGS03318: The certificate does not exist."}
+ /**
+ * @note PGS03319
+ * Substitution {0} is the name of the file
+ */
+ ControlProviders.CertificateProvider.COULD_NOT_READ_CRL:string {"PGS03319: Failed to read CRL {0}."}
// ==========================================================
// Messages for CIMOMHandle
@@ -1307,7 +1375,7 @@ not be valid."}
* A word of explanation: in computing terminology, exceptions are 'thrown' and 'caught'.
* The word 'caught' in this message is using the computing terminology for exceptions.
*/
- Provider.CIMOMHandle.CAUGHT_EXCEPTION:string {"PGS03402: Exception caught in CIMOMHandle."}
+ Provider.CIMOMHandle.CAUGHT_EXCEPTION:string {"PGS03402: Exception caught in CIMOMHandle."}
/**
* @note PGS03403
@@ -1337,21 +1405,21 @@ not be valid."}
* Substitution {0} is the name of the provider adapter (a string)
* Do not translate the word 'ProviderAdapter' since it is a class name.
*/
- ProviderManager.ProviderAdapter.ENTRY_POINT_RETURNED_NULL:string {"PGS03601: Adapter load failure. The entry point for ProviderAdapter {0} returned a null value."}
+ ProviderManager.ProviderAdapter.ENTRY_POINT_RETURNED_NULL:string {"PGS03601: Adapter load failure. The entry point for ProviderAdapter {0} returned a null value."}
/**
* @note PGS03602
* Substitution {0} is the name of the provider adapter (a string)
* Do not translate the word 'ProviderAdapter' since it is a class name.
*/
- ProviderManager.ProviderAdapter.ADAPTER_NOT_PA:string {"PGS03602: Adapter load failure. Adapter {0} is not a ProviderAdapter."}
+ ProviderManager.ProviderAdapter.ADAPTER_NOT_PA:string {"PGS03602: Adapter load failure. Adapter {0} is not a ProviderAdapter."}
/**
* @note PGS03603
* Substitution {0} is the name of the provider adapter (a string)
* Do not translate the word 'CIMProvider' since it is a class name.
*/
- ProviderManager.ProviderAdapter.ADAPTER_NOT_CP:string {"PGS03603: Adapter load failure. Adapter {0} is not a CIMProvider."}
+ ProviderManager.ProviderAdapter.ADAPTER_NOT_CP:string {"PGS03603: Adapter load failure. Adapter {0} is not a CIMProvider."}
/**
* @note PGS03604
@@ -1361,11 +1429,11 @@ not be valid."}
ProviderManager.ProviderAdapter.MISSING:string {"PGS03604: Adapter {0} cannot be loaded. PegasusCreateProviderAdapter is not found."}
- /**
- * @note PGS03605
- *
- */
- ProviderManager.ProviderManager.INITIALIZE_FAILED:string {"PGS03605: Provider failed to initialize."}
+ /**
+ * @note PGS03605
+ *
+ */
+ ProviderManager.ProviderManager.INITIALIZE_FAILED:string {"PGS03605: Provider failed to initialize."}
// ==========================================================
@@ -1401,21 +1469,21 @@ not be valid."}
* Substitution {1} is the name of a system user (a string)
* @version 2.6
*/
- ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_USER_CTXT_FAILURE_DETECTED:string {"PGS04007: A failure was detected in provider module {0} with user context {1}."}
+ ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_USER_CTXT_FAILURE_DETECTED:string {"PGS04007: A failure was detected in provider module {0} with user context {1}."}
/**
* @note PGS04008
* Substitution {0} is the name of a provider module (a string)
* @version 2.6
*/
- ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_FAILURE_DETECTED:string {"PGS04008: A failure was detected in provider module {0}."}
+ ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_FAILURE_DETECTED:string {"PGS04008: A failure was detected in provider module {0}."}
/**
* @note PGS04009
* Substitution {0} is the name of a provider module (a string)
* @version 2.6
*/
- ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_SUBSCRIPTIONS_AFFECTED:string {"PGS04009: The generation of indications by providers in module {0} may be affected. To ensure these providers are serving active subscriptions, disable and then re-enable this module using the cimprovider command."}
+ ProviderManager.ProviderManagerService.OOP_PROVIDER_MODULE_SUBSCRIPTIONS_AFFECTED:string {"PGS04009: The generation of indications by providers in module {0} may be affected. To ensure these providers are serving active subscriptions, disable and then re-enable this module using the cimprovider command."}
/**
* @note PGS04010
@@ -1423,7 +1491,14 @@ not be valid."}
* Substitution {1} is the name of a provider module (a string)
* @version 2.6
*/
- ProviderManager.ProviderManagerService.PROVIDER_FILE_NOT_FOUND:string {"PGS04010: File \"{0}\" was not found for provider module \"{1}\"."}
+ ProviderManager.ProviderManagerService.PROVIDER_FILE_NOT_FOUND:string {"PGS04010: File \"{0}\" was not found for provider module \"{1}\"."}
+
+ /**
+ * @note PGS04011
+ * Substitution {0} is a provider interface type (a string)
+ * Substitution {1} is a provider interface version (a string)
+ */
+ ProviderManager.ProviderManagerService.PROVIDERMANAGER_LOOKUP_FAILED:string {"PGS04011: Provider interface type ''{0}'' version ''{1}'' is not recognized."}
// ==========================================================
@@ -1443,14 +1518,14 @@ not be valid."}
* Substitution {1} is the name of a provider (a string)
* Substitution {2} is the system load error
*/
- ProviderManager.ProviderModule.CANNOT_LOAD_LIBRARY:string {"PGS04201: Provider {1} in file {0} cannot load library. Error: {2}."}
+ ProviderManager.ProviderModule.CANNOT_LOAD_LIBRARY:string {"PGS04201: Provider {1} in file {0} cannot load library. Error: {2}."}
/**
* @note PGS04202
* Substitution {0} is the name of the file (a string)
* Substitution {1} is the name of a provider (a string)
*/
- ProviderManager.ProviderModule.ENTRY_POINT_NOT_FOUND:string {"PGS04202: Entry point is not found for provider {1} in file {0}."}
+ ProviderManager.ProviderModule.ENTRY_POINT_NOT_FOUND:string {"PGS04202: Entry point is not found for provider {1} in file {0}."}
/**
* @note PGS04203
@@ -1458,7 +1533,7 @@ not be valid."}
* Substitution {1} is the name of a provider (a string)
* Do not translate the word 'CIMProvider' since it is a class name.
*/
- ProviderManager.ProviderModule.PROVIDER_IS_NOT_A:string {"PGS04203: Provider {1} in file {0} is not a CIMProvider."}
+ ProviderManager.ProviderModule.PROVIDER_IS_NOT_A:string {"PGS04203: Provider {1} in file {0} is not a CIMProvider."}
// ==========================================================
@@ -1483,7 +1558,7 @@ not be valid."}
* @note PGS04402
* Substitution {0} is the name of the option (a string)
*/
- Clients.cliutils.CommandException.INVALID_OPTION:string {"PGS04402: Option -{0} is not valid for this command."}
+ Clients.cliutils.CommandException.INVALID_OPTION:string {"PGS04402: Option -{0} is not valid for this command."}
/**
* @note PGS04403
@@ -1495,19 +1570,19 @@ not be valid."}
* @note PGS04404
* Substitution {0} is the name of the option (a string)
*/
- Clients.cliutils.CommandException.MISSING_OPTION:string {"PGS04404: The -{0} option is required."}
+ Clients.cliutils.CommandException.MISSING_OPTION:string {"PGS04404: The -{0} option is required."}
/**
* @note PGS04405
* Substitution {0} is the argument (a string)
*/
- Clients.cliutils.CommandException.UNEXPECTED_ARG:string {"PGS04405: Argument {0} is unexpected."}
+ Clients.cliutils.CommandException.UNEXPECTED_ARG:string {"PGS04405: Argument {0} is unexpected."}
/**
* @note PGS04406
* Substitution {0} is the name of the option (a string)
*/
- Clients.cliutils.CommandException.UNEXPECTED_OPTION:string {"PGS04406: Option -{0} is unexpected."}
+ Clients.cliutils.CommandException.UNEXPECTED_OPTION:string {"PGS04406: Option -{0} is unexpected."}
// ==========================================================
@@ -1519,20 +1594,20 @@ not be valid."}
* @note PGS04600
* Substitution {0} is the invalid flag name (a string)
*/
- getoopt.getoopt.CANT_NAME_FLAG:string {"PGS04600: The flag name ''{0}'' is not valid."}
+ getoopt.getoopt.CANT_NAME_FLAG:string {"PGS04600: The flag name ''{0}'' is not valid."}
/**
* @note PGS04601
* Substitution {0} is the flag tag (a string - perhaps empty)
* Substitution {1} is the name of the unknown flag (a string)
*/
- getoopt.getoopt.UNKNOWN_FLAG:string {"PGS04601: The flag {0}{1} is unknown."}
+ getoopt.getoopt.UNKNOWN_FLAG:string {"PGS04601: The flag {0}{1} is unknown."}
/**
* @note PGS04602
* Substitution {0} is the flag name(a string)
*/
- getoopt.getoopt.MISSING_VALUE_FOR_FLAG:string {"PGS04602: Missing required value for flag {0}."}
+ getoopt.getoopt.MISSING_VALUE_FOR_FLAG:string {"PGS04602: Missing required value for flag {0}."}
// ==========================================================
// Messages for CIMMOFL
@@ -1696,9 +1771,9 @@ not be valid."}
/**
* @note PGS04805: Do not translate '-R' or 'PEGASUS_HOME'
*/
- Compiler.cmdline.cimmof.cmdline.MUST_SPECIFY_R_OR_HOME:string {"PGS04805: Specify -R or set the PEGASUS_HOME environment variable."}
+ Compiler.cmdline.cimmof.cmdline.MUST_SPECIFY_R_OR_HOME:string {"PGS04805: Specify -R or set the PEGASUS_HOME environment variable."}
- Compiler.cmdline.cimmof.cmdline.MUST_SPECIFY_MOF_FILES:string {"PGS04806: Specify the MOF files to process."}
+ Compiler.cmdline.cimmof.cmdline.MUST_SPECIFY_MOF_FILES:string {"PGS04806: Specify the MOF files to process."}
Compiler.cmdline.cimmof.main.UNEXPECTED_CONDITION:string {"PGS04807: Unexpected condition: "}
@@ -1707,9 +1782,9 @@ not be valid."}
*/
Compiler.cmdline.cimmof.main.UNEXPECTED_RESULT:string {"PGS04808: Unexpected result from processing command line: {0}"}
- Compiler.cmdline.cimmof.main.COMPILE_TERMINATING:string {"PGS04809: Compilation is ending."}
+ Compiler.cmdline.cimmof.main.COMPILE_TERMINATING:string {"PGS04809: Compilation is ending."}
- Compiler.cmdline.cimmof.main.FAILED_TO_SET:string {"PGS04810: Failed to set the default namespace path."}
+ Compiler.cmdline.cimmof.main.FAILED_TO_SET:string {"PGS04810: Failed to set the default namespace path."}
/**
@@ -1831,7 +1906,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04827:
- * Do not translate CIMQualifier
+ * Do not translate CIMQualifier
* Substitution {0} is the qualifier name (a string).
* Substitution {1} is the detailed error message (a string).
*/
@@ -1840,7 +1915,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04828:
- * Do not translate CIMQualifier
+ * Do not translate CIMQualifier
* Substitution {0} is the qualifier name (a string).
* Substitution {1} is the detailed error message (a string).
*/
@@ -1883,7 +1958,7 @@ not be valid."}
* Substitution {1} is the property name (a string).
* Substitution {0} is the class name (a string).
*/
- Compiler.cimmofMessages.PROPERTY_ALREADY_EXISTS_WARNING:string {"PGS04833: Warning: Property {1} already exists in class {0}"}
+ Compiler.cimmofMessages.PROPERTY_ALREADY_EXISTS_WARNING:string {"PGS04833: Warning: Property {1} already exists in class {0}"}
/**
* @version 2.4
@@ -1905,7 +1980,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04836:
- * "Class" is used in the programming sense.
+ * "Class" is used in the programming sense.
* Substitution {0} is the name of the class being declared (a string).
* Substitution {1} is the detailed error message (a string).
*/
@@ -1921,7 +1996,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04838:
- * "Class" is used in the programming sense.
+ * "Class" is used in the programming sense.
* "Repository" is similiar to "database"
* Substitution {0} is the name of the class (a string).
*/
@@ -1930,7 +2005,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04839:
- * "Class" is used in the programming sense.
+ * "Class" is used in the programming sense.
* "Repository" is similiar to "database"
* Substitution {0} is the name of the class (a string).
* Substitution {1} is the detailed error message (a string).
@@ -1992,7 +2067,7 @@ not be valid."}
/**
* @version 2.4
* @note PGS04846:
- * "Name space" is an area that contains names of classes.
+ * "Name space" is an area that contains names of classes.
* "Name space" itself has a name.
* Substitution {2} is the name of the property (a string).
* Substitution {1} is the name of the class (a string).
@@ -2285,7 +2360,7 @@ not be valid."}
* @note PGS05416:
* Do not translate the words 'MULTIREQ' or "CIMBatch" since they are HTTP extensions for CIM
*/
- Server.CIMOperationRequestDecoder.MULTI_REQUEST_MISSING_CIMBATCH_HTTP_HEADER:string{"PGS05416: Multiple request tag (MULTIREQ) is missing the CIMBatch HTTP header."}
+ Server.CIMOperationRequestDecoder.MULTI_REQUEST_MISSING_CIMBATCH_HTTP_HEADER:string{"PGS05416: Multiple request tag (MULTIREQ) is missing the CIMBatch HTTP header."}
/**
* @note PGS05417:
@@ -2685,10 +2760,19 @@ not be valid."}
Common.HTTPAcceptor.FAILED_SET_SOCKET_OPTION:string {"PGS07802: CIM HTTP or HTTPS connection failed to set the socket option."}
+ /**
+ * This message is no longer used as of version 2.6
+ */
Common.HTTPAcceptor.FAILED_BIND_SOCKET:string {"PGS07803: CIM HTTP or HTTPS connection failed to bind the socket."}
Common.HTTPAcceptor.FAILED_SOLICIT_SOCKET_MESSAGES:string {"PGS07804: CIM HTTP or HTTPS connection failed to solicit socket messages."}
+ Common.HTTPAcceptor.FAILED_BIND_SOCKET_DETAIL:string {"PGS07805: Failed to bind socket on port {0}: {1}."}
+
+ Common.HTTPAcceptor.FAILED_SET_LDS_FILE_OPTION:string {"PGS07806: Failed to set permission on local domain socket {0}: {1}."}
+
+ Common.HTTPAcceptor.FAILED_LISTEN_SOCKET:string {"PGS07807: Failed to listen on socket {0}: {1}."}
+
// ==========================================================
// Messages for HTTPConnector
@@ -2702,7 +2786,7 @@ not be valid."}
* Substitution {0} is the host (a string)
* Substitution {1} is the port number represented as a string
*/
- Common.HTTPConnector.CONNECTION_FAILED_TO:string {"PGS08001: CIM HTTP or HTTPS connector cannot connect to {0}:{1}. Connection failed."}
+ Common.HTTPConnector.CONNECTION_FAILED_TO:string {"PGS08001: CIM HTTP or HTTPS connector cannot connect to {0}:{1}. Connection failed."}
// ==========================================================
@@ -2819,13 +2903,22 @@ not be valid."}
// Please use message prefix "PGS09100"
// ==========================================================
+ Common.System.ERROR_MESSAGE.PEGASUS_OS_ZOS:string {"{0} (error code {1}, reason code 0x{2})"}
+
+ Common.System.ERROR_MESSAGE.STANDARD:string {"{0} (error code {1})"}
+
/**
* @note PGS09100:
* Do not translate the word 'TCP/IP'
*/
-
Common.Socket.WAIT_FOR_TCPIP:string {"PGS09100: TCP/IP temporary unavailable."}
-
+
+ /**
+ * @note PGS09101:
+ * @version 2.8
+ * Substitution {0} is an integer error number
+ */
+ Common.Socket.WSASTARTUP_FAILED.WINDOWS:string {"PGS09101: WSAStartup failed with error {0}."}
// ==========================================================
@@ -2845,7 +2938,7 @@ not be valid."}
*/
Common.SSLContext.NOT_ENOUGH_SEED_DATA_IN_FILE:string {"PGS09203: Not enough seed data in random seed file: {0}."}
- Common.SSLContext.NOT_ENOUGH_SEED_DATA:string {"PGS09204: Not enough seed data."}
+ Common.SSLContext.NOT_ENOUGH_SEED_DATA:string {"PGS09204: Not enough seed data."}
/**
* @note PGS09205:
@@ -2862,6 +2955,18 @@ not be valid."}
Common.SSLContext.COULD_NOT_LOAD_CRLS:string {"PGS09209: Could not load certificate revocation list."}
+ /**
+ * @note PGS09210:
+ * Substitution {0} is the name of a certificate file (a string)
+ */
+ Common.SSLContext.CERTIFICATE_NOT_YET_VALID:string {"PGS09210: Certificate {0} is not yet valid."}
+
+ /**
+ * @note PGS09211:
+ * Substitution {0} is the name of a certificate file (a string)
+ */
+ Common.SSLContext.CERTIFICATE_EXPIRED:string {"PGS09211: Certificate {0} has expired."}
+
// ==========================================================
// Messages for TraceFileHandler
// Please use message prefix "PGS09400"
@@ -2870,6 +2975,7 @@ not be valid."}
/**
* @note PGS09400:
* Substitution {0} is the name of the file (a string)
+ * This message is no longer used as of version 2.9.0
*/
Common.TraceFileHandler.FAILED_TO_OPEN_FILE:string {"PGS09400: Failed to open file {0}."}
@@ -2877,7 +2983,7 @@ not be valid."}
* @note PGS09401:
* Substitution {0} is the name of the file (a string)
*/
- Common.TraceFileHandlerUnix.FAILED_TO_OPEN_FILE:string {"PGS09401: Failed to open file {0}."}
+ Common.TraceFileHandlerUnix.FAILED_TO_OPEN_FILE:string {"PGS09401: Failed to open file {0}."}
/**
* @note PGS09402:
@@ -2913,7 +3019,7 @@ not be valid."}
* @note PGS09407:
* Substitution {0} is the name of the file (a string)
*/
- Common.TraceFileHandlerUnix.FAILED_TO_SET_FILE_PERMISSIONS:string {"PGS09407: Failed to set permissions on file {0}."}
+ Common.TraceFileHandlerUnix.FAILED_TO_SET_FILE_PERMISSIONS:string {"PGS09407: Failed to set permissions on file {0}."}
/**
* @note PGS09408:
@@ -2923,6 +3029,13 @@ not be valid."}
*/
Common.TraceFileHandler.UNEXPECTED_FILE_OWNER:string {"PGS09408: File {0} is not owned by user {1}."}
+ /**
+ * @note PGS09409:
+ * @version 2.9
+ * Substitution {0} is the name of the file (a string)
+ * Substitution {1} is the error message of the OS
+ */
+ Common.TraceFileHandler.FAILED_TO_OPEN_FILE_SYSMSG:string {"PGS09409: Failed to open file {0}: {1}"}
// ==========================================================
// Messages for XmlReader
@@ -2933,7 +3046,7 @@ not be valid."}
* @note PGS09600:
* Do not translate the word '<?xml ... ?>' since it is a standard XML declaration
*/
- Common.XmlReader.EXPECTED_XML_STYLE:string {"PGS09600: A <?xml ... ?> style declaration is expected."}
+ Common.XmlReader.EXPECTED_XML_STYLE:string {"PGS09600: A <?xml ... ?> style declaration is expected."}
Common.XmlReader.MISSING_XML_ATTRIBUTE:string {"PGS09601: The XML version attribute is missing from the XML declaration."}
@@ -2987,27 +3100,27 @@ not be valid."}
* @note PGS09609:
* Substitution {0} is the name of the element tag.attribute (a string)
*/
- Common.XmlReader.MISSING_ATTRIBUTE:string {"PGS09609: The {0} attribute is missing."}
+ Common.XmlReader.MISSING_ATTRIBUTE:string {"PGS09609: The {0} attribute is missing."}
/**
* @note PGS09610:
* Substitution {0} is the name of the element tag.attribute (a string)
*/
- Common.XmlReader.ILLEGAL_VALUE_FOR_ATTRIBUTE:string {"PGS09610: The {0} attribute value is not valid."}
+ Common.XmlReader.ILLEGAL_VALUE_FOR_ATTRIBUTE:string {"PGS09610: The {0} attribute value is not valid."}
/**
* @note PGS09611:
* Substitution {0} is the name of the attribute and its tag name (a string)
*/
- Common.XmlReader.INVALID_ATTRIBUTE:string {"PGS09611: The {0} attribute has a value that is not valid."}
+ Common.XmlReader.INVALID_ATTRIBUTE:string {"PGS09611: The {0} attribute has a value that is not valid."}
- Common.XmlReader.INVALID_URI_ENCODING:string {"PGS09612: The URI encoding is not valid."}
+ Common.XmlReader.INVALID_URI_ENCODING:string {"PGS09612: The URI encoding is not valid."}
/**
* @note PGS09613:
* Do not translate the word 'boolean' since it is a standard CIM type
*/
- Common.XmlReader.INVALID_BOOLEAN_VALUE:string {"PGS09613: The boolean value is not valid."}
+ Common.XmlReader.INVALID_BOOLEAN_VALUE:string {"PGS09613: The boolean value is not valid."}
/**
* @note PGS09614:
@@ -3069,85 +3182,85 @@ not be valid."}
* @note PGS09626:
* Do not translate the word 'HOST' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_HOST_ELEMENT:string {"PGS09626: A HOST element is expected."}
+ Common.XmlReader.EXPECTED_HOST_ELEMENT:string {"PGS09626: A HOST element is expected."}
/**
* @note PGS09627:
* Do not translate the word 'LOCALNAMESPACEPATH' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_LOCALNAMESPACEPATH_ELEMENT:string {"PGS09627: A LOCALNAMESPACEPATH element is expected."}
+ Common.XmlReader.EXPECTED_LOCALNAMESPACEPATH_ELEMENT:string {"PGS09627: A LOCALNAMESPACEPATH element is expected."}
/**
* @note PGS09628:
* Do not translate the word 'CLASSNAME' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_CLASSNAME_ELEMENT:string {"PGS09628: A CLASSNAME element is expected."}
+ Common.XmlReader.EXPECTED_CLASSNAME_ELEMENT:string {"PGS09628: A CLASSNAME element is expected."}
/**
* @note PGS09629:
* Do not translate the word 'NAMESPACEPATH' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_NAMESPACEPATH_ELEMENT:string {"PGS09629: A NAMESPACEPATH element is expected."}
+ Common.XmlReader.EXPECTED_NAMESPACEPATH_ELEMENT:string {"PGS09629: A NAMESPACEPATH element is expected."}
/**
* @note PGS09630:
* Do not translate the word 'INSTANCENAME' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_INSTANCENAME_ELEMENT:string {"PGS09630: An INSTANCENAME element is expected."}
+ Common.XmlReader.EXPECTED_INSTANCENAME_ELEMENT:string {"PGS09630: An INSTANCENAME element is expected."}
/**
* @note PGS09631:
* Do not translate the word 'INSTANCE' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_INSTANCE_ELEMENT:string {"PGS09631: An INSTANCE element is expected."}
+ Common.XmlReader.EXPECTED_INSTANCE_ELEMENT:string {"PGS09631: An INSTANCE element is expected."}
/**
* @note PGS09632:
* Do not translate the word 'CLASS' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_CLASS_ELEMENT:string {"PGS09632: A CLASS element is expected."}
+ Common.XmlReader.EXPECTED_CLASS_ELEMENT:string {"PGS09632: A CLASS element is expected."}
/**
* @note PGS09633:
* Do not translate the word 'QUALIFIER.DECLARATION' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_QUALIFIER_DECLARATION_ELEMENT:string {"PGS09633: A QUALIFIER.DECLARATION element is expected."}
+ Common.XmlReader.EXPECTED_QUALIFIER_DECLARATION_ELEMENT:string {"PGS09633: A QUALIFIER.DECLARATION element is expected."}
/**
* @note PGS09634:
* Do not translate the word 'ERROR' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_ERROR_ELEMENT:string {"PGS09634: An ERROR element is expected."}
+ Common.XmlReader.EXPECTED_ERROR_ELEMENT:string {"PGS09634: An ERROR element is expected."}
/**
* @note PGS09635:
* Do not translate the words 'INSTANCE' and 'CLASS' since they are standard element names for CIM in XML
*/
- Common.XmlReader.EXPECTED_INSTANCE_OR_CLASS_ELEMENT:string {"PGS09635: An INSTANCE or CLASS element is expected."}
+ Common.XmlReader.EXPECTED_INSTANCE_OR_CLASS_ELEMENT:string {"PGS09635: An INSTANCE or CLASS element is expected."}
/**
* @note PGS09636:
* Do not translate the words 'INSTANCEPATH' and 'CLASSPATH' since they are standard element names for CIM in XML
*/
- Common.XmlReader.EXPECTED_INSTANCEPATH_OR_CLASSPATH_ELEMENT:string {"PGS09636: An INSTANCEPATH or CLASSPATH element is expected."}
+ Common.XmlReader.EXPECTED_INSTANCEPATH_OR_CLASSPATH_ELEMENT:string {"PGS09636: An INSTANCEPATH or CLASSPATH element is expected."}
/**
* @note PGS09637:
* Do not translate the words 'LOCALINSTANCEPATH' and 'LOCALCLASSPATH' since they are standard element names for CIM in XML
*/
- Common.XmlReader.EXPECTED_LOCALINSTANCEPATH_OR_LOCALCLASSPATH_ELEMENT:string {"PGS09637: A LOCALINSTANCEPATH or LOCALCLASSPATH element is expected."}
+ Common.XmlReader.EXPECTED_LOCALINSTANCEPATH_OR_LOCALCLASSPATH_ELEMENT:string {"PGS09637: A LOCALINSTANCEPATH or LOCALCLASSPATH element is expected."}
/**
* @note PGS09638:
* Do not translate the words 'CLASSNAME' and 'INSTANCENAME' since they are standard element names for CIM in XML
*/
- Common.XmlReader.EXPECTED_CLASSNAME_OR_INSTANCENAME_ELEMENT:string {"PGS09638: A CLASSNAME or INSTANCENAME element is expected."}
+ Common.XmlReader.EXPECTED_CLASSNAME_OR_INSTANCENAME_ELEMENT:string {"PGS09638: A CLASSNAME or INSTANCENAME element is expected."}
/**
* @note PGS09639:
* Substitution {0} is the name of the element tag (a string)
*/
- Common.XmlReader.EXPECTED_ELEMENT:string {"PGS09639: A {0} element is expected."}
+ Common.XmlReader.EXPECTED_ELEMENT:string {"PGS09639: A {0} element is expected."}
Common.XmlReader.DUPLICATE_PROPERTY:string {"PGS09640: A duplicate property is found."}
@@ -3157,13 +3270,13 @@ not be valid."}
* @note PGS09642:
* Do not translate the word 'VALUE' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_VALUE_ELEMENT:string {"PGS09642: A VALUE element is expected."}
+ Common.XmlReader.EXPECTED_VALUE_ELEMENT:string {"PGS09642: A VALUE element is expected."}
/**
* @note PGS09643:
* Do not translate the word 'VALUE.REFERENCE' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_VALUE_REFERENCE_ELEMENT:string {"PGS09643: A VALUE.REFERENCE element is expected."}
+ Common.XmlReader.EXPECTED_VALUE_REFERENCE_ELEMENT:string {"PGS09643: A VALUE.REFERENCE element is expected."}
Common.XmlReader.DUPLICATE_QUALIFIER:string {"PGS09644: A duplicate qualifier is found."}
@@ -3177,7 +3290,7 @@ not be valid."}
* @note PGS09646:
* Do not translate the word 'ARRAYSIZE' since it is a standard entity name for CIM in XML
*/
- Common.XmlReader.ARRAY_SIZE_DIFFERENT:string {"PGS09646: The ARRAYSIZE attribute and the size of the array of values are different."}
+ Common.XmlReader.ARRAY_SIZE_DIFFERENT:string {"PGS09646: The ARRAYSIZE attribute and the size of the array of values are different."}
/**
* @note PGS09647:
@@ -3189,13 +3302,13 @@ not be valid."}
* @note PGS09648:
* Do not translate the word 'HOST' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_CONTENT_ELEMENT:string {"PGS09648: The content of the HOST element is expected."}
+ Common.XmlReader.EXPECTED_CONTENT_ELEMENT:string {"PGS09648: The content of the HOST element is expected."}
/**
* @note PGS09649:
* Do not translate the words 'NAMESPACE' and 'LOCALNAMESPACEPATH' since they are standard element names for CIM in XML
*/
- Common.XmlReader.EXPECTED_NAMESPACE_ELEMENTS:string {"PGS09649: One or more NAMESPACE elements is expected within the LOCALNAMESPACEPATH element."}
+ Common.XmlReader.EXPECTED_NAMESPACE_ELEMENTS:string {"PGS09649: One or more NAMESPACE elements is expected within the LOCALNAMESPACEPATH element."}
/**
* @note PGS09650:
@@ -3208,7 +3321,7 @@ not be valid."}
* Do not translate the word 'KEYVALUE' since it is a standard element name for CIM in XML
* Do not translate the word 'VALUE.REFERENCE' since it is a standard element.attribute name for CIM in XML
*/
- Common.XmlReader.EXPECTED_KEYVALUE_OR_REFERENCE_ELEMENT:string {"PGS09651: A KEYVALUE or VALUE.REFERENCE element is expected."}
+ Common.XmlReader.EXPECTED_KEYVALUE_OR_REFERENCE_ELEMENT:string {"PGS09651: A KEYVALUE or VALUE.REFERENCE element is expected."}
/**
* @note PGS09652:
@@ -3225,39 +3338,39 @@ not be valid."}
* Do not translate the word 'LOCALINSTANCEPATH' since it is a standard element name for CIM in XML
* Do not translate the word 'INSTANCENAME' since it is a standard element name for CIM in XML
*/
- Common.XmlReader.EXPECTED_START_TAGS:string {"PGS09653: One of the following start tags is expected: CLASSPATH, LOCALCLASSPATH, CLASSNAME, INSTANCEPATH, LOCALINSTANCEPATH, INSTANCENAME."}
+ Common.XmlReader.EXPECTED_START_TAGS:string {"PGS09653: One of the following start tags is expected: CLASSPATH, LOCALCLASSPATH, CLASSNAME, INSTANCEPATH, LOCALINSTANCEPATH, INSTANCENAME."}
/**
* @note PGS09654:
* Do not translate the word 'VALUE.ARRAY' since it is a standard element name for CIM in XML
* Do not translate the word 'ISARRAY' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.ARRAY_WITHOUT_ISARRAY:string {"PGS09654: A VALUE.ARRAY element is encountered without an ISARRAY attribute."}
+ Common.XmlReader.ARRAY_WITHOUT_ISARRAY:string {"PGS09654: A VALUE.ARRAY element is encountered without an ISARRAY attribute."}
/**
* @note PGS09655:
* Do not translate the word 'VALUE' since it is a standard element name for CIM in XML
* Do not translate the word 'ISARRAY' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.ARRAY_ATTRIBUTE_DIFFERENT:string {"PGS09655: An ISARRAY attribute is used but a VALUE element is encountered."}
+ Common.XmlReader.ARRAY_ATTRIBUTE_DIFFERENT:string {"PGS09655: An ISARRAY attribute is used but a VALUE element is encountered."}
/**
* @note PGS09656:
* Do not translate the word 'MESSAGE.ID' since it is a standard element.attribute name for CIM in XML
*/
- Common.XmlReader.INVALID_MISSING_MESSAGE_ID_ATTRIBUTE:string {"PGS09656: The MESSAGE.ID attribute is missing or not valid."}
+ Common.XmlReader.INVALID_MISSING_MESSAGE_ID_ATTRIBUTE:string {"PGS09656: The MESSAGE.ID attribute is missing or not valid."}
/**
* @note PGS09657:
* Do not translate the word 'MESSAGE.PROTOCOLVERSION' since it is a standard element.attribute name for CIM in XML
*/
- Common.XmlReader.INVALID_MISSING_PROTOCOLVERSION_ATTRIBUTE:string {"PGS09657: The MESSAGE.PROTOCOLVERSION attribute is missing or not valid."}
+ Common.XmlReader.INVALID_MISSING_PROTOCOLVERSION_ATTRIBUTE:string {"PGS09657: The MESSAGE.PROTOCOLVERSION attribute is missing or not valid."}
/**
* @note PGS09658:
* Do not translate the word 'IMETHODCALL' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_IMETHODCALL_ATTRIBUTE:string {"PGS09658: The IMETHODCALL attribute is missing."}
+ Common.XmlReader.MISSING_IMETHODCALL_ATTRIBUTE:string {"PGS09658: The IMETHODCALL attribute is missing."}
/**
* @note PGS09659:
@@ -3275,37 +3388,37 @@ not be valid."}
* @note PGS09661:
* Do not translate the word 'ERROR.CODE' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_ERROR_CODE_ATTRIBUTE:string {"PGS09661: The ERROR.CODE attribute is missing."}
+ Common.XmlReader.MISSING_ERROR_CODE_ATTRIBUTE:string {"PGS09661: The ERROR.CODE attribute is missing."}
/**
* @note PGS09662:
* Do not translate the word 'EXPMETHODCALL.NAME' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_EXPMETHODCALL_ATTRIBUTE:string {"PGS09662: The EXPMETHODCALL.NAME attribute is missing."}
+ Common.XmlReader.MISSING_EXPMETHODCALL_ATTRIBUTE:string {"PGS09662: The EXPMETHODCALL.NAME attribute is missing."}
/**
* @note PGS09663:
* Do not translate the word 'EXPMETHODRESPONSE.NAME' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_EXPMETHODRESPONSE_ATTRIBUTE:string {"PGS09663: The EXPMETHODRESPONSE.NAME attribute is missing."}
+ Common.XmlReader.MISSING_EXPMETHODRESPONSE_ATTRIBUTE:string {"PGS09663: The EXPMETHODRESPONSE.NAME attribute is missing."}
/**
* @note PGS09664:
* Do not translate the word 'EXPPARAMVALUE.NAME' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_EXPPARAMVALUE_ATTRIBUTE:string {"PGS09664: The EXPPARAMVALUE.NAME attribute is missing."}
+ Common.XmlReader.MISSING_EXPPARAMVALUE_ATTRIBUTE:string {"PGS09664: The EXPPARAMVALUE.NAME attribute is missing."}
/**
* @note PGS09665:
* Do not translate the word 'METHODCALL.NAME' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_METHODCALL_ATTRIBUTE:string {"PGS09665: The METHODCALL.NAME attribute is missing."}
+ Common.XmlReader.MISSING_METHODCALL_ATTRIBUTE:string {"PGS09665: The METHODCALL.NAME attribute is missing."}
/**
* @note PGS09666:
* Do not translate the word 'METHODRESPONSE.NAME' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.MISSING_METHODRESPONSE_ATTRIBUTE:string {"PGS09666: The METHODRESPONSE.NAME attribute is missing."}
+ Common.XmlReader.MISSING_METHODRESPONSE_ATTRIBUTE:string {"PGS09666: The METHODRESPONSE.NAME attribute is missing."}
/**
* @note PGS09667:
@@ -3318,7 +3431,7 @@ not be valid."}
* Do not translate the word 'VALUE' since it is a standard element name for CIM in XML
* Do not translate the words 'TRUE' and 'FALSE' since they are standard values for CIM in XML
*/
- Common.XmlReader.INVALID_VALUE_FOR_VALUE_ELEMENT:string {"PGS09668: The VALUE element must be \"TRUE\" or \"FALSE\"."}
+ Common.XmlReader.INVALID_VALUE_FOR_VALUE_ELEMENT:string {"PGS09668: The VALUE element must be \"TRUE\" or \"FALSE\"."}
/**
* @note PGS09669:
@@ -3332,7 +3445,7 @@ not be valid."}
* @note PGS09670:
* Do not translate the word 'EmbeddedObject' since it is a standard attribute name for CIM in XML
*/
- Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE:string {"PGS09670: The EmbeddedObject attribute is only valid on string types."}
+ Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE:string {"PGS09670: The EmbeddedObject attribute is only valid on string types."}
// ==========================================================
// Messages for String
@@ -3363,7 +3476,7 @@ not be valid."}
* Substitution {1} is a string containing the version of the Pegasus CIMOM
* This message is no longer used as of version 2.7 (or earlier).
*/
- src.Server.cimserver_windows.STARTED_VERSION:string {"PGS10005: Started {0} version {1}."}
+ src.Server.cimserver_windows.STARTED_VERSION:string {"PGS10005: Started {0} version {1}."}
/**
* @note PGS10006:
@@ -3380,7 +3493,7 @@ not be valid."}
src.Server.cimserver_windows.LISTENING_ON_HTTPS_PORT:string {"PGS10007:
CIM server listening on HTTPS port {0}."}
- src.Server.cimserver.UNABLE_CONNECT_SERVER_MAY_NOT_BE_RUNNING:string {"PGS10008: Unable to connect to the CIM server. CIM server may not be running."}
+ src.Server.cimserver.UNABLE_CONNECT_SERVER_MAY_NOT_BE_RUNNING:string {"PGS10008: Unable to connect to the CIM server. CIM server may not be running."}
src.Server.cimserver.SHUTDOWN_FAILED_REPOSITORY_EMPTY:string {"PGS10009: Error in the CIM server shutdown operation: The repository may be empty."}
@@ -3392,9 +3505,9 @@ CIM server listening on HTTPS port {0}."}
*/
src.Server.cimserver.SHUTDOWN_FAILED:string {"PGS10011: Error ending the CIM server: {0}"}
- src.Server.cimserver.REPOSITORY_EMPTY:string {"PGS10012: The CIM repository may be empty."}
+ src.Server.cimserver.REPOSITORY_EMPTY:string {"PGS10012: The CIM repository may be empty."}
- src.Server.cimserver.TIMEOUT_EXPIRED_SERVER_KILLED:string {"PGS10013: Shutdown time-out expired. A forced shutdown of the CIM server is initiated."}
+ src.Server.cimserver.TIMEOUT_EXPIRED_SERVER_KILLED:string {"PGS10013: Shutdown time-out expired. A forced shutdown of the CIM server is initiated."}
/**
* @note PGS10014:
@@ -3405,7 +3518,7 @@ CIM server listening on HTTPS port {0}."}
/**
* @note PGS10015:
*/
- src.Server.cimserver.UNSUPPORTED_DEBUG_OPTION:string {"PGS10015: Unsupported debug output option is enabled."}
+ src.Server.cimserver.UNSUPPORTED_DEBUG_OPTION:string {"PGS10015: Unsupported debug output option is enabled."}
/**
* @note PGS10016:
@@ -3413,15 +3526,15 @@ CIM server listening on HTTPS port {0}."}
*/
src.Server.cimserver.SUPERVISOR_PRIVILEGE_TO_RUN_SERVER:string {"PGS10016: Superuser authority is required to run the CIM server."}
- src.Server.cimserver.DUPLICATE_SHUTDOWN_OPTION:string {"PGS10017: Duplicate shutdown option is specified."}
+ src.Server.cimserver.DUPLICATE_SHUTDOWN_OPTION:string {"PGS10017: Duplicate shutdown option is specified."}
- src.Server.cimserver.INSTALLED_NT_SERVICE:string {"\nCIMSVR_INSTALLED_NT_SERVICE: The CIM server is installed as a Windows service."}
+ src.Server.cimserver.INSTALLED_NT_SERVICE:string {"\nCIMSVR_INSTALLED_NT_SERVICE: The CIM server is installed as a Windows service."}
- src.Server.cimserver.REMOVED_NT_SERVICE:string {"\nCIMSVR_REMOVED_NT_SERVICE: The CIM server is removed as a Windows service."}
+ src.Server.cimserver.REMOVED_NT_SERVICE:string {"\nCIMSVR_REMOVED_NT_SERVICE: The CIM server is removed as a Windows service."}
- src.Server.cimserver.STARTED_NT_SERVICE:string {"\nCIMSVR_STARTED_NT_SERVICE: The CIM server is started as a Windows service."}
+ src.Server.cimserver.STARTED_NT_SERVICE:string {"\nCIMSVR_STARTED_NT_SERVICE: The CIM server is started as a Windows service."}
- src.Server.cimserver.STOPPED_NT_SERVICE:string {"\nCIMSVR_STOPPED_NT_SERVICE: The CIM server is stopped as a Windows service."}
+ src.Server.cimserver.STOPPED_NT_SERVICE:string {"\nCIMSVR_STOPPED_NT_SERVICE: The CIM server is stopped as a Windows service."}
src.Server.cimserver.HTTP_NOT_ENABLED_SERVER_NOT_STARTING:string {"PGS10018: Neither HTTP nor HTTPS connection is enabled."}
@@ -3450,12 +3563,12 @@ CIM server listening on HTTPS port {0}."}
/**
* @note PGS10025: Substitution {0} is the port number (an integer)
*/
- src.Server.cimserver.LISTENING_ON_HTTP_PORT:string {"PGS10025: The CIM server is listening on HTTP port {0}."}
+ src.Server.cimserver.LISTENING_ON_HTTP_PORT:string {"PGS10025: The CIM server is listening on HTTP port {0}."}
/**
* @note PGS10026: Substitution {0} is the port number (an integer)
*/
- src.Server.cimserver.LISTENING_ON_HTTPS_PORT:string {"PGS10026: The CIM server is listening on HTTPS port {0}."}
+ src.Server.cimserver.LISTENING_ON_HTTPS_PORT:string {"PGS10026: The CIM server is listening on HTTPS port {0}."}
/**
* @note PGS10027: Substitution {0} is the port number (an integer)
@@ -3463,7 +3576,7 @@ CIM server listening on HTTPS port {0}."}
*
* This message is obsolete (PEP 259 export connection port and export truststore related changes).
*/
- src.Server.cimserver.LISTENING_ON_EXPORT_HTTPS_PORT:string {"PGS10027: The CIM server is listening on export HTTPS port {0}."}
+ src.Server.cimserver.LISTENING_ON_EXPORT_HTTPS_PORT:string {"PGS10027: The CIM server is listening on export HTTPS port {0}."}
/**
* @note PGS10028: Substitution {0} is the port number (an integer)
@@ -3483,7 +3596,7 @@ CIM server listening on HTTPS port {0}."}
* Substitution {0} is a string containing the Pegasus CIM server name
* Substitution {1} is a string containing the version of the Pegasus CIMOM
*/
- src.Server.cimserver.STARTED_VERSION:string {"PGS10030: Started {0} version {1}."}
+ src.Server.cimserver.STARTED_VERSION:string {"PGS10030: Started {0} version {1}."}
/**
* @note PGS10031: Substitution {0} is a string containing the Pegasus CIM server name
@@ -3666,7 +3779,7 @@ CIM server listening on HTTPS port {0}."}
*/
IndicationService.IndicationService._MSG_INVALID_CLASSNAME_IN_FROM_PROPERTY:string{"PGS10204: The Indication class name {0} is not valid in the FROM clause of {1} {2} property."}
- IndicationService.IndicationService._MSG_NO_PROVIDERS:string {"PGS10205: No providers are capable of servicing the subscription."}
+ IndicationService.IndicationService._MSG_NO_PROVIDERS:string {"PGS10205: No providers are capable of servicing the subscription."}
IndicationService.IndicationService._MSG_NOT_ACCEPTED:string {"PGS10206: No providers accepted the subscription."}
@@ -3759,15 +3872,15 @@ CIM server listening on HTTPS port {0}."}
*/
IndicationService.IndicationService._MSG_SELECT_PROPERTY_NOT_FOUND:string {"PGS10220: The property {0} referenced in the WQL SELECT clause was not found in the indication class {1}."}
- /**
- * @note PGS10221:
- */
+ /**
+ * @note PGS10221:
+ */
IndicationService.IndicationService.UNKNOWN_ERROR:string {"PGS10221: Unknown error."}
- /**
- * @note UNSUPPORTED_OPERATION
- * @version 2.4
- */
+ /**
+ * @note UNSUPPORTED_OPERATION
+ * @version 2.4
+ */
IndicationService.IndicationService.UNSUPPORTED_OPERATION:string {"PGS10222: The requested operation is not supported by the indication service."}
/**
@@ -3834,7 +3947,7 @@ CIM server listening on HTTPS port {0}."}
/**
* @note PGS10403:
* do not translate "IndicationHandlerSNMPMapper" since it is the
- * name of a CIM class
+ * name of a CIM class
* do not translate "TargetHost" since it is the name of a CIM property
*/
HandlerService.IndicationHandlerService.SNMP_HANDLER_WITHOUT_TARGETHOST:string {"PGS10403: The IndicationHandlerSNMPMapper does not have a TargetHost property."}
@@ -3862,7 +3975,7 @@ CIM server listening on HTTPS port {0}."}
* Do not translate 'MappingStrings' since it is a standard Indication qualifier CIM name
* This message is no longer used as of version 2.7.0
*/
- Handler.snmpIndicationHandler.snmpIndicationHandler.INVALID_MS_VALUE:string {"PGS10600: The MappingStrings qualifier value is not valid."}
+ Handler.snmpIndicationHandler.snmpIndicationHandler.INVALID_MS_VALUE:string {"PGS10600: The MappingStrings qualifier value is not valid."}
/**
* @note PGS10601:
@@ -3874,12 +3987,12 @@ CIM server listening on HTTPS port {0}."}
* @note PGS10602:
* Do not translate 'MappingStrings' since it is a standard Indication qualifier CIM name
*/
- Handler.snmpIndicationHandler.snmpIndicationHandler.QUALIFIER_MAPPINGS_NOT_FOUND:string {"PGS10602: CIM qualifier MappingStrings cannot be found"}
+ Handler.snmpIndicationHandler.snmpIndicationHandler.QUALIFIER_MAPPINGS_NOT_FOUND:string {"PGS10602: CIM qualifier MappingStrings cannot be found"}
/**
* @note PGS10603:
*/
- Handler.snmpIndicationHandler.snmpIndicationHandler.FAILED_TO_DELIVER_TRAP:string {"PGS10603: Failed to deliver trap."}
+ Handler.snmpIndicationHandler.snmpIndicationHandler.FAILED_TO_DELIVER_TRAP:string {"PGS10603: Failed to deliver trap."}
/**
* @note PGS10604:
@@ -4017,7 +4130,7 @@ CIM server listening on HTTPS port {0}."}
// Please use message prefix "PGS11000"
// ==========================================================
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_INITSUBAGENT_FAILED:string {"PGS11000: The SNMP subagent failed to initialize."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_INITSUBAGENT_FAILED:string {"PGS11000: The SNMP subagent failed to initialize."}
Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_INVALID:string {"PGS11001: The SNMP trap object identifier is not valid."}
@@ -4028,7 +4141,7 @@ CIM server listening on HTTPS port {0}."}
* Do not translate the word 'TargetHostFormat' since it is a CIM property name
* Do not translate 'PG_IndicationHandlerSNMPMapper' since it is a CIM class name
*/
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_TARGETHOSTFORMAT_NOT_SUPPORTED:string {"PGS11003: Host name and IPv4 address are the only supported values for the TargetHostFormat property of the PG_IndicationHandlerSNMPMapper class."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_TARGETHOSTFORMAT_NOT_SUPPORTED:string {"PGS11003: Host name and IPv4 address are the only supported values for the TargetHostFormat property of the PG_IndicationHandlerSNMPMapper class."}
Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_INVALID_SECURITY_NAME:string{"PGS11004: The SNMP community name or user name is not valid."}
@@ -4047,28 +4160,28 @@ CIM server listening on HTTPS port {0}."}
* Do not translate the word 'MakeVarBindWithValue' since it is an SNMP function name
* Do not translate 'OCTET_PRIM_TYPE' since it is an SNMP type
*/
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE:string{"PGS11010: Failed to perform an SNMP MakeVarBindWithValue for type OCTET_PRIM_TYPE."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE:string{"PGS11010: Failed to perform an SNMP MakeVarBindWithValue for type OCTET_PRIM_TYPE."}
/**
* @note PGS11011:
* Do not translate the word 'MakeVarBindWithValue' since it is an SNMP function name
* Do not translate 'OBJECT_ID_TYPE' since it is an SNMP type
*/
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE:string{"PGS11011: Failed to perform an SNMP MakeVarBindWithValue for type OBJECT_ID_TYPE."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE:string{"PGS11011: Failed to perform an SNMP MakeVarBindWithValue for type OBJECT_ID_TYPE."}
/**
* @note PGS11012:
* Do not translate the word 'MakeVarBindWithValue' since it is an SNMP function name
* Do not translate 'INTEGER_TYPE' since it is an SNMP type
*/
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE:string{"PGS11012: Failed to perform an SNMP MakeVarBindWithValue for type INTEGER_TYPE."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE:string{"PGS11012: Failed to perform an SNMP MakeVarBindWithValue for type INTEGER_TYPE."}
/**
* @note PGS11013:
* Do not translate the word 'SNMPVersion' since it is a CIM property name
* Do not translate 'PG_IndicationHandlerSNMPMapper' since it is a CIM class name
*/
- Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_VERSION_NOT_SUPPORTED:string{"PGS11013: SNMPv1 trap and SNMPv2C trap are the only supported values for the SNMPVersion property of the PG_IndicationHandlerSNMPMapper class."}
+ Handler.snmpIndicationHandler.snmpDeliverTrap_emanate._MSG_VERSION_NOT_SUPPORTED:string{"PGS11013: SNMPv1 trap and SNMPv2C trap are the only supported values for the SNMPVersion property of the PG_IndicationHandlerSNMPMapper class."}
// ==========================================================
@@ -4080,25 +4193,25 @@ CIM server listening on HTTPS port {0}."}
* @note PGS11200:
* Do not translate 'MESSAGE' since it is a standard element for CIM in XML
*/
- ExportServer.CIMExportRequestDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS11200: A MESSAGE element is expected for CIM in XML."}
+ ExportServer.CIMExportRequestDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS11200: A MESSAGE element is expected for CIM in XML."}
/**
* @note PGS11201:
* Do not translate 'EXPMETHODCALL' since it is a standard element for CIM in XML
*/
- ExportServer.CIMExportRequestDecoder.EXPECTED_EXPMETHODCALL_ELEMENT:string {"PGS11201: A EXPMETHODCALL element is expected."}
+ ExportServer.CIMExportRequestDecoder.EXPECTED_EXPMETHODCALL_ELEMENT:string {"PGS11201: A EXPMETHODCALL element is expected."}
/**
* @note PGS11202:
* Substitution {0} is a string containing the export method name
*/
- ExportServer.CIMExportRequestDecoder.UNRECOGNIZED_EXPORT_METHOD:string {"PGS11202: Unrecognized export method: {0}"}
+ ExportServer.CIMExportRequestDecoder.UNRECOGNIZED_EXPORT_METHOD:string {"PGS11202: Unrecognized export method: {0}"}
- /**
+ /**
* @note PGS11203:
* @version 2.4
*/
- ExportServer.CIMExportRequestDecoder.REQUEST_NOT_VALID:string{"PGS11203: The request is not valid."}
+ ExportServer.CIMExportRequestDecoder.REQUEST_NOT_VALID:string{"PGS11203: The request is not valid."}
/**
* @note PGS11204:
@@ -4126,17 +4239,17 @@ CIM server listening on HTTPS port {0}."}
* @note PGS11400:
* Do not translate 'MESSAGE' since it is a standard element for CIM in XML
*/
- ExportClient.CIMExportResponseDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS11400: A MESSAGE element is expected for CIM in XML."}
+ ExportClient.CIMExportResponseDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS11400: A MESSAGE element is expected for CIM in XML."}
/**
* @note PGS11401:
* Do not translate 'EXPMETHODRESPONSE' since it is a standard element for CIM in XML
*/
- ExportClient.CIMExportResponseDecoder.EXPECTED_EXPMETHODRESPONSE_ELEMENT:string {"PGS11401: An EXPMETHODRESPONSE element is expected for CIM in XML."}
+ ExportClient.CIMExportResponseDecoder.EXPECTED_EXPMETHODRESPONSE_ELEMENT:string {"PGS11401: An EXPMETHODRESPONSE element is expected for CIM in XML."}
ExportClient.CIMExportResponseDecoder.EMPTY_RESPONSE:string {"PGS11402: Connection closed by CIM Server."}
- ExportClient.CIMExportResponseDecoder.MALFORMED_RESPONSE:string {"PGS11403: The HTTP response message is not valid."}
+ ExportClient.CIMExportResponseDecoder.MALFORMED_RESPONSE:string {"PGS11403: The HTTP response message is not valid."}
ExportClient.CIMExportResponseDecoder.AUTHENTICATION_FAILED:string {"PGS11404: Authentication failed."}
@@ -4152,21 +4265,21 @@ CIM server listening on HTTPS port {0}."}
* Do not translate 'CIMExport' since it is a standard CIM HTTP header
* Do not translate 'METHODRESPONSE' since it is a standard element for CIM in XML
*/
- ExportClient.CIMExportResponseDecoder.EXPECTED_METHODRESPONSE:string {"PGS11406: Client received a CIMExport HTTP header value of \"{0}\" when \"METHODRESPONSE\" element is expected."}
+ ExportClient.CIMExportResponseDecoder.EXPECTED_METHODRESPONSE:string {"PGS11406: Client received a CIMExport HTTP header value of \"{0}\" when \"METHODRESPONSE\" element is expected."}
/**
* @note PGS11407:
* Substitution {0} is a string containing a protocol version
* Substitution {1} is a string containing the expected version (such as "1.0")
*/
- ExportClient.CIMExportResponseDecoder.UNSUPPORTED_PROTOCOL:string {"PGS11407: Unsupported protocol version {0} is received, {1} is expected."}
+ ExportClient.CIMExportResponseDecoder.UNSUPPORTED_PROTOCOL:string {"PGS11407: Unsupported protocol version {0} is received, {1} is expected."}
/**
* @note PGS11408:
* Substitution {0} is a string containing a CIM operation name
* Do not translate 'EXPMETHODRESPONSE' since it is a standard element for CIM in XML
*/
- ExportClient.CIMExportResponseDecoder.UNRECOGNIZED_EXPMETHRSP:string {"PGS11408: EXPMETHODRESPONSE name {0} is not recognized."}
+ ExportClient.CIMExportResponseDecoder.UNRECOGNIZED_EXPMETHRSP:string {"PGS11408: EXPMETHODRESPONSE name {0} is not recognized."}
// ==========================================================
@@ -4178,7 +4291,7 @@ CIM server listening on HTTPS port {0}."}
* @note PGS11600:
* Substitution {0} and {1} are strings containing message identifiers
*/
- ExportClient.CIMExportClient.MISMATCHED_RESPONSE_ID:string {"PGS11600: The response message identifier {0} does not match the expected response message identifier {1}."}
+ ExportClient.CIMExportClient.MISMATCHED_RESPONSE_ID:string {"PGS11600: The response message identifier {0} does not match the expected response message identifier {1}."}
ExportClient.CIMExportClient.MISMATCHED_RESPONSE:string {"PGS11601: The response message type does not match the expected response message type."}
@@ -4192,7 +4305,7 @@ CIM server listening on HTTPS port {0}."}
* @note PGS11800:
* Substitution {0} and {1} are strings containing message identifiers
*/
- Client.CIMClient.MISMATCHED_RESPONSE:string {"PGS11800: The response message identifier {0} does not match the expected response message identifier {1}."}
+ Client.CIMClient.MISMATCHED_RESPONSE:string {"PGS11800: The response message identifier {0} does not match the expected response message identifier {1}."}
Client.CIMClient.MISMATCHED_RESPONSE_TYPE:string {"PGS11801: The response message type does not match the expected response message type."}
@@ -4247,19 +4360,19 @@ CIM server listening on HTTPS port {0}."}
* @note PGS12000:
* Do not translate 'MESSAGE' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS12000: A MESSAGE element is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_MESSAGE_ELEMENT:string {"PGS12000: A MESSAGE element is expected."}
/**
* @note PGS12001:
* Do not translate 'CLASS' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_CLASS_ELEMENT:string {"PGS12001: A CLASS element is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_CLASS_ELEMENT:string {"PGS12001: A CLASS element is expected."}
/**
* @note PGS12002:
* Do not translate 'INSTANCE' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_INSTANCE_ELEMENT:string {"PGS12002: An INSTANCE element is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_INSTANCE_ELEMENT:string {"PGS12002: An INSTANCE element is expected."}
/**
* @note PGS12003:
@@ -4272,21 +4385,21 @@ CIM server listening on HTTPS port {0}."}
* Do not translate 'IRETURNVALUE' since it is a standard element for CIM in XML
* Do not translate 'ERROR' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_ERROR_OR_IRETURNVALUE_ELEMENT:string {"PGS12004: An ERROR or an IRETURNVALUE element is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_ERROR_OR_IRETURNVALUE_ELEMENT:string {"PGS12004: An ERROR or an IRETURNVALUE element is expected."}
/**
* @note PGS12005:
* Do not translate 'METHODRESPONSE' since it is a standard element for CIM in XML
* Do not translate 'IMETHODRESPONSE' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_METHODRESPONSE_OR_IMETHODRESPONSE_ELEMENT:string {"PGS12005: A METHODRESPONSE or an IMETHODRESPONSE element is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_METHODRESPONSE_OR_IMETHODRESPONSE_ELEMENT:string {"PGS12005: A METHODRESPONSE or an IMETHODRESPONSE element is expected."}
/**
* @note PGS12006:
* Substitution {0} is a string containing a standard CIM name
* Do not translate 'IMETHODRESPONSE' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.UNRECOGNIZED_NAME:string {"PGS12006: The name {0} of the IMETHODRESPONSE element is not recognized."}
+ Client.CIMOperationResponseDecoder.UNRECOGNIZED_NAME:string {"PGS12006: The name {0} of the IMETHODRESPONSE element is not recognized."}
Client.CIMOperationResponseDecoder.EMPTY_RESPONSE:string {"PGS12007: Connection closed by CIM Server."}
@@ -4298,13 +4411,13 @@ CIM server listening on HTTPS port {0}."}
* @note PGS12010:
* Do not translate the word 'Content-Language' since it is a standard HTTP header
*/
- Client.CIMOperationResponseDecoder.MALFORMED_CONTENT:string {"PGS12010: The Content-Language header is not valid."}
+ Client.CIMOperationResponseDecoder.MALFORMED_CONTENT:string {"PGS12010: The Content-Language header is not valid."}
/**
* @note PGS12011:
* Do not translate 'CIMOperation' since it is a standard CIM HTTP header
*/
- Client.CIMOperationResponseDecoder.MISSING_CIMOP_HEADER:string {"PGS12011: The CIMOperation HTTP header is missing."}
+ Client.CIMOperationResponseDecoder.MISSING_CIMOP_HEADER:string {"PGS12011: The CIMOperation HTTP header is missing."}
/**
* @note PGS12012:
@@ -4312,14 +4425,14 @@ CIM server listening on HTTPS port {0}."}
* Do not translate 'CIMOperation' since it is a standard CIM HTTP header
* Do not translate 'METHODRESPONSE' since it is a standard element for CIM in XML
*/
- Client.CIMOperationResponseDecoder.EXPECTED_METHODRESPONSE:string {"PGS12012: Client received a CIMOperation HTTP header value of \"{0}\" when \"METHODRESPONSE\" is expected."}
+ Client.CIMOperationResponseDecoder.EXPECTED_METHODRESPONSE:string {"PGS12012: Client received a CIMOperation HTTP header value of \"{0}\" when \"METHODRESPONSE\" is expected."}
/**
* @note PGS12013:
* Substitution {0} is a string containing a protocol version
* Substitution {1} is a string containing the expected version (such as "1.0")
*/
- Client.CIMOperationResponseDecoder.UNSUPPORTED_PROTOCOL:string {"PGS12013: The unsupported protocol version {0} is received, {1} is expected."}
+ Client.CIMOperationResponseDecoder.UNSUPPORTED_PROTOCOL:string {"PGS12013: The unsupported protocol version {0} is received, {1} is expected."}
// ==========================================================
@@ -4602,7 +4715,7 @@ CIM server listening on HTTPS port {0}."}
*/
Pegasus.Common.SocketzOS_inline.WRONG_ROLE:string {"PGS12544E: ATTLS policy specifies the wrong HandshakeRole for the CIM Server HTTPS port. Communication not secured. Connection closed."}
-
+
/**
* @note PGS12567:
* Substitution {0} is a user name (a string)
@@ -4613,6 +4726,17 @@ CIM server listening on HTTPS port {0}."}
*/
Pegasus.Common.SocketzOS_inline.NOREAD_CIMSERV_ACCESS:string {"PGS12567W: Request UserID {0} doesn't have READ permission to profile CIMSERV CL(WBEM)."}
+ /**
+ * @note PGS12568:
+ * Do not translate ATTLS , CIM, TCP-IP and HTTPS.
+ */
+ Pegasus.Common.SocketzOS_inline.POLICY_OFF:string {"PGS12568E: ATTLS is not active for TCP-IP stack the CIM server is using for HTTPS connections. Communication not secured. Connection closed."}
+
+ /**
+ * @note PGS12569:
+ * Do not translate "ATTLS policy" , CIM, TCP-IP and HTTPS.
+ */
+ Pegasus.Common.SocketzOS_inline.NO_POLICY:string {"PGS12569E: There is no ATTLS policy found for the CIM server HTTPS connections. Communication not secured. Connection closed."}
// End z/OS messages
@@ -4630,14 +4754,14 @@ CIM server listening on HTTPS port {0}."}
* Do not translate 'SIMPLEREQ'
* Do not translate 'MULTIREQ'
*/
- Common.XmlConstants.MISSING_ELEMENT_REQ:string {"PGS12600: Expected SIMPLEREQ or MULTIREQ element."}
+ Common.XmlConstants.MISSING_ELEMENT_REQ:string {"PGS12600: Expected SIMPLEREQ or MULTIREQ element."}
/**
* @note PGS12601:
* Do not translate 'LOCALCLASSPATH'
* Do not translate 'LOCALINSTANCEPATH'
*/
- Common.XmlConstants.MISSING_ELEMENT_LOCALPATH:string{"PGS12601: Expected LOCALCLASSPATH or LOCALINSTANCEPATH element."}
+ Common.XmlConstants.MISSING_ELEMENT_LOCALPATH:string{"PGS12601: Expected LOCALCLASSPATH or LOCALINSTANCEPATH element."}
// ==========================================================
@@ -4649,48 +4773,48 @@ CIM server listening on HTTPS port {0}."}
* @note PGS12800:
* Substitution {0} is a number of seconds (an integer)
*/
- Common.Thread.CANCEL_LONG_RUNNING_THREAD:string{"PGS12800: A thread has run longer than {0} seconds and will be cancelled."}
+ Common.Thread.CANCEL_LONG_RUNNING_THREAD:string{"PGS12800: A thread has run longer than {0} seconds and will be cancelled."}
- // ==========================================================
+ // ==========================================================
// Messages for HTTPAuthenticatorDelegator
// Please use message prefix "PGS13000"
// ==========================================================
- /**
- * @note PGS1300:
- * @version 2.4
- */
- Pegasus.Server.HTTPAuthenticatorDelegator.REQUEST_NOT_VALID:string{"PGS13000: The request is not valid."}
+ /**
+ * @note PGS1300:
+ * @version 2.4
+ */
+ Pegasus.Server.HTTPAuthenticatorDelegator.REQUEST_NOT_VALID:string{"PGS13000: The request is not valid."}
- /**
- * @note PGS13001:
- * @version 2.4
- */
- Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR:string{"PGS13001: Authorization header error."}
+ /**
+ * @note PGS13001:
+ * @version 2.4
+ */
+ Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR:string{"PGS13001: Authorization header error."}
- /**
+ /**
* @note PGS13002:
* @version 2.4
*/
- Pegasus.Server.HTTPAuthenticatorDelegator.CIMOPERATIONS_NOT_SUPPORTED:string{"PGS13002: The CIM operation request is not supported on this port."}
+ Pegasus.Server.HTTPAuthenticatorDelegator.CIMOPERATIONS_NOT_SUPPORTED:string{"PGS13002: The CIM operation request is not supported on this port."}
/**
* @note PGS13003:
* @version 2.5
*/
- Pegasus.Server.HTTPAuthenticatorDelegator.BAD_CERTIFICATE:string{"PGS13003: The certificate used for authentication is not valid."}
+ Pegasus.Server.HTTPAuthenticatorDelegator.BAD_CERTIFICATE:string{"PGS13003: The certificate used for authentication is not valid."}
/**
* @note PGS13004:
* @version 2.5
*/
- Pegasus.Server.HTTPAuthenticatorDelegator.BAD_CERTIFICATE_USERNAME:string{"PGS13004: No username is registered to this certificate."}
+ Pegasus.Server.HTTPAuthenticatorDelegator.BAD_CERTIFICATE_USERNAME:string{"PGS13004: No username is registered to this certificate."}
/**
* @note PGS13005:
* @version 2.7
*/
- Pegasus.Server.HTTPAuthenticatorDelegator.CERTIFICATE_USER_NOT_VALID:string{"PGS13005: The user ''{0}'' registered to this certificate is not a valid user."}
+ Pegasus.Server.HTTPAuthenticatorDelegator.CERTIFICATE_USER_NOT_VALID:string{"PGS13005: The user ''{0}'' registered to this certificate is not a valid user."}
/**
* @note PGS13006:
@@ -4710,7 +4834,7 @@ CIM server listening on HTTPS port {0}."}
- // ==========================================================
+ // ==========================================================
// Messages for Server.CIMServer
// Please use message prefix "PGS13200"
// ==========================================================
@@ -4718,39 +4842,39 @@ CIM server listening on HTTPS port {0}."}
Server.CIMServer.BIND_FAILED:string {"PGS13200: No CIM server connections are enabled."}
/*
- * @note PGS13201:
- */
- Pegasus.Server.CIMServer.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS13201: Synchronous signal received."}
+ * @note PGS13201:
+ */
+ Pegasus.Server.CIMServer.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS13201: Synchronous signal received."}
/*
- * @note PGS13202:
- */
- Pegasus.Server.CIMServer.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS13202: Asynchronous signal received."}
+ * @note PGS13202:
+ */
+ Pegasus.Server.CIMServer.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS13202: Asynchronous signal received."}
// ==========================================================
// Messages for SSLContextManager
// Please use message prefix "PGS13300"
// ==========================================================
/*
- * @note PGS13300:
- * DO NOT TRANSLATE "sslTrustStore" or "sslClientVerificationMode"
- * @version 2.5
- */
- Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_EMPTY_TRUSTSTORE:string {"PGS13300: The \"sslTrustStore\" configuration property must be set if \"sslClientVerificationMode\" is ''required'' or ''optional''."}
+ * @note PGS13300:
+ * DO NOT TRANSLATE "sslTrustStore" or "sslClientVerificationMode"
+ * @version 2.5
+ */
+ Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_EMPTY_TRUSTSTORE:string {"PGS13300: The \"sslTrustStore\" configuration property must be set if \"sslClientVerificationMode\" is ''required'' or ''optional''."}
/*
- * @note PGS13301:
- * DO NOT TRANSLATE "sslClientVerificationMode"
- * @version 2.5
- */
- Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_HTTP_NOT_ENABLED_WITH_REQUIRED:string {"PGS13301: The HTTP port must be enabled if \"sslClientVerificationMode\" is ''required'' in order for the cimserver to properly shutdown."}
+ * @note PGS13301:
+ * DO NOT TRANSLATE "sslClientVerificationMode"
+ * @version 2.5
+ */
+ Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_HTTP_NOT_ENABLED_WITH_REQUIRED:string {"PGS13301: The HTTP port must be enabled if \"sslClientVerificationMode\" is ''required'' in order for the cimserver to properly shutdown."}
/*
- * @note PGS13302:
- * DO NOT TRANSLATE "sslTrustStoreUserName" or "sslClientVerificationMode"
- * @version 2.5
- */
- Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_EMPTY_USERNAME:string {"PGS13302: The \"sslTrustStoreUserName\" property must specify a truststore user name to associate with the trusted certificates if \"sslClientVerificationMode\" is ''required'' or ''optional'', and a trust store is specified."}
+ * @note PGS13302:
+ * DO NOT TRANSLATE "sslTrustStoreUserName" or "sslClientVerificationMode"
+ * @version 2.5
+ */
+ Pegasus.Common.SSLContextManager.SSL_CLIENT_VERIFICATION_EMPTY_USERNAME:string {"PGS13302: The \"sslTrustStoreUserName\" property must specify a truststore user name to associate with the trusted certificates if \"sslClientVerificationMode\" is ''required'' or ''optional'', and a trust store is specified."}
/*
* @note PGS13303:
@@ -4804,11 +4928,11 @@ CIM server listening on HTTPS port {0}."}
Pegasus.Common.SSLContextManager.CONFIGURED_TRUST_OR_CRL_STORE_NOT_FOUND:string {"PGS13310: Could not reload the trust or certificate revocation list store. The configured store is not found."}
/*
- * @note PGS13311:
- * DO NOT TRANSLATE "sslClientVerificationMode"
- * @version 2.5
- */
- Pegasus.Common.SSLContextManager.INVALID_CONF_HTTPS_REQUIRED:string {"PGS13311: Do not set the \"sslClientVerificationMode\" property to \"required\" if HTTP is disabled because the cimserver will be unable to properly shutdown. It is recommended that you change the property value to \"optional\"."}
+ * @note PGS13311:
+ * DO NOT TRANSLATE "sslClientVerificationMode"
+ * @version 2.5
+ */
+ Pegasus.Common.SSLContextManager.INVALID_CONF_HTTPS_REQUIRED:string {"PGS13311: Do not set the \"sslClientVerificationMode\" property to \"required\" if HTTP is disabled because the cimserver will be unable to properly shutdown. It is recommended that you change the property value to \"optional\"."}
// ==========================================================
// Messages for AnonymousPipe
@@ -4831,35 +4955,35 @@ CIM server listening on HTTPS port {0}."}
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_START_FAILED:string {"PGS13600: Failed to start cimprovagt \"{0}\"."}
+ ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_START_FAILED:string {"PGS13600: Failed to start cimprovagt \"{0}\"."}
/**
* @note PGS13601
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_COMMUNICATION_FAILED:string {"PGS13601: Failed to communicate with cimprovagt \"{0}\"."}
+ ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_COMMUNICATION_FAILED:string {"PGS13601: Failed to communicate with cimprovagt \"{0}\"."}
/**
* @note PGS13602
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_CONNECTION_LOST:string {"PGS13602: Lost connection with cimprovagt \"{0}\"."}
+ ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_CONNECTION_LOST:string {"PGS13602: Lost connection with cimprovagt \"{0}\"."}
/**
* @note PGS13603
* @version 2.5
* Substitution {0} is the name of a system user (a string)
*/
- ProviderManager.OOPProviderManagerRouter.USER_CONTEXT_CHANGE_FAILED:string {"PGS13603: Unable to change user context to \"{0}\"."}
+ ProviderManager.OOPProviderManagerRouter.USER_CONTEXT_CHANGE_FAILED:string {"PGS13603: Unable to change user context to \"{0}\"."}
/**
* @note PGS13604
* @version 2.5
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.OOPProviderManagerRouter.MAX_PROVIDER_PROCESSES_REACHED:string {"PGS13604: The maximum number of cimprovagt processes has been reached."}
+ ProviderManager.OOPProviderManagerRouter.MAX_PROVIDER_PROCESSES_REACHED:string {"PGS13604: The maximum number of cimprovagt processes has been reached."}
/**
* @note PGS13605
@@ -4867,7 +4991,7 @@ CIM server listening on HTTPS port {0}."}
* Substitution {0} is a string ID for the cimprovagt process instance
* @version 2.5
*/
- ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_THREAD_ALLOCATION_FAILED:string {"PGS13605: Failed to allocate thread for cimprovagt \"{0}\"."}
+ ProviderManager.OOPProviderManagerRouter.CIMPROVAGT_THREAD_ALLOCATION_FAILED:string {"PGS13605: Failed to allocate thread for cimprovagt \"{0}\"."}
/**
* @note PGS13606
@@ -4875,10 +4999,10 @@ CIM server listening on HTTPS port {0}."}
* This message is no longer used as of version 2.6.0
* @version 2.5.1
*/
- ProviderManager.OOPProviderManagerRouter.OOP_PROVIDER_MODULE_FAILURE_DETECTED:string {"PGS13606: A failure was detected in provider module {0}. The generation of indications by providers in this module may be affected. To ensure these providers are serving active subscriptions, disable and then re-enable this module using the cimprovider command."}
+ ProviderManager.OOPProviderManagerRouter.OOP_PROVIDER_MODULE_FAILURE_DETECTED:string {"PGS13606: A failure was detected in provider module {0}. The generation of indications by providers in this module may be affected. To ensure these providers are serving active subscriptions, disable and then re-enable this module using the cimprovider command."}
- // ==========================================================
+ // ==========================================================
// Messages for ProviderManager.ProviderAgent.cimprovagt
// Please use message prefix "PGS13800"
// ==========================================================
@@ -4889,33 +5013,33 @@ CIM server listening on HTTPS port {0}."}
* Substitution {1} is another message string
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.ProviderAgent.cimprovagt.CIMPROVAGT_EXCEPTION:string {"PGS13800: cimprovagt \"{0}\" error: {1}"}
+ ProviderManager.ProviderAgent.cimprovagt.CIMPROVAGT_EXCEPTION:string {"PGS13800: cimprovagt \"{0}\" error: {1}"}
/**
* @note PGS13801
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.ProviderAgent.cimprovagt.CIMPROVAGT_ERROR:string {"PGS13801: cimprovagt \"{0}\" error. Exiting."}
+ ProviderManager.ProviderAgent.cimprovagt.CIMPROVAGT_ERROR:string {"PGS13801: cimprovagt \"{0}\" error. Exiting."}
/**
* @note PGS13810
*/
- ProviderManager.ProviderAgent.cimprovagt.NOT_OFFICIAL_START.PEGASUS_OS_PASE:string {"PGS13810: Provider agent can not be started by user."}
+ ProviderManager.ProviderAgent.cimprovagt.NOT_OFFICIAL_START.PEGASUS_OS_PASE:string {"PGS13810: Provider agent can not be started by user."}
/**
* @note PGS13811
*/
- ProviderManager.ProviderAgent.cimprovagt.SET_CCSID_ERROR.PEGASUS_OS_PASE:string {"PGS13811: Failed to set ccsid. The provider agent will be stopped."}
+ ProviderManager.ProviderAgent.cimprovagt.SET_CCSID_ERROR.PEGASUS_OS_PASE:string {"PGS13811: Failed to set ccsid. The provider agent will be stopped."}
/**
* @note PGS13812
* Substitution {0} is full job name
*/
- ProviderManager.ProviderAgent.cimprovagt.PROVAGT_JOB_NAME.PEGASUS_OS_PASE:string {"PGS13812: Provider Agent\''s Job Name is: {0}."}
+ ProviderManager.ProviderAgent.cimprovagt.PROVAGT_JOB_NAME.PEGASUS_OS_PASE:string {"PGS13812: Provider Agent\''s Job Name is: {0}."}
- // ==========================================================
+ // ==========================================================
// Messages for ProviderManager.ProviderAgent.ProviderAgent
// Please use message prefix "PGS14000"
// ==========================================================
@@ -4925,14 +5049,14 @@ CIM server listening on HTTPS port {0}."}
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.ProviderAgent.ProviderAgent.CIMSERVER_COMMUNICATION_FAILED:string {"PGS14000: cimprovagt \"{0}\" communication with CIM server failed. Exiting."}
+ ProviderManager.ProviderAgent.ProviderAgent.CIMSERVER_COMMUNICATION_FAILED:string {"PGS14000: cimprovagt \"{0}\" communication with CIM server failed. Exiting."}
/**
* @note PGS14001
* Substitution {0} is a string ID for the cimprovagt process instance
* Do not translate the word 'cimprovagt' since it is a command name.
*/
- ProviderManager.ProviderAgent.ProviderAgent.THREAD_ALLOCATION_FAILED:string {"PGS14001: Failed to allocate a thread in cimprovagt \"{0}\"."}
+ ProviderManager.ProviderAgent.ProviderAgent.THREAD_ALLOCATION_FAILED:string {"PGS14001: Failed to allocate a thread in cimprovagt \"{0}\"."}
/**
* @note PGS14002
@@ -4950,15 +5074,15 @@ CIM server listening on HTTPS port {0}."}
* @note PGS14004
* Substitution {0} is the full job name
*/
- ProviderManager.ProviderAgent.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS14004: \"{0}\" received synchronous signal: \"{1}\""}
+ ProviderManager.ProviderAgent.RECEIVE_SYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS14004: \"{0}\" received synchronous signal: \"{1}\""}
/**
* @note PGS14005
* Substitution {0} is the full job name
*/
- ProviderManager.ProviderAgent.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS14005: \"{0}\" received asynchronous signal: \"{1}\""}
+ ProviderManager.ProviderAgent.RECEIVE_ASYN_SIGNAL.PEGASUS_OS_PASE:string {"PGS14005: \"{0}\" received asynchronous signal: \"{1}\""}
- // ==========================================================
+ // ==========================================================
// Messages for Common.Monitor
// Please use message prefix "PGS14200"
// ==========================================================
@@ -4995,7 +5119,7 @@ CIM server listening on HTTPS port {0}."}
/**
* @note PGS14205
- * Substitution {0} is an error status code. This is a number.
+ * Substitution {0} is an error status code. This is a number.
*/
Common.Monitor.TICKLE_CLIENT_BIND:string {"PGS14205: Received error number {0} while binding the internal client socket."}
@@ -5957,7 +6081,7 @@ CIM server listening on HTTPS port {0}."}
// Please use message prefix "PGS16300 - PGS16399""
// ==========================================================
- Handler.SystemLogListenerDestination.SystemLogListenerDestination.FAILED_TO_DELIVER_INDICATION_TO_SYSTEM_LOG:string {"PGS16300: Failed to deliver indication to system log file."}
+ Handler.SystemLogListenerDestination.SystemLogListenerDestination.FAILED_TO_DELIVER_INDICATION_TO_SYSTEM_LOG:string {"PGS16300: Failed to deliver indication to system log file."}
// ==========================================================
// Messages for DefaultProviderManager
@@ -6084,7 +6208,7 @@ CIM server listening on HTTPS port {0}."}
// Please use message prefix "PGS16600 - PGS16699""
// ==========================================================
- Handler.EmailListenerDestination.EmailListenerDestination.FAILED_TO_DELIVER_INDICATION_VIA_EMAIL:string {"PGS16600: Failed to deliver indication via e-mail."}
+ Handler.EmailListenerDestination.EmailListenerDestination.FAILED_TO_DELIVER_INDICATION_VIA_EMAIL:string {"PGS16600: Failed to deliver indication via e-mail."}
/**
* @note PGS16601
@@ -6222,6 +6346,13 @@ CIM server listening on HTTPS port {0}."}
*/
ControlProviders.InteropProvider.DELETE_INSTANCE_NOT_ALLOWED:string {"PGS16702: Interop provider for class {0} does not allow delete instance operations."}
+ /**
+ * @note PGS16703
+ * Substitution {0} is a instance reference (a string).
+ * Substitution {1} is a name of property (a string).
+ */
+ ControlProviders.InteropProvider.INVALID_PROPERTY_ENTRIES:string {"PGS16703: {0} has invalid number of entries in property {1}."}
+
// ==========================================================
// Messages for ProviderManager.BasicProviderManagerRouter
// Please use message prefix "PGS16800"
@@ -6232,14 +6363,13 @@ CIM server listening on HTTPS port {0}."}
* Substitution {0} is a string ID for a provider interface type.
* Substitution {1} is a string name of a shared library file.
*/
- ProviderManager.BasicProviderManagerRouter.PROVIDERMANAGER_LOAD_FAILED:string {"PGS16800: Failed to load the Provider Manager for interface type \"{0}\" from library \"{1}\"."}
+ ProviderManager.BasicProviderManagerRouter.PROVIDERMANAGER_LOAD_FAILED:string {"PGS16800: Failed to load the Provider Manager for interface type \"{0}\" from library \"{1}\"."}
/**
- * @note PGS16801
- * Substitution {0} is a string ID for a provider interface type.
- * Substitution {1} is a string name of ProviderModule.
+ * This message is no longer used as of version 2.8.0
*/
ProviderManager.BasicProviderManagerRouter.UNSUPPORTED_INTERFACE_TYPE:string {"PGS16801: Unsupported InterfaceType \"{0}\" in ProviderModule \"{1}\"."}
+
// ==========================================================
// Messages for src.Service.ServerProcessUnix
// Please use message prefix "PGS17000"
@@ -6670,6 +6800,12 @@ CIM server listening on HTTPS port {0}."}
*/
ProviderManager2.JMPI.JMPIImpl.JAVA_CAUSED_EXCEPTION.STANDARD:string {"PGS18605: Java code caused an exception: {0}"}
+ /**
+ * @note PGS18606
+ * DO NOT TRANSLATE "JVM"
+ */
+ ProviderManager.JMPI.JMPIProvider.INIT_JVM_FAILED:string {"PGS18606: Could not initialize the JVM (Java Virtual Machine) runtime environment."}
+
// ==========================================================
// Messages for CIMPropertyRep
// Please use message prefix "PGS18800 - PGS18999"
@@ -6743,6 +6879,329 @@ CIM server listening on HTTPS port {0}."}
*/
Common.TLS.COULD_NOT_LINK_SOCKET:string {"PGS19801: Could not link socket to SSL Connection."}
+
+ // ==========================================================
+ // Messages for WsmReader
+ // Please use message prefix "PGS20000 - PGS20199"
+ // ==========================================================
+
+ /**
+ * @note PGS20000:
+ * Substitution {0} is the name of the expected element (string)
+ * Substitution {1} is the namespace URI of the expected element (string)
+ * This error is for a missing XML Start-Tag
+ */
+ WsmServer.WsmReader.EXPECTED_OPEN:string {"PGS20000: Expecting a start tag for ''{0}'' element in namespace ''{1}''."}
+
+ /**
+ * @note PGS20001:
+ * Substitution {0} is the name of the expected element (string)
+ * Substitution {1} is the namespace URI of the expected element (string)
+ * This error is for a missing XML End-Tag
+ */
+ WsmServer.WsmReader.EXPECTED_CLOSE:string {"PGS20001: Expecting an end tag for ''{0}'' element in namespace ''{1}''."}
+
+ /**
+ * @note PGS20002:
+ * Substitution {0} is the name of the expected element (string)
+ * Substitution {1} is the namespace URI of the expected element (string)
+ * This error is for a missing XML Start-Tag or Empty-Tag
+ */
+ WsmServer.WsmReader.EXPECTED_OPENCLOSE:string {"PGS20002: Expecting a start tag or an empty tag for ''{0}'' element in namespace ''{1}''."}
+
+ WsmServer.WsmReader.LOCALE_NOT_ENSURED:string {"PGS20003: Translation of responses to a specified locale cannot be ensured."}
+
+ /**
+ * @note PGS20004:
+ * Substitution {0} is an XML element name (string)
+ */
+ WsmServer.WsmReader.DUPLICATE_SOAP_HEADER:string {"PGS20004: Request contains multiple {0} SOAP Header elements."}
+
+ /**
+ * @note PGS20005:
+ * Substitution {0} is element name
+ * Substitution {1} is a string value that could not be converted to a positive integer
+ */
+ WsmServer.WsmReader.INVALID_UINT32_VALUE:string {"PGS20005: The {0} value ''{1}'' is not a valid positive integer."}
+
+ /**
+ * @note PGS20006:
+ * Substitution {0} is the name of an XML element (a string)
+ * Substitution {1} is the name of an XML attribute (a string)
+ */
+ WsmServer.WsmReader.MISSING_ATTRIBUTE:string {"PGS20006: The attribute {0}.{1} is missing."}
+
+ /**
+ * @note PGS20007:
+ */
+ WsmServer.WsmReader.EXPECTED_INSTANCE_ELEMENT:string {"PGS20007: Expecting an instance element."}
+
+ /**
+ * @note PGS20008:
+ */
+ WsmServer.WsmReader.NULL_ARRAY_ELEMENTS:string {"PGS20008: Setting array elements to null is not supported."}
+
+ /**
+ * @note PGS20009:
+ * Substitution {0} is the name of a CIM property (a string)
+ */
+ WsmServer.WsmReader.MISSING_PROPERTY_VALUE:string {"PGS20009: No value specified for non-null property {0}."}
+
+ /**
+ * @note PGS20010:
+ * Substitution {0} is the value of MaxEnvelopeSize (integer)
+ * Substitution {1} is the minimum allowable value of MaxEnvelopeSize (integer)
+ */
+ WsmServer.WsmReader.MAXENVELOPESIZE_TOO_SMALL:string {"PGS20010: The MaxEnvelopeSize {0} is less than minimum allowable value of {1}."}
+
+ /**
+ * @note PGS20011:
+ */
+ WsmServer.WsmReader.ENUMERATE_END_TO_UNSUPPORTED:string {"PGS20011: Alternate destinations for EnumerationEnd messages are not supported."}
+
+ /**
+ * @note PGS20012:
+ */
+ WsmServer.WsmReader.ENUMERATE_FILTERING_UNSUPPORTED:string {"PGS20012: Filtered enumerations are not supported."}
+
+ /**
+ * @note PGS20013:
+ * Substitution {0} is the polymorphism mode (a string)
+ */
+ WsmServer.WsmReader.ENUMERATE_POLYMORPHISM_MODE_UNSUPPORTED:string {"PGS20013: Polymorphism mode ''{0}'' is not supported."}
+
+ /**
+ * @note PGS20014:
+ */
+ WsmServer.WsmReader.ENUMERATE_POLYMORPHISM_INCLUDE_SUBCLASS:string {"PGS20014: \"All classes\" resource URI requires IncludeSubClassProperties polymorphism mode."}
+
+ /**
+ * @note PGS20015:
+ * Substitution {0} is the polymorphism mode (a string)
+ */
+ WsmServer.WsmReader.ENUMERATE_ENUM_MODE_UNSUPPORTED:string {"PGS20015: Enumeration mode ''{0}'' is not supported."}
+
+ /**
+ * @note PGS20016:
+ * Substitution {0} is the enumeration context (a string)
+ */
+ WsmServer.WsmReader.INVALID_ENUMERATION_CONTEXT:string {"PGS20016: Enumeration context ''{0}'' is not valid."}
+
+ // ==========================================================
+ // Messages for WsmRequestDecoder
+ // Please use message prefix "PGS20200 - PGS20399"
+ // ==========================================================
+
+ /**
+ * @note PGS20200:
+ * Do not translate the word 'Host' since it is an HTTP header
+ */
+ WsmServer.WsmRequestDecoder.MISSING_HOST_HEADER:string {"PGS20200: HTTP request message lacks a Host header field."}
+
+ /**
+ * @note PGS20201:
+ * Do not translate the word 'Content-Type' since it is an HTTP tag
+ */
+ WsmServer.WsmRequestDecoder.CONTENTTYPE_SYNTAX_ERROR:string {"PGS20201: HTTP Content-Type header error."}
+
+ WsmServer.WsmRequestDecoder.INVALID_UTF8_CHARACTER:string {"PGS20202: A UTF-8 character in the WS-Management request is not valid."}
+
+ /**
+ * @note PGS20203:
+ * Substitution {0} is the name of a SOAP header element (string)
+ */
+ WsmServer.WsmRequestDecoder.MISSING_HEADER:string {"PGS20203: Required SOAP header ''{0}'' was not specified."}
+
+ /**
+ * @note PGS20204:
+ * Substitution {0} is the value of an HTTP header (string)
+ * Substitution {1} is the value of a SOAP header element (string)
+ * Do not translate the word 'SOAPAction' since it is an HTTP tag
+ * Do not translate the word 'wsa:Action' since it is a SOAP header element name
+ */
+ WsmServer.WsmRequestDecoder.SOAPACTION_HEADER_MISMATCH:string {"PGS20204: The HTTP SOAPAction header value ''{0}'' does not match the wsa:Action value ''{1}''."}
+
+ WsmServer.WsmRequestDecoder.REPLYTO_ADDRESS_NOT_ANONYMOUS:string {"PGS20205: Responses may only be delivered over the same connection on which the request arrives."}
+
+ WsmServer.WsmRequestDecoder.FAULTTO_ADDRESS_NOT_ANONYMOUS:string {"PGS20206: Faults may only be delivered over the same connection on which the request arrives."}
+
+ /**
+ * @note PGS20207:
+ * Substitution {0} is the value of a SOAP header element (string)
+ * Do not translate the word 'wsa:Action' since it is a SOAP header element name
+ */
+ WsmServer.WsmRequestDecoder.ACTION_NOT_SUPPORTED:string {"PGS20207: The wsa:Action value ''{0}'' is not supported."}
+
+ WsmServer.WsmRequestDecoder.UNEXPECTED_SELECTORS:string {"PGS20208: The operation allows only the __cimnamespace seletor to be present."}
+
+
+ // ==========================================================
+ // Messages for WsmResponseEncoder
+ // Please use message prefix "PGS20400 - PGS20599"
+ // ==========================================================
+
+ WsmServer.WsmResponseEncoder.OUT_OF_MEMORY:string {"PGS20400: A system error occurred. Retry the WS-Management operation at a later time."}
+
+ WsmServer.WsmResponseEncoder.FAULT_MAX_ENV_SIZE_EXCEEDED:string {"PGS20401: Fault response could not be encoded within requested envelope size limits."}
+
+ WsmServer.WsmResponseEncoder.MAX_ENV_SIZE_EXCEEDED:string {"PGS20402: Response could not be encoded within requested envelope size limits."}
+
+ WsmServer.WsmResponseEncoder.UNREPORTABLE_SUCCESS:string {"PGS20403: Success response could not be encoded within requested envelope size limits."}
+
+
+ // ==========================================================
+ // Messages for WsmToCimRequestMapper
+ // Please use message prefix "PGS20600 - PGS20799"
+ // ==========================================================
+
+ /**
+ * @note PGS20600:
+ * Substitution {0} is a selector name (string)
+ */
+ WsmServer.WsmToCimRequestMapper.SELECTOR_TYPE_MISMATCH:string {"PGS20600: Selector ''{0}'' is not of the correct type."}
+
+ /**
+ * @note PGS20601:
+ * Substitution {0} is a selector value (string)
+ * Substitution {1} is a selector name (string)
+ */
+ WsmServer.WsmToCimRequestMapper.INVALID_SELECTOR_VALUE:string {"PGS20601: The value ''{0}'' is not valid for selector ''{1}''."}
+
+ /**
+ * @note PGS20602:
+ * Substitution {0} is a selector name (string)
+ * Substitution {1} is a CIM class name (string)
+ * Substitution {2} is a CIM namespace name (string)
+ */
+ WsmServer.WsmToCimRequestMapper.UNEXPECTED_SELECTOR:string {"PGS20602: Selector ''{0}'' is not expected for a resource of class {1} in namespace {2}."}
+
+ /**
+ * @note PGS20603:
+ * Do not translate the word 'ResourceURI' since it is a SOAP header element name
+ */
+ WsmServer.WsmToCimRequestMapper.ALLCLASSES_URI_NOT_ALLOWED:string {"PGS20603: The ''all classes'' ResourceURI cannot be used with this operation."}
+
+ /**
+ * @note PGS20604:
+ * Substitution {0} is a ResourceURI value (string)
+ * Do not translate the word 'ResourceURI' since it is a SOAP header element name
+ */
+ WsmServer.WsmToCimRequestMapper.UNRECOGNIZED_RESOURCEURI:string {"PGS20604: Unrecognized ResourceURI value: {0}."}
+
+ /**
+ * @note PGS20605:
+ * Substitution {0} is a property name (a string)
+ */
+ WsmServer.WsmToCimRequestMapper.NO_SUCH_PROPERTY:string { "PGS20604: The {0} property does not exist."}
+
+ /**
+ * @note PGS20606:
+ * Substitution {0} is a value (a string)
+ */
+ WsmServer.WsmToCimRequestMapper.INVALID_BOOLEAN_VALUE:string {"PGS20606: The boolean value ''{0}'' is not valid."}
+
+ WsmServer.WsmToCimRequestMapper.INVALID_UI_VALUE:string {"PGS20607: The unsigned integer value ''{0}'' is not valid."}
+
+ WsmServer.WsmToCimRequestMapper.INVALID_SI_VALUE:string {"PGS20608: The signed integer value ''{0}'' is not valid."}
+
+ WsmServer.WsmToCimRequestMapper.INVALID_RN_VALUE:string {"PGS20609: The real number value ''{0}'' is not valid."}
+
+ WsmServer.WsmToCimRequestMapper.INVALID_CHAR16_VALUE:string {"PGS20610: The char16 value ''{0}'' is not valid."}
+
+ WsmServer.WsmToCimRequestMapper.INVALID_DT_VALUE:string {"PGS20611: The datetime value ''{0}'' is not valid."}
+
+ /**
+ * @note PGS20612:
+ * Substitution {0} is a type
+ * Substitution {1} is a value (a string)
+ */
+ WsmServer.WsmToCimRequestMapper.VALUE_OUT_OF_RANGE:string {"PGS20612: The {0} value ''{1}'' is out of range."}
+
+ /**
+ * @note PGS20613:
+ * Substitution {0} is an EPR address
+ */
+ WsmServer.WsmToCimRequestMapper.INVALID_EPR_ADDRESS:string {"PGS20613: The EPR address ''{0}'' is not valid."}
+
+ // ==========================================================
+ // Messages for WsmFault
+ // Please use message prefix "PGS20800 - PGS20999"
+ // ==========================================================
+
+ WsmServer.WsmFault.SOAP_HEADER_NOT_UNDERSTOOD:string {"PGS20800: Header not understood."}
+
+
+ // ==========================================================
+ // Messages for CimToWsmResponseMapper
+ // Please use message prefix "PGS21000 - PGS21099"
+ // ==========================================================
+
+ WsmServer.CimToWsmResponseMapper.EMBEDDED_CLASS_NOT_SUPPORTED:string {"PGS21000: Embedded class objects in WS-Management responses are not supported."}
+
+
+ // ==========================================================
+ // Messages for WsmProcessor
+ // Please use message prefix "PGS21100 - PGS21199"
+ // ==========================================================
+
+ /**
+ * @note PGS21100:
+ * Substitution {0} is the enumeration context (a Uint64)
+ */
+ WsmServer.WsmProcessor.INVALID_ENUMERATION_CONTEXT:string {"PGS21100: Enumeration context ''{0}'' is not valid."}
+
+ WsmServer.WsmProcessor.INVALID_PULL_EPR:string {"PGS21101: EPR of a Pull request does not match that of the enumeration context."}
+
+ WsmServer.WsmProcessor.INVALID_RELEASE_EPR:string {"PGS21102: EPR of a Release request does not match that of the enumeration context."}
+
+
+ // ==========================================================
+ // Messages for ProviderManagerMap
+ // Please use message prefix "PGS21200 - PGS21399"
+ // ==========================================================
+
+ /**
+ * @note PGS21200
+ * Substitution {0} is a file name (a string)
+ * Substitution {1} is a system error message
+ * @version 2.8
+ */
+ Server.ProviderRegistrationManager.ProviderManagerMap.LOAD_ERROR:string {"PGS21200: Error loading library {0}: {1}."}
+
+ /**
+ * @note PGS21201
+ * Substitution {0} is a file name (a string)
+ * Substitution {1} is a version number (a number)
+ * Substitution {2} is a version number (a number)
+ * @version 2.8
+ */
+ Server.ProviderRegistrationManager.ProviderManagerMap.WRONG_VERSION:string {"PGS21201: Provider Manager {0} returned Pegasus version {1}. Expected {2}."}
+
+ /**
+ * @note PGS21202
+ * Substitution {0} is a file name (a string)
+ * DO NOT TRANSLATE "getProviderManagerInterfaceNames"
+ * @version 2.8
+ */
+ Server.ProviderRegistrationManager.ProviderManagerMap.MISSING_GET_IFC_NAMES:string {"PGS21202: Provider Manager {0} does not contain expected function 'getProviderManagerInterfaceNames'."}
+
+ /**
+ * @note PGS21203
+ * Substitution {0} is a file name (a string)
+ * DO NOT TRANSLATE "getProviderManagerInterfaceVersions"
+ * @version 2.8
+ */
+ Server.ProviderRegistrationManager.ProviderManagerMap.MISSING_GET_IFC_VERSIONS:string {"PGS21203: Provider Manager {0} does not contain expected function 'getProviderManagerInterfaceVersions'."}
+
+
+ /**
+ * @note PGS21204
+ * Substitution {0} is a file name (a string)
+ * DO NOT TRANSLATE "getPegasusVersion"
+ * @version 2.8
+ */
+ Server.ProviderRegistrationManager.ProviderManagerMap.MISSING_GET_PG_VERSION:string {"PGS21204: Library {0} does not contain expected function 'getPegasusVersion'."}
+
// ==============================================================================
// END OF RESOURCE BUNDLE
// DO NOT ADD MESSAGES AFTER THE FOLLOWING '}'