Skip to content

Commit

Permalink
Fixes issue #52 (#63)
Browse files Browse the repository at this point in the history
* move to rst format
* move requirements under PM section
* update requirements
  • Loading branch information
lukas-bednar authored Jun 22, 2016
1 parent 4326f0e commit b6ea845
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 144 deletions.
143 changes: 0 additions & 143 deletions README.md

This file was deleted.

183 changes: 183 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
|Build Status|
|Code Coverage|
|Code Health|

python-rrmngmnt
===============

Remote Resources MaNaGeMeNT

Intro
-----

This tool helps you manage remote machines and services running on that.
It is targeted to Linux based machines. All is done via SSH connection,
that means SSH server must be running there already.

.. code:: python
from rrmngmnt import Host, RootUser
h = Host("10.11.12.13")
h.users.append(RootUser('123456'))
exec = h.executor()
print exec.run_cmd(['echo', 'Hello World'])
Features
--------

List of provided interfaces to manage resources on machine, and
examples.

Filesystem
~~~~~~~~~~

Basic file operations, you can find there subset of python 'os' module
related to files.

.. code:: python
print h.fs.exists("/path/to/file")
h.fs.chown("/path/to/file", "root", "root")
h.fs.chmod("/path/to/file", "644")
h.fs.unlink("/path/to/file")
Network
~~~~~~~

It allows to manage network configuration.

.. code:: python
print h.network.hostname
h.network.hostname = "my.machine.org"
print h.network.all_interfaces()
print h.network.list_bridges()
Package Management
~~~~~~~~~~~~~~~~~~

It encapsulates various package managements. It is able to determine
which package management to use. You can still specify package management
explicitly.


Implemented managements:

- APT
- YUM
- DNF
- RPM

.. code:: python
# install htop package using implicit management
h.package_management.install('htop')
# remove htop package using rpm explicitly
h.package_management('rpm').remove('htop')
System Services
~~~~~~~~~~~~~~~

You can toggle system services, it encapsulates various service managements.
It is able to determine which service management to use in most cases.


Implemented managements:

- Systemd
- SysVinit
- InitCtl

.. code:: python
if h.service('httpd').status():
h.service('httpd').stop()
if h.service('httpd').is_enabled():
h.service('httpd').disable()
Operating System Info
~~~~~~~~~~~~~~~~~~~~~

Host provide ``os`` attribute which allows obtain basic operating
system info.
Note that ``os.release_info`` depends on systemd init system.

.. code:: python
print h.os.distribution
# Distribution(distname='Fedora', version='23', id='Twenty Three')
print h.os.release_info
# {'HOME_URL': 'https://fedoraproject.org/',
# 'ID': 'fedora',
# 'NAME': 'Fedora',
# 'PRETTY_NAME': 'Fedora 23 (Workstation Edition)',
# 'VARIANT': 'Workstation Edition',
# 'VARIANT_ID': 'workstation',
# 'VERSION': '23 (Workstation Edition)',
# 'VERSION_ID': '23',
# ...
# }
print h.os.release_str
# Fedora release 23 (Twenty Three)
Storage Management
~~~~~~~~~~~~~~~~~~

It is in PROGRESS state. Planed are NFS & LVM services.

Power Management
~~~~~~~~~~~~~~~~

Give you possibility to control host power state, you can restart,
poweron, poweroff host and get host power status.


Implemented managements:

- SSH
- IPMI

.. code:: python
ipmi_user = User(pm_user, pm_password)
ipmi_params = {
'pm_if_type': 'lan',
'pm_address': 'test-mgmt.testdomain',
'user': ipmi_user
}
h.add_power_manager(
power_manager.IPMI_TYPE, **ipmi_params
)
# restart host via ipmitool
h.power_manager.restart()
Requires
--------

- paramiko
- netaddr
- six

Install
-------

.. code:: sh
python setup.py devop
Test
----

.. code:: sh
tox
.. |Build Status| image:: https://travis-ci.org/rhevm-qe-automation/python-rrmngmnt.svg?branch=master
:target: https://travis-ci.org/rhevm-qe-automation/python-rrmngmnt
.. |Code Coverage| image:: https://codecov.io/gh/rhevm-qe-automation/python-rrmngmnt/branch/master/graph/badge.svg
:target: https://codecov.io/gh/rhevm-qe-automation/python-rrmngmnt
.. |Code Health| image:: https://landscape.io/github/rhevm-qe-automation/python-rrmngmnt/master/landscape.svg?style=flat
:target: https://landscape.io/github/rhevm-qe-automation/python-rrmngmnt/master
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = python-rrmngmnt
author = Lukas Bednar
author-email = [email protected]
summary = Tool to manage remote systems and services
description-file = README.md
description-file = README.rst
home-page = https://github.com/rhevm-qe-automation/python-rrmngmnt
license = GPLv2
classifier =
Expand Down

0 comments on commit b6ea845

Please sign in to comment.