Pywbem - A WBEM client and related utilities, written in pure Python.

Overview

Pywbem - A WBEM client and related utilities, written in pure Python

PyPI Version Actions status ReadTheDocs status Coveralls result Supported Python

Overview

Pywbem is a WBEM client and WBEM indication listener and provides related WBEM client-side functionality. It is written in pure Python and runs on Python 2 and Python 3.

WBEM is a standardized approach for systems management defined by the DMTF that is used in the industry for a wide variety of systems management tasks. See WBEM Standards for more information. An important use of this approach is the SMI-S standard defined by SNIA for managing storage.

Functionality

The major components of pywbem are shown in this diagram:

pywbem components

The green components all have Python APIs for use by user applications. The yellow components are command line utilities. The blue components are not part of the pywbem or pywbemtools packages.

The pywbem components all run on the client side and communicate with a remote WBEM server using the standard CIM operations over HTTP (CIM-XML) protocol defined by the DMTF.

Pywbem provides the following Python APIs:

  • WBEM Client Library - An API that supports issuing WBEM operations to a WBEM server, using the CIM operations over HTTP (CIM-XML) protocol defined by the DMTF.
  • WBEM Server Library - An API that encapsulates selected functionality of a WBEM server for use by a WBEM client application, such as determining the Interop namespace and other basic information about the server, or the management profiles advertised by the server.
  • WBEM Indication Listener - An API for creating and managing a thread-based WBEM listener that waits for indications (i.e. event notifications) emitted by a WBEM server using the CIM-XML protocol. The API supports registering callback functions that get called when indications are received by the listener.
  • WBEM Subscription Manager - An API for viewing and managing subscriptions for indications on a WBEM server.
  • MOF Compiler - An API for compiling MOF files or strings into a CIM repository (e.g. on a WBEM server), or for test-compiling MOF.
  • Mock WBEM server - An API for setting up a mocked WBEM server that is used instead of a real WBEM server. This allows setting up well-defined WBEM servers locally that can be used for example for prototyping or testing user applications.

Pywbem provides this command line utility:

  • mof_compiler - A MOF compiler that takes MOF files as input and compiles them into a CIM repository (e.g. on a WBEM server).

The related pywbemtools project provides the following command line utilities:

  • pywbemcli - A client-side command line interface for a WBEM server, supporting a command line mode and an interactive (repl) mode.
  • pywbemlistener - A command that runs and manages WBEM indication listeners that can receive indications from a WBEM server.

Installation

To install the latest released version of pywbem into your active Python environment:

$ pip install pywbem

This will also install any prerequisite Python packages.

Starting with version 1.0.0, pywbem has no OS-level prerequisite packages.

For more details and alternative ways to install, see the Installation section in the pywbem documentation.

Documentation

  • Documentation - Concepts, tutorials, Python API, command line tools, and developer documentation.
  • Tutorial - The tutorials in the documentation are provided as Jupyter notebooks and provide working examples of pywbem API usage.
  • Change log - Detailed change history in the documentation.
  • Presentations - status, concepts, and implementation of pywbem.

Quick Start

The following simple example script lists the namespaces and the Interop namespace in a particular WBEM server:

#!/usr/bin/env python

import pywbem

server_url = 'http://localhost'
user = 'fred'
password = 'blah'

conn = pywbem.WBEMConnection(server_url, (user, password))

server = pywbem.WBEMServer(conn)

print("Interop namespace:\n  %s" % server.interop_ns)

print("All namespaces:")
for ns in server.namespaces:
    print("  %s" % ns)

Project Planning

For each upcoming release, the bugs and feature requests that are planned to be addressed in that release are listed in the issue tracker with an according milestone set that identifies the target release. The due date on the milestone definition is the planned release date. There is usually also an issue that sets out the major goals for an upcoming release.

Planned Next Release

Fix versions of pywbem are released as needed.

The next planned feature version(s) of pywbem can be found by listing the release definition issues.

Contributing

For information on how to contribute to pywbem, see the Contributing section in the pywbem documentation.

License

Pywbem is provided under the GNU Lesser General Public License (LGPL) version 2.1, or (at your option) any later version.

Comments
  • WITHDRAWN Fixes #691 and #569: log of cim operations api and http messages with wbemcli extended to use log

    WITHDRAWN Fixes #691 and #569: log of cim operations api and http messages with wbemcli extended to use log

    Based on Andy's comment, I am withdrawing this PR and submitting pieces of work as separate prs. I will document that list of new PRs as it is submitted.

    Logger function added to recorder. This is no longer a prototype. However, it functionally complete now but has some issues (see Not Done).

    I am keeping this WIP for another day or so while I work out the not done list below.

    Includes:

    1. New LogOperationRecorder class in recorder logs operations request/responses and http request/responses. Note that logging for each can be defined separately so that each can have a destination (file, stderr), log_level(debug, etc) and detail level (how much information is output)
    2. Addition of PywbemLoggers class in _logging that manages loggers creating new named loggers and keeping the information that logging cannot handle (detail level). Includes parsing of the command line parameter for logging so wbemcli and pywbemtools do not have to do this separately.
    3. Add new script test for wbemcli (test_wbemcli.py). Only includes a few tests today but new tests can be easily added.
    4. Extend wbemconnection to add new constructor (enable_logging) that is a boolean. When this is created, the LogOperationRecorder gets the detail level info from PywbemLoggers by logger name.

    Not done:

    1. The tests in test_logging and test_wbemcli are incomplete. COMMENT: Move any new tests forward to new issue
    2. Some of the new code in _logging.py is a hack and just needs refactoring. In fact, I have only lightly tested the final result. Cleaned up. Done
    3. There is no documentation on the logging (or for that matter the statistics) in the documentation. COMMENT: Create new issue
    4. I left the input parameters in their original order for the moment (destination:detail:log_level rather than Andy's proposal for different order. We should discuss the levels of detail (min, all) right now and exactly what they mean. The structure is in place so we can manage this detail level as we want to. Right now detail output 1000 char and all outputs everything. Maybe a hdrs_only or something but not sure exactly what that means. COMMENT: Create new issue
    5. Not displaying enough in wbemcli when logger enabled. Just says logging=true no info about components, etc. Minor. COMMENT: Create new issue
    6. Only outputs logger or test recorder, not both. I know how to extend to do both but wanted to get this much running first. COMMENT: Create new issue
    7. I need to review logging of the wbemconnection itself since it is NOT linked to the other log outputs. The logical way to do this might to be to set a counter that increments for each new connection and this counter also is set into the ops and http logs. COMMENT: Create new issue

    DISCUSSION:

    1. Do we really need to be able to do both log and test recorder at the same time.
    2. Do we need to link the ops/http logs to the connection.
    opened by KSchopmeyer 37
  • Fixes #66: WBEM Listener / Server API

    Fixes #66: WBEM Listener / Server API

    This is an initial stab at addressing issue #66.

    Please review and post comments here.

    The docs for this listener branch are built automatically on RTD, so that the WBEM Listener API can better be reviewed:

    https://pywbem.readthedocs.org/en/listener

    Note there are now two new sections:

    • WBEM server API
    • WBEM listener API

    In addition to the documentation, there is now a tool that demonstrates how to use the WBEM server API: tools/explore.py. Invoke without arguments for help.

    opened by andy-maier 35
  • Packaging burden by breaking out pywbem code as separate libraries

    Packaging burden by breaking out pywbem code as separate libraries

    I understand the desire to make internal code functionality into a separate library, but it comes at a cost. For distributions like fedora that package each python library as a separate package, it requires a maintainer to create a new package, get the package through the approval process, and then maintain/test it over time.

    At the moment those that are involved in pywbem packaging on fedora are considering dropping/orphaning pywbem in fedora as the packaging burden has increased (unless we can find someone to take it and all the new dependencies over). If this occurs a few other packages in fedora which utilize pywbem will get dropped/orphaned too.

    Is anyone here willing to help get these new packages specific to pywbem packaged for fedora and other distributions?

    Maybe pywbem could come up with some other alternative, like git submodule? Keep this needed functionality together and separate for reuse? I'm not familiar with submodules and how difficult that would be do integrated releases in github for example.

    Suggestions/help welcomed

    Thanks

    Ref. https://bugzilla.redhat.com/show_bug.cgi?id=1868128

    type: enhancement resolution: wont fix area: setup 
    opened by tasleson 28
  • Issue #838 (part1): Implement mock of WBEMConnection

    Issue #838 (part1): Implement mock of WBEMConnection

    Initial implementation of pywbem_mock.

    This implements mocks of all of the WBEMConnection methods that contact the wbem server with a local repository that responds to the requests with data from the repository.

    This is not a complete implementation of a WBEMserver and therefore creates a number of simplifications that are documented in the documentation page

    Status Sat 6 jan 2018:

    Note that this fixes the test failure from Friday. That was bad code compounded by fact that each python version has different ordering for dictionaries. V 3.4 ordering caught my instance properties error that depended on property ordering by accident.

    1. Implementation complete and coverage is up to about 90%. There are a number of tests to add but we know that the paths generally work. The only components that I really need to work on to assure quality are . a. EnumerateInstance IncludeQualifiers, property lists, and DeepInheritance (tested but not all of the possible combinations), b. ModifyInstance (complex and may not have tested all options), c. c. c.Associations (am I picking up all of the possible options/variations), d. Do the open/pulls do exactly the same thing as the original operations.

    2. ModifyClass not implemented.

    3. About 600 tests now and 89% coverage of code. Still may be some error conditions not tested.

    Removed WIP status and as far as I am concerned, lets commit this first version and do fixes with issues.

    opened by KSchopmeyer 28
  • Fixes #642: Move from README.md to README.rst and extend the README

    Fixes #642: Move from README.md to README.rst and extend the README

    This also adds a diagram. I am not married to this diagram and suggestions welcome

    It extends the description, etc.

    NOTE: I thought I had set up th pr before but the branch was there but no pr. Not sure why

    Removed the README.md

    opened by KSchopmeyer 26
  • Fixes #414, fixes #454: Separate subscriptions/listeners  into separate modules

    Fixes #414, fixes #454: Separate subscriptions/listeners into separate modules

    Please Review COMMENT 18 aug: KS WIP now because run_cimoperations.py needs update to match last changes. Only changes for subscription and listener code is a) commments, b) run_cimoperaitons test fail.

    Breaks listener and subscription manager apart. Adds at least some support for static filters, subscriptions.

    Discussion: Known issues:

    1. I used two different patterns for the add functions and remove functions. In the add_filters i added an optional attribute to define if the filter is dynamic or static. In the remove indications and filters I modified so we have two different functions remove_static_filter, and remove_dynamic_filter. That creates inconsistency. DISCUSION: What is the most logical pattern for creates and removals now that we really will support static and dynamic filters. Thus, for example
         sub_mgr.add_filter(...dynamic_filter=false)
         sub_mgr.remove_static_filter(...)
    
    1. When creating a static filter, it always creates a new destination. That is probably OK for the moment but not efficient if we are going to do may filters.
    2. Right now I have the indication_id attribute in both the listener and subscription manager. I need to sort out where it really should be. Is this an id for the listener or for the subscription manager. DISCUSSION: Still thinking that one out and not sure if this is really a listener thing or subscription_manager. Note that we really only have one listener for subscription manager at this point.
    3. The use of static is different here than in dsp docs. Our definition is a filter, subscripiton that is not controlled iwhtin the life cycle of a subscription manager instance. The subscripition manager may create and delete static subscriptions but there may also be real static subscriptions in an implementation which cannot ever be deleted. DISCUSSION: Should we be using a different name
    4. the code does not exercise any control over static subscriptions mixed with dynamic filters so far. Should really add a test so that a subsubscription must be static if the filter is not in the dynamic_filter list, etc.
    5. We are not marking static vs dynamic in the name component, etc. for filters and subscriptions. The difference is that dynamics are in the lists maintained in the subscription_manager. But there is no function such is is_dynamic_filter. That is just a comment now.

    Passes tests with the examples code and have not yet run the run_cimoperation.py test. I have not created tests for manual filters, subscriptions.

    This is still a work in progress for today but functionally complete. I need to run tests and we may want to refactor a bit. Note that I am inconsistent between create/remove, etc. on whether the static vs dynamic is a attribute of the call or separate function.

    opened by KSchopmeyer 26
  • Got Error in Windows while executing PyWBEM

    Got Error in Windows while executing PyWBEM

    I'm new to PyWBEM and got this issue while executing this script

    (tools) D:\Soft\PyWBEM\pywbemtools\pywbemtools>workon tools (tools) D:\Soft\PyWBEM\pywbemtools\pywbemtools>make develop File "", line 1 import sys; sys.stdout.write('s.sys.version_info[0:3]) ^ SyntaxError: EOL while scanning string literal File "", line 1 import sys; sys.stdout.write('sys.version_info[0]) ^ SyntaxError: EOL while scanning string literal Traceback (most recent call last): File "", line 1, in TypeError: 'str' object is not callable File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax File "", line 1 $(printf 'try:\n from pbr.version import VersionInfo\nexcept ImportError:\n pass\nelse:\n print(VersionInfo(\042pywbemtools\042).release_string())\n') ^ SyntaxError: invalid syntax wget -q http://pywbem.readthedocs.io/en/latest/_downloads/pywbem_os_setup.sh process_begin: CreateProcess((null), wget -q http://pywbem.readthedocs.io/en/latest/_downloads/pywbem_os_setup.sh, ...) failed. make (e=2): The system cannot find the file specified. make: *** [pywbem_os_setup.sh] Error 2

    (tools) D:\Soft\PyWBEM\pywbemtools\pywbemtools>https://github.com/pywbem/pywbemtools.githttps://github.com/pywbem/pywbemtools.git

    area: devenv resolution: fixed type: cleanup 
    opened by raameshkeerthi 25
  • Fixes #671: Create classes for keeping statistics and add statistics

    Fixes #671: Create classes for keeping statistics and add statistics

    Keeps time statistics on cim_operations. This keeps statistics on time to execute and request/response sizes for the cim operations.

    Implements a Statistics class and connects cim_operations to that class to record execution time, request size, and reply size in that class for each operation type. It saves count, avg time, request size, response size in and exception count in that class for each WBEM operation type by name.

    The Statistics class provides for snapshotting and resetting the statistics in addition to the functions to record each new statistics with start_time() and stop_time()

    NOTE: At this point the statistics are not really general. The class OperationStatistics specializes the statistics for the operations and their is no provision for another class with its specialization at this point.

    Finally, includes ability to disable statistics but I am not really using that capability. You enable statistics for each WBEMConnection.

    In addition, the change adds three attributes to WBEMConnection.

    last_req_len - Always last_reply_len - Always last_operation_time - Only when the enable-stats is set

    ANDY: I goofed and force updated over your changes before I realized you had made them.

    NOTE: This does NOT capture info from the server statistics.

    priority update needed 
    opened by KSchopmeyer 24
  • `python setup.py` failed when ran from taged release tarball

    `python setup.py` failed when ran from taged release tarball

    • Errors: Got error when run python setup.py from release tarball from (https://github.com/pywbem/pywbem/releases/tag/0.12.2)
    ERROR:root:Error parsing
    Traceback (most recent call last):
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/core.py", line 96, in pbr
        attrs = util.cfg_to_args(path, dist.script_args)
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/util.py", line 258, in cfg_to_args
        pbr.hooks.setup_hook(config)
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/hooks/__init__.py", line 25, in setup_hook
        metadata_config.run()
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/hooks/base.py", line 27, in run
        self.hook()
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/hooks/metadata.py", line 26, in hook
        self.config['name'], self.config.get('version', None))
      File "/home/fge/Downloads/pywbem-0.12.2/.eggs/pbr-4.0.2-py3.6.egg/pbr/packaging.py", line 816, in get_version
        name=package_name))
    Exception: Versioning for this project requires either an sdist tarball, or
    access to an upstream git repository. It's also possible that there is a
    mismatch between the package name in setup.cfg and the argument given to
    pbr.version.VersionInfo. Project name pywbem was given, but was not able to be
    found.
    error in setup command: Error parsing
    /home/fge/Downloads/pywbem-0.12.2/setup.cfg: Exception: Versioning for this
    project requires either an sdist tarball, or access to an upstream git
    repository. It's also possible that there is a mismatch between the package
    name in setup.cfg and the argument given to pbr.version.VersionInfo. Project
    name pywbem was given, but was not able to be found.
    
    • Root casue pbr.version.VersionInfo failed to find out the version of current project. The pbr get version from any of below. (https://git.openstack.org/cgit/openstack-dev/pbr/tree/pbr/packaging.py)

      • Get version from git repo: _get_version_from_git().
      • Get from _get_version_from_pkg_metadata which are ['PKG-INFO', 'METADATA'].
      • Environment variable PBR_VERSION or OSLO_PACKAGE_VERSION.
    • How to fix: Add PKG-INFO or METADATA file.

    • Workaround: env PBR_VERSION=0.12.2 python setup.py

    type: enhancement area: setup resolution: fixed release: user generated 
    opened by cathay4t 23
  • Fixes #9, Fixes #329: implement DMTF Pull Operations with tests

    Fixes #9, Fixes #329: implement DMTF Pull Operations with tests

    This commit includes OpenEnumerateInstancesWithPath, PullInstancesWithPath, CloseEnumeration, OpenEnumerateInstancePaths, and PullInstancePaths. The documentation is defined for all but OpenEnumerateInstancePaths and PullInstancePaths.

    The mock test is broken but there is a first set of tests in run_cimoperations.py that executes a number of variations of OpenEnumerateInstancePaths with pull and close against OpenPegasus.

    NOT READY FOR MERGE.

    Here is first cut of part ready for review and comment. In particular, this currently fails mock and only about hallf of operaitons there. Since the documentaiton for each operation is enormous would like to get the first one clean (OpenEnumerateInstances) before doing the other opens.

    Also some code is hacky and we should discuss the enum_context thing class.

    Anyway, it actually works now.

    opened by KSchopmeyer 23
  • SLP support

    SLP support

    slp is the defined discovery mechanism for SNIA smi and DMTF WBEM. However, any slp requests would have to be processed outside pywbem today and further, the only apparent python slp implementation is very old meaning that there is no easy way to introduce slp info within a python/pywbem environment. There are a couple of possibilities here:

    1. a new, improved, slp interface as a github project etc.
    2. let users try to use the existing repositories (see http://openslp.svn.sourceforge.net/)
    3. introduce an slp interface within pwbem

    Looking for ideas about what we should do

    area: code type: enhancement resolution: wont fix 
    opened by KSchopmeyer 23
  • Remaining Python 2.7 / 3.5 deprecation warnings

    Remaining Python 2.7 / 3.5 deprecation warnings

    The setup-python action used in the test workflow invokes pip. On Python 2.7 and 3.5, the pip invocation displays a Python deprecation message:

    DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as
    Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. 
    More details about Python 2support in pip, can be found at
    https://pip.pypa.io/en/latest/development/release-process/#python-2-support
    

    That warning shows up in the actions summary and clutters up the summary. The same happens on Python 3.5.

    When running pip locally, it is possible to disable that warning by setting the environment variable:

    PIP_NO_PYTHON_VERSION_WARNING=1
    

    PR #2962 sets that environment variable in the workflow step that invokes the setup-python action. However, while the environment variable is listed in the log, it seems to be ignored because the warning is still shown.

    The env var PIP_DISABLE_PIP_VERSION_CHECK=1 works as expected with the setup-python action.

    Opened issue https://github.com/actions/setup-python/issues/575 to follow up.

    area: test type: cleanup 
    opened by andy-maier 0
  • Do not retry HTTP POST upon read timeouts

    Do not retry HTTP POST upon read timeouts

    The current implementation retries POST operations, because most POST operations in WBEM are actually read-only. Some of them are not however, and for those this can lead to duplicate execution.

    See https://github.com/pywbem/pywbem/blob/master/pywbem/_cim_operations.py#L208 which sets POST as the only method to retry.

    area: code type: bug roll back needed 
    opened by andy-maier 2
  • Migrate cythonized archive build off of setuptools as a frontend

    Migrate cythonized archive build off of setuptools as a frontend

    PR #2902 transitioned the pywbem distribution archive build away from using setup.py to using the "build" package. That worked for the normal wheel archive, but not for the cythonized archive. PRs #2905 and #2906 were needed to get that back to work and right now, the cythonized archive is again built using setup.py.

    This issue is to transition the build of the cythonized archive build off of setuptools as a frontend.

    type: enhancement area: test 
    opened by andy-maier 0
  • XML QUALIFIER NAME element order

    XML QUALIFIER NAME element order

    The order of XML element names output by Open Pegasus response to class associators request CLASS NAME element differs between pywbem > 3.5 and older versions of pywbem at least in a pywbemtools test that does a class associators request against pywbem mock. The ordering of the components of the QUALIFIER NAME elements is different as shown below. In one case they appear to be lexically ordered. In the other, not so much. This appeared when a test was created to test the class associators response with --outputformat xml and using the new script simple_three-ns-model-script.py but the same class definition exists in the test file simple_mock_model

    
    Python <= 3.5
    <CLASS NAME="CIM_FooRef2" SUPERCLASS="CIM_BaseRef">
          <QUALIFIER NAME="Description" OVERRIDABLE="true" PROPAGATED="false" TOSUBCLASS="true" TRANSLATABLE="true" TYPE="string">
               <VALUE>Class 2 that is referenced</VALUE>
          </QUALIFIER>
     </CLASS>
    
    

    Order output when running with python version ge 3.5

    <CLASS NAME="CIM_FooRef2" SUPERCLASS="CIM_BaseRef">
        <QUALIFIER NAME="Description" OVERRIDABLE="true" PROPAGATED="false" TOSUBCLASS="true" TRANSLATABLE="true" TYPE="string">
               <VALUE>Class 2 that is referenced</VALUE>
         </QUALIFIER>
     </CLASS>
    
    

    This was found when running a test

    area: code type: bug 
    opened by KSchopmeyer 1
  • Coverity corrections

    Coverity corrections

    Running coverity on version 0.15.0 which is the latest packaged version for fedora is reporting some errors. I believe this PR addresses some potential issues that should be considered for inclusion.

    update needed 
    opened by tasleson 5
  • Drop support for Python 3.5

    Drop support for Python 3.5

    With the upgrade of windows-latest on GitHub Actions from Windows Server 2019 to Windows Server 2022 (see here), a number of compile errors appeared in our Window environments on Python 3.5 with minimum package levels (for: cffi, psutil, pyrsistent).

    By changing minimum versions of sometimes setuptools, and sometimes the package itself, the errors for cffi and psutil could be avoided. However, it is not clear what to do for pyrsistent.

    While it would be possible to change the Windows level from windows-latest back to windows-2019, we wanted to do that only on the environments where it fails, and that creates additional complexity in the test workflow file.

    In addition, support for Python 3.5 has created significant work in the past and should be expected to create more work in the future.

    Therefore, the proposal is to drop support for Python 3.5 with pywbem 1.5.0 and pywbemtools 1.1.0.

    area: setup waiting type: cleanup 
    opened by andy-maier 3
Releases(1.5.0)
Owner
PyWBEM Projects
Organization for the PyWBEM projects (e.g. PyWBEM Client)
PyWBEM Projects
Search ports in multiples hosts

Search Port ✨ Multiples Searchs ✨ Create list hosts Create list targets Start Require Python 3.10.0+. python main.py Struture Function Directory load_

Tux#3634 7 Apr 29, 2022
Remote vanilla PDB (over TCP sockets) done right: no extras, proper handling around connection failures and CI.

Overview docs tests package Remote vanilla PDB (over TCP sockets) done right: no extras, proper handling around connection failures and CI. Based on p

Ionel Cristian Mărieș 227 Dec 27, 2022
An API for controlling Wi-Fi connections on Balena devices.

Description An API for controlling Wi-Fi connections on Balena devices. It does not contain an interface, instead it provides API endpoints to send re

8 Dec 25, 2022
PoC code for stealing the WiFi password of a network with a Lovebox IOT device connected

LoveBoxer PoC code for stealing the WiFi password of a network with a Lovebox IOT device connected. This PoC was is what I used in this blogpost Usage

Graham Helton 10 May 24, 2022
Rufus is a Dos tool written in Python3.

🦎 Rufus 🦎 Rufus is a simple but powerful Denial of Service tool written in Python3. The type of the Dos attack is TCP Flood, the power of the attack

Billy 88 Dec 20, 2022
A simple python application for generating a WiFi QR code for ease of connection

A simple python application for generating a WiFi QR code Initialize the class by providing QR code values WiFi_QR_Code(self, error_correction: int =

Ivan 2 Aug 01, 2022
User-friendly packet captures

capture-packets: User-friendly packet captures Please read before using All network traffic occurring on your machine is captured (unless you specify

Seth Michael Larson 2 Feb 05, 2022
Burp Extension that copies a request and builds a FFUF skeleton

ffuf is gaining a lot of traction within the infosec community as a fast portable web fuzzer. It has been compared and aligned (kinda) to Burp's Intruder functionality. Thus, Copy As FFUF is trying t

Desmond Miles 81 Dec 22, 2022
openPortScanner is a port scanner made with Python!

Port Scanner made with python • Installation • Usage • Commands Installation Run this to install: $ git clone https://github.com/Miguel-Galdin0/openPo

Miguel Galdino 7 Jan 09, 2022
GitHub action for sspanel automatically checks in to get free traffic quota

SSPanel_Checkin This is a dish chicken script for automatic check-in of sspanel for GitHub action, It is only applicable when there is no verification

FeedCatWithFish 7 Apr 28, 2022
MQTT Explorer - MQTT Subscriber client to explore topic hierarchies

mqtt-explorer MQTT Explorer - MQTT Subscriber client to explore topic hierarchies Overview The MQTT Explorer subscriber client is designed to explore

Gambit Communications, Inc. 4 Jun 19, 2022
Mass querying whois records using whois tool

Mass querying whois records using whois tool

Mohamed Elbadry 24 Nov 10, 2022
Bark Toolkit is a toolkit wich provides Denial-of-service attacks, SMS attacks and more.

Bark Toolkit About Bark Toolkit Bark Toolkit is a set of tools that provides denial of service attacks. Bark Toolkit includes SMS attack tool, HTTP

13 Jan 04, 2023
Some files casually made by @AneekBiswas

Python-Tools All Pyhthon Files are created and managed by @AneekBiswas Modules needed to be downloaded 1.CLI bagels.py random guess.py random text-tow

1 Feb 23, 2022
Base on browser-time to get har from network, and use python to analyze the data .

base on browser-time to get har from network, and use python to analyze the data

1 Dec 20, 2021
A Network tool kit for scanning active IP addresses and open ports

Network scanner A small project that I wrote on the fly for (IT351) Computer Networks University Course to identify and label the devices in my networ

Mohamed Abdelrahman 10 Nov 07, 2022
Way find out if DNS is down or your instance

DNS-PING Way to find out if DNS is down or your instance Problem: At times it happens that DNS provider services of a website URL is down and so to re

Giten Mitra 4 Nov 18, 2022
Build custom OSINT tools and APIs (Ping, Traceroute, Scans, Archives, DNS, Scrape, Whois, Metadata & built-in database for more info) with this python package

Build custom OSINT tools and APIs with this python package - It includes different OSINT modules (Ping, Traceroute, Scans, Archives, DNS, Scrape, Whoi

QeeqBox 52 Jan 06, 2023
A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other.

A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other. It also provides an Admin role with featur

3 May 22, 2022
A socket script to obtain chinese phones-sequence for any english word

Foreign Pronunciation Generator (English-Chinese) We provide a simple socket script for acquiring Chinese pronunciation of English words (phones in ai

Ephemeroptera 5 Jul 25, 2022