2.4. Pywbemcli command groups and commands

This section defines the characteristics of each of the pywbemcli command groups and commands including examples.

For the command line syntax of pywbemcli using these command groups and commands, see Pywbemcli command line interface.

NOTE: Many of the examples below use the --mock-server general option with mock files that are located in the pywbemtools tests/unit subdirectory.

The command groups are:

The individual commands (no command group) are: * help command - Show help message for interactive mode. * repl command - Enter interactive mode (default).

2.4.1. namespace command group

The namespace command group has commands that act on CIM namespaces:

See pywbemcli namespace –help.

2.4.1.1. namespace list command

The namespace list command lists the namespaces of the WBEM server of the current connection.

The result is displayed using txt output format or Table output formats.

The Interop namespace must exist on the server.

Example:

$ pywbemcli --name myserver --output-format plain namespace list
Namespace Name
root/PG_InterOp
root/benchmark
root/PG_Internal
test/WsmTest
test/EmbeddedInstance/Static
test/TestProvider
test/EmbeddedInstance/Dynamic
root/cimv2
root
test/cimv2
test/static

See pywbemcli namespace list –help for the exact help output of the command.

2.4.1.2. namespace create command

The namespace create command creates a CIM namespace on the WBEM server of the current connection.

Leading and trailing slash (/) characters specified in the NAMESPACE argument will be stripped.

The namespace must not yet exist on the server.

The Interop namespace must exist on the server and cannot be created using this command.

WBEM servers may not allow this operation or may severely limit the conditions under which a namespace can be created on the server.

Example:

$ pywbemcli --name mymock namespace create /root/abc
Created namespace root/abc

See pywbemcli namespace create –help for the exact help output of the command.

2.4.1.3. namespace delete command

The namespace delete command deletes a CIM namespace from the WBEM server of the current connection.

Leading and trailing slash (/) characters specified in the NAMESPACE argument will be stripped.

The namespace must exist and must be empty. That is, it must not contain any objects (qualifiers, classes or instances).

The Interop namespace must exist on the server and cannot be deleted using this command.

WBEM servers may not allow this operation or may severely limit the conditions under which a namespace can be deleted.

Example:

$ pywbemcli --name mymock namespace delete /root/abc
Deleted namespace root/abc

See pywbemcli namespace delete –help for the exact help output of the command.

2.4.1.4. namespace interop command

The namespace interop command gets and displays the Interop namespace of the WBEM server of the current connection.

The Interop namespace must exist on the server.

Example:

$ pywbemcli --name mymock namespace interop
root/interop

See pywbemcli namespace interop –help for the exact help output of the command.

2.4.2. class command group

The class command group has commands that act on CIM classes:

See pywbemcli class –help.

2.4.2.1. class associators command

The class associators command lists the CIM classes that are associated with the specified source class.

The source class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If the --names-only/--no command option is set, only the class path is displayed, using CIM object output formats or Table output formats. Otherwise, the class definition is displayed, using CIM object output formats.

Note: This command returns class associations. The instance associators command returns instance associations.

Example:

$ pywbemcli --name mymock class associators TST_Person --names-only
//FakedUrl/root/cimv2:TST_Person

See pywbemcli class associators –help for the exact help output of the command.

2.4.2.2. class delete command

The class delete command deletes the specified class on the server.

The class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If the class has subclasses, the command is rejected.

If the class has instances, the command is rejected, unless the --force command option was specified, in which case the instances are also deleted.

WARNING: Deleting classes can cause damage to the server: It can impact instance providers and other components in the server. Use this command with caution.

Many WBEM servers may not allow this operation or may severely limit the conditions under which a class can be deleted from the server.

Example:

$ pywbemcli class delete CIM_Blah

See pywbemcli class delete –help for the exact help output of the command.

2.4.2.3. class enumerate command

The class enumerate command enumerates the subclasses of the specified class, or the root classes of the class hierarchy.

If the CLASSNAME argument is specified, the command enumerates the subclasses of the class named with the CLASSNAME argument in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If the CLASSNAME argument is omitted, the command enumerates the top classes of the class hierarchy in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If the --names-only/--no command option is set, only the class path is displayed, using CIM object output formats or Table output formats. Otherwise, the class definition is displayed, using CIM object output formats.

If the --deep-inheritance/--di command option is set, all direct and indirect subclasses are included in the result. Otherwise, only one level of the class hierarchy is in the result.

The following example enumerates the class names of the root classes in the default namespace because there is no classname and the --DeepInheritance option is not specified:

$ pywbemcli --name mymock class enumerate --names-only
TST_Person
TST_Lineage
TST_MemberOfFamilyCollection
TST_FamilyCollection

The class enumerate command includes result filter options that filter returned classes to display only those classes that have the defined filter option. Thus, pywbemcli class enumerate --association displays only classes that have the Association qualifier set. The filters are documented in the class filter options table .

Filter option name

Component filtered

--association/--no-association

Association qualifier(class) (see Note 1)

--indication/--no-indication

Indications qualifier(class)

--experimental/--no-experimental

Experimental qualifier(class)

--deprecated/--no-deprecated

Deprecated qualifier (any class element)

--since <CIM_Version_string>

Version qualifier GE <CIM_Version_string> (see Note 2)

--schema <schema_string>

Schema component of classname equality(see Note 3)

--subclasses <classname>

Subclasses of <classname>.

--leaf-classes

Classes with no subclass.

  1. The filters defined as --.../--no-... allow testing for the existence of the condition (association qualifier exists) or the non-existence(association qualifier does not exist on the class). When neither definition of the option is defined the association qualifier is ignored in the filtering. This applies to boolean qualifier declarations.

  2. The CIM version string value in the Version qualifier is defined as 3 integers separated by periods (ex. 2.14.0). All 3 integers must exist.

  3. The schema component is True if the schema component of classname (characters before “_” match <schema_string>). Ex –schema “CIM”

  4. The --leaf-classes filter can be important because the pywbem MOF compiler can compile all dependent classes given only the leaf classes.

If multiple filter options are applied, all of the boolean options must be true for the class to be displayed and only the classes that pass non-boolean filters (ex. --schema CIM) for the classes to be displayed.

Thus, for example:

  • the combination of --subclass-of CIM_blah and --leaf-classes will return all leaf classes that are a subclass of CIM_Blah.

  • --association and no-experimental will display only classes that have the Association qualifier set and the Experimental qualifier not set.

The following example displays classnames that are not associations (--no-association). The use of --deep-inheritance option returns the complete set of classes in the namespace rather than just direct subclasses (in this case the root classes).

$ pywbemcli --name mymock class enumerate --no --deep-inheritance --no-association
TST_Person
TST_Lineage

See pywbemcli class enumerate –help for the exact help output of the command.

2.4.2.4. class find command

The class find command lists classes with a class name that matches the Unix-style path name pattern specified in the CLASSNAME-GLOB argument in all namespaces of the connection, or otherwise in the specified namespaces if the -namespace/-n command option is specified one or more times.

The class find command includes filter options that filter returned classes to display only those classes that have the defined filter options. Thus, pywbemcli class enumerate --association displays only classes that have the Association qualifier set. The filters are documented in the class filter options table .

The command displays the namespaces and class names of the result using the txt output format (default), or using Table output formats.

$ pywbemcli class find .*_WBEMS*
root/PG_InterOp:CIM_WBEMServer
root/PG_InterOp:CIM_WBEMServerCapabilities
root/PG_InterOp:CIM_WBEMServerNamespace
root/PG_InterOp:CIM_WBEMService
test/EmbeddedInstance/Dynamic:CIM_WBEMService
test/EmbeddedInstance/Static:CIM_WBEMService
test/TestProvider:CIM_WBEMServer
test/TestProvider:CIM_WBEMServerCapabilities
test/TestProvider:CIM_WBEMServerNamespace
test/TestProvider:CIM_WBEMService
root/SampleProvider:CIM_WBEMService
root/cimv2:CIM_WBEMServer
root/cimv2:CIM_WBEMServerCapabilities
root/cimv2:CIM_WBEMServerNamespace
root/cimv2:CIM_WBEMService
root/PG_Internal:PG_WBEMSLPTemplate

$ pywbemcli --output-format table class find CIM_SystemComponent*
Find class CIM_SystemComponent*
+-------------------------------+---------------------+
| Namespace                     | Classname           |
|-------------------------------+---------------------|
| root/PG_InterOp               | CIM_SystemComponent |
| test/WsmTest                  | CIM_SystemComponent |
| test/cimv2                    | CIM_SystemComponent |
| test/CimsubTestNS0            | CIM_SystemComponent |
| test/TestProvider             | CIM_SystemComponent |
| test/EmbeddedInstance/Dynamic | CIM_SystemComponent |
| root/SampleProvider           | CIM_SystemComponent |
| test/CimsubTestNS1            | CIM_SystemComponent |
| test/static                   | CIM_SystemComponent |
| test/CimsubTestNS2            | CIM_SystemComponent |
| test/TestINdSrcNS2            | CIM_SystemComponent |
| test/EmbeddedInstance/Static  | CIM_SystemComponent |
| test/CimsubTestNS3            | CIM_SystemComponent |
| test/TestIndSrcNS1            | CIM_SystemComponent |
| root/cimv2                    | CIM_SystemComponent |
| root/benchmark                | CIM_SystemComponent |
+-------------------------------+---------------------+

See pywbemcli class find –help for the exact help output of the command.

2.4.2.5. class get command

The class get command gets the specified class.

The class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

The class definition is displayed using CIM object output formats. This command does not support Table output formats.

The following example shows getting the MOF representation of the class CIM_Foo:

$ pywbemcli --name mymock class get CIM_Foo

     [Description ( "Simple CIM Class" )]
  class CIM_Foo {

        [Key ( true ),
         Description ( "This is key property." )]
     string InstanceID;

        [Description ( "This is Uint32 property." )]
     uint32 IntegerProp;

        [Description ( "Method with in and out parameters" )]
     uint32 Fuzzy(
           [IN ( true ),
            OUT ( true ),
            Description ( "Define data to be returned in output parameter" )]
        string TestInOutParameter,
           [IN ( true ),
            OUT ( true ),
            Description ( "Test of ref in/out parameter" )]
        CIM_Foo REF TestRef,
           [IN ( false ),
            OUT ( true ),
            Description ( "Rtns method name if exists on input" )]
        string OutputParam,
           [IN ( true ),
            Description ( "Defines return value if provided." )]
        uint32 OutputRtnValue);

        [Description ( "Method with no Parameters" )]
     uint32 DeleteNothing();

  };

See pywbemcli class get –help for the exact help output of the command.

2.4.2.6. class invokemethod command

The class invokemethod command invokes a CIM method on the specified class and displays the return value and any output parameters.

The class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

Input parameters for the method can be specified with the --parameter/-p command option, which can be specified multiple times. For details, see Specifying CIM property and parameter values.

The return value and output parameters are displayed using CIM object output formats.

This command invokes a method on a class, not on an instance. To invoke a method on an instance, use the instance invokemethod command.

Example:

$ pywbemcli --mock-server tests/unit/all_types.mof --mock-server tests/unit/all_types_method_mock.py.py

pywbemcli> class invokemethod PyWBEM_AllTypes AllTypesMethod --parameter arrBool=True,False
ReturnValue=0
arrBool=true, false

See pywbemcli class invokemethod –help for the exact help output of the command.

2.4.2.7. class references command

The class references command lists the CIM classes that reference the specified source class.

The source class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If the --names-only/--no command option is set, only the class path is displayed, using CIM object output formats or Table output formats. Otherwise, the class definition is displayed, using CIM object output formats.

Note: This command returns the class references, not the instance references. The instance references command returns the instance references.

$ pywbemcli --name mymock class references TST_Person --names-only
//FakedUrl/root/cimv2:TST_Lineage
//FakedUrl/root/cimv2:TST_MemberOfFamilyCollection

