semvec/pypi-packages huggingface dataset:
rejviz 0.0.1
Additional features on top of libguestfs-tools
License: Apache License, Version 2.0

======
Rejviz
======

Rejviz [ray-veez], VM / disk image tools built on top of
libguestfs-tools.

Currently `rejviz-builder` command is implemented.

Commands
========

rejviz-builder
--------------

A command that proxies to `virt-builder` and adds a custom `--nic`
option, which allows to configure network interfaces on the image
(files `/etc/sysconfig/network-scripts/ifcfg-ethX`). All other options
are passed to `virt-builder` untouched.

The format of the `--nic` parameter is:

::

    --nic name=NAME[,key=VALUE]...

    key = {name|hwaddr|bootproto|ipaddr|network|netmask|broadcast}

The values which are not specified can often be inferred (or in case
of hwaddr, autogenerated to a random KVM MAC address).

* If only name is specified, the bootproto is 'dhcp'.

* If name and ipaddr is specified, the bootproto is 'static' and and
  the other values are inferred as for a /32 network.


Example usage:

::

    rejviz-builder centos-7.0 \
        -o mycentos.qcow2 --format qcow2 --size 15G \
        --hostname mycentos --root-password password:mypassword \
        --nic name=eth0 \
        --nic name=eth1,ipaddr=192.168.122.15 \
        --nic name=eth2,ipaddr=192.168.123.15

Design doc
==========

Use cases
---------

* Create a VM image

  * From base image

  * Having some size

  * With some script run

  * With network interfaces configured (some DHCP, some static IPs)

  * Subscribed via RHSM

* Create a VM

  * With network interface MAC addresses matching the interfaces from
    the image

  * With some RAM and vCPUs

* Amend existing VM image (or libvirt domain)

  * Reconfigure network interfaces

  * Re-subscribe via RHSM

* Tell me something about an image (or libvirt domain)

  * List network interfaces and their basic config

  * Check that MACs on the domain match MACs in
    ``/etc/sysconfig/network-scripts``

I/O view
--------

* Creating an image

  * In: params

  * Out: image

  * ``rejviz-builder`` command that proxies to virt-builder and adds
    custom params on top (RHSM, network interfaces)

* Creating a VM

  * In: image and params

  * Out: domain XML or created domain (both through virt-install)

  * ``rejviz-install`` command that proxies to virt-install and
    determines some of the parameters from the image

* Amending an image (or libvirt domain)

  * In: (image or domname) and params

  * Out: image edited in place

  * ``rejviz-customize`` command that proxies to virt-customize and
    adds custom params on top (RHSM, network interfaces)

* Image/domain introspection

  * In: (image or domname) and params

  * Out: information printed

  * ``rejviz-peek``