In Chapter 2, KVM Internals, you learned about libvirt. It provides a set of stable APIs to manage virtualization infrastructure on a host machine. This includes storage, networks, network interface, host devices, hypervisor, and virtual machines. It basically acts as an intermediary between hypervisor (qemu-kvm) and user-space applications.
The libvirt API supports C and C++ directly and has bindings for other languages, such as C#, Java, Python, OCaml, PHP, and Ruby.
The virt-manager, is a de facto GUI tool that manages KVM virtualization and uses a Python binding, whereas the virsh
command is written in the C-programming language. The virt-manager application logic is written in Python, while the UI is constructed with the help of Glade and GTK+.
Similarly, a WebUI can also be constructed using a libvirt Python binding so that you can access libvirt (virtual machines) directly from your Web application written in Python, with no need to have the virt-manager or libvirt-based...