See pywbemcli class references –help for the exact help output of the command.

2.4.2.8. class tree command

The class tree command displays the subclass or superclass hierarchy of the specified class.

The class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

If CLASSNAME is omitted, the complete class hierarchy of the namespace is displayed.

If the -superclasses command option is set, the specified class and its superclass ancestry up to the top-level class are displayed. Otherwise, the specified class and its subclass hierarchy are displayed.

The class hierarchy (or ancestry) is always formatted in the Tree output format; the --output-format/-o general option is ignored.

Example:

$ pywbemcli class tree CIM_Foo
CIM_Foo
 +-- CIM_Foo_sub
 |   +-- CIM_Foo_sub_sub
 +-- CIM_Foo_sub2

Options to the class tree command allow the following:

  1. Display the superclass hierarchy for a given class (--superclasses/-s) as shown in the following example:

Example:

$ pywbemcli -n mock1 class tree CIM_Foo_Sub2 -s
root
 +-- CIM_Foo
     +-- CIM_Foo_sub2
  1. Display additional information about each class (--detail/-d) including the value of the Version qualifier and the existence of the class the Association, Indication, Abstract qualifiers if they are True as shown in the following example:

Example:

$ pywbemcli -m tests/unit/tree_test_model.mof class tree --detail
root
 +-- CIM_Foo (Version=2.30.0)
 |   +-- CIM_Foo_sub (Version=2.31.0)
 |       +-- CIM_Foo_sub_sub (Version=2.20.1)
 +-- CIM_Foo_no_version ()
 +-- CIM_Indication (Abstract,Indication,Version=2.24.0)
 +-- CIM_Indication_no_version (Abstract,Indication)
 +-- TST_Lineage (Association,Version=2.20.1)
 +-- TST_Lineage_no_version (Association)

See pywbemcli class tree –help for the exact help output of the command.

2.4.3. instance command group

The instance command group has commands that act on CIM instances:

See pywbemcli instance –help.

2.4.3.1. instance associators command

The instance associators command lists the CIM instances that are associated with the specified source instance.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

If the --names-only/--no command option is set, only the instance paths are displayed. Otherwise, the instances are displayed.

Valid output formats in both cases are CIM object output formats or Table output formats.

Note: This command returns the instance associators, not the class associators. The class associators command returns the class associators.

Example:

$ pywbemcli --name mymock instance references TST_Person.? --names-only
Pick Instance name to process: 0
0: root/cimv2:TST_Person.name="Mike"
1: root/cimv2:TST_Person.name="Saara"
2: root/cimv2:TST_Person.name="Sofi"
3: root/cimv2:TST_Person.name="Gabi"
4: root/cimv2:TST_PersonSub.name="Mikesub"
5: root/cimv2:TST_PersonSub.name="Saarasub"
6: root/cimv2:TST_PersonSub.name="Sofisub"
7: root/cimv2:TST_PersonSub.name="Gabisub"
Input integer between 0 and 7 or Ctrl-C to exit selection: 0   << entered by user

//FakedUrl/root/cimv2:TST_Lineage.InstanceID="MikeSofi"
//FakedUrl/root/cimv2:TST_Lineage.InstanceID="MikeGabi"
//FakedUrl/root/cimv2:TST_MemberOfFamilyCollection.family="root/cimv2:TST_FamilyCollection.name=\"Family2\"",member="root/cimv2:TST_Person.name=\"Mike\""

See pywbemcli instance associators –help for the exact help output of the command.

2.4.3.2. instance count command

The instance count command counts the CIM instances of some or all classes in the namespaces specified with the -namespace/-n command option, or all namespaces in the server.

This command displays the count of instances of each CIM class whose class name matches the specified wildcard expression (CLASSNAME-GLOB) in all CIM namespaces of the WBEM server, or in the specified namespaces (--namespace option). This differs from instance enumerate, etc. in that it counts the instances specifically for the classname of each instance returned (the creation classname), not including subclasses.

If the CLASSNAME-GLOB argument is specified, only instances of classes that match the specified Unix-style path name pattern are counted. If the CLASSNAME-GLOB argument is not specified all instances of all classes in the target namespaces are counted.

The --association/--no-association, --indication/--no-indication, ,``–experimental``/--no-experimental and --deprecated/--no-deprecated options filter the returned classes or classnames to include or exclude classes with the corresponding qualifiers. Thus the --association option returns only classes or classnames that are association classes.

Results for classes that have no instances are not displayed.

This command can take a long time to execute since it potentially enumerates all instance names for all classes in all namespaces.

Valid output formats are Table output formats.

Example:

$ pywbemcli --name mymock instance count
Count of instances per class
+-------------+------------------------------+---------+
| Namespace   | Class                        |   count |
|-------------+------------------------------+---------|
| root/cimv2  | TST_FamilyCollection         |       2 |
| root/cimv2  | TST_Lineage                  |       3 |
| root/cimv2  | TST_MemberOfFamilyCollection |       3 |
| root/cimv2  | TST_Person                   |       4 |
| root/cimv2  | TST_Personsub                |       4 |
+-------------+------------------------------+---------+

Count is useful to determine which classes in the environment are actually implemented. However this command can take a long time to execute because it must a) enumerate all classes in the namespace, b) enumerate the instances for each class.

See pywbemcli instance count –help for the exact help output of the command.

2.4.3.3. instance create command

The instance create command creates a CIM instance in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

The new CIM instance has the creation class specified in the CLASSNAME argument and initial property values as specified by zero or more --property/-p command options. For details, see Specifying CIM property and parameter values.

The command displays the instance path of the new instance that is returned by the WBEM server, using txt output format.

Since the WBEM server (and pywbem) requires that each property be typed, pywbemcli retrieves the creation class from the WBEM server to determine the data types for the properties.

The following examples create an instance of the class TST_Blah with two scalar and one array property:

$ pywbemcli instance create TST_Blah --property InstancId=blah1 --property IntProp=3 --property IntArr=3,6,9

$ pywbemcli instance create TST_Blah --property InstancId=\"blah 2\" --property IntProp=3 --property IntArr=3,6,9

See pywbemcli instance create –help for the exact help output of the command.

2.4.3.4. instance delete command

The instance delete command deletes a CIM instance.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

The following example deletes an instance by specifying its instance name. Note the extra backslash (see backslash-escaped) that is required to escape the double quote on the terminal:

$ pywbemcli --name mymock instance delete root/cimv2:TST_Person.name=\"Saara\"

See pywbemcli instance delete –help for the exact help output of the command.

2.4.3.5. instance enumerate command

The instance enumerate command lists the CIM instances of the specified class (including subclasses) in a namespace.

The class is named with the CLASSNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

The instance enumerate may use either the traditional operation (EnumerateInstances or EnumerateInstanceNames) or the corresponding pull operations depending on the --use-pull general option.

If the --names-only/--no command option is set, only the instance paths are displayed. Otherwise, the instances are displayed. Depending on other options, the either EnumerateInstances or EnumerateInstanceNames may be executed when pywbem is called.

The --propertylist/--pl command option allows restricting the set of properties to be retrieved and displayed on the instances.

The --namespace / n command option allows using a namespace other than the default namespace as the target of the enumeration.

Additional options allow filtering information returned including:

The --local-only / --lo option that when allows showing only local properties in the instance.

The --deep-inheritance / --di option that allows showing all properties or only properties defined in the class defined in the CLASSNAME argument

The --include-qualifiers / iq option that filters out qualifiers defined in the instances

The --include-classorigin / --ico that allows showing the classorigin attribute in the instances.

