Skip to content

Commit

Permalink
Bring up-to-date with Andy's comments and clean up code for all
Browse files Browse the repository at this point in the history
of the log configure methods.  This also cleans up the logging
docstring in _logging.py

This incorporates Andy's comments that I marked as DONE.  Note that some
of the comments will be reflected in the redesign we agreed on 27 Feb

Change pywbem.ops to pywbem.api in log name per discussion 27 Feb.

Changes for new log config methods in cim_operations

a. Remove the functions from logger except for the configure...from_string
b. Add the methods to WBEMConnection for configure_api_logger,
   configure_http_logger and configue_all_loggers as class methods
c. Remove the enable_log attribute from WBEMConnection
d. Modify the recorder to handle the new detail_level options.
e. Redo many of the tests in both test_logging.py and test_recorder.py

Cleaned up the new methods in cim_operations and created a set of
internal methods since the work is largely common. Added code so that
the class methods can also control the activation of logging.

Tested with wbemcli and cleaned up the output loggers.  In particular
changed the paths logger so that it actually shows the string definition
of paths.

Removed parameter stream in logging.streamhandler()
We had to remove this because apparently not supported in python 2.6
  • Loading branch information
KSchopmeyer committed Mar 17, 2018
1 parent a769404 commit d1b9873
Show file tree
Hide file tree
Showing 10 changed files with 1,096 additions and 692 deletions.
22 changes: 22 additions & 0 deletions docs/changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ Enhancements
support. (Issue #1115).

* Revamped the logger configuration mechanism completely. This includes:
<<<<<<< HEAD
(1) Create 3 methods in WBEMConnection that allow pywbem logs to be
configured and activated. These methods contain parameters for:
a. configuring the Python loggers for either/or/both the api and http
Expand All @@ -405,6 +406,27 @@ Enhancements
(see issue #859)
(4) Create a function in the _logging module that allows pywbem logging
to be defined by a single string input
=======
(1) Modify logging config to add new optional parameter to WBEMConnection
constructor (enable_logging) which determines if logging will be executed
for request APIs/responses and XML requests/responses. If not None
this automatically initiates logging.
(2) Remove the extra configuration parameter for detail level from the
log setup so that the standard Python logging setup can be used to
setup the loggers for pywbem WBEMConnection APIs and responses, and
the XML requests and responses.
(3) Create 2 helper functions in _logging so that a user can create the
logger definitions for these loggers with simple one line calls if they
do not want to use the Python logging handler configuration methods directly
to define the loggers.
(4) Completely eliminate the PyWBEMLogger class that was the original
logging setup tool in pywbem 0.11.0) since its use was incompatible with
using standard Python logging configuration methods to define loggers.
(see issue #859)
(5) addition of a new property to WBEMConnection (conn_id) which is a
unique identifier for each WBEMConnection object and is part of each log
record. This allows linking logs for each WBEMConnection in the log.
>>>>>>> af06c1c... Bring up-to-date with Andy's comments

Bug fixes
^^^^^^^^^
Expand Down
89 changes: 0 additions & 89 deletions docs/mof_compiler.help.txt
Original file line number Diff line number Diff line change
@@ -1,89 +0,0 @@
usage: mof_compiler [options] moffile ...

Compile MOF files, and update a namespace in a WBEM server with the result.

Positional arguments:
moffile Path name of the MOF file to be compiled.
Can be specified multiple times.

Server related options:
Specify the WBEM server and namespace the MOF compiler works against, for
looking up existing elements, and for applying the MOF compilation results
to.

-s url, --server url Host name or URL of the WBEM server (required),
in this format:
[scheme://]host[:port]
- scheme: Defines the protocol to use:
- "https" for HTTPS protocol
- "http" for HTTP protocol
Default: "https".
- host: Defines host name as follows:
- short or fully qualified DNS hostname
- literal IPV4 address(dotted)
- literal IPV6 address (RFC 3986) with zone
identifier extensions(RFC 6874)
supporting "-" or %25 for the delimiter
- port: Defines the WBEM server port to be used.
Defaults:
- 5988, when using HTTP
- 5989, whenusing HTTPS
-n namespace, --namespace namespace
Namespace in the WBEM server.
Default: root/cimv2

Connection security related options:
Specify user name and password or certificates and keys

-u user, --user user User name for authenticating with the WBEM server.
Default: No user name.
-p password, --password password
Password for authenticating with the WBEM server.
Default: Will be prompted for, if user name
specified.
-nvc, --no-verify-cert
Client will not verify certificate returned by the
WBEM server (see cacerts). This bypasses the client-
side verification of the server identity, but allows
encrypted communication with a server for which the
client does not have certificates.
--cacerts cacerts File or directory containing certificates that will be
matched against a certificate received from the WBEM
server. Set the --no-verify-cert option to bypass
client verification of the WBEM server certificate.
Default: Searches for matching certificates in the
following system directories:
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
/etc/ssl/certs
/etc/ssl/certificates
--certfile certfile Client certificate file for authenticating with the
WBEM server. If option specified the client attempts
to execute mutual authentication.
Default: Simple authentication.
--keyfile keyfile Client private key file for authenticating with the
WBEM server. Not required if private key is part of the
certfile option. Not allowed if no certfile option.
Default: No client key file. Client private key should
then be part of the certfile

Action related options:
Specify actions against the WBEM server's namespace. Default:
Create/update elements.

-r, --remove Remove elements (found in the MOF files) from the WBEM
server's namespace, instead of creating or updating
them
-d, --dry-run Don't actually modify the WBEM server's namespace,
just check MOF syntax. Connection to WBEM server is
still required to check qualifiers.

General options:
-I dir, --include dir
Path name of a MOF include directory. Can be specified
multiple times.
-v, --verbose Print more messages while processing
-V, --version Display pywbem version and exit.
-h, --help Show this help message and exit

Example: mof_compiler CIM_Schema_2.45.mof -s https://localhost -n root/cimv2
-u sheldon -p p42
Loading

0 comments on commit d1b9873

Please sign in to comment.