systemd Daemonjournalctl: Query the systemd JournaludevSUSE® Linux Enterprise Server (SLES) provides a collection of open standards based tools for the unified management of disparate computing systems and environments. Our enterprise solutions implement the standards proposed by the Distributed Management Task Force. The following paragraphs describe their basic components.
Distributed Management Task Force, Inc (DMTF) is the industry organization which leads the development of management standards for enterprise and Internet environments. Their goal is to unify management standards and initiatives, and to enable more integrated, cost effective and interoperable management solutions. DMTF standards provide common system management components for control and communication. Their solutions are independent of platforms and technologies. Web Based Enterprise Management and Common Information Model are one of their key technologies.
Web Based Enterprise Management (WBEM) is a set of management and Internet standard technologies. WBEM is developed to unify the management of enterprise computing environments. It provides the ability for the industry to deliver a well-integrated collection of management tools using Web technologies. WBEM consists of the following standards:
A data model: the Common Information Model (CIM) standard
An encoding specification: CIM-XML Encoding Specification
A transport mechanism: CIM operations over HTTP
Common Information Model is a conceptual information model that describes system management. It is not bound to a particular implementation and enables the interchange of management information between management systems, networks, services and applications. There are two parts to CIM — the CIM Specification and the CIM Schema.
The CIM Specification describes the language, naming and meta schema. The meta schema is a formal definition of the model. It defines the terms used to express the model and their usage and semantics. The elements of the meta schema are classes, properties, and methods. The meta schema also supports indications and associations as types of classes, and references as types of properties.
The CIM Schema provides the actual model descriptions. It supplies a set of classes with properties and associations that provide a well understood conceptual framework within which it is possible to organize the available information about the managed environment.
The Common Information Model Object Manager (CIMOM) is a CIM object manager or, more specifically, an application that manages objects according to the CIM standard. CIMOM manages communication between CIMOM providers and a CIM client, where the administrator manages the system.
CIMOM providers are software performing specific tasks within the CIMOM that are requested by client applications. Each provider instruments one or more aspects of the CIMOM's schema. These providers interact directly with the hardware.
Standards Based Linux Instrumentation for Manageability (SBLIM) is a collection of tools designed to support Web-Based Enterprise Management (WBEM). SUSE® Linux Enterprise Server uses the open source CIMOM (or CIM server) from the SBLIM project called Small Footprint CIM Broker .
Small Footprint CIM Broker is a CIM server intended for use in resource-limited or embedded environments. It is designed to be modular and lightweight at the same time. Its based on open standards and it supports CMPI providers, CIM-XML encoding, and Managed Object Format (MOF). It is highly configurable and performs stability even if the provider crashes. It is also easily accessible as it supports various transport protocols, such as HTTP, HTTPS, Unix domain sockets, Service Location Protocol (SLP), and Java Database Connectivity (JDBC).
To set up the Small Footprint CIM Broker (SFCB) environment, make sure the pattern in YaST is selected during SUSE Linux Enterprise Server installation. Alternatively, select it as a component to install on a server that is already running. Make sure the following packages are installed on your system:
Contains the Common Information Model (CIM). CIM is a model for describing overall management information in a network or enterprise environments. CIM consists of a specification and a schema. The specification defines the details for integration with other management models. The schema provides the actual model descriptions.
Contains an adapter to write and run CMPI-type CIM providers in Python.
Contains base system CIM providers.
Contains power management providers based on DSP1027.
Contains a Python module for making CIM operation calls through the WBEM protocol to query and update managed objects.
Contains a utility allowing CMPI provider packages to register with whatever CIMOM happens to be present on the system.
Contains Small Footprint CIM Broker. It is a CIM server conforming to the CIM Operations over HTTP protocol. It is robust, with low resource consumption and, therefore, specifically suited for embedded and resource constrained environments. SFCB supports providers written against the Common Manageability Programming Interface (CMPI).
Contains Small Footprint CIM Client library runtime libraries.
Contains WBEM command line interface. It is a stand-alone command line WBEM client especially suited for basic systems management tasks.
Contains providers to instrument the volumes and snapshots on the Linux file system. These are based on SNIA's SMI-S volume management profile and Copy Services profile respectively.
SUSE® Linux Enterprise Server software repository includes additional CIM providers
that are not found in the Web-Based Enterprise Management installation
pattern. You can easily get their list and installation status by
searching the pattern sblim-cmpi- in the YaST
software installation module. These providers cover various tasks of
system management, such as DHCP, NFS, or kernel parameters setting. It
is useful to install those providers which you are going to use with
SFCB.
CIM server sfcbd daemon is installed together with Web-Based Enterprise Management software and is started by default at system start-up. The following table explains how to start, stop and check status for sfcbd.
|
Task |
Linux Command |
|---|---|
|
Start sfcbd |
Enter |
|
Stop sfcbd |
Enter |
|
Check sfcbd status |
Enter |
The default setup of SFCB is relatively secure. However, check that the access to SFCB components is as secure as required for your organization.
Secure Socket Layers (SSL) transports require a certificate for secure communication to occur. When SFCB is installed, it has a self-signed certificate generated.
You can replace the path to the default certificate with a path to a
commercial or self-signed one by changing the
sslCertificateFilePath:
path_filename setting in
/etc/sfcb/sfcb.cfg. The file must be in PEM
format.
The default generated server certificate is in the following location:
/etc/sfcb/server.pem
The default generated certificate files
servercert.pem and
serverkey.pem are stored under
/etc/ssl/servercerts directory. Files
/etc/sfcb/client.pem,
/etc/sfcb/file.pem and
/etc/sfcb/server.pem are symbolic links to these
files.
If you want to generate a new certificate, enter the following command
as root in the command line:
tux@mercury:~> sh /usr/share/sfcb/genSslCert.sh Generating SSL certificates in . Generating a 2048 bit RSA private key ...................................................................+++ .+++ writing new private key to '/var/tmp/sfcb.0Bjt69/key.pem' -----
By default, the script generates certificates
client.pem , file.pem and
server.pem in the current working directory. If
you want the script to generate the certificates in
/etc/sfcb directory, you need to append it to the
command. If these files already exist, a warning message is displayed
and the old certificates are not overwritten.
tux@mercury:~> sh /usr/share/sfcb/genSslCert.sh /etc/sfcb
Generating SSL certificates in .
WARNING: server.pem SSL Certificate file already exists.
old file will be kept intact.
WARNING: client.pem SSL Certificate trust store already exists.
old file will be kept intact.You must remove the old certificates from the file system and run the command again.
If you want to change the way SFCB uses certificates, see Section 32.2.3.3, “Authentication”.
By default, SFCB is configured to accept all communications through the secure port 5989. The following paragraphs explain the communication port setup and recommended configuration.
The secure port that SFCB communications use via HTTPS services. This is the default. With this setting, all communications between the CIMOM and client applications are encrypted when sent over the Internet between servers and workstations. Users must authenticate with the client application to reach SFCB server. We recommend that you keep this setting. In order for the SFCB CIMOM to communicate with the necessary applications, this port must be open on routers and firewalls if they are present between the client application and the nodes being monitored.
The insecure port that SFCB communications use via HTTP services. This setting is disabled by default. With this setting, all communications between the CIMOM and client applications are open for review when sent over the Internet between servers and workstations by anyone, without any authentication. We recommend that you use this setting only when attempting to debug a problem with the CIMOM. As soon as the problem is resolved, disable the non-secure port option back. In order for the SFCB CIMOM to communicate with the necessary applications that require non-secure access, this port must be open in routers and firewalls between the client application and the nodes being monitored.
If you want to change the default port assignments, see Section 32.2.3.2, “Ports”.
SFCB supports HTTP basic authentication and authentication based on
client certificates (HTTP over SSL connections). Basic HTTP
authentication is enabled by specifying doBasicAuth
=true in the SFCB configuration file (
/etc/sfcb/sfcb.cfg by default). SUSE® Linux Enterprise Server
installation of SFCB supports Pluggable Authentication Modules (PAM)
approach; therefore the local root user can authenticate to the SFCB
CIMOM with local root user credentials.
If the sslClientCertificate configuration property
is set to accept or
require, the SFCB HTTP adapter will request
a certificate from clients when connecting via HTTP over SSL (HTTPS).
If require is specified, the client
must provide a valid certificate
(according to the client trust store specified via
sslClientTrustStore). If the client fails to
do so, the connection will be rejected by the CIM server.
The setting sslClientCertificate
=accept may not be obvious. It is very
useful if both basic and client certificate authentication are allowed.
If the client is able to provide a valid certificate, HTTPS connection
will be established and the basic authentication procedure will not be
executed. If this function cannot verify the certificate, the HTTP
basic authentication will take place instead.
SFCB is a lightweight implementation of the CIM server, but it is also highly configurable. Several options can control its behavior. You can control the SFCB server in three ways:
by setting appropriate environment variables
by using command line options
by changing its configuration file
Several environment variables directly affect the behavior of SFCB. You
need to restart the SFCB daemon by systemctl restart
sfcb.service for these changes to take effect.
PATH
Specifies the path to the sfcbd daemon and
utilities.
LD_LIBRARY_PATH
Specifies the path to the sfcb runtime libraries. Alternatively, you
can add this path to the system-wide dynamic loader configuration
file /etc/ld.so.conf .
SFCB_PAUSE_PROVIDER
Specifies the provider name. The SFCB server pauses after the provider is loaded for the first time. You can then attach a runtime debugger to the provider's process for debugging purposes.
SFCB_PAUSE_CODEC
Specifies the name of the SFCB codec (currently supports only
http. The SFCB server pauses after the codec is
loaded for the first time. You can then attach a runtime debugger to
the process.
SFCB_TRACE
Specifies the level of debug messages for SFCB. Valid values are 0 (no debug messages), or 1 (key debug messages) to 4 (all debug messages). Default is 1.
SFCB_TRACE_FILE
By default, SFCB outputs its debug messages to standard error output (STDERR). Setting this variable causes the debug messages to be written to a specified file instead.
SBLIM_TRACE
Specifies the level of debug messages for SBLIM providers. Valid values are 0 (no debug messages), or 1 (key debug messages) to 4 (all debug messages).
SBLIM_TRACE_FILE
By default, SBLIM provider outputs its trace messages to STDERR. Setting this variable causes the trace messages to be written to a specified file instead.
sfcbd, the SFCB daemon, has several command
line options that switch particular runtime features on or off. Enter
these options when SFCB daemon starts.
-c, --config-file=FILE
When SFCB daemon starts, it reads its configuration from
/etc/sfcb/sfcb.cfg by default. With this option,
you can specify an alternative configuration file.
-d, --daemon
Forces sfcbd and its child processes to run in the background.
-s, --collect-stats
Turns on runtime statistics collecting. Various sfcbd runtime
statistics will be written to the sfcbStat file
in the current working directory. By default, no statistics are
collected.
-l, --syslog-level=LOGLEVEL
Specifies the level of verbosity for the system logging facility. LOGLEVEL can be one of LOG_INFO, LOG_DEBUG, or LOG_ERR, which is the default.
-k, --color-trace=LOGLEVEL
Prints trace output in a different color per process for easier debugging.
-t, --trace-components=NUM
Activates component-level tracing messages, where
NUM is an OR-ed bitmask integer that
defines which component to trace. After you specify -t
?, it lists all the components and their associated integer
bitmask:
tux@mercury:~> sfcbd -t ? --- Traceable Components: Int Hex --- providerMgr: 1 0x0000001 --- providerDrv: 2 0x0000002 --- cimxmlProc: 4 0x0000004 --- httpDaemon: 8 0x0000008 --- upCalls: 16 0x0000010 --- encCalls: 32 0x0000020 --- ProviderInstMgr: 64 0x0000040 --- providerAssocMgr: 128 0x0000080 --- providers: 256 0x0000100 --- indProvider: 512 0x0000200 --- internalProvider: 1024 0x0000400 --- objectImpl: 2048 0x0000800 --- xmlIn: 4096 0x0001000 --- xmlOut: 8192 0x0002000 --- sockets: 16384 0x0004000 --- memoryMgr: 32768 0x0008000 --- msgQueue: 65536 0x0010000 --- xmlParsing: 131072 0x0020000 --- responseTiming: 262144 0x0040000 --- dbpdaemon: 524288 0x0080000 --- slp: 1048576 0x0100000
A useful value that reveals the internal functions of sfcbd but does
not generate too many messages, is -t
2019.
SFCB reads its runtime configuration from configuration file
/etc/sfcb/sfcb.cfg after starting up. This behavior
can be overridden using -c option at start-up.
The configuration file contains option :
value pairs, one per line. When making
changes to this file, you can use any text editor that saves the file in
a format that is native to the environment you are using.
Any setting that has the options commented out with a number sign (#) uses the default setting.
The following list of options may not be complete. See the content of
/etc/sfcb/sfcb.cfg and
/usr/share/doc/packages/sblim-sfcb/README for their
complete list.
Specifies the local port value that sfcbd should listen to receive HTTP
(insecure) requests from CIM clients. Default is
5988 .
httpPort: port_number
Specifies whether SFCB should accept HTTP client connections. Default
is false .
enableHttp: option
|
Option |
Description |
|---|---|
|
true |
Enables HTTP connections. |
|
false |
Disables HTTP connections. |
Specifies the maximum number of simultaneous HTTP client connections
before new incoming HTTP requests are blocked. Default is
8 .
httpProcs:
max_number_of_connections
These options control what user the HTTP server will run under. If
httpUserSFCB is true, HTTP will run
under the same user as the SFCB main process. If it is
false the user name specified for
httpUser will be used. This setting is used for both
HTTP and HTTPS servers. httpUser
must be specified if httpUserSFCB
is set to false. the default is
true.
httpUserSFCB: true
Specifies whether to limit HTTP requests to localhost only. Default is
false.
httpLocalOnly: false
Specifies the local port value where sfcbd listens for HTTPS requests
from CIM clients. Default is 5989 .
httpsPort: port_number
Specifies if SFCB will accept HTTPS client connections. Default is
true .
enableHttps: option
|
Option |
Description |
|---|---|
|
true |
Enables HTTPS connections. |
|
false |
Disables HTTPS connections. |
Specifies the maximum number of simultaneous HTTPS client connections
before new incoming HTTPS requests are blocked. Default is
8 .
httpsProcs:
max_number_of_connections
Specifies if SFCB will provide the interop
namespace for indication support. Default is true .
enableInterOp: option
|
Option |
Description |
|---|---|
|
true |
Enables interop namespace. |
|
false |
Disables interop namespace. |
Specifies the maximum number of simultaneous provider processes. After
this point, if a new incoming request requires loading a new provider,
then one of the existing providers will first be automatically
unloaded. Default is 32 .
provProcs:
max_number_of_procs
Switches basic authentication on or off based on the client user
identifier before it accepts the request. Default value is
true which means that basic client authentication is
performed.
doBasicAuth: option
|
Option |
Description |
|---|---|
|
true |
Enables basic authentication. |
|
false |
Disables basic authentication. |
Specifies the local library name. The SFCB server loads the library to
authenticate the client user identifier. Default is
sfcBasicPAMAuthentication .
provProcs:
max_number_of_procs
This option switches the use of HTTP/HTTPS “chunking” on
or off. If switched on, the server will return large volumes of
response data to the client in smaller “chunks” , rather
than to buffer the data and send it back all in one chunk. Default is
true .
useChunking: option
|
Option |
Description |
|---|---|
|
true |
Enables HTTP/HTTPS data chunking. |
|
false |
Disables HTTP/HTTPS data chunking. |
Specifies the maximum time in seconds that SFCB HTTP process waits
between two requests on one connection before it terminates. Setting it
to 0 disables HTTP keep-alive. Default is
0.
keepaliveTimeout: secs
Specifies the maximum number of consecutive requests on one connection.
Setting it to 0 disables HTTP keep-alive. Default
value is 10 .
keepaliveMaxRequest:
number_of_connections
Specifies the registration directory, which contains the provider
registration data, the staging area, and the static repository. Default
is /var/lib/sfcb/registration .
registrationDir: dir
Specifies a space-separated list of directories where SFCB is searching
for provider libraries. Default is /usr/lib64 /usr/lib64
/usr/lib64/cmpi.
providerDirs: dir
Specifies the interval in seconds at which the provider manager is
checking for idle providers. Default is 30.
providerSampleInterval:
secs
Specifies the interval in seconds before an idle provider gets unloaded
by the provider manager. Default is 60.
providerTimeoutInterval:
secs
If the provider registration file does not specify any other group, and the option is set to true, all providers in the same shared library are executed in the same process.
providerAutoGroup: option
|
Option |
Description |
|---|---|
|
true |
Enables grouping of providers. |
|
false |
Disables grouping of providers. |
Specifies the name of the file that contains the server certificate.
The file must be in PEM (Privacy Enhanced Mail, RFC 1421 and RFC 1424)
format. This file is only required if enableHttps is
set to true. Default is
/etc/sfcb/server.pem.
sslCertificateFilePath:
path
Specifies the name of the file that contains the private key for the
server certificate. The file must be in PEM format and may not be
protected by passphrase. This file is only required if
enableHttps is set to true.
Default is /etc/sfcb/file.pem.
sslKeyFilePath: path
Specifies the name of the file that contains either the CA or
self-signed certificates of the clients. This file must be in PEM
format and is only required if sslClientCertificate
is set to accept or require.
Default is /etc/sfcb/client.pem.
sslClientTrustStore: path
Specifies the way SFCB handles client certificate based authentication.
If set to ignore, it will not request a certificate
from the client. If set to accept it will request a
certificate from the client but will not fail if the client does not
present one. If set to require, it will refuse the
client connection if the client does not present a certificate. Default
value is ignore.
sslClientCertificate:
option
|
Option |
Description |
|---|---|
|
ignore |
Disables requesting a client certificate. |
|
accept |
Disables requesting a client certificate. Will not fail if no certificate is present. |
|
require |
Refuses the client connection without a valid certificate. |
Specifies the name of the local library to request for the user
authentication based on client certificate. This is only requested if
sslClientCertificate is not set to
ignore. Default value is
sfcCertificateAuthentication.
certificateAuthLib: file
Specifies the trace level for SFCB. You can override it by setting
environment variable SFCB_TRACE_LEVEL. Default value
is 0.
traceLevel: num_level
This chapter covers more advanced topics related to SFCB usage. To understand them, you need to have basic knowledge of the Linux file system and experience with the Linux command line. This chapter includes the following tasks:
Installing CMPI providers
Testing SFCB
Using wbemcli CIM client
To install a CMPI provider, you need to make sure that its shared
library is copied into one of the directories specified by
providerDirs configuration option, see
Section 32.3.3.17, “providerDirs”. The provider must also be
properly registered using sfcbstage and
sfcbrepos commands.
The provider package is usually prepared for SFCB, so that its installation takes care of the proper registration. Most SBLIM providers are prepared for SFCB.
Class repository is a place where SFCB stores
information about CIM classes. It usually consists of a directory tree
comprised of namespace components. Typical CIM namespaces are
root/cimv2 or root/interop, which
respectively translate to the class repository directory path on the
file system
/var/lib/sfcb/registration/repository/root/cimv2
and
/var/lib/sfcb/registration/repository/root/interop
Each namespace directory contains the file
classSchemas. The file has a compiled binary
representation of all the CIM classes registered under that namespace.
It also contains necessary information about their CIM superclasses.
In addition, each namespace directory may contain a file
qualifiers which contains all qualifiers for the
namespace. When sfcbd restarts, the class provider will scan the
directory /var/lib/sfcb/registration/repository/
and all its subdirectories to determine the registered namespaces. Then
classSchemas files are decoded and the class
hierarchy for each namespace is built.
SFCB cannot make live CIM class manipulations. You need to add, change
or remove classes offline and restart SFCB service with
systemctl restart sfcb.service to register the
changes.
To store providers class and registration information, SFCB uses a
place called staging area. On SUSE® Linux Enterprise Server systems, it
is the directory structure under
/var/lib/sfcb/stage/.
To add a new provider, you need to:
Copy the provider class definition files to the
./mofs subdirectory of staging area directory
(/var/lib/sfcb/stage/mofs).
Copy a registration file which contains the name of the class or
classes and type of provider, and the name of the executable library
file into the ./regs subdirectory.
There are two default “mof” (class definition) files in
the staging directory: indication.mof and
interop.mof. MOF files under the root stage
directory /var/lib/sfcb/stage/mofs will be copied
into each namespace after running sfcbrepos
command. The interop.mof will only be compiled
into the interop namespace.
The directory layout may look like the following example:
tux@mercury:~> ls /var/lib/sfcb/stage default.reg mofs regs
tux@mercury:~> ls /var/lib/sfcb/stage/mofs indication.mof root
tux@mercury:~> ls /var/lib/sfcb/stage/mofs/root cimv2 interop suse virt
tux@mercury:~> ls -1 /var/lib/sfcb/stage/mofs/root/cimv2 | less Linux_ABIParameter.mof Linux_BaseIndication.mof Linux_Base.mof Linux_DHCPElementConformsToProfile.mof Linux_DHCPEntity.mof [..] OMC_StorageSettingWithHints.mof OMC_StorageVolumeDevice.mof OMC_StorageVolume.mof OMC_StorageVolumeStorageSynchronized.mof OMC_SystemStorageCapabilities.mof
tux@mercury:~> ls -1 /var/lib/sfcb/stage/mofs/root/interop ComputerSystem.mof ElementConformsToProfile.mof HostSystem.mof interop.mof Linux_DHCPElementConformsToProfile.mof [..] OMC_SMIElementSoftwareIdentity.mof OMC_SMISubProfileRequiresProfile.mof OMC_SMIVolumeManagementSoftware.mof ReferencedProfile.mof RegisteredProfile.mof
tux@mercury:~> ls -1 /var/lib/sfcb/stage/regs AllocationCapabilities.reg Linux_ABIParameter.reg Linux_BaseIndication.reg Linux_DHCPGlobal.reg Linux_DHCPRegisteredProfile.reg [..] OMC_Base.sfcb.reg OMC_CopyServices.sfcb.reg OMC_PowerManagement.sfcb.reg OMC_Server.sfcb.reg RegisteredProfile.reg
tux@mercury:~> cat /var/lib/sfcb/stage/regs/Linux_DHCPRegisteredProfile.reg [Linux_DHCPRegisteredProfile] provider: Linux_DHCPRegisteredProfileProvider location: cmpiLinux_DHCPRegisteredProfile type: instance namespace: root/interop # [Linux_DHCPElementConformsToProfile] provider: Linux_DHCPElementConformsToProfileProvider location: cmpiLinux_DHCPElementConformsToProfile type: instance association namespace: root/cimv2 # [Linux_DHCPElementConformsToProfile] provider: Linux_DHCPElementConformsToProfileProvider location: cmpiLinux_DHCPElementConformsToProfile type: instance association namespace: root/interop
SFCB uses a custom provider registration file for each provider.
All SBLIM providers on the SBLIM Web site already include a registration file that is used to generate the .reg file for SFCB.
The format of SFCB registration file is:
[<class-name>] provider: <provide-name> location: <library-name> type: [instance] [association] [method] [indication] group: <group-name> unload: never namespace: <namespace-for-class> ...
where:
<class-name>
The CIM class name (required)
<provider-name>
The CMPI provider name (required)
<location-name>
The name of the provider library (required)
type
The type of the provider (required). This can be any combination of:
instance, association,
method or indication.
<group-name>
Multiple providers can be grouped together and run under a single process to further minimize runtime resources. All providers registered under the same <group-name> will be executed under the same process. By default each provider will be run as a separate process.
unload
Specifies the unload policy for the provider. Currently the only
supported option is never, which specifies that the
provider will not be monitored for idle times and will never be
unloaded. By default each provider will be unloaded when its idle
times exceed the value specified in the configuration file.
namespace
List of namespaces for which this provider can be executed. This is required, although for most providers this will be root/cimv2.
Once all the class definitions and provider registration files are
stored in the staging area, you need to rebuild the SFCB class
repository with the command sfcbrepos
.
-f
You can add, change or remove classes this way. After rebuilding the
class repository, restart SFCB with command systemctl restart
sfcb.service.
Alternatively, the SFCB package contains a utility that will copy provider class mof files and registration files to the correct locations in the staging area.
sfcbstage
-r[provider.reg] [class1.mof] [class2.mof] ...
After running this command you still need to rebuild the class repository and restart SFCB service.
The SFCB package includes two testing scripts:
wbemcat and xmltest.
wbemcat sends raw CIM-XML data via HTTP protocol to
the specified SFCB host (localhost by default) listening on port 5988.
Then it displays the returned results. The following file contains the
CIM-XML representation of a standard EnumerateClasses request:
<?xml version="1.0" encoding="utf-8"?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLEREQ>
<IMETHODCALL NAME="EnumerateClasses">
<LOCALNAMESPACEPATH>
<NAMESPACE NAME="root"/>
<NAMESPACE NAME="cimv2"/>
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="ClassName">
<CLASSNAME NAME=""/>
</IPARAMVALUE>
<IPARAMVALUE NAME="DeepInheritance">
<VALUE>TRUE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly">
<VALUE>FALSE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeQualifiers">
<VALUE>FALSE</VALUE>
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeClassOrigin">
<VALUE>TRUE</VALUE>
</IPARAMVALUE>
</IMETHODCALL>
</SIMPLEREQ>
</MESSAGE>
</CIM>
Sending this request to SFCB CIMOM returns a list of all supported
classes for which there is a registered provider. Suppose you save the
file as cim_xml_test.xml.
tux@mercury:~> wbemcat cim_xml_test.xml | less HTTP/1.1 200 OK Content-Type: application/xml; charset="utf-8" Content-Length: 337565 Cache-Control: no-cache CIMOperation: MethodResponse <?xml version="1.0" encoding="utf-8" ?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="4711" PROTOCOLVERSION="1.0"> <SIMPLERSP> <IMETHODRESPONSE NAME="EnumerateClasses"> [..] <CLASS NAME="Linux_DHCPParamsForEntity" SUPERCLASS="CIM_Component"> <PROPERTY.REFERENCE NAME="GroupComponent" REFERENCECLASS="Linux_DHCPEntity"> </PROPERTY.REFERENCE> <PROPERTY.REFERENCE NAME="PartComponent" REFERENCECLASS="Linux_DHCPParams"> </PROPERTY.REFERENCE> </CLASS> </IRETURNVALUE> </IMETHODRESPONSE> </SIMPLERSP> </MESSAGE> </CIM>
The classes listed will vary depending on what providers are installed on your system.
The second script xmltest is also used to send a raw
CIM-XML test file to the SFCB CIMOM. It then compares the returned
results against a previously saved “OK” result file. If
there does not yet exist a corresponding “OK” file, it will
be created for later use:
tux@mercury:~> xmltest cim_xml_test.xml Running test cim_xml_test.xml ... OK Saving response as cim_xml_test.OK tux@mercury:~> xmltest cim_xml_test.xml Running test cim_xml_test.xml ... Passed
In addition to wbemcat and
xmltest, the SBLIM project includes a more advanced
command line CIM client wbemcli. The client is used
to send CIM requests to SFCB server and display returned results. It is
independent of CIMOM library and can be used with all WBEM compliant
implementations.
For example, if you need to list all the classes implemented by SBLIM providers registered to your SFCB, send the “EnumerateClasses” (ec) request to SFCB:
tux@mercury:~> wbemcli -dx ec http://localhost/root/cimv2
To server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL \
NAME="EnumerateClasses"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"> \
</NAMESPACE><NAMESPACE NAME="cimv2"></NAMESPACE> \
</LOCALNAMESPACEPATH>
<IPARAMVALUE NAME="DeepInheritance"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE>
<IPARAMVALUE NAME="IncludeQualifiers"><VALUE>FALSE</VALUE> \
</IPARAMVALUE>
<IPARAMVALUE NAME="IncludeClassOrigin"><VALUE>TRUE</VALUE> \
</IPARAMVALUE>
</IMETHODCALL></SIMPLEREQ>
</MESSAGE></CIM>
From server: Content-Type: application/xml; charset="utf-8"
From server: Content-Length: 337565
From server: Cache-Control: no-cache
From server: CIMOperation: MethodResponse
From server: <?xml version="1.0" encoding="utf-8" ?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<IMETHODRESPONSE NAME="EnumerateClasses">
<IRETURNVALUE>
<CLASS NAME="CIM_ResourcePool" SUPERCLASS="CIM_LogicalElement">
<PROPERTY NAME="Generation" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ElementName" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Description" TYPE="string">
</PROPERTY>
<PROPERTY NAME="Caption" TYPE="string">
</PROPERTY>
<PROPERTY NAME="InstallDate" TYPE="datetime">
</PROPERTY>
[..]
<CLASS NAME="Linux_ReiserFileSystem" SUPERCLASS="CIM_UnixLocalFileSystem">
<PROPERTY NAME="FSReservedCapacity" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="TotalInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="FreeInodes" TYPE="uint64">
</PROPERTY>
<PROPERTY NAME="ResizeIncrement" TYPE="uint64">
<VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="IsFixedSize" TYPE="uint16">
<VALUE>0</VALUE>
</PROPERTY>
[..]
The -dx option shows you the actual XML send to SFCB by
wbemcli as well as the actual XML received. In the
above example, the first of many returned classes was
CIM_ResourcePool followed by
Linux_ReiserFileSystem. Similar entries will appear
for all of the other registered classes.
If you omit the -dx option, wbemcli
will display only a compact representation of the returned data:
tux@mercury:~> wbemcli ec http://localhost/root/cimv2
localhost:5988/root/cimv2:CIM_ResourcePool Generation=,ElementName=, \
Description=,Caption=,InstallDate=,Name=,OperationalStatus=, \
StatusDescriptions=,Status=,HealthState=,PrimaryStatus=, \
DetailedStatus=,OperatingStatus=,CommunicationStatus=,InstanceID=, \
PoolID=,Primordial=,Capacity=,Reserved=,ResourceType=, \
OtherResourceType=,ResourceSubType=, \AllocationUnits=
localhost:5988/root/cimv2:Linux_ReiserFileSystem FSReservedCapacity=, \
TotalInodes=,FreeInodes=,ResizeIncrement=,IsFixedSize=,NumberOfFiles=, \
OtherPersistenceType=,PersistenceType=,FileSystemType=,ClusterSize=, \
MaxFileNameLength=,CodeSet=,CasePreserved=,CaseSensitive=, \
CompressionMethod=,EncryptionMethod=,ReadOnly=,AvailableSpace=, \
FileSystemSize=,BlockSize=,Root=,Name=,CreationClassName=,CSName=, \
CSCreationClassName=,Generation=,ElementName=,Description=,Caption=, \
InstanceID=,InstallDate=,OperationalStatus=,StatusDescriptions=, \
Status=,HealthState=,PrimaryStatus=,DetailedStatus=,OperatingStatus= \
,CommunicationStatus=,EnabledState=,OtherEnabledState=,RequestedState= \
,EnabledDefault=,TimeOfLastStateChange=,AvailableRequestedStates=, \
TransitioningToState=,PercentageSpaceUse=
[..]Distributed Management Task Force Web site
Web-Based Enterprise Management (WBEM) Web site
Common Information Model (CIM) Web site
Standards Based Linux Instrumentation (SBLIM) Web site
Small Footprint CIM Broker (SFCB) Web site
SBLIM providers packages