The filter-query / --fq and --filter-query-language / fql``command options allow  filtering the resulting instances if a pull operation is executed with a :term:`filter query language. They are ignored if pywbemcli executes the traditional Enumerate operation.

TODO: add the above to other instance operations

Valid output formats in both cases are CIM object output formats or Table output formats.

The following example returns two instances as MOF:

$ pywbemcli --name mymock instance enumerate TST_FamilyCollection

instance of TST_FamilyCollection {
   name = "family1";
};

instance of TST_FamilyCollection {
   name = "Family2";
};

See pywbemcli instance enumerate –help for the exact help output of the command.

2.4.3.6. instance get command

The instance get command gets a CIM instance.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

The --propertylist/--pl command option allows restricting the set of properties to be retrieved and displayed on the instance.

The command displays the instance using CIM object output formats or Table output formats.

This example gets an instance by instance name:

$ pywbemcli --name mymock instance get root/cimv2:TST_Person.name=\"Saara\"
instance of TST_Person {
   name = "Saara";
};

or using the keys wildcard:

$ pywbemcli --name mymock instance get root/cimv2:TST_Person.?
Pick Instance name to process
0: root/cimv2:CIM_Foo.InstanceID="CIM_Foo1"
1: root/cimv2:CIM_Foo.InstanceID="CIM_Foo2"
2: root/cimv2:CIM_Foo.InstanceID="CIM_Foo3"
Input integer between 0 and 2 or Ctrl-C to exit selection: 0   << entered by user
instance of TST_Person {
   name = "Saara";
};

See pywbemcli instance get –help for the exact help output of the command.

2.4.3.7. instance invokemethod command

The instance invokemethod command invokes a CIM method on the specified instance and displays the return value and any output parameters.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

Input parameters for the method can be specified with the --parameter/-p command option, which can be specified multiple times. For details, see Specifying CIM property and parameter values.

The return value and output parameters are displayed using CIM object output formats.

Example:

$ pywbemcli --mock-server tests/unit/all_types.mof --mock-server tests/unit/all_types_method_mock.py.py

pywbemcli> instance invokemethod PyWBEM_AllTypes.InstanceId=\"test_instance\" AllTypesMethod --parameter arrBool=True,False
ReturnValue=0
arrBool=true, false

Or using the wildcard to create a selection list for the instance names

$ pywbemcli --mock-server tests/unit/all_types.mof --mock-server tests/unit/all_types_method_mock.py.py

pywbemcli> instance invokemethod PyWBEM_AllTypes.? --parameter arrBool=True,False
Pick Instance name to process
0: root/cimv2:CIM_Foo.InstanceID="CIM_Foo1"
1: root/cimv2:CIM_Foo.InstanceID="CIM_Foo2"
2: root/cimv2:CIM_Foo.InstanceID="CIM_Foo3"
Input integer between 0 and 2 or Ctrl-C to exit selection: 0   << entered by user
ReturnValue=0
arrBool=true, false

See pywbemcli instance invokemethod –help for the exact help output of the command.

2.4.3.8. instance modify command

The instance modify command modifies the properties of an existing CIM instance.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

The new property values are specified by possibly multiple --property/-p command options.

For details, see Specifying CIM property and parameter values.

Key properties cannot be modified, as per DSP0004.

The --propertylist/--pl command option allows restricting the set of properties to be modified. It is supported for consistency with the corresponding parameter at the CIM-XML protocol level, but given that the set of properties to be modified is already determined by the specified --property/-p command options, the --propertylist/--pl command option does not need to be specified.

Since the WBEM server (and pywbem) requires that each property be typed, pywbemcli retrieves the creation class from the WBEM server to determine the data types for the properties.

The following examples modifies an instance of the class TST_Blah with two scalar and one array property:

$ pywbemcli instance modify TST_Blah --property InstancId=blah1 --property IntProp=3 --property IntArr=3,6,9

$ pywbemcli instance modify TST_Blah --property InstancId=\"blah 2\" --property IntProp=3 --property IntArr=3,6,9

See pywbemcli instance modify –help for the exact help output of the command.

2.4.3.9. instance references command

The instance references command lists the CIM instances that reference the specified source instance.

The specification of the instance name (INSTANCENAME argument) is documented in the section Specifying the INSTANCENAME command argument.

If the --names-only/--no command option is set, only the instance paths are displayed. Otherwise, the instances are displayed.

Valid output formats in both cases are CIM object output formats or Table output formats.

Note: This command returns the instance references, not the class references. The class references command returns the class references.

Example:

$ pywbemcli --name mymock instance references root/cimv2:TST_Person.name=\"Saara\"
instance of TST_Lineage {
   InstanceID = "SaaraSofi";
   parent = "/root/cimv2:TST_Person.name=\"Saara\"";
   child = "/root/cimv2:TST_Person.name=\"Sofi\"";
};

See pywbemcli instance references –help for the exact help output of the command.

2.4.3.10. instance query command

The instance query command executes a query for CIM instances in a namespace.

The query is specified with the QUERY argument and must be a valid query in the query language specified with the --query-language/--ql command option. The default for that option is DMTF:CQL (see CQL).

The namespace is specified with the --namespace/-n command option, or otherwise is the default namespace of the connection.

Valid output formats are CIM object output formats or Table output formats.

See pywbemcli instance query –help for the exact help output of the command.

2.4.3.11. instance shrub command

The instance shrub command executes a set of requests to get the association relationships for a non-association CIM instance defined by INSTANCENAME in a namespace and displays the result either as tree in ASCII or as a table showing the roles, reference classes, associated classes and associated instances for the input instance.

A shrub is a structure that attempts to show all of the relationships and the paths between the input INSTANCENAME and the associated instances whereas the References command only shows referencing(associator) classes or instances and the Associators command only shows associated classes or instances.

The namespace for the INSTANCENAME is specified with the -namespace/-n command option, or otherwise is the default namespace of the connection.

Valid output formats are Table output formats or the default which displays the a visual tree.

The instance shrub command includes command options to:

  1. --summary/-s: Show only the class components and a count of instances.

  2. --fullpath/-f: Show the full path of the instances. The default is to attempt to shorten the path by removing path components that are the same for all instances displayed. This can be important for some of the components of the model where instance paths include keys like CreationClassName and SystemCreationClassName which are either already known or do not distinguish instances but make the instance name difficult to visualize on the console. These key bindings are replaced with the character ~ as a place-marker unless the --fullpath/-f option is defined.

Thus, a full path might look like:

/:CIM_FCPort.SystemCreationClassName="CIM_ComputerSystem",SystemName="ACME+CF2A5091300089",CreationClassName="CIM_FCPort",DeviceID="ACME+CF2A5091300089+SP_A+10"

But the shortened path would be:

/:CIM_FCPort.~,~,~,DeviceID="ACME+CF2A5091300089+SP_A+10"

This command is primarily a diagnostic and test tool to help users understand what comprises CIM association relationships.

See pywbemcli instance shrub –help for the exact help output of the command.

Example:

$ pywbemcli instance shrub root/cimv2:TST_EP.InstanceID=1

TST_EP.InstanceID=1
 +-- Initiator(Role)
     +-- TST_A3(AssocClass)
         +-- Target(ResultRole)
         |   +-- TST_EP(ResultClass)(3 insts)
         |       +-- TST_EP.InstanceID=2(refinst:0)
         |       +-- TST_EP.InstanceID=5(refinst:1)
         |       +-- TST_EP.InstanceID=7(refinst:2)
         +-- LogicalUnit(ResultRole)
             +-- TST_LD(ResultClass)(3 insts)
                 +-- TST_LD.InstanceID=3(refinst:0)
                 +-- TST_LD.InstanceID=6(refinst:1)
                 +-- TST_LD.InstanceID=8(refinst:2)

This displays the Role (Initiator), AssociationClass (TST_A3), etc. for the instance name defined in the command which is a complex association that contains 3 reference properties. The tag refinst on each instance defines the corresponding reference instance so that the instances returned can be correlated back to their reference instances.

The resulting table output for the same command but with -o table is:

Example:

$ pywbemcli -o table instance shrub root/cimv2:TST_EP.InstanceID=1

Shrub of root/cimv2:TST_EP.InstanceID=1
+-----------+-------------------+--------------+--------------------+-------------------------+
| Role      | Reference Class   | ResultRole   | Associated Class   | Assoc Inst paths        |
|-----------+-------------------+--------------+--------------------+-------------------------|
| Initiator | TST_A3            | Target       | TST_EP             | /:TST_EP.               |
|           |                   |              |                    | InstanceID=2(refinst:0) |
|           |                   |              |                    | /:TST_EP.               |
|           |                   |              |                    | InstanceID=5(refinst:1) |
|           |                   |              |                    | /:TST_EP.               |
|           |                   |              |                    | InstanceID=7(refinst:2) |
| Initiator | TST_A3            | LogicalUnit  | TST_LD             | /:TST_LD.               |
|           |                   |              |                    | InstanceID=3(refinst:0) |
|           |                   |              |                    | /:TST_LD.               |
|           |                   |              |                    | InstanceID=6(refinst:1) |
|           |                   |              |                    | /:TST_LD.               |
|           |                   |              |                    | InstanceID=8(refinst:2) |
+-----------+-------------------+--------------+--------------------+-------------------------+

2.4.4. qualifier command group

The qualifier command group has commands that act on CIM qualifier declarations:

2.4.4.1. qualifier get command

The qualifier get command gets the specified qualifier declaration.

The qualifier declaration is named with the QUALIFIERNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

The qualifier declaration is displayed using CIM object output formats or Table output formats.

The following example gets the Key qualifier declaration from the default namespace:

$ pywbemcli --name mymock qualifier get Key
Qualifier Key : boolean = false,
    Scope(property, reference),
    Flavor(DisableOverride, ToSubclass);

See pywbemcli qualifier get –help for the exact help output of the command.

2.4.4.2. qualifier delete command

The qualifier delete command deletes the specified qualifier declaration.

The qualifier declaration is named with the QUALIFIERNAME argument and is in the namespace specified with the -namespace/-n command option, or otherwise in the default namespace of the connection.

The qualifier declaration is deleted using the DeleteQualifier operation. It is left to the WBEM server to reject the deletion if the qualifier is used anywhere.

The following example deletes the Xyz qualifier declaration from the default namespace:

$ pywbemcli --name mymock qualifier delete Xyz
Deleted qualifier Xyz

See pywbemcli qualifier delete –help for the exact help output of the command.

2.4.4.3. qualifier enumerate command

The qualifier enumerate command enumerates the qualifier declarations in a namespace.

The namespace is specified with the -namespace/-n command option, or otherwise is the default namespace of the connection.

The qualifier declaration is displayed using CIM object output formats or Table output formats.

This example displays all of the qualifier declarations in the default namespace as a table:

$ pywbemcli --name mymock --output-format table qualifier enumerate
Qualifier Declarations
+-------------+---------+---------+---------+-------------+-----------------+
| Name        | Type    | Value   | Array   | Scopes      | Flavors         |
|-------------+---------+---------+---------+-------------+-----------------|
| Association | boolean | False   | False   | ASSOCIATION | DisableOverride |
|             |         |         |         |             | ToSubclass      |
| Description | string  |         | False   | ANY         | EnableOverride  |
|             |         |         |         |             | ToSubclass      |
|             |         |         |         |             | Translatable    |
| In          | boolean | True    | False   | PARAMETER   | DisableOverride |
|             |         |         |         |             | ToSubclass      |
| Key         | boolean | False   | False   | PROPERTY    | DisableOverride |
|             |         |         |         | REFERENCE   | ToSubclass      |
| Out         | boolean | False   | False   | PARAMETER   | DisableOverride |
|             |         |         |         |             | ToSubclass      |
+-------------+---------+---------+---------+-------------+-----------------+

See pywbemcli qualifier enumerate –help for the exact help output of the command.

2.4.5. profile command group

2.4.5.1. Profile list command

The profile list command lists the management profiles advertised by the WBEM server of the current connection.

The returned management profiles are displayed with organization, profile name, and profile version using the Table output formats.

The --organization/-o and --profile/ -p command options can be used to filter the returned management profiles by organization and profile name, respectively.

Example:

$ pywbemcli --name myserver --output-format simple profile list
Advertised management profiles:
Organization    Registered Name           Version
--------------  ------------------------  ---------
DMTF            CPU                       1.0.0
DMTF            Computer System           1.0.0
DMTF            Ethernet Port             1.0.0
DMTF            Fan                       1.0.0
DMTF            Indications               1.1.0
DMTF            Profile Registration      1.0.0
Other           Some Other Subprofile     0.1.0
Other           Some Subprofile           0.1.0
Other           SomeSystemProfile         0.1.0
SNIA            Array                     1.1.0
SNIA            Block Server Performance  1.1.0
SNIA            Disk Drive Lite           1.1.0
SNIA            Indication                1.1.0
SNIA            Indication                1.2.0
SNIA            Profile Registration      1.0.0
SNIA            SMI-S                     1.2.0
SNIA            Server                    1.1.0
SNIA            Server                    1.2.0
SNIA            Software                  1.1.0
SNIA            Software                  1.2.0

See pywbemcli profile list –help for the exact help output of the command.

2.4.5.2. profile centralinsts command

The profile centralinsts command gets the central instances of the management profiles advertised by the WBEM server of the current connection.

The command displays the instance paths of the central instances by profile, using the Table output formats.

The --organization/-o and --profile/ -p command options can be used to filter the result by organization and name of the management profiles, respectively.

Example:

$ pywbemcli profile centralinsts --organization DMTF --profile "Computer System"
Advertised Central Instances:
+---------------------------------+----------------------------------------------------------------------------------------------------------------------+
| Profile                         | Central Instances                                                                                                    |
|---------------------------------+----------------------------------------------------------------------------------------------------------------------|
| DMTF:Computer System:1.0.0      | //leonard/test/TestProvider:Test_StorageSystem.Name="StorageSystemInstance1",CreationClassName="Test_StorageSystem"  |
|                                 | //leonard/test/TestProvider:Test_StorageSystem.Name="StorageSystemInstance2",CreationClassName="Test_StorageSystem"  |
+---------------------------------+----------------------------------------------------------------------------------------------------------------------+

See pywbemcli profile centralinsts –help for the exact help output of the command.

2.4.6. server command group

The server command group has commands that interact with the WBEM server of the current connection to access information about the WBEM server itself:

2.4.6.1. server brand command

The server brand command gets the brand of the WBEM server of the current connection.

The brand is intended to identify the product that represents the WBEM server infrastructure. Since that was not clearly defined in the DMTF specifications, this command may return strange results for some servers, but it returns legitimate results for the most commonly used servers.

The brand is displayed using Table output formats.

Example:

$ pywbemcli --name myserver server brand
Server Brand:
+---------------------+
| WBEM server brand   |
|---------------------|
| OpenPegasus         |
+---------------------+

See pywbemcli server brand –help for the exact help output of the command.

2.4.6.2. server info command

The server info command gets general information on the WBEM server of the current connection.

This includes the brand, version, namespaces, and other reasonable information on the WBEM server.

The result is displayed using Table output formats.

Example:

$ pywbemcli --name myserver server info
Server General Information
+-------------+-----------+---------------------+-------------------------------+
| Brand       | Version   | Interop Namespace   | Namespaces                    |
|-------------+-----------+---------------------+-------------------------------|
| OpenPegasus | 2.15.0    | root/PG_InterOp     | root/PG_InterOp               |
|             |           |                     | root/benchmark                |
|             |           |                     | root/SampleProvider           |
|             |           |                     | test/CimsubTestNS2            |
|             |           |                     | test/CimsubTestNS3            |
|             |           |                     | test/CimsubTestNS0            |
|             |           |                     | test/CimsubTestNS1            |
|             |           |                     | root/PG_Internal              |
|             |           |                     | test/WsmTest                  |
|             |           |                     | test/TestIndSrcNS1            |
|             |           |                     | test/TestINdSrcNS2            |
|             |           |                     | test/EmbeddedInstance/Static  |
|             |           |                     | test/TestProvider             |
|             |           |                     | test/EmbeddedInstance/Dynamic |
|             |           |                     | root/cimv2                    |
|             |           |                     | root                          |
|             |           |                     | test/cimv2                    |
|             |           |                     | test/static                   |
+-------------+-----------+---------------------+-------------------------------+

See pywbemcli server info –help for the exact help output of the command.

2.4.6.3. server interop command

The server interop command gets the name of the Interop namespace of the WBEM server of the current connection.

The result is displayed using Table output formats.

Example:

$ pywbemcli --name myserver server interop
Server Interop Namespace:
+------------------+
| Namespace Name   |
|------------------|
| root/PG_InterOp  |
+------------------+

See pywbemcli server interop –help for the exact help output of the command.

2.4.6.4. server namespaces command

The server namespaces command lists the namespaces of the WBEM server of the current connection.

The result is displayed using txt output format or Table output formats.

The Interop namespace must exist on the server.

Example:

$ pywbemcli --name myserver --output-format plain server namespaces
Namespace Name
root/PG_InterOp
root/benchmark
root/PG_Internal
test/WsmTest
test/EmbeddedInstance/Static
test/TestProvider
test/EmbeddedInstance/Dynamic
root/cimv2
root
test/cimv2
test/static

See pywbemcli server namespaces –help for the exact help output of the command.

2.4.6.5. server add-mof command

The server add-mof command compiles one or more MOF files and adds the resulting CIM objects to the target namespace in the WBEM server of the current connection.

Example:

$ pywbemcli --name myserver server add-mof mymodel.mof

See pywbemcli server add-mof –help for the exact help output of the command.

2.4.6.6. server remove-mof command

The server remove-mof command compiles one or more MOF files and removes the resulting CIM objects from the target namespace in the WBEM server of the current connection.

Example:

$ pywbemcli --name myserver server remove-mof mymodel.mof

See pywbemcli server remove-mof –help for the exact help output of the command.

2.4.6.7. server schema command

The server schema command returns information on the schemas in the namespace(s) of the current connection WBEM server.

The overview reports a summary by namespace of this information and the detail view (server schema --detail) reports the information for each schema in the namespace.

For each schema in each namespace, the report provides information on the CIM Schema version (maximum qualifier ‘Version’ for classes in that schema), whether the schemas have experimental classes, and the number of classes in each schema and CIM Schema.

Pywbemcli determines the version of the CIM Schema by finding the highest value of the Version qualifier on any of the classes in the namespace that are in that schema

There are two report outputs possible:

  • Detail report (--detail option) displays information on the number of classes, maximum version for each schema in each or the selected namespace, and whether the schema includes any experimental classes.

  • The overview output (without --detail command option) displays information on the number of classes, the CIM Schema and whether there are experimental classes in each or the selected namespace. For the CIM Schema in the overview report the highest value is determined by finding the highest ‘Version’ qualifier value for each schemas in the CIM schema (normally CIM, or PRS).

Example:

$ pywbemcli --name myserver server schema

Schema information; namespaces: all;
Namespace                      Schemas              classes  CIM schema    experimental
                                                      count  version
-----------------------------  -----------------  ---------  -------------  --------------
root                                                      0
root/PG_InterOp                CIM, PG                  276  2.40.0
root/benchmark                 CIM, (no-schema)         206  2.40.0
root/cimv2                     CIM, PG, PRS            1463  2.41.0         Experimental

The above report would indicate that the namespace root/cimv2 was probably created with DMTF released CIM Schema version 2.41.0. Other namespaces show a lower level of version because they are not using any of the classes that have the Version qualifier value of 2.41.0.

or a more detailed report (--detail option):

$ pywbemcli --name myserver server schema --detail

Namespace                      Schemas              classes  schema     experimental
                                                      count  version
-----------------------------  -----------------  ---------  ---------  --------------
root/PG_InterOp                CIM                      241  2.40.0
                               PG                        35  2.12.0
root/benchmark                 CIM                      177  2.40.0
                               (no-schema)               29  1.0.0
root/cimv2                     CIM                     1382  2.41.0     Experimental
                               PG                        20  2.12.0

This report tells more about each schema in that it reports that there are classes in the root/cimv2 namespace ‘CIM’ schema that are experimental indicating that the CIM Schema used was the Version 2.41.0, experimental CIM Schema.

See pywbemcli server remove-mof –help for the exact help output of the command.

2.4.7. statistics command group

The statistics command group includes commands that display statistics about the WBEM operations executed by a real WBEM server (or by a mock environment).

Statistics on WBEM operations are maintained by the pywbemcli client, and also separately by WBEM servers that support this. There are multiple components to statistics gathering and reporting in pywbemcli:

  1. Pywbemcli gathers and maintains statistics on WBEM operations it executes against a WBEM server (or mock environment). The client maintained statistics can be displayed either automatically after each pywbemcli command if the --timestats / -T general option is used, or in interactive mode with the statistics show command.

    For mock environments, artificial operations on the MOF compile time needed for setting up the mock respository are included in the client maintained statistics.

  2. WBEM servers may support two capabilities for managing statistics on WBEM operations:

    1. Each CIM-XML response from the WBEM server may include an extra header field WBEMServerResponseTime with the server response time for that operation. Pywbemcli puts those server response times into the client statistics it maintains. The inclusion of the server response time into the CIM-XML response can be enabled and disabled with the statistics server-on and statistics server-off commands.

    2. Statistical information on operation execution in the WBEM server and its providers may be gathered and maintained and by the WBEM server. These server maintained statistics are completely independent of the client maintained statistics and will include the operations driven by all clients working with that server. The gathering of server statistics can be enabled and disabled with the statistics server-on and statistics server-off commands. The server maintained statistics can be retrieved and displayed with the statistics server-show command.

    The mock environment implemented by pywbemcli does not support server maintained statistics.

    The capabilities for managing and retrieving server maintained statistics is supported only in some WBEM server implementations. While these capabilities were documented in the CIM Schema, they were never included as part of a DMTF or SNIA management profile, so the implementations may vary across WBEM server implementations. Pywbemcli makes a best effort to interact with the server maintained statistics based on the documentation in the CIM Schema, and has been verified to work with OpenPegasus.

The statistics commands are:

2.4.7.1. statistics server-on command

The statistics server-on command attempts to enable statistics gathering on the current WBEM server and the returning of the server response time in the WBEMServerResponseTime header field of the CIM-XML response, by setting the GatherStatisticalData property to True in the CIM_ObjectManager instance for the WBEM server.

See ‘_Operation statistics’_ for more information on statistics in pywbemcli and WBEM servers.

Since only some WBEM server implementations actually implement statistics gathering, the command may fail, for example if the CIM_ObjectManager class or its property GatherStatisticalData have not been implemented by the server, or if the server does not allow a client to modify the property.

Note that this command also affects whether the Server Time column of the client maintained statistics shows a value.

2.4.7.2. statistics server-off command

The statistics server-off command attempts to disable statistics gathering on the current WBEM server and the returning of the server response time in the WBEMServerResponseTime header field of the CIM-XML response, by setting the GatherStatisticalData property to False in the CIM_ObjectManager instance for the WBEM server.

See ‘_Operation statistics’_ for more information on statistics in pywbemcli and WBEM servers.

Since only some WBEM server implementations actually implement statistics gathering, the command may fail, for example if the ‘CIM_ObjectManager’ class or its property ‘GatherStatisticalData’ have not been implemented by the server, or if the server does not allow a client to modify the property.

Note that this command also affects whether the Server Time column of the client maintained statistics shows a value.

2.4.7.3. statistics status command

The statistics status command displays the enabled status of the statistic gathering in the current WBEM server and of the automatic display of the client maintained statistics.

See ‘_Operation statistics’_ for more information on statistics in pywbemcli and WBEM servers.

2.4.7.4. statistics reset command

The statistics reset command resets the counters of the client maintained statistics. This includes the server response times returned by the WBEM server that are part of the client maintained statistics.

2.4.7.5. statistics show command

The statistics show command displays the client maintained statistics.

Using this command only makes sense in interactive mode. In interactive mode, the statistics is maintained for the entire interactive session, and executing commands that communicate with the server in the interactive session causes the statistics counters to be updated.

The following example shows the use of the statistics show command in the interactive mode with a real WBEM server:

$ pywbemcli -n pegasus

pywbemcli> server brand
OpenPegasus

pywbemcli> statistics show
Client statistics
Operation                 Count    Errors    Client Time    Server Time    Request Size    Response Size
                                                    [ms]           [ms]             [B]              [B]
----------------------  -------  --------  -------------  -------------  --------------  ---------------
EnumerateInstanceNames        2         1         33.174          1.407             333             6225
EnumerateInstances            1         0          7.938          2.813             345             3504

The following example shows the use of the statistics show command in the interactive mode with a mock environment:

$ pywbemcli -n mock1

pywbemcli> class enumerate --di --no
CIM_Foo
CIM_Foo_sub
CIM_Foo_sub2
CIM_Foo_sub_sub

pywbemcli> statistics show
Client statistics
Operation                    Count    Errors    Client Time    Server Time    Request Size    Response Size
                                                       [ms]           [ms]             [B]              [B]
-------------------------  -------  --------  -------------  -------------  --------------  ---------------
compile_mof_file(ns=None)        1         0        149.862              0               0                0
CreateClass                      4         0          4.075              0               0                0
CreateInstance                  12         0          1.715              0               0                0
EnumerateClassNames              1         0          0.167              0               0                0
SetQualifier                    10         0          0.139              0               0                0

The Operation column shows the name of the WBEM operation, plus the following additional entries:

  • compile_mof_file(ns=None)

The Count column shows the number of operations executed.

The Errors column shows the number of cases where the operation has resulted in an error at the level of the CIM-XML protocol. The occurrence of such errors is not necessarily a problem, depending on the logic in the pywbemcli client program.

All time and size values in this report are average values across the number of operations executed, rounded to the precision shown.

The Client Time column shows the total elapsed time the operation took from a perspective of the pywbemcli client program. This time includes network time and server time and most of the time spent in the pywbemcli command. More specifically, the client time is measured by the statistics support of the pywbem library directly after the API for executing an operation, so it does include the creation of the CIM-XML for the request and the parsing of the CIM-XML for the response, but it does not include any processing in the code of the pywbemcli command above the pywbem API.

The Server Time column shows the total elapsed time the operation took from a perspective of the WBEM server. It has the same meaning as the Server Time value shown in the server statistics. This time includes time spent in the CIM object manager code and time spent in its providers. The Server Time is obtained from the header field WBEMServerResponseTime in the CIM-XML response message; if the WBEM server does not support returning this field or has it disabled, the Server Time is shown as 0. That is why the Server Time values for the mock environment example are shown as 0.

The Request Size and Response Size columns show the size of the HTTP bodies of the CIM-XML request and response messages, respectively. These values do not include the size of the HTTP header fields.

2.4.7.6. statistics server-show command

The statistics server-show command displays the server maintained statistics of the current WBEM server. What is returned depends on the implementation of statistics gathering in the WBEM server.

This command does that by retrieving “CIM_CIMOMStatisticalData” instances associated from the “CIM_ObjectManager” instance representing the WBEM server, and organizing them into a server statistics report.

The format of the server statistics report of a real WBEM server is shown in the example below:

$ pywbemcli -s http://localhost statistics server-show

Server statistics
Operation                 Count    Server Time    Provider Time    Request Size    Response Size
                                          [ms]             [ms]             [B]              [B]
----------------------  -------  -------------  ---------------  --------------  ---------------
GetClass                    315          0.239            0                 399             4124
GetInstance                   4          0.495            0.07              862             3128
ModifyInstance                4          0.795            0.024            3523              376
EnumerateInstances          172          1.459            0.341             383            10111
EnumerateInstanceNames      132          0.913            0.657             377             4102
OpenEnumerateInstances      156          1.986            0                 616            14506

The Operation column shows the name of the WBEM operation.

The Count column shows the number of operations executed.

All time and size values in this report are average values across the number of operations executed, rounded to the precision shown.

The Server Time column shows the total elapsed time the operation took from a perspective of the WBEM server. It has the same meaning as the Server Time value shown in the client statistics. This time includes time spent in the CIM object manager code and time spent in any providers.

The Provider Time column shows the total elapsed time the operation spent in the provider from a perspective of the CIM object manager portion of the WBEM server that calls the provider. OpenPegasus only reports values for instance providers and reports the values for class and qualifier operations as 0. Other WBEM servers would typically also do that. The provider time includes the time spent for performing any actions in the managed system and also the time spent in any “up-calls” from the provider back to the CIM object manager portion of the WBEM server (and possibly down to other providers).

The Request Size and Response Size columns show the size of the CIM-XML request and response messages, respectively. For OpenPegasus and WBEM servers that followed the description in CIM_CIMOMStatisticalData.mof, these values include the size of the HTTP bodies and the size of the HTTP header fields.

Note that statistics gathering in WBEM servers is not standardized in WBEM management profiles, so the statements above are based on typical implementations of WBEM servers such as the implementation of OpenPegasus.

2.4.8. connection command group

The connection command group includes commands that manage named connection definitions that are persisted in a connections file. This allows maintaining multiple connection definitions and then using any one via the --name general option. Only a single connection is active (selected) at any point in time but the connection connection can be selected on the pywbemcli command line (--name general option) or changed within an interactive session using the connection select command

The attributes of each connection definition in the connections file are:

The commands in this group are:

2.4.8.1. connection delete command

The connection delete command deletes a connection definition from the connections file.

If the NAME argument is specified, the connection definition with that name is deleted. Otherwise, the command displays the list of connection definitions and prompts the user to select the one to be deleted. If there is only a single connection, that connection is deleted without the user selection request.

Example that deletes a connection definition by the specified name:

$ pywbemcli connection delete me

Example that deletes a connection definition by selecting it:

$ pywbemcli connection delete
Select a connection or Ctrl_C to abort.
0: mock1
1: mockassoc
2: op
Input integer between 0 and 2 or Ctrl-C to exit selection: 1   << entered by user
Deleted connection "mockassoc".

See pywbemcli connection delete –help for the exact help output of the command.

2.4.8.2. connection export command

The connection export command exports the current connection as a set of environment variables.

This is done by displaying the commands to set the environment variables.

$ pywbemcli --server http://localhost connection export
export PYWBEMCLI_SERVER=http://localhost
export PYWBEMCLI_DEFAULT_NAMESPACE=root/cimv2
export PYWBEMCLI_TIMEOUT=30
. . .

This can be used for example on Linux and OS-X to set the environment variables as follows:

$ eval $(pywbemcli --server http://localhost connection export)

$ env |grep PYWBEMCLI
PYWBEMCLI_SERVER=http://localhost
PYWBEMCLI_DEFAULT_NAMESPACE=root/cimv2
PYWBEMCLI_TIMEOUT=30
. . .

See pywbemcli connection export –help for the exact help output of the command.

2.4.8.3. connection list command

The connection list command lists the connection definitions in the connections file and the current connection(if it has not been saved to the connections file).

Valid output formats are Table output formats.

This shows which connection is the current connection and if any connection is set as the default connection (connection select command ).

The current connection is marked with * in the Name column. The default connection, if defined, is marked with # in the Name column.

The title also displays the path of the file that is being used as the current connections file.

pywbemcli> --server http://localhost --user me --password mypw --no-verify connection save me

pywbemcli> --server http://blahblah connection list
WBEM server connections(brief):  (#: default, *: current)
file: /home/johndoe/.pywbemcli_connections.yaml
+--------------+------------------+----------------------------------------+
| name         | server           | mock-server                            |
|--------------+------------------+----------------------------------------|
| *blahblah    | http://blah      |                                        |
| mock1        |                  | tests/unit/simple_mock_model.mof       |
| mockalltypes |                  | tests/unit/all_types.mof               |
| mockassoc    |                  | tests/unit/simple_assoc_mock_model.mof |
| mockext      |                  | tests/unit/simple_mock_model_ext.mof   |
| op           | http://localhost |                                        |
| test3        |                  | tests/unit/simple_mock_model.mof       |
|              |                  | tests/unit/mock_confirm_y.py           |
+--------------+------------------+----------------------------------------+

A more complete display of the server parameters is available with the --full option as follows:

pywbemcli> connection list --full

WBEM server connections(full): (#: default, *: current)
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| name         | server               | namespace              | user        |   timeout | use_pull   | verify   | certfile   | keyfile   | mock-server                                      |
+==============+======================+========================+=============+===========+============+==========+============+===========+==================================================+
| #mockassoc   |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/simple_assoc_mock_model.mof           |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| alltypes     |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/all_types.mof                         |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| complexassoc |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/complex_assoc_model.mof               |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| mock1        |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/simple_mock_model.mof                 |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| mock1ext     |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/simple_mock_model_ext.mof             |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| mock1interop |                      | interop                |             |        30 |            | True     |            |           | tests/unit/simple_mock_model.mof                 |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| ophttp       | http://localhost     | root/cimv2             |             |        30 |            | True     |            |           |                                                  |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| ophttps      | https://localhost    | root/cimv2             | blahblah    |        30 |            | False    |            |           |                                                  |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| opt          | https://blah         | root/cimv2             |             |        45 |            | False    | c1.pem     | k1.pem    |                                                  |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+
| test1        |                      | root/cimv2             |             |        30 |            | True     |            |           | tests/unit/simple_assoc_mock_model.mof           |
+--------------+----------------------+------------------------+-------------+-----------+------------+----------+------------+-----------+--------------------------------------------------+

Connection list does not display some fields such as the ca-certs field. See connection show command for more detailed display of individual fields used by the server.

See pywbemcli connection list –help for the exact help output of the command.

2.4.8.4. connection save command

The connection save command saves the current connection in the connections file as a connection definition with the name specified in the NAME argument.

If a connection definition with that name already exists, it will be overwritten without notice.

This command includes an option (set-default) that sets the default connection of the current connections file to the name of the definition being saved.

$ pywbemcli --server http://blah connection save <name> --set-default

See pywbemcli connection save –help for the exact help output of the command.

2.4.8.5. connection select command

The connection select command selects a connection definition from the connections file to become the current connection.

If the NAME argument is specified, the connection definition with that name is selected. Otherwise, the command displays the list of connection definitions and prompts the user to pick the one to be selected. If there is only a single connection, that connection is selected without the user request.

If the --default/-d command option is set, the connection definition in addition becomes the default connection, by marking it accordingly in the connections file.

The following example shows changing connection from within the interactive mode of pywbemcli:

$ pywbemcli

pywbemcli> connection select
Select a connection or Ctrl_C to abort.
0: mock1
1: mockassoc
2: op
Input integer between 0 and 2 or Ctrl-C to exit selection: 1   << entered by user

pywbemcli> connection list
WBEMServer Connections:   (#: default, *: current)
+------------+------------------+-------------+-------------+-----------+------------+-----------------------------------------+
| name       | server           | namespace   | user        |   timeout | verify     | mock-server                             |
|------------+------------------+-------------+-------------+-----------+------------+-----------------------------------------|
| #mock1     |                  | root/cimv2  |             |        30 | False      | tests/unit/simple_mock_model.mof        |
| *mockassoc |                  | root/cimv2  |             |        30 | False      | tests/unit/simple_assoc_mock_model.mof  |
| op         | http://localhost | root/cimv2  | me          |        30 | True       |                                         |
+------------+------------------+-------------+-------------+-----------+------------+-----------------------------------------+

pywbemcli> connection show
name: mockassoc
  server: None
  default-namespace: root/cimv2
  user: None
  password: None
  timeout: 30
  no-verify: False
  certfile: None
  keyfile: None
  use-pull: either
  pull-max-cnt: 1000
  mock-server: tests/unit/simple_assoc_mock_model.mof
  log: None

See pywbemcli connection select –help for the exact help output of the command.

2.4.8.6. connection show command

The connection show command shows information about a connection definition:

  • If NAME is ?, pywbemcli prompts the user to select one and shows the existing current connection. If there is only a single connection the user selection is bypassed.

  • If NAME is specified, show the connection definition with that name.

  • If NAME is not specified, show the existing current connection.

pywbemcli -s http://blah connection show
name: not-saved (current)
  server: http://blah
  default-namespace: root/cimv2
  user: None
  password: None
  timeout: 30
  verify: True
  certfile: None
  keyfile: None
  mock-server:
  ca-certs: None

See pywbemcli connection show –help for the exact help output of the command.

2.4.8.7. connection test command

The connection test command executes a single predefined operation on the current connection to verify that accessing the WBEM server works.

The predefined operation is EnumerateClasses which attempts to enumerate the classes in the default namespace of the WBEM Server. Even if the server does not support the classes operations, this command should return a CIMError indicating that WBEM is supported (ex. CIM_ERR_NOT_SUPPORTED) indicating that WBEM is supported by the server.

If the --test-pull command option is included, pywbemcli will issue an instances request for each of the DMTF defined pull operations and report the results. This could be important because the pull operations are defined as optional and some servers may not include them or all of them.

If the server accepts the request, a simple text OK <server url will be returned.

The following example defines the connection with --server general option, --user, and --password and executes the test with successful result:

$ pywbemcli --server http://localhost --user me --password mypw connection test
Connection successful

See pywbemcli connection test –help for the exact help output of the command.

2.4.8.8. connection set-default command

The connection set-default command sets or clears the default-connection-name attribute in the currently specified connections file.

The default-connection-name attribute allows a connection definition in a connections file to be loaded on startup without using the --name general option. If pywbemcli is started without --name general option, --server general option, or --mock-server general option, the default-connection-name attribute is retrieved from the connections file if defined, and the value of this attribute used as the name of the connection definition set as current connection.

Thus, for example, if the default connection definition is mytests the connection definition for mytests is created each time pywbemcli is started with no --server general option, --mock-server general option or the --name general option.

This command also allows clearing the value of the default connections file attribute with the --clear option.

The following demonstrates displaying the connection information for the current default connection mytests.

$ pywbemcli connection show

name: mytests (current, default)
  server: http://blah
  default-namespace: root/cimv2
  user: None
  password: None
  timeout: 30
  verify: True
  certfile: None
  keyfile: None
  mock-server:
  ca-certs: None

$ pywbemcli connection set-default --clear
  Connection default name cleared replacing None

$ pywbemcli connection show
  Error: No connection defined

$ pywbemcli connection set-default mytests
   'mytests' set as default connection

$ pywbemcli connection show
WBEM server connections(brief): (#: default, *: current)

file: tmp.yaml
name       server           mock-server
---------  ---------------  -------------
*#mytests  http://blah
blahblah   http://blahblah

The current status of the default-connection-name can be viewed with the connection show command and connection list command.

See pywbemcli connection set-default –help for the exact help output of the command.

2.4.9. subscription command group

The DMTF specification DMTF Indication Profile DSP0004 defines the capability for WBEM servers to generate indications (asynchronous notifications based on events that occur in the WBEM server managed environment) and for the indications to be generated to be defined by CIM indication subscriptions which may be created by WBEM clients.

A CIM indication subscription consists of instances of 3 separate classes:

1. CIM_IndicationFilter (filter/indication filter) - Defines an indication filter (using a query language) that defines the characteristics of indications to be sent to a listener destination.

2. CIM_ListenerDestination (destination/listener destination) - Defines a listener destination (a URL) for indications exported from a WBEM server. Pywbem and pywbemcli use the subclass CIM_ListenerDestinationCIMXML specifically because that class uses the protocol supported by pywbemcli and the Pywbemlistener command.

3. CIM_IndicationSubscription (subscription/indication subscription) - A CIM association class that relates an indication filter definition (Filter reference property) and a listener destination (Handler reference property) to link the definition of the indication to be generated and the listener destination for the indication.

An indication subscription defines for a WBEM server the target WBEM listener destination instance for indications to be generated based on the Query and QueryLanguage properties defined in the filter instance; an indication subscription relates a WBEM listener destination with the definition of the indications that will be generated. When a WBEM server receives a valid indication subscription it is expected to activate the functionality to generate and send indications defined by that subscription.

Pywbemcli provides commands that allow creating, displaying, and removing the components of CIM indication subscriptions from WBEM servers. In conjunction with pywbemtools Pywbemlistener command, a user can create indication subscriptions on a WBEM server and view indications generated by that WBEM server.

The subscription command group has commands that act on the CIM indication classes on a WBEM server including:

Pywbemtools groups indication subscription instances with an ownership concept where the instances of filters, destinations, and subscriptions can be either owned by the pywbemtools client or permanent.

All of the instances of indication destination, indication filter and indication subscriptions are created by pywbemcli are created in the WBEM server Interop namespace.

While the definition of indication subscriptions created by pywbemcli is based on the DMTF Indication Profile DSP0004 there are a number of limitations in the pywbem implementation including:

  • It does not provide direct access to any of the Indication Service or Indication capability functionality such as CIM_IndicationService.

  • It requires some properties in the instances that some of the options of DSP0004 consider optional including the destination URL property and the filter Query property. Thus pywbemcli does not implement what the specification calls free listener destinations where the Destination property is left empty when the destination is created in the WBEM server.

  • pywbemcli creates instances of CIM_ListenerDestinationCIMXML rather than CIM_ListenerDestination because pywbemcli is tied to the CIMXML protocol.

  • pywbemcli subscription does not provide a command to modify an existing destination, filter, or subscription instance. That must be done using the instance command group.

  • pywbemcli subscription always uses the CIM classes to create the listener destination, indication filter, and indication subscription and does not provide for using subclasses (ex. vendor specific subclasses) for creating instances subclasses.

2.4.9.1. Owned destinations, filters, and subscriptions

Owned CIM instances are created with the subscription add-destination command, subscription add-filter command, and subscription add-subscription command and their life cycle is bound to the life cycle of the registration of a WBEM server with the subscription manager.

Pywbemcli registers a WBEM Server with the registration manager the first time a subscription command is executed if a WBEM server is currently defined with the --name general option, --server general option or the --mock-server general option.

Owned CIM instances are deleted automatically when their WBEM server is deregistered from pywbemcli. See Subscription remove-server command or by command with subscription remove-destination command, subscription remove-filter command, subscription remove-subscription command.

Owned instances provide a mechanism where the life cycle of indication subscriptions can be easily controlled by the pywbemcli client.

2.4.9.2. Permanent destinations, filters, and subscriptions

Permanent CIM instances are created by the subscription add-destination command, subscription add-filter command, and subscription add-subscription command with the command option --permanent and their life cycle is independent of the life cycle of the registration of that WBEM server with the subscription manager.

Permanent CIM instances are not deleted automatically when their WBEM server is deregistered from the subscription manager. The user is responsible for their lifetime management: They can be deleted by the commands subscription remove-destination command, subscription remove-filter command, subscription remove-subscription command with the option --permanent.

Permanent CIM instances should be used in cases where the user needs to have control over the destination or filter Name property (e.g. because a DMTF management profile requires a particular name).

2.4.9.3. Static destinations, filters, and subscriptions

Static CIM instances pre-exist in the WBEM server and cannot be deleted (or created) by a WBEM client.

When a client creates a subscription between a filter and a listener destination, the types of ownership of these three CIM instances may be arbitrarily mixed, with one exception:

  • A permanent subscription cannot be created on an owned filter or an owned listener destination. Allowing that would prevent the automatic life cycle management of the owned filter or listener destination by the subscription manager. This restriction is enforced by the WBEMSubscriptionManager class.

Pywbemcli remembers owned subscriptions, filters, and listener destinations between commands in both command line and interactive mode. It does this by recovering instances from the current WBEM server whenever the pywbem SubscriptionManager object is created by a pywbemcli subscription command.

Each command command execution in command mode discovers owned subscriptions, filters, and listener destinations for the current server. This discovery, is based upon the Name property. Therefore, if the Name property is set by the user (e.g. because a management profile requires a particular name), the filter must be permanent and cannot be owned.

NOTE: Pywbem_mock used in testing does not remember any of subscription instances between non-interactive commands since the mock server is created for each command line instantiation. Therefore most pywbemcli mock usage with the subscription subcommand is in interactive mode (creating, viewing, and deleting instances within a single interactive session).

Since pywbemcli does not directly modify existing instances of filter or destinations or subscriptions, the user must do this directly through the pywbemcli Instance modify command and then updating the local owned instances list by executing get_all_filters(), get_all_destinations(), or get_all_subscriptions().

Pywbemcli creates all instances of CIM_IndicationSubscription, CIM_ListenerDestinationCIMXML and CIM_IndicationFilter in the Interop namespace.

See pywbemcli subscription –help.

2.4.9.4. subscription add-destination command

This command creates a listener destination instance (CIM class CIM_ListenerDestinationCIMXML) with the identity defined by the IDENTITY argument and the --owned | --permanent option in the Interop namespace of the specified WBEM server on the target WBEM server.

A listener destination defines the location of a WBEM indication listener (the listener URL including port) that defines the indication listener for indications exported from a WBEM server and other characteristics of the listener.

The format of this command is:

pywbemcli [GENERAL-OPTIONS] subscription add-destination IDENTITY [COMMAND-OPTIONS]

The listener destination to be added is identified by the IDENTITY argument and the --owned / --permanent option. Together these elements define the Name property of the destination instance.

If the instance is to be owned, (--owned) the value of the Name property will be:

``"pywbemdestination:" {submgr_id} ":" {filter_id}``

where:

  • {submgr_id} is the subscription manager ID

  • {IDENTITY} is the IDENTITY argument

If the instance is to be permanent, (--permanent option) the IDENTITY argument directly defines the instance Name property.

If a destination instance with the specified or generated Name property already exists, the command returns the alternate instance if --owned or raises an exception if --permanent defined. Note that the behavior for permanent requests is a more strict behavior than what a WBEM server would do, because the ‘Name’ property is only one of four key properties. The behavior for owned add requests allows the alternate name to be used in subscriptions.

The options that can be applied when adding a destination are:

  • --listener-url - the URL of the listener including its scheme, host name and protocol. The host name and protocol are required and the scheme defaults to https if not specified.

  • -- owned / --permanent - flag defining whether the created instance will be owned or permanent where the default is owned.

The following example creates an owned destination instance with the IDENTITY ODEST1 and a permanent destination with IDENTITY PDEST1

In this case the owned instance will be created with the Name property value:

pywbemdestination:<subscription manager id>:ODEST1
$ pywbemcli subscription add-destinations ODEST1 --listener-url http://my-listener:5000 --owned
Added owned destination: Name=pywbemdestination:defaultpywbemcliSubMgr:ODEST1

$ pywbemcli subscription add-destinations PDEST1 --listener-url http://my-listener:5000 --permanent
Added permanent destination: Name=PDEST1

See pywbemcli subscription add-destination –help.

2.4.9.5. subscription add-filter command

The add-filter command creates a dynamic indication filter to a WBEM server, by creating an indication filter instance (CIM class CIM_IndicationFilter) and adding this instance to the Interop namespace of the current pywbemcli WBEM server (defined by the --name general option, --server general option, or --mock-server general option).

The format of this command is:

pywbemcli [GENERAL-OPTIONS] subscription add-filter IDENTITY [COMMAND-OPTIONS]

The filter to be added is identified by the IDENTITY argument and the --owned / --permanent option. Together these elements define the Name property of the filter instance.

If the instance is to be owned, (--owned) the value of the Name property will be:

"pywbemfilter:" {submgr_id} ":" {IDENTITY}``

where:

  • {submgr_id} is the subscription manager ID

  • {IDENTITY} is the IDENTITY argument

This should be used in cases where the user needs to have control over the filter name (e.g. because a DMTF management profile requires a particular name).

If the instance is to be permanent, (--permanent) the the IDENTITY argument directly defines the instance Name property.

If a filter instance with the specified or generated Name property already exists, the command returns the alternate instance if --owned or raises an exception if --permanent defined. Note that the behavior for permanent requests is a more strict behavior than what a WBEM server would do, because the ‘Name’ property is only one of four key properties. The behavior for owned add requests allows the alternate name to be used in subscriptions.

The command line options for this command are:

  • --query-language - The query language in which the query is defined. Normally this must be either WQL a Microsoft specified query language (see CQL) or DMTF:CQL (the DMTF specified query language) (see WQL), The default language for this command is WQL. The query language specified must be implemented in the target server.

  • query - The query itself defined as a string using the query language defined by the query-language option.

  • -- owned / --permanent - flag defining whether the created instance will be owned or permanent where the default is owned.

The following example creates an owned subscription instance with the IDENTITY ofilter1 and a permanent filter with the Name property of pfilter1.

The owned instance ofilter1 will be created with the Name property value of:

pywbemfilter:<subscription manager id>:pfilter1

$ pywbemcli subscription add-filter ofilter1 --query-language DMTF:CQL -q "SELECT * from CIM_blah" --owned
Added owned filter: Name=pywbemfilter:defaultpywbemcliSubMgr:pfilter1

$ pywbemcli subscription add-filter pfilter1 --listener-url http://my-listener:5000 --permanent
Added permanent filter: Name=filter1

See pywbemcli subscription add-filter –help.

2.4.9.6. subscription add-subscription command

The add-subscription command creates a single indication subscription instance (CIM class CIM_IndicationSubscription) that defines the association between a previously defined indication filter and destination instance.

The destination and filter are defined the two required arguments of the command DESTINATION_IDENTITY and FILTER_IDENTITY. These arguments may be either the complete name property value of the destination and filter to be associated or the IDENTITY that was the IDENTITY argument of the command that created each of the elements.

See subscription add-destination command: for the definition of DESTINATION_IDENTITY and :ref:_`subscription add-filter command`: for the definition of the ``FILTER_ARGUMENT

The options for add-subscription are:

  • -- owned / --permanent - flag defining whether the created instance will be owned or permanent where the default is owned. As described above, the limitation is that owned destinations and filters cannot be attached to permanent subscriptions.

The following is an example of the creation of the destination, filter and subscription.

$> pywbemcli -s https:/blah
pywbemcli> subscription add-destinations odest1 --listener-url http://my-listener:5000 --owned
Added owned destination: Name=pywbemdestination:defaultpywbemcliSubMgr:odest1

pywbemcli> subscription add-filter ofilter1 --query-language DMTF:CQL -q "SELECT * from CIM_blah" --owned
Added owned filter: Name=pywbemfilter:defaultpywbemcliSubMgr:ofilter1

pywbemcli> subscription list-destinations
Indication Destinations: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
| Ownership   | Identity   | Name                           | Destination       |   Persistence |   Protocol |   Subscription |
|             |            |                                |                   |          Type |            |          Count |
|-------------+------------+--------------------------------+-------------------+---------------+------------+----------------|
| owned       | odest1     | pywbemdestination:defaultpywbe | http://blah:5000  |             3 |          2 |              0 |
|             |            | mcliSubMgr:odest1              |                   |               |            |                |
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+

pywbemcli> subscription list-filters
Indication Filters: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988 type=all
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
| Ownership   | identity   | Name                           | Query          | Query      | Source       |   Subscription |
|             |            |                                |                | Language   | Namespaces   |          Count |
|-------------+------------+--------------------------------+----------------+------------+--------------+----------------|
| owned       | ofilter1   | pywbemfilter:defaultpywbemcliS | SELECT * from  | WQL        | root/cimv2   |              0 |
|             |            | ubMgr:ofilter1                 | CIM_Indication |            |              |                |
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+

pywbemcli> subscription add-subscription pdest1 pfilter1 --owned
Added owned subscription: DestinationName=pywbemdestination:defaultpywbemcliSubMgr:odest1, FilterName=pywbemfilter:defaultpywbemcliSubMgr:ofilter1

See pywbemcli subscription add-subscription –help.

2.4.9.7. subscription list command

The subscription list command provides a table with an overview of the subscription, filter, and destination counts organized by ownership.

The options are:

  • --type [ owned``| ``permanent | all ] Defines whether the command is going to filter owned ,permanent, or all objects for the response display. The default is all

  • -s / --summary If True, show only summary count of instances

$ subscription list
WBEM server instance counts: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988
+-------------------------------+---------+-------------+-------+
| CIM_class                     |   owned |   permanent |   all |
|-------------------------------+---------+-------------+-------|
| CIM_IndicationSubscription    |       1 |           0 |     1 |
| CIM_IndicationFilter          |       2 |           1 |     3 |
| CIM_ListenerDestinationCIMXML |       2 |           1 |     3 |
+-------------------------------+---------+-------------+-------+

$ subscription list --summary
1 subscriptions, 3 filters, 3 destinations

2.4.9.8. subscription list-destinations command

The subscription ``list-destinations command displays the existing destination instances ((CIM class CIM_ListenerDestinationCIMXML)) on the current WBEM server.

NOTE: pywbemcli works only with the CIM_ListenerDestinationCIMXML class so that any indication destination instances defined with the superclass CIM_ListenerDestination are not visible.

The set of destinations to be displayed may be all of the destinations, the owned destinations, or the permanent (not-owned) destinations as defined by the --type option where the values are owned | permanent | all.

The format of the output is determined by the --output-format general option so that the destinations may be displayed as either CIM objects ( for example, -o mof) or in the table format. The default is to display the destinations as a table. In the table format, the most important information for each instance is displayed, one instance per row.

The detail level of the output is determined by the --summary and the detail options and has an effect on both the mof and table outputs. The --summary displays counts of the number of objects and the --detail adds more data to the normal display, in particular displaying more properties in the table view.

The options for list-destinations are:

  • -- type [ owned | permanent | all ] - choice option that limits the list of destinations displayed to either just owned or permanent instances or displays all destinations on the current WBEM server

  • --detail - displays additional detail for all of the possible output formats. For MOF it includes empty properties. For table, it adds more rows with properties from the instance.

  • -s/--summary limits the display to an overview

  • --no/names-only displays only the CIM instance names of the instances. This option only applies if the CIM object format (ex. mof) is used for output.

The following is an example of the display of the destinations as a table:

Indication Destinations: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
| Ownership   | Identity   | Name                           | Destination       |   Persistence |   Protocol |   Subscription |
|             |            |                                |                   |          Type |            |          Count |
|-------------+------------+--------------------------------+-------------------+---------------+------------+----------------|
| owned       | odest1     | pywbemdestination:defaultpywbe | http://blah:5000  |             3 |          2 |              2 |
|             |            | mcliSubMgr:odest1              |                   |               |            |                |
| owned       | odest2     | pywbemdestination:defaultpywbe | http://blah:5001  |             3 |          2 |              1 |
|             |            | mcliSubMgr:odest2              |                   |               |            |                |
| permanent   | pdest1     | pdest1                         | https://blah:5003 |             2 |          2 |              2 |
| permanent   | pdest2     | pdest2                         | https://blah:5003 |             2 |          2 |              1 |
| owned       | pdestdup   | pywbemdestination:defaultpywbe | https://blah:5003 |             3 |          2 |              0 |
|             |            | mcliSubMgr:pdestdup            |                   |               |            |                |
| permanent   | pdestdup   | pdestdup                       | https://blah:5003 |             2 |          2 |              0 |
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+

where the rows shown in the table view are:

  • Ownership - the owned/permanent definition of the destination.

  • Identity - The identity of the destination which should be the IDENTITY used to remove the destination

  • Name - The value of the instance Name property

  • Destination - The value of the Destination property.

  • Persistence Type - The value of the PersistenceType property.

  • Protocol - The value of the Protocol property.

  • Subscription Count - The number of subscriptions with which this destination is associated via the CIM_IndicationSubscription Handler reference.

2.4.9.9. subscription list-filters command

The subscription ``list-filters command displays the existing indication filter instances ((CIM class CIM_IndicationFilter)) on the current WBEM server.

The set of filters to be displayed may be all of the filters, the owned filters, or the permanent (not owned) filters as defined by the --type option where the values are owned | permanent | all.

The format of the output is determined by the --output-format general option so that the destinations may be displayed as either CIM objects (-o mof) or in the table format. The default is to display the destinations as a table.

The detail level of the output is determined by the --summary and the detail options and has an effect on both the MOF and table outputs. The --summary displays counts of the number of objects and the --detail adds more data to the normal display, in particular displaying more properties in the table view.

The options for list-destinations are:

  • -- type [ owned | permanent | all ] - choice option that limits the list of destinations displayed to either just owned or permanent instances or displays all destinations on the current WBEM server

  • --detail - displays additional detail for all of the possible output formats. For MOF it includes empty properties. For table, it adds more rows with properties from the instance.

  • -s/--summary limits the display to an overview

  • --no/names-only displays only the CIM instance names of the instances. This option only applies if the CIM object format (ex. mof) is used for output.

The following is an example of table output of indication filters:

Indication Filters: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988 type=all
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
| Ownership   | identity   | Name                           | Query          | Query      | Source       |   Subscription |
|             |            |                                |                | Language   | Namespaces   |          Count |
|-------------+------------+--------------------------------+----------------+------------+--------------+----------------|
| owned       | ofilter1   | pywbemfilter:defaultpywbemcliS | SELECT * from  | WQL        | root/cimv2   |              2 |
|             |            | ubMgr:ofilter1                 | CIM_Indication |            |              |                |
| owned       | ofilter2   | pywbemfilter:defaultpywbemcliS | SELECT * from  | DMTF:CQL   | root/cimv2   |              1 |
|             |            | ubMgr:ofilter2                 | CIM_Indication |            |              |                |
| permanent   | pfilter1   | pfilter1                       | SELECT * from  | WQL        | root/cimv2   |              2 |
|             |            |                                | CIM_Indication |            |              |                |
| permanent   | pfilter2   | pfilter2                       | SELECT * from  | DMTF:CQL   | root/cimv2   |              1 |
|             |            |                                | CIM_Indication |            |              |                |
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+

where the rows shown in the table view are:

  • Ownership - the owned/permanent definition of the destination.

  • Identity - The identity of the destination which should be the IDENTITY used to remove the destination

  • Name - The value of the instance Name property

  • Query - The query select statement defined for this filter.

  • QueryLanguage - The query language defined for this filter.

  • SourceNamespaces - The names of the local namespaces where the Indications originate. If NULL, the namespace of the Filter registration is assumed. SourceNamespaces replaces the deprecated SourceNamespace property on IndicationFilter to provide a means of defining the multiple namespaces where indications may originate.

  • Subscription Count - The number of subscriptions with which this filter is associated via the CIM_IndicationSubscription Filter reference.

2.4.9.10. subscription list-subscriptions command

The subscription ``list-filters command displays the existing indication filter instances ((CIM class CIM_IndicationSubscription)) on the current WBEM server.

The set of subscriptions to be displayed may be all of the destinations, the owned subscriptions, or the permanent (not owned) subscriptions as defined by the --type option where the values are owned | permanent | all.

The format of the output is determined by the --output-format general option so that the destinations may be displayed as either CIM objects (-o mof) or in the table format. The default is to display the destinations as a table.

The detail level of the output is determined by the --summary and the detail options and has an effect on both the mof and table outputs. The --summary displays counts of the number of objects and the --detail adds more data to the normal display, in particular displaying more properties in the table view.

The options for list-destinations are:

  • -- type [ owned | permanent | all ] - choice option that limits the list of destinations displayed to either just owned or permanent instances or displays all destinations on the current WBEM server

  • --detail - displays additional detail for all of the possible output formats. For MOF it includes empty properties. For table, it adds more rows with properties from the instance.

  • -s/--summary limits the display to an overview

  • --no/names-only displays only the CIM instance names (paths) of the instances. This option only applies if the CIM object format (ex. mof) is used for output.

The following is an example of table output of indication subscriptions:

pywbemcli> subscription list-subscriptions
Indication Subscriptions: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+
| Ownership   | Handler           | Filter              | Handler           | Filter                       | Filter Query   | Subscription      |
|             | Identity          | Identity            | Destination       | Query                        | language       | StartTime         |
|-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------|
| permanent   | pdest1(permanent) | pfilter1(permanent) | https://blah:5003 | SELECT * from CIM_Indication | WQL            | 10/22/21 14:31:30 |
| permanent   | pdest2(permanent) | pfilter2(permanent) | https://blah:5003 | SELECT * from CIM_Indication | DMTF:CQL       | 10/22/21 14:31:30 |
| owned       | odest1(owned)     | ofilter1(owned)     | http://blah:5000  | SELECT * from CIM_Indication | WQL            | 10/22/21 14:31:30 |
| owned       | odest2(owned)     | ofilter2(owned)     | http://blah:5001  | SELECT * from CIM_Indication | DMTF:CQL       | 10/22/21 14:31:30 |
| owned       | odest1(owned)     | pfilter1(permanent) | http://blah:5000  | SELECT * from CIM_Indication | WQL            | 10/22/21 14:31:31 |
| owned       | pdest1(permanent) | ofilter1(owned)     | https://blah:5003 | SELECT * from CIM_Indication | WQL            | 10/22/21 14:31:31 |
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+
pywbemcli>

where the rows shown in the table view are:

  • Ownership - the owned/permanent definition of the destination.

  • HandlerIdentity - The identity of the destination associated with this subscription.

  • FilterIdentity - The identity of the filter associated with this subscription.

  • Handler Destination - The listener destination defined in the destination defined by the HandlerIdentity

  • FilterQuery - The FilterQuery property from the associated filter defined by the FilterIdentity

  • FilterQueryLanguage - The FilterQueryLanguage property from the associated filter defined by the FilterIdentity

  • Name - The value of the instance Name property

  • Query - The query select statement defined for this filter.

  • QueryLanguage - The query language defined for this filter.

  • SubscriptionStartTime - The date and time that the subscription was created if the WBEM server has implemented this property.

2.4.9.11. subscription remove-destination command

Removes a listener destination instance (CIM_ListenerDestinationCIMXML) from the WBEM server where the instance to be removed is identified by the IDENTITY argument and optional --owned option of the command.

The listener destination to be removed is identified by the IDENTITY argument and the --owned / --permanent option. Together these elements define the Name property of the target destination instance.

If the instance is owned, (--owned) the IDENTITY argument will define the IDENTITY component of the Name property as follows:

``"pywbemdestination:" {submgr_id} ":" {IDENTITY}``

where:

  • {submgr_id} is the subscription manager ID

  • {IDENTITY} is the IDENTITY argument

If the instance is to be permanent, (--permanent option) the IDENTITY argument directly defines the instance Name property.

Some listener_destination instances on a server may be static in which case the server should generate an exception if an attempt to made to remove them. Pywbemcli has no way to identify these static destinations and they will appear as permanent destination instances.

The --select option can be used if, for some reason, the IDENTITY and ownership option returns multiple instances. This should only occur in rare cases where destination instances have been created by other tools. If the –select option is not used pywbemcli displays the paths of the instances and terminates the command.

If the instance to be removed is part of an existing association the command is aborted. The subscription list-destinations command shows whether the destination is part of an existing subscription.

The following example shows a command failure when an attempt is made to remove a destination that is part of a subscription and a good completion when that subscription has been removed.

pywbemcli> subscription list-destinations
Indication Destinations: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
| Ownership   | Identity   | Name                           | Destination       |   Persistence |   Protocol |   Subscription |
|             |            |                                |                   |          Type |            |          Count |
|-------------+------------+--------------------------------+-------------------+---------------+------------+----------------|
| owned       | odest1     | pywbemdestination:defaultpywbe | http://blah:5000  |             3 |          2 |              1 |
|             |            | mcliSubMgr:odest1              |                   |               |            |                |
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
pywbemcli> subscription remove-destination odest1
Error: 1 (CIM_ERR_FAILED): The listener destination is referenced by subscriptions.; remove-destination failed: Exception :CIMError. Subscription mgr id: 'WBEMSubscriptionManager(_subscription_manager_id='defaultpywbemcliSubMgr', _servers={'http://FakedUrl:5988': WBEMServer(conn.url='http://FakedUrl:5988', interop_ns='interop', namespaces=None, namespace_paths=None, namespace_classname=None, brand='OpenPegasus', version='2.15.0', profiles=[0 instances])}, _systemnames={'http://FakedUrl:5988': 'Mock_WBEMServerTest'}...)', server id: 'http://FakedUrl:5988',

pywbemcli> subscription list-subscriptions
Indication Subscriptions: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+
| Ownership   | Handler           | Filter              | Handler           | Filter                       | Filter Query   | Subscription      |
|             | Identity          | Identity            | Destination       | Query                        | language       | StartTime         |
|-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------|
| owned       | odest1(owned)     | ofilter1(owned)     | http://blah:5000  | SELECT * from CIM_Indication | WQL            | 10/24/21 11:36:03 |
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+

pywbemcli> subscription remove-subscription odest1 ofilter1
Removed 1 subscription(s) for destination-id: odest1, filter-id: ofilter1.

2.4.9.12. subscription remove-filter command

Removes an indication filter instance (CIM_IndicationFilter) from the WBEM server.

The filter to be removed is identified by the IDENTITY argument and the --owned / --permanent option. Together these elements define the Name property of the target filter instance.

If the instance is owned, (--owned) the IDENTITY argument will define the IDENTITY component of the Name property as follows:

``"pywbemfilter:" {submgr_id} ":" {IDENTITY}``

where:

  • {submgr_id} is the subscription manager ID

  • {IDENTITY} is the IDENTITY argument

If the instance is to be permanent, (--permanent option) the IDENTITY argument directly defines the instance Name property.

Some filter instances on a server may be static in which case the server should generate an exception if an attempt to made to remove them. Pywbemcli has no way to identify these static filters and they will appear as permanent filter instances.

The --select option can be used if, for some reason, the IDENTITY argument and ownership option returns multiple instances. This should only occur in rare cases where filter instances have been created by other tools. If the –select option is not used pywbemcli displays the paths of the instances and terminates the command.

If the instance to be removed is part of an existing association the command is aborted. The subscription list-filters command shows whether the filter is part of an existing subscription.

subscription list-filters
Indication Filters: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988 type=all
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
| Ownership   | identity   | Name                           | Query          | Query      | Source       |   Subscription |
|             |            |                                |                | Language   | Namespaces   |          Count |
|-------------+------------+--------------------------------+----------------+------------+--------------+----------------|
| owned       | ofilter1   | pywbemfilter:defaultpywbemcliS | SELECT * from  | WQL        | root/cimv2   |              2 |
|             |            | ubMgr:ofilter1                 | CIM_Indication |            |              |                |
| owned       | ofilter2   | pywbemfilter:defaultpywbemcliS | SELECT * from  | DMTF:CQL   | root/cimv2   |              0 |
|             |            | ubMgr:ofilter2                 | CIM_Indication |            |              |                |
|             |            |                                | CIM_Indication |            |              |                |
| permanent   | pfilter2   | pfilter2                       | SELECT * from  | DMTF:CQL   | root/cimv2   |              1 |
|             |            |                                | CIM_Indication |            |              |                |
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
pywbemcli> subscription remove-filter ofilter2
Removed owned indication filter: identity=ofilter2, Name=pywbemfilter:defaultpywbemcliSubMgr:ofilter2.

2.4.9.13. subscription remove-subscription command

This command removes an indication subscription that is identified by two arguments that represent the identity of the destination and filter references of the target indication subscription.

The destination and filter are defined the two required arguments of the command DESTINATION_IDENTITY and FILTER_IDENTITY. These arguments may be either the complete name property value of the destination and filter associated instances or the IDENTITY that was the IDENTITY argument of the command that created each of the elements.

The options for this command are:

  • -v | verify - Prompt the user to verify the subscription to be removed before the request is sent to the WBEM server.

  • --remove-associated-instances - Remove the associated destination and filter instances before removing the subscription. They will only be removed if they are not part of any other associations.

  • --select - Prompt user to select from multiple objects that match the identity arguments provided with the command. Otherwise, if the command finds multiple instances that match the IDENTITY, the operation fails.

The --select option can be used if, for some reason, the DESTINATION_IDENTITY and FILTER_IDENTITY and return multiple instances. This should only occur in rare cases where filter instances have been created by other tools. If the –select option is not used pywbemcli displays the instance names of the instances and terminates the command.

subscription list-destinations
Indication Destinations: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
| Ownership   | Identity   | Name                           | Destination       |   Persistence |   Protocol |   Subscription |
|             |            |                                |                   |          Type |            |          Count |
|-------------+------------+--------------------------------+-------------------+---------------+------------+----------------|
| owned       | odest1     | pywbemdestination:defaultpywbe | http://blah:5000  |             3 |          2 |              2 |
|             |            | mcliSubMgr:odest1              |                   |               |            |                |
| owned       | odest2     | pywbemdestination:defaultpywbe | http://blah:5001  |             3 |          2 |              0 |
|             |            | mcliSubMgr:odest2              |                   |               |            |                |
| permanent   | pdest1     | pdest1                         | https://blah:5003 |             2 |          2 |              2 |
| permanent   | pdest2     | pdest2                         | https://blah:5003 |             2 |          2 |              1 |
+-------------+------------+--------------------------------+-------------------+---------------+------------+----------------+
pywbemcli> subscription list-filters
Indication Filters: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988 type=all
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
| Ownership   | identity   | Name                           | Query          | Query      | Source       |   Subscription |
|             |            |                                |                | Language   | Namespaces   |          Count |
|-------------+------------+--------------------------------+----------------+------------+--------------+----------------|
| owned       | ofilter1   | pywbemfilter:defaultpywbemcliS | SELECT * from  | WQL        | root/cimv2   |              2 |
|             |            | ubMgr:ofilter1                 | CIM_Indication |            |              |                |
| permanent   | pfilter1   | pfilter1                       | SELECT * from  | WQL        | root/cimv2   |              2 |
|             |            |                                | CIM_Indication |            |              |                |
| permanent   | pfilter2   | pfilter2                       | SELECT * from  | DMTF:CQL   | root/cimv2   |              1 |
|             |            |                                | CIM_Indication |            |              |                |
+-------------+------------+--------------------------------+----------------+------------+--------------+----------------+
pywbemcli> subscription list-subscriptions
Indication Subscriptions: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988, type=all
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+
| Ownership   | Handler           | Filter              | Handler           | Filter                       | Filter Query   | Subscription      |
|             | Identity          | Identity            | Destination       | Query                        | language       | StartTime         |
|-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------|
| permanent   | pdest1(permanent) | pfilter1(permanent) | https://blah:5003 | SELECT * from CIM_Indication | WQL            | 11/02/21 10:36:32 |
| permanent   | pdest2(permanent) | pfilter2(permanent) | https://blah:5003 | SELECT * from CIM_Indication | DMTF:CQL       | 11/02/21 10:36:33 |
| owned       | odest1(owned)     | ofilter1(owned)     | http://blah:5000  | SELECT * from CIM_Indication | WQL            | 11/02/21 10:36:33 |
| owned       | odest1(owned)     | pfilter1(permanent) | http://blah:5000  | SELECT * from CIM_Indication | WQL            | 11/02/21 10:36:33 |
| owned       | pdest1(permanent) | ofilter1(owned)     | https://blah:5003 | SELECT * from CIM_Indication | WQL            | 11/02/21 10:36:34 |
+-------------+-------------------+---------------------+-------------------+------------------------------+----------------+-------------------+
pywbemcli> subscription remove-subscription odest1 ofilter1
Removed 1 subscription(s) for destination-id: odest1, filter-id: ofilter1.

2.4.9.14. Subscription remove-server command

This command unregisters owned listeners from the WBEM server and removes all owned indication subscriptions, owned indication filters, and owned listener destinations for this currently active pywbemcli WBEM server from that WBEM server.

It can be used to completely clean the owned subscription entities for the currently active pywbemcli WBEM server from that wbem server and local caches.

The currently active WBEM server is the WBEM server to which pywbemcli is currently attached; the WBEM server defined by the --name general option, --server general option, or --mock-server general option.

The identity of the current wbem server id visible in the title of each of the subscription list table outputs.

Thus, for example current server is defined by svr_id and is actually the fixed name http://FakedUrl:5988 of the mock server.

pywbemcli> subscription list

WBEM server instance counts: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988
+-------------------------------+---------+-------------+-------+
| CIM_class                     |   owned |   permanent |   all |
|-------------------------------+---------+-------------+-------|
| CIM_IndicationSubscription    |       2 |           2 |     6 |
| CIM_IndicationFilter          |       2 |           3 |     6 |
| CIM_ListenerDestinationCIMXML |       2 |           3 |     6 |
+-------------------------------+---------+-------------+-------+

pywbemcli> subscription remove-server
Removing owned destinations, filters, and subscriptions for server-id http://FakedUrl:5988. Remove counts: destinations=2, filters=2, subscriptions=2

pywbemcli> subscription list

WBEM server instance counts: submgr-id=defaultpywbemcliSubMgr, svr-id=http://FakedUrl:5988
+-------------------------------+---------+-------------+-------+
| CIM_class                     |   owned |   permanent |   all |
|-------------------------------+---------+-------------+-------|
| CIM_IndicationSubscription    |       0 |           2 |     2 |
| CIM_IndicationFilter          |       0 |           3 |     3 |
| CIM_ListenerDestinationCIMXML |       0 |           3 |     3 |
+-------------------------------+---------+-------------+-------+

2.4.10. repl command

The repl command sets pywbemcli into the Interactive mode. Pywbemcli can be started in the Interactive mode either by entering:

$ pywbemcli repl
Enter 'help' for help, <CTRL-D> or ':q' to exit pywbemcli.
pywbemcli>

or by executing the script without any command or command group:

$ pywbemcli
Enter 'help' for help, <CTRL-D> or ':q' to exit pywbemcli.
pywbemcli>

The repl mode is recognized by the prompt pywbemcli>.

Command history is available in the Interactive mode either by using <UP-ARROW> and <DOWN-ARROW> keys to step through the history file or by using incremental search of the command history.

An incremental search is initiated by <CTRL-r> (similar to some shells like bash) and does a search based on a string entered after the <CTRL-r> for the last command containing the search string. The search string may be modified and <UP_ARROW>, <DOWN-ARROW> will find other commands containing the search string. Hitting <ENTER> selects the currently shown command.

see Interactive mode for more details on using this mode and the search.

2.4.11. help command

The help command provides information on special commands and controls that can be executed in the Interactive mode including:

  • executing shell commands,

  • exiting pywbemcli,

  • getting help on commands,

  • viewing interactive mode command history.

This is different from the --help option that provides information on command groups, and commands.

$ pywbemcli help

The following can be entered in interactive mode:

  <pywbemcli-cmd>             Execute pywbemcli command <pywbemcli-cmd>.
  !<shell-cmd>                Execute shell command <shell-cmd>.

  <CTRL-D>, :q, :quit, :exit  Exit interactive mode.

  <TAB>                       Tab completion (can be used anywhere).
  -h, --help                  Show pywbemcli general help message, including a
                              list of pywbemcli commands.
  <pywbemcli-cmd> --help      Show help message for pywbemcli command
                              <pywbemcli-cmd>.
  help                        Show this help message.
  :?, :h, :help               Show help message about interactive mode.
  <up-arrow, down-arrow>      View pwbemcli command history: