Metadata-Version: 1.1
Name: arguspy
Version: 1.3.1
Summary: Common interface of tons protocals, used for monitoring tools, like nagios/icinga...
Home-page: https://github.com/crazy-canux/arguspy
Author: Canux CHENG
Author-email: canuxcheng@gmail.com
License: GPL
Description: .. image:: https://img.shields.io/pypi/v/arguspy.svg
           :target: https://pypi.python.org/pypi/arguspy/
        
        .. image:: https://img.shields.io/pypi/dm/arguspy.svg
           :target: https://pypi.python.org/pypi/arguspy/
        
        .. image:: https://travis-ci.org/crazy-canux/arguspy.svg?branch=master
           :target: https://travis-ci.org/crazy-canux/arguspy
        
        .. image:: https://coveralls.io/repos/github/crazy-canux/arguspy/badge.svg?branch=master
           :target: https://coveralls.io/github/crazy-canux/arguspy?branch=master
        
        
        =======
        arguspy
        =======
        
        .. figure:: https://github.com/crazy-canux/arguspy/blob/master/data/images/argus.jpg
           :alt: pic1
        
        Arguspy is pure python code.
        
        It's a API packge for monitoring plugins, like Nagios, Icinga, Naemon, Shinken, Centreon, Opsview and Sensu.
        
        `[awesome-monitoring] <https://github.com/crazy-canux/awesome-monitoring>`_.
        
        --------------
        How to install
        --------------
        
        Use pip to install::
        
            $ pip install arguspy
        
        ----------
        How to use
        ----------
        
        Just import what protocol you need::
        
            from arguspy.ftp_ftplib import Ftp
            from arguspy.http_requests import Http
            from arguspy.mssql_pymssql import Mssql
            from arguspy.mysql_pymysql import Mysql
            from arguspy.ssh_paramiko import Ssh
            from arguspy.winrm_pywinrm import WinRM
            from arguspy.wmi_sh import Wmi
            from arguspy.wmi_subprocess import Wmi
        
        Then write your own function monitoring class::
        
            class YourClass(Ftp/Mssql/Ssh/WinRM/Wmi/Http/Snmp/...):
                def __init__(self):
                    super(YourClass, self).__init__()
                    self.logger.debug("Init YourClass.")
        
                def define_sub_options(self):
                    super(YourClass, self).define_sub_options()
                    self.your_parser = self.subparsers.add_parser(...)
                    self.your_parser.add_argument(...)
                    ...
        
                def your_handle(self):
                    """Put your function monitoring code here."""
                    # Default status is ok.
                    status = self.ok
        
                    # Call the API and get the monitoring data.
                    # Read the document or check the API on python/ipython Interactive console.
                    # help(Ftp/...)
                    # dir(Ftp/...)
                    ...
        
                    #  Compare with the warning and critical value and change the status.
                    ...
        
                    self.shortoutput = "..."
                    self.longoutput.append(...)
                    self.perfdata.append(...)
        
                    self.logger.debug("Return status and output.")
                    status(self.output())
        
        If you put more than one function monitoring class in one file(Not recommend)::
        
            class Register(YourClass1, YourClass2, ...):
                def __init__(self):
                    super(Register, self).__init__()
        
        Last step::
        
            def main():
                plugin = Register()
                if plugin.args.option == 'action':
                    plugin.action_handle()
                elif ...:
                    ...
                else:
                    plugin.unknown("Unknown actions.")
        
            if __name__ == "__main__":
                main()
        
        --------------
        How to extends
        --------------
        
        Check the TODO list, you can give test examples or documents.
        
        Also you can pull request for your code.
        
        -----
        TODO
        -----
        
        * Write unit tests in tests/
        * Write docs in docs/
        * Write examples in examples/
        * Compatible with Python3(2.0.0)
        * vSphere monitoring(1.6.0)
        * LDAP monitoring(1.5.0)
        * SNMP monitoring(1.4.0)
        * Fix all pylint errors(1.3.3)
        * Implement threshold(1.3.2)
        * Refactor argparse(1.3.1)
        * Threshold(1.3.0)
        
        ============
        Contribution
        ============
        
        `[Contribution] <https://github.com/crazy-canux/arguspy/blob/master/CONTRIBUTING.rst>`_
        
        =======
        Authors
        =======
        
        `[Authors] <https://github.com/crazy-canux/arguspy/blob/master/AUTHORS.rst>`_
        
        =======
        License
        =======
        
        `[License] <https://github.com/crazy-canux/arguspy/blob/master/LICENSE>`_
        
Keywords: monitoring nagios icinga plugins
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: System :: Monitoring
