Python API

The API allows you to perform actions on instances programmatically. Below is an example of changing parameters and launching the myinstance instance.

import logging

from compute import Session

logging.basicConfig(level=logging.DEBUG)

with Session() as session:
    instance = session.get_instance('myinstance')
    instance.set_vcpus(4)
    instance.start()
    instance.set_autostart(enabled=True)

Session context manager provides an abstraction over libvirt.virConnect and returns objects of other classes of the present library.

Entity representation

Entities such as a compute-instance are represented as classes. These classes directly call libvirt methods to perform operations on the hypervisor. An example class is Volume.

The configuration files of various libvirt objects in compute are described by special dataclasses. The dataclass stores object parameters in its properties and can return an XML config for libvirt using the to_xml() method. For example VolumeConfig.

Pydantic models are used to validate input data. For example VolumeSchema.

Modules documentation