Skip to content

Commit

Permalink
Make platform support more explicit in documentation (Linux)
Browse files Browse the repository at this point in the history
  • Loading branch information
xolox committed Oct 29, 2015
1 parent 89d44be commit e372432
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 28 deletions.
44 changes: 28 additions & 16 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ Scriptable KVM/QEMU guest agent implemented in Python
=====================================================

The Python packages negotiator-host_, negotiator-guest_ and negotiator-common_
together implement a scriptable KVM/QEMU guest agent infrastructure in Python.
This infrastructure supports realtime bidirectional communication between hosts
and guests which allows the hosts and guests to invoke user defined commands on
'the other side'.
together implement a scriptable KVM_/QEMU_ guest agent infrastructure in
Python. This infrastructure supports realtime bidirectional communication
between Linux_ hosts and guests which allows the hosts and guests to invoke
user defined commands on 'the other side'.

Because the user defines the commands that hosts and guests can execute, the
user controls the amount of influence that hosts and guests have over each
Expand All @@ -19,10 +19,12 @@ Status
Some points to consider:

- The Negotiator project does what I expect from it: realtime bidirectional
communication between KVM/QEMU hosts and guests.
communication between Linux based KVM/QEMU hosts and guests.

- The project doesn't have an automated test suite yet, although its
functionality has been extensively tested during development.
- The project doesn't have an automated test suite, although its functionality
has been extensively tested during development and is being used in a
production environment on more than 100 virtual machines (for non-critical
tasks).

- The project has not been peer reviewed with regards to security. My primary
use case is KVM/QEMU hosts and guests that trust each other to some extent
Expand All @@ -31,11 +33,14 @@ Some points to consider:
Installation
------------

The ``negotiator`` packages and their dependencies are compatible with Python
2.6 and newer and are all pure Python. This means you don't need a compiler
toolchain to install the ``negotiator`` packages. This is a design decision and
The `negotiator` packages and their dependencies are compatible with Python 2.6
and newer and are all pure Python. This means you don't need a compiler
toolchain to install the `negotiator` packages. This is a design decision and
so won't be changed.

.. contents::
:local:

On KVM/QEMU hosts
~~~~~~~~~~~~~~~~~

Expand All @@ -57,7 +62,7 @@ If you prefer you can install the Python package in a virtual environment:
After installation the ``negotiator-host`` program is available. The usage
message will help you get started, try the ``--help`` option. Now you need to
find a way to run the ``negotiator-host`` command as a daemon. I have good
experiences with ``supervisord``, here's how to set that up:
experiences with supervisord_, here's how to set that up:

.. code-block:: bash
Expand Down Expand Up @@ -90,7 +95,7 @@ If you prefer you can install the Python package in a virtual environment:
$ pip install negotiator-guest
After installation you need to find a way to run the ``negotiator-guest``
command as a daemon. I have good experiences with ``supervisord``, here's how
command as a daemon. I have good experiences with supervisord_, here's how
to set that up:
.. code-block:: bash
Expand Down Expand Up @@ -162,6 +167,9 @@ Debugging
This section contains hints about what to do when things don't work as
expected.
.. contents::
:local:
Broken channels on KVM/QEMU hosts
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -183,8 +191,8 @@ default) you may need to apply the following patch:
.. code-block:: bash
$ diff -u /etc/apparmor.d/abstractions/libvirt-qemu.orig /etc/apparmor.d/abstractions/libvirt-qemu
--- /etc/apparmor.d/abstractions/libvirt-qemu.orig 2014-09-19 12:46:54.316593334 +0200
+++ /etc/apparmor.d/abstractions/libvirt-qemu 2014-09-24 14:43:43.642064576 +0200
--- /etc/apparmor.d/abstractions/libvirt-qemu.orig 2015-09-19 12:46:54.316593334 +0200
+++ /etc/apparmor.d/abstractions/libvirt-qemu 2015-09-24 14:43:43.642064576 +0200
@@ -49,6 +49,9 @@
/run/shm/ r,
owner /run/shm/spice.* rw,
Expand Down Expand Up @@ -259,7 +267,7 @@ official QEMU guest agent does:
Contact
-------
The latest version of ``negotiator`` is available on PyPI_ and GitHub_. You can
The latest version of `negotiator` is available on PyPI_ and GitHub_. You can
find the documentation on `Read The Docs`_. For bug reports please create an
issue on GitHub_. If you have questions, suggestions, etc. feel free to send me
an e-mail at `peter@peterodding.com`_.
Expand All @@ -269,17 +277,21 @@ License
This software is licensed under the `MIT license`_.
© 2014 Peter Odding.
© 2015 Peter Odding.
.. External references:
.. _environment variables: http://negotiator.readthedocs.org/en/latest/#negotiator_host.GuestChannel.prepare_environment
.. _GitHub: https://github.com/xolox/python-negotiator
.. _KVM: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
.. _Linux: https://en.wikipedia.org/wiki/Linux
.. _MIT license: http://en.wikipedia.org/wiki/MIT_License
.. _negotiator-common: https://pypi.python.org/pypi/negotiator-common
.. _negotiator-guest: https://pypi.python.org/pypi/negotiator-guest
.. _negotiator-host: https://pypi.python.org/pypi/negotiator-host
.. _official guest agent: http://wiki.libvirt.org/page/Qemu_guest_agent
.. _peter@peterodding.com: peter@peterodding.com
.. _PyPI: https://pypi.python.org/pypi/negotiator-host
.. _QEMU: https://en.wikipedia.org/wiki/QEMU
.. _Read The Docs: http://negotiator.readthedocs.org/en/latest/
.. _supervisord: http://supervisord.org/
.. _the same mechanism: http://www.linux-kvm.org/page/VMchannel_Requirements
2 changes: 1 addition & 1 deletion common/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2014 Peter Odding
Copyright (c) 2015 Peter Odding

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
2 changes: 1 addition & 1 deletion common/negotiator_common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
from negotiator_common.config import BUILTIN_COMMANDS_DIRECTORY, USER_COMMANDS_DIRECTORY

# Semi-standard module versioning.
__version__ = '0.8'
__version__ = '0.8.2'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down
7 changes: 1 addition & 6 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

# General information about the project.
project = u'negotiator'
copyright = u'2014, Peter Odding'
copyright = u'2015, Peter Odding'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down Expand Up @@ -63,11 +63,6 @@
# a list of builtin themes.
html_theme = 'default'

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['static']

# Output file base name for HTML help builder.
htmlhelp_basename = 'negotiatordoc'

Expand Down
2 changes: 1 addition & 1 deletion guest/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2014 Peter Odding
Copyright (c) 2015 Peter Odding

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
2 changes: 1 addition & 1 deletion guest/negotiator_guest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from negotiator_common.utils import compact, GracefulShutdown

# Semi-standard module versioning.
__version__ = '0.8'
__version__ = '0.8.2'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down
2 changes: 1 addition & 1 deletion host/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2014 Peter Odding
Copyright (c) 2015 Peter Odding

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
2 changes: 1 addition & 1 deletion host/negotiator_host/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from executor import execute

# Semi-standard module versioning.
__version__ = '0.8.1'
__version__ = '0.8.2'

# Initialize a logger for this module.
logger = logging.getLogger(__name__)
Expand Down

0 comments on commit e372432

Please sign in to comment.