1 //%2004////////////////////////////////////////////////////////////////////////
3 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
6 // IBM Corp.; EMC Corporation, The Open Group.
7 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
10 // Permission is hereby granted, free of charge, to any person obtaining a copy
11 // of this software and associated documentation files (the "Software"), to
12 // deal in the Software without restriction, including without limitation the
13 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
14 // sell copies of the Software, and to permit persons to whom the Software is
15 // furnished to do so, subject to the following conditions:
17 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
19 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
20 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
21 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 //==============================================================================
28 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
30 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
31 // (carolann_graves@hp.com)
32 // Yi Zhou, Hewlett-Packard Company (yi.zhou@hp.com)
33 // Willis White (whiwill@us.ibm.com) Bug 1596
35 //%/////////////////////////////////////////////////////////////////////////////
37 #ifndef Pegasus_Constants_h
38 #define Pegasus_Constants_h
40 #include <Pegasus/Common/Config.h>
41 #include <Pegasus/Common/CIMName.h>
43 PEGASUS_NAMESPACE_BEGIN
46 // Message Queue Names
49 #define PEGASUS_QUEUENAME_METADISPATCHER "pegasus meta dispatcher"
51 #define PEGASUS_QUEUENAME_HTTPACCEPTOR "HTTPAcceptor"
52 #define PEGASUS_QUEUENAME_HTTPCONNECTION "HTTPConnection"
53 #define PEGASUS_QUEUENAME_HTTPCONNECTOR "HTTPConnector"
54 #define PEGASUS_QUEUENAME_HTTPOPTIONS "HTTPOptions"
56 #define PEGASUS_QUEUENAME_HTTPAUTHDELEGATOR "HTTPAuthenticatorDelegator"
57 #define PEGASUS_QUEUENAME_OPREQDECODER "CIMOpRequestDecoder"
58 #define PEGASUS_QUEUENAME_OPREQAUTHORIZER "CIMOpRequestAuthorizer"
59 #define PEGASUS_QUEUENAME_OPREQDISPATCHER "CIMOpRequestDispatcher"
60 #define PEGASUS_QUEUENAME_OPRESPENCODER "CIMOpResponseEncoder"
62 #define PEGASUS_QUEUENAME_CONTROLSERVICE "ControlService"
63 #define PEGASUS_QUEUENAME_INDICATIONSERVICE "Server::IndicationService"
64 #define PEGASUS_QUEUENAME_PROVIDERMANAGER_CPP "Server::ProviderManagerService"
65 #define PEGASUS_QUEUENAME_INDHANDLERMANAGER "IndicationHandlerService"
67 #define PEGASUS_QUEUENAME_CLIENT "CIMClient"
68 #define PEGASUS_QUEUENAME_OPREQENCODER "CIMOperationRequestEncoder"
69 #define PEGASUS_QUEUENAME_OPRESPDECODER "CIMOperationResponseDecoder"
71 #define PEGASUS_QUEUENAME_EXPORTCLIENT "CIMExportClient"
72 #define PEGASUS_QUEUENAME_EXPORTREQENCODER "CIMExportRequestEncoder"
73 #define PEGASUS_QUEUENAME_EXPORTRESPDECODER "CIMExportResponseDecoder"
75 #define PEGASUS_QUEUENAME_EXPORTREQDECODER "CIMExportRequestDecoder"
76 #define PEGASUS_QUEUENAME_EXPORTREQDISPATCHER "CIMExportRequestDispatcher"
77 #define PEGASUS_QUEUENAME_EXPORTRESPENCODER "CIMExportResponseEncoder"
79 #define PEGASUS_QUEUENAME_WBEMEXECCLIENT "WbemExecClient"
80 #define PEGASUS_QUEUENAME_INTERNALCLIENT "InternalClient"
81 #define PEGASUS_QUEUENAME_BINARY_HANDLER "BinaryMessageHandler"
85 // ModuleController Module Names
88 #define PEGASUS_MODULENAME_CONFIGPROVIDER \
89 PEGASUS_QUEUENAME_CONTROLSERVICE "::ConfigProvider"
90 #define PEGASUS_MODULENAME_USERAUTHPROVIDER \
91 PEGASUS_QUEUENAME_CONTROLSERVICE "::UserAuthProvider"
92 #define PEGASUS_MODULENAME_PROVREGPROVIDER \
93 PEGASUS_QUEUENAME_CONTROLSERVICE "::ProviderRegistrationProvider"
94 #define PEGASUS_MODULENAME_SHUTDOWNPROVIDER \
95 PEGASUS_QUEUENAME_CONTROLSERVICE "::ShutdownProvider"
96 #define PEGASUS_MODULENAME_NAMESPACEPROVIDER \
97 PEGASUS_QUEUENAME_CONTROLSERVICE "::NamespaceProvider"
98 #define PEGASUS_MODULENAME_CERTIFICATEPROVIDER \
99 PEGASUS_QUEUENAME_CONTROLSERVICE "::CertificateProvider"
100 #define PEGASUS_MODULENAME_TEMP \
101 PEGASUS_QUEUENAME_CONTROLSERVICE "::temp::do not use this name"
102 #define PEGASUS_MODULENAME_MONITOR \
103 PEGASUS_QUEUENAME_CONTROLSERVICE "::Monitor"
104 #define PEGASUS_MODULENAME_INTEROPPROVIDER \
105 PEGASUS_QUEUENAME_CONTROLSERVICE "::InteropProvider"
107 #ifdef PEGASUS_HAS_PERFINST
108 #define PEGASUS_MODULENAME_CIMOMSTATDATAPROVIDER \
109 PEGASUS_QUEUENAME_CONTROLSERVICE "::CIMOMStatDataProvider"
117 static const CIMName PEGASUS_CLASSNAME_CONFIGSETTING =
118 CIMName ("PG_ConfigSetting");
119 static const CIMName PEGASUS_CLASSNAME_AUTHORIZATION =
120 CIMName ("PG_Authorization");
121 static const CIMName PEGASUS_CLASSNAME_USER =
123 static const CIMName PEGASUS_CLASSNAME_CERTIFICATE =
124 CIMName ("PG_SSLCertificate");
125 static const CIMName PEGASUS_CLASSNAME_CRL =
126 CIMName ("PG_SSLCertificateRevocationList");
127 static const CIMName PEGASUS_CLASSNAME_PROVIDERMODULE =
128 CIMName ("PG_ProviderModule");
129 static const CIMName PEGASUS_CLASSNAME_PROVIDER =
130 CIMName ("PG_Provider");
131 static const CIMName PEGASUS_CLASSNAME_CAPABILITIESREGISTRATION =
132 CIMName ("PG_CapabilitiesRegistration");
133 static const CIMName PEGASUS_CLASSNAME_CONSUMERCAPABILITIES =
134 CIMName ("PG_ConsumerCapabilities");
135 static const CIMName PEGASUS_CLASSNAME_PROVIDERCAPABILITIES =
136 CIMName ("PG_ProviderCapabilities");
137 static const CIMName PEGASUS_CLASSNAME_INDSUBSCRIPTION =
138 CIMName ("CIM_IndicationSubscription");
139 static const CIMName PEGASUS_CLASSNAME_INDHANDLER =
140 CIMName ("CIM_IndicationHandler");
141 static const CIMName PEGASUS_CLASSNAME_INDHANDLER_CIMXML =
142 CIMName ("CIM_IndicationHandlerCIMXML");
143 static const CIMName PEGASUS_CLASSNAME_LSTNRDST_CIMXML =
144 CIMName ("CIM_ListenerDestinationCIMXML");
145 static const CIMName PEGASUS_CLASSNAME_INDHANDLER_SNMP =
146 CIMName ("PG_IndicationHandlerSNMPMapper");
147 static const CIMName PEGASUS_CLASSNAME_INDFILTER =
148 CIMName ("CIM_IndicationFilter");
149 static const CIMName PEGASUS_CLASSNAME_SHUTDOWN =
150 CIMName ("PG_ShutdownService");
151 static const CIMName PEGASUS_CLASSNAME___NAMESPACE =
152 CIMName ("__Namespace");
154 #ifdef PEGASUS_HAS_PERFINST
155 static const CIMName PEGASUS_CLASSNAME_CIMOMSTATDATA =
156 CIMName ("CIM_CIMOMStatisticalData");
159 #if defined(PEGASUS_HAS_PERFINST) || defined(PEGASUS_ENABLE_SLP)
160 static const CIMName PEGASUS_CLASSNAME_OBJECTMANAGER =
161 CIMName ("CIM_ObjectManager");
162 static const CIMName PEGASUS_CLASSNAME_PGNAMESPACE =
163 CIMName ("PG_Namespace");
166 #ifdef PEGASUS_ENABLE_SLP
167 // Interop Classes Accessed through Interop Control Provider
168 static const CIMName PEGASUS_CLASSNAME_CIMNAMESPACE =
169 CIMName ("CIM_Namespace");
170 static const CIMName PEGASUS_CLASSNAME_OBJECTMANAGERCOMMUNICATIONMECHANISM =
171 CIMName ("CIM_ObjectManagerCommunicationMechanism");
172 static const CIMName PEGASUS_CLASSNAME_CIMXMLCOMMUNICATIONMECHANISM =
173 CIMName ("CIM_CIMXMLCommunicationMechanism");
174 static const CIMName PEGASUS_CLASSNAME_PG_CIMXMLCOMMUNICATIONMECHANISM =
175 CIMName ("PG_CIMXMLCommunicationMechanism");
176 static const CIMName PEGASUS_CLASSNAME_PROTOCOLADAPTER =
177 CIMName ("CIM_ProtocolAdapter");
178 static const CIMName PEGASUS_CLASSNAME_NAMESPACEINMANAGER =
179 CIMName ("CIM_NamespaceInManager");
181 // slp Class which operates slp provider. Started by system
183 static const CIMName PEGASUS_CLASSNAME_WBEMSLPTEMPLATE =
184 CIMName ("PG_WBEMSLPTEMPLATE");
191 static const CIMName PEGASUS_PROPERTYNAME_INDSUB_CREATOR =
195 static const CIMName PEGASUS_PROPERTYNAME_INDSUB_ACCEPTLANGS =
196 CIMName ("AcceptLanguages");
197 static const CIMName PEGASUS_PROPERTYNAME_INDSUB_CONTENTLANGS =
198 CIMName ("ContentLanguages");
201 // CIM Namespace Names
204 static const CIMNamespaceName PEGASUS_NAMESPACENAME_INTEROP =
205 CIMNamespaceName ("root/PG_InterOp");
206 static const CIMNamespaceName PEGASUS_NAMESPACENAME_INTERNAL =
207 CIMNamespaceName ("root/PG_Internal");
208 static const CIMNamespaceName PEGASUS_NAMESPACENAME_CIMV2 =
209 CIMNamespaceName ("root/cimv2");
211 static const CIMNamespaceName PEGASUS_NAMESPACENAME_AUTHORIZATION =
212 PEGASUS_NAMESPACENAME_INTERNAL;
213 static const CIMNamespaceName PEGASUS_NAMESPACENAME_CONFIG =
214 PEGASUS_NAMESPACENAME_INTERNAL;
215 static const CIMNamespaceName PEGASUS_NAMESPACENAME_PROVIDERREG =
216 PEGASUS_NAMESPACENAME_INTEROP;
217 static const CIMNamespaceName PEGASUS_NAMESPACENAME_SHUTDOWN =
218 PEGASUS_NAMESPACENAME_INTERNAL;
219 static const CIMNamespaceName PEGASUS_NAMESPACENAME_USER =
220 PEGASUS_NAMESPACENAME_INTERNAL;
221 static const CIMNamespaceName PEGASUS_NAMESPACENAME_CERTIFICATE =
222 PEGASUS_NAMESPACENAME_INTERNAL;
224 #ifdef PEGASUS_HAS_PERFINST
225 static const CIMNamespaceName PEGASUS_NAMESPACENAME_CIMOMSTATDATA =
226 PEGASUS_NAMESPACENAME_CIMV2;
231 // HTTP Header Tags, Status Codes, and Reason Phrases
234 #define PEGASUS_HTTPHEADERTAG_ERRORDETAIL "PGErrorDetail"
236 #define HTTP_STATUSCODE_OK 200
237 #define HTTP_REASONPHRASE_OK "OK"
238 #define HTTP_STATUS_OK "200 OK"
240 #define HTTP_STATUSCODE_BADREQUEST 400
241 #define HTTP_REASONPHRASE_BADREQUEST "Bad Request"
242 #define HTTP_STATUS_BADREQUEST "400 Bad Request"
244 #define HTTP_STATUSCODE_UNAUTHORIZED 401
245 #define HTTP_REASONPHRASE_UNAUTHORIZED "Unauthorized"
246 #define HTTP_STATUS_UNAUTHORIZED "401 Unauthorized"
248 #define HTTP_STATUSCODE_FORBIDDEN 403
249 #define HTTP_REASONPHRASE_FORBIDDEN "Forbidden"
250 #define HTTP_STATUS_FORBIDDEN "403 Forbidden"
252 #define HTTP_STATUSCODE_REQUEST_TOO_LARGE 413
253 #define HTTP_REASONPHRASE_REQUEST_TOO_LARGE "Request Entity Too Large"
254 #define HTTP_STATUS_REQUEST_TOO_LARGE "413 Request Entity Too Large"
256 #define HTTP_STATUSCODE_INTERNALSERVERERROR 500
257 #define HTTP_REASONPHRASE_INTERNALSERVERERROR "Internal Server Error"
258 #define HTTP_STATUS_INTERNALSERVERERROR "500 Internal Server Error"
260 #define HTTP_STATUSCODE_NOTIMPLEMENTED 501
261 #define HTTP_REASONPHRASE_NOTIMPLEMENTED "Not Implemented"
262 #define HTTP_STATUS_NOTIMPLEMENTED "501 Not Implemented"
264 #define HTTP_STATUSCODE_SERVICEUNAVAILABLE 503
265 #define HTTP_REASONPHRASE_SERVICEUNAVAILABLE "Service Unavailable"
266 #define HTTP_STATUS_SERVICEUNAVAILABLE "503 Service Unavailable"
270 // Default port numbers
273 #define WBEM_DEFAULT_HTTP_PORT 5988
274 #define WBEM_DEFAULT_HTTPS_PORT 5989
276 #define SNMP_TRAP_DEFAULT_PORT 162
280 // Wbem service names
284 #ifdef PEGASUS_OS_OS400
286 #define WBEM_HTTP_SERVICE_NAME "wbem-http"
287 #define WBEM_HTTPS_SERVICE_NAME "wbem-https"
288 #define WBEM_EXPORT_HTTPS_SERVICE_NAME "wbem-exp-https"
291 #define WBEM_HTTP_SERVICE_NAME "wbem-http"
292 #define WBEM_HTTPS_SERVICE_NAME "wbem-https"
293 #define WBEM_EXPORT_HTTPS_SERVICE_NAME "wbem-exp-https"
299 // File system layout
302 #define PEGASUS_SSLCLIENT_CERTIFICATEFILE "client.pem"
303 #define PEGASUS_SSLCLIENT_RANDOMFILE "ssl.rnd"
304 #define PEGASUS_SSLSERVER_RANDOMFILE "cimserver.rnd"
305 #define PEGASUS_LOCAL_AUTH_DIR "/tmp"
306 // ATTN: Relocate this relative to PEGASUS_HOME
307 #define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/tmp/cimxml.socket"
308 #define PEGASUS_PAM_STANDALONE_PROC_NAME "bin/cimservera"
309 #define PEGASUS_PROVIDER_AGENT_PROC_NAME "bin/cimprovagt"
311 #ifdef PEGASUS_USE_RELEASE_DIRS
312 # if defined(PEGASUS_OS_HPUX)
313 # undef PEGASUS_SSLCLIENT_CERTIFICATEFILE
314 # define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/hp/sslshare/client.pem"
315 # undef PEGASUS_SSLCLIENT_RANDOMFILE
316 # define PEGASUS_SSLCLIENT_RANDOMFILE "/var/opt/wbem/ssl.rnd"
317 # undef PEGASUS_SSLSERVER_RANDOMFILE
318 # define PEGASUS_SSLSERVER_RANDOMFILE "/var/opt/wbem/cimserver.rnd"
319 # undef PEGASUS_LOCAL_AUTH_DIR
320 # define PEGASUS_LOCAL_AUTH_DIR "/var/opt/wbem/localauth"
321 # undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
322 # define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/var/opt/wbem/socket/cimxml.socket"
323 # undef PEGASUS_CORE_DIR
324 # define PEGASUS_CORE_DIR "/var/opt/wbem"
325 # undef PEGASUS_PAM_STANDALONE_PROC_NAME
326 # define PEGASUS_PAM_STANDALONE_PROC_NAME "/opt/wbem/sbin/cimservera"
327 # undef PEGASUS_PROVIDER_AGENT_PROC_NAME
328 # define PEGASUS_PROVIDER_AGENT_PROC_NAME "/opt/wbem/sbin/cimprovagt"
329 # elif defined(PEGASUS_OS_AIX)
330 # undef PEGASUS_SSLCLIENT_CERTIFICATEFILE
331 # define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/opt/freeware/cimom/pegasus/etc/client.pem"
332 # undef PEGASUS_SSLCLIENT_RANDOMFILE
333 # define PEGASUS_SSLCLIENT_RANDOMFILE "/opt/freeware/cimom/pegasus/etc/ssl.rnd"
334 # undef PEGASUS_SSLSERVER_RANDOMFILE
335 # define PEGASUS_SSLSERVER_RANDOMFILE "/opt/freeware/cimom/pegasus/etc/cimserver.rnd"
336 # undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
337 # define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/opt/freeware/cimom/pegasus/etc/cimxml.socket"
338 # elif defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) && !defined(PEGASUS_OS_LSB)
339 # undef PEGASUS_SSLCLIENT_CERTIFICATEFILE
340 # define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/tog-pegasus/client.pem"
341 # undef PEGASUS_SSLCLIENT_RANDOMFILE
342 # define PEGASUS_SSLCLIENT_RANDOMFILE "/var/opt/tog-pegasus/ssl.rnd"
343 # undef PEGASUS_SSLSERVER_RANDOMFILE
344 # define PEGASUS_SSLSERVER_RANDOMFILE "/var/opt/tog-pegasus/cimserver.rnd"
345 # undef PEGASUS_LOCAL_AUTH_DIR
346 # define PEGASUS_LOCAL_AUTH_DIR "/var/opt/tog-pegasus/cache/localauth"
347 # undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
348 # define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/var/run/tog-pegasus/socket/cimxml.socket"
349 # undef PEGASUS_PAM_STANDALONE_PROC_NAME
350 # define PEGASUS_PAM_STANDALONE_PROC_NAME "/opt/tog-pegasus/sbin/cimservera"
351 # undef PEGASUS_PROVIDER_AGENT_PROC_NAME
352 # define PEGASUS_PROVIDER_AGENT_PROC_NAME "/opt/tog-pegasus/sbin/cimprovagt"
353 # elif defined(PEGASUS_OS_LSB)
354 # define PEGASUS_SSLCLIENT_CERTIFICATEFILE "/etc/opt/lsb-pegasus/client.pem"
355 # undef PEGASUS_SSLCLIENT_RANDOMFILE
356 # define PEGASUS_SSLCLIENT_RANDOMFILE "/var/opt/lsb-pegasus/ssl.rnd"
357 # undef PEGASUS_SSLSERVER_RANDOMFILE
358 # define PEGASUS_SSLSERVER_RANDOMFILE "/var/opt/lsb-pegasus/cimserver.rnd"
359 # undef PEGASUS_LOCAL_AUTH_DIR
360 # define PEGASUS_LOCAL_AUTH_DIR "/var/opt/lsb-pegasus/localauth"
361 # undef PEGASUS_LOCAL_DOMAIN_SOCKET_PATH
362 # define PEGASUS_LOCAL_DOMAIN_SOCKET_PATH "/var/opt/lsb-pegasus/socket/cimxml.socket"
363 # undef PEGASUS_PAM_STANDALONE_PROC_NAME
364 # define PEGASUS_PAM_STANDALONE_PROC_NAME "/opt/lsb-pegasus/sbin/cimservera"
365 # undef PEGASUS_PROVIDER_AGENT_PROC_NAME
366 # define PEGASUS_PROVIDER_AGENT_PROC_NAME "/opt/lsb-pegasus/sbin/cimprovagt"
370 // Constant defines for path to icu resource bundles
371 #ifdef PEGASUS_PLATFORM_OS400_ISERIES_IBM
372 #define PEGASUS_DEFAULT_MESSAGE_SOURCE "/QIBM/ProdData/OS400/CIM/msg"
374 #undef PEGASUS_DEFAULT_MESSAGE_SOURCE
378 // Miscellaneous Constants
381 // Constant defines the maximum number of providers that will be addressed in a single
382 // enumerate instance request. This is strictly a performance requirement for different
383 // systems. To disable the whole test, simply set this variable to 0
384 #define MAX_ENUMERATE_BREADTH 30
386 // Constant defines the maximum timeout to disable a provider
387 #define PROVIDER_DISABLE_TIMEOUT 15
389 // Constants defining the operational status of a CIM_ManagedSystemElement
390 #define CIM_MSE_OPSTATUS_VALUE_OK 2
391 #define CIM_MSE_OPSTATUS_VALUE_STOPPING 9
392 #define CIM_MSE_OPSTATUS_VALUE_STOPPED 10
394 PEGASUS_NAMESPACE_END
396 #endif /* Pegasus_Constants_h */