Metadata-Version: 2.4
Name: linuxfabrik-lib
Version: 2024060401
Summary: Python libraries used in various Linuxfabrik projects, including the 'Linuxfabrik Monitoring Plugins' project.
Author-email: "Linuxfabrik GmbH, Zurich, Switzerland" <info@linuxfabrik.ch>
License: This is free and unencumbered software released into the public domain.
        
        Anyone is free to copy, modify, publish, use, compile, sell, or
        distribute this software, either in source code form or as a compiled
        binary, for any purpose, commercial or non-commercial, and by any
        means.
        
        In jurisdictions that recognize copyright laws, the author or authors
        of this software dedicate any and all copyright interest in the
        software to the public domain. We make this dedication for the benefit
        of the public at large and to the detriment of our heirs and
        successors. We intend this dedication to be an overt act of
        relinquishment in perpetuity of all present and future rights to this
        software under copyright law.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
        OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        OTHER DEALINGS IN THE SOFTWARE.
        
        For more information, please refer to <http://unlicense.org/>
Project-URL: Homepage, https://github.com/Linuxfabrik/lib
Project-URL: Documentation, https://github.com/Linuxfabrik/lib/blob/master/README.md
Project-URL: Source, https://github.com/Linuxfabrik/lib
Project-URL: Tracker, https://github.com/Linuxfabrik/lib/issues
Project-URL: Download, https://github.com/Linuxfabrik/lib/releases
Keywords: lib,libs,monitoring,monitoring plugins,icinga,nagios
Classifier: Development Status :: 6 - Mature
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Telecommunications Industry
Classifier: License :: OSI Approved :: The Unlicense (Unlicense)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Networking :: Monitoring
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: beautifulsoup4
Requires-Dist: lxml
Requires-Dist: netifaces
Requires-Dist: psutil
Requires-Dist: pymysql
Requires-Dist: pysmbclient
Requires-Dist: python-keystoneclient
Requires-Dist: python-novaclient
Requires-Dist: python-swiftclient
Requires-Dist: pywinrm
Requires-Dist: requests
Requires-Dist: smbprotocol
Requires-Dist: vici
Requires-Dist: xmltodict
Dynamic: license-file

# Linuxfabrik's Python Libraries

These Python libraries are used in various projects of Linuxfabrik, including the [Linuxfabrik Monitoring Plugins project](https://github.com/Linuxfabrik/monitoring-plugins).


## Installation

`pip install linuxfabrik-lib`


## Documentation

For example by browsing http://localhost:8080/ after starting `pydoc -p 8080`.


## List of libraries


* args.py:  
Extends argparse by new input argument data types on demand.

* base.py:  
Provides very common every-day functions.

* cache.py:  
Simple Cache in the form of a Key-Value Store (KVS) like Redis, based on SQLite, optionally supporting expiration of keys. No detailed error handling here. If the cache does not work, we (currently) don't report the reason and simply return `False`.

* db_mysql.py:  
Library for accessing MySQL/MariaDB servers.

* db_sqlite.py:  
Library for accessing SQLite databases.

* disk.py:  
Offers file and disk related functions, like getting a list of partitions, grepping a file, etc.

* distro.py:  
Provides information about the Linux distribution it runs on, such as a reliable machine-readable distro ID and "os_family" (known from Ansible).

* dmidecode.py:  
Library for parsing information from dmidecode. Have a look at `man dmidecode` for details about dmidecode.

* endoflifedate.py:  
This library stores information from https://endoflife.date/api/ for offline usage and therefore needs to be updated periodically when version checks don't have access to the Internet.

* feedparser.py:  
Parse Atom and RSS feeds in Python.

* globals.py:  
This library defines the global plugin states, based on the POSIX spec of returning a positive value and just like in `monitoring-plugins/plugins-scripts/utils.sh.in`, except that we do not make use of `STATE_DEPENDENT`.

* grassfish.py:  
Provides functions using the Grassfish REST-API.

* huawei.py:  
This library collects some Huawei related functions that are needed by Huawei check plugins.

* human.py:  
Functions to convert raw numbers, times etc. to a human readable representation (and sometimes back).

* icinga.py:  
This module tries to make accessing the Icinga2 API easier.

* infomaniak.py:  
Provides functions using the Infomanik REST-API.

* jitsi.py:  
This library collects some Jitsi related functions that are needed by more than one Jitsi plugin.

* librenms.py:  
This library collects some LibreNMS related functions that are needed by LibreNMS check plugins.

* net.py:  
Provides network related functions and variables.

* nodebb.py:  
This library collects some NodeBB related functions that are needed by more than one NodeBB plugin.

* powershell.py:  
This library collects some Microsoft PowerShell related functions.

* psutil.py:  
Wrapper library for functions from psutil.

* redfish.py:  
This library parses data returned from the Redfish API.

* rocket.py:  
This library collects some Rocket.Chat related functions that are needed by more than one Rocket.Chat plugin.

* shell.py:  
Communicates with the Shell.

* smb.py:  
Provides functions to establish native SMB connections.

* test.py:  
Provides test functions for unit tests.

* time.py:  
Provides datetime functions.

* txt.py:  
A collection of text functions.

* url.py:  
Get for example HTML or JSON from an URL.

* veeam.py:  
This library interacts with the Veeam Enterprise Manager API.

* version.py:  
Provides functions for handling software versions.

* wildfly.py:  
This library collects some WildFly/JBoss related functions that are needed by more than one WildFly/JBoss plugin.

* winrm.py:  
This library collects some Microsoft WinRM related functions.
