ovirt-imageio-proxy
===================

The oVirt ImageIO Proxy provides a proxy server allowing clients to
perform I/O with VM disk images and ISOs located within the oVirt
virtualization environment.


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

The image proxy can be installed on most hosts that have a working
Python 2 environment with the needed dependencies.  To install the
rpm package:

  sudo yum install ovirt-imageio-proxy
  engine-setup

This will install all necessary dependencies and launch the setup,
which is a module run by the oVirt engine setup program.  The prompts
during setup depend on other installed packages; if ovirt-engine is
on the host you may be prompted with additional questions.  On a
separate host, you will be prompted to perform manual steps for the
PKI setup.

Installation from source is not recommended.  If you want to run the
proxy without installing the packages and runing engine-setup, it's
best to run it in-place using the --config_file option to supply the
runtime configuration.


Installation with ovirt-engine developer environment
======================================================
For setting up ovirt-imageio-proxy in an ovirt dev environment, run:

  make
  make install-dev ENGINE_PREFIX=<engine prefix>

Example:

   make install-dev ENGINE_PREFIX=/home/user/my-ovirt-engine

If ovirt-imageio-proxy wasn't configured yet, run engine setup, and 
choose "Yes" when prompted to install oVirt ImageIO proxy. After engine 
setup finishes to run, run `ovirt-imageio-proxy`.


Development
===========

Patches are welcome!

For setting up ovirt-imageio-proxy in an ovirt dev environment, please
refer to the previous section.

During development you may want to build/install the proxy.  There are
a few ways to go about this:

  `ovirt-imageio-proxy [options]` - run the proxy in-place, with debug
   options and alternate paths to configuration files, if desired.

  `python setup.py install` - Build/install the lib files and main
   script, but not the service/log/etc files.

  `make install` - Build/install everything (with DESTDIR specified
   if packaging); this uses python-setuptools for some of the work.

  `make rpm` - Build the proxy and setup rpms; this uses
   python-setuptools for some of the work.

When using an editor with code completion, it may be useful to have run
`make generated-files` to create any files with constants that depend
on the environment.

Before submitting changes, please be sure to:

 - Apply the git commit template
   (`git config commit.template commit-template.txt`).

 - Verify that unit tests pass (`make check` or `py.test`).  As of this
   writing, running the unit tests on Fedora 23 requires the pytest and
   python-pytest-cov packages.

Please send any patches to:

  gerrit.ovirt.org/ovirt-imageio


Packaging
=========

Multiple packaging options are available:
  make dist  ## compile and create a distribution tarball
  make rpm   ## compile and create an rpm


Getting Help
============

Please send mail to one of the following lists for help.

 - For discussion of proxy usage and general help:
   http://lists.ovirt.org/mailman/listinfo/users

 - For technical discussion about the project and its code:
   http://lists.ovirt.org/mailman/listinfo/devel


Licensing
=========

The oVirt ImageIO Proxy is provided under the terms of the GPLv2 License.
The oVirt ImageIO Proxy setup plugin is provided under the terms of the
Apache License, Version 2.0.

Please see the COPYING files in the proxy and proxy/setup directories
for complete license terms.

-- End of readme
