semvec/pypi-packages huggingface dataset:
easy-manage 0.0.1
Managing server infrastructure easily

# easy-manage :fish:

This python package has been created to facilitate remote server management. 
It is focused on out-of-band management through IPMI and Redefish standards, however, 
it is possible to perform in-band management with it.

The reason of creation of such package is need to unify server management regardless of
standard or protocol we use below. Easy-manage delivers unified management interface. 


Easy-manage is able to connet either Network Interface Card assigned to BMC or whole system.
You can give multiple IP addresses to ControllerFactory and it will try to connect to all of them.
Example config:

```
from easy_manage.tools import Protocol
from easy_manage import Credentials

bmc_credentials = Credentials('username', 'password')
system_credentials = Credentials('username2', 'password2')

config = {
    Protocol.REDFISH: {
        'address': bmc_ip_address,
        'credentials': bmc_credentials
    },
    Protocol.IPMI: {
        'address': bmc_ip_address,
        'credentials': bmc_credentials
    },
    Protocol.BASH: {
        'address': system_ip_address,
        'credentials': system_credentials
    },
}
```

Above configuration will enable user to connect to device with all three accessible protocols. 
To create abstract controller over theses interfaces, we need to use ControllerFactory

```
controller = ControllerFactory.get_controller(config)
```

Now it is ready to use.

```
# See all available system methods
print(ControllerFactory.get_methods(controller.system))

# See all available chassis methods
print(ControllerFactory.get_methods(controller.chassis))

# Test simple abstract methods
print(controller.chassis.get_power_state())
print(controller.system.get_led_state())
controller.system.power_on()
```

Connector depending on its configuration is able to aggregate up to three components:
 - System
 - Chassis
 - Shell

You can get bulk data from every component using pre-defined methods `redings()`, `static_data()` and `raw_data()` on controller components.

```
from pprint import pprint

pprint(controller.shell.readings())
pprint(controller.system.static_data())
pprint(controller.chassis.raw_data())
```

What is important, you can invoke methods through any connected component interface by referencing it explicitly. Above calls could be transformed to:

```
from pprint import pprint

pprint(controller.components['shell']['bash'].readings())
pprint(controller.components['system']['redfish'].static_data())
pprint(controller.components['chassis']['redfish'].raw_data())

# PowerShell is not supported yet
#pprint(controller.components['shell']['power_shell'].readings())
pprint(controller.components['system']['ipmi'].static_data())
pprint(controller.components['system']['ipmi'].static_data())
```


See more examples in demo/demo.py

Package has been designed to provide command line tool but it has not been binded with implemented functionalities yet.

Please note that this package came into existence as a part of bachelor's thesis and has not 
been commercially used and thus may be buggy.
taskmg 1.0.dev0
A task manager
Keywords: task manager

.. image:: https://travis-ci.org/jeremiedecock/taskmg.svg?branch=master
    :target: https://travis-ci.org/jeremiedecock/taskmg

=======
Task-Mg
=======

Copyright (c) 2015-2020 Jeremie DECOCK (http://www.jdhp.org)

* Web site: http://www.jdhp.org/projects_en.html
* Source code: https://github.com/jeremiedecock/taskmg
* Issue tracker: https://github.com/jeremiedecock/taskmg/issues
* Task-Mg on PyPI: https://pypi.python.org/pypi/taskmg
* Task-Mg on Anaconda Cloud: https://anaconda.org/jdhp/taskmg


Description
===========

This software is an open source task manager.

.. warning::

    This project is in beta stage.


Dependencies
============

- Python >= 3.0
- Qt5 for Python
- Pandas


.. _install:

Installation
============

Gnu/Linux
---------

You can install, upgrade, uninstall Task-Mg with these commands (in a
terminal)::

    pip install --pre taskmg
    pip install --upgrade taskmg
    pip uninstall taskmg

Or, if you have downloaded the Task-Mg source code::

    python3 setup.py install

.. There's also a package for Debian/Ubuntu::
.. 
..     sudo apt-get install taskmg

Windows
-------

.. Note:
.. 
..     The following installation procedure has been tested to work with Python
..     3.4 under Windows 7.
..     It should also work with recent Windows systems.

You can install, upgrade, uninstall Task-Mg with these commands (in a
`command prompt`_)::

    py -m pip install --pre taskmg
    py -m pip install --upgrade taskmg
    py -m pip uninstall taskmg

Or, if you have downloaded the Task-Mg source code::

    py setup.py install

MacOSX
-------

Note:

    The following installation procedure has been tested to work with Python
    3.5 under MacOSX 10.9 (*Mavericks*).
    It should also work with more recent MacOSX systems.

You can install, upgrade, uninstall Task-Mg with these commands (in a
terminal)::

    pip install --pre taskmg
    pip install --upgrade taskmg
    pip uninstall taskmg

Or, if you have downloaded the Task-Mg source code::

    python3 setup.py install

Task-Mg requires Qt5 and its Python 3 bindings plus few additional
libraries to run.

.. These dependencies can be installed using MacPorts::
.. 
..     port install gtk3
..     port install py35-gobject3
..     port install py35-matplotlib

.. or with Hombrew::
.. 
..     brew install gtk+3
..     brew install pygobject3


Bug reports
===========

To search for bugs or report them, please use the Task-Mg Bug Tracker at:

    https://github.com/jeremiedecock/taskmg/issues


License
=======

This project is provided under the terms and conditions of the
`MIT License`_.

.. _MIT License: http://opensource.org/licenses/MIT
.. _Task-Mg: https://github.com/jeremiedecock/taskmg
.. _command prompt: https://en.wikipedia.org/wiki/Cmd.exe