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
 |