50 lines
1.4 KiB
ReStructuredText
50 lines
1.4 KiB
ReStructuredText
|
Python API
|
||
|
==========
|
||
|
|
||
|
The API allows you to perform actions on instances programmatically. Below is
|
||
|
an example of changing parameters and launching the `myinstance` instance.
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
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)
|
||
|
|
||
|
|
||
|
:class:`Session` context manager provides an abstraction over :class:`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
|
||
|
:class:`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 :class:`VolumeConfig`.
|
||
|
|
||
|
`Pydantic <https://docs.pydantic.dev/>`_ models are used to validate input data.
|
||
|
For example :class:`VolumeSchema`.
|
||
|
|
||
|
Modules documentation
|
||
|
---------------------
|
||
|
|
||
|
.. toctree::
|
||
|
:maxdepth: 4
|
||
|
|
||
|
session
|
||
|
instance/index
|
||
|
storage/index
|
||
|
utils
|
||
|
exceptions
|