The API is fairly stable. There were some major changes/additions some years ago, but it has been stable for a while now so this proposed doc should also remain stable for some time.

This doc could definitely be considered more upstream that Fedora specific. But this is a gap that needs to be filled. Obviously we should attempt to include the libvirt developers in this effort. They have a web site where you can download the code but there is no documentation. So creating a joint effort would benefit both parties.

David Ashley

On 06/12/2015 03:55 PM, Sandra McCann wrote:
Good to see you jumping right in, David!

So I'm not familiar with the API etc, but the question that pops into my head is - do you know how often it changes?  Meaning if you create this document for Fedora 23, would you anticipate it would be fairly stable after that, or are there API additions and changes that come up frequently?

The other question that pops up is  whether this is really Fedora-specific or a more general api document for upstream libvirt?  

Sandra

On Fri, Jun 12, 2015 at 11:12 AM, David Ashley <w.david.ashley@gmail.com> wrote:
All -

I want to propose a new document to be included with the standard set of Fedora Docs. The title would be something like Scripting Virtual Machines Using Python.

One of the things that is missing from the topic of virtualization with Fedora (or any other distribution) is automation. By this I mean the administration and usage of VMs using scripting. This is an area in which I have over 7 years of experience. At one time I managed a software build environment of 50 VMs on a single server. The VMs included Windows and Linux distributions of differing release levels. Each VM was organized as an on demand service i.e. it was in a running state only when there was a software build to be performed. Thus a lot of scripting was used to bring up each VM, invoke the build task, and then shut down the VM until it was needed again. A job queue was also used to manage the work to be performed.

At the time I originally built this environment I used virsh to perform the commands necessary to manage the VMs, But as time went on I migrated a lot of those scripts to Python because it had a more robust interface to libvirt. It also made it possible to create threads to perform multiple build tasks at the same time.

The document I am proposing would fill the gap between virsh and C/C++ by documenting the Python libvirt interface. Currently there is no reference material documenting this interface and only sparse example material available. This document would fill that gap.

Here is my proposed outline for the document.

1. Introduction to libvirt
2. Using virsh
3. Introduction to the Python libvirt module
4. Connection Class and Function Reference
5. Domain Class and Function Reference
6. Network Class and Function Reference
7. Interface Class and Function Reference
8. Storage Pool and StorageVol Classes Reference
9. Node Device Class Reference
10. Secret Class Reference
11. NW Filter Class Reference
12. Stream Class Reference
13. Domain Snapshot Class Reference
14. Example Programs

Obviously I am not an expert is all of these topics. I will need input from the contributors who do have the expertise to fill out the document. But I can author at least half the document.

So let the discussion begin. I am open to all feedback.

W. David Ashley
--
docs mailing list
docs@lists.fedoraproject.org
To unsubscribe:
https://admin.fedoraproject.org/mailman/listinfo/docs