Libvirt API
约 1 分钟阅读
标签:API
- API Reference
- RPC Protocol
- 基于 XDR (External Data Representation) 序列化
- SunRPC/ONCRPC 协议
- 客户端库
- Go: libvirt/libvirt-goGitHublibvirt/libvirt-go (CGO), digitalocean/go-libvirtGitHubdigitalocean/go-libvirt (纯 Go)
- Java: libvirt-java
- Python: libvirt-pythonPyPI 包libvirt-pythonPyPI
核心概念
| 对象 | 说明 |
|---|---|
virConnectPtr | Hypervisor 连接 |
virDomainPtr | 虚拟机 (运行中或已定义) |
virNetworkPtr | 虚拟网络 |
virStoragePool | 存储池 |
virStorageVol | 存储卷 |
Go 示例
package main
import (
"fmt"
"net"
"time"
"github.com/digitalocean/go-libvirt"
)
func main() {
// Unix socket 连接
c, err := net.DialTimeout("unix", "/var/run/libvirt/libvirt-sock", 2*time.Second)
if err != nil {
panic(err)
}
l := libvirt.New(c)
if err := l.Connect(); err != nil {
panic(err)
}
defer l.Disconnect()
v, _ := l.Version()
fmt.Println("Version:", v)
domains, _, _ := l.ConnectListAllDomains(1, 0)
for _, d := range domains {
fmt.Printf("%d %s %x\n", d.ID, d.Name, d.UUID)
}
}Java 示例
import org.libvirt.Connect;
import org.libvirt.ConnectAuthDefault;
public class LibvirtExample {
public static void main(String[] args) throws Exception {
Connect conn = new Connect("qemu:///system", new ConnectAuthDefault(), 0);
System.out.println("Hypervisor: " + conn.getType());
System.out.println("Version: " + conn.getLibVirVersion());
}
}参考
- libvirt/libvirtGitHublibvirt/libvirtlibvirt/libvirt · 绑定: c#, go, java, ocaml. perl, python, php, ruby · API 分为: common, domain, domain snapshot, error, event, host, interface, network, node device, network filter...笔记:Libvirt
- remote_protocol.xGitHub 文件libvirt/libvirt/src/remote/remote_protocol.x - RPC 协议定义
- libosinfo - OS 信息库
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub4 条
- digitalocean/go-libvirtgithub.com/digitalocean/go-libvirt
- libvirt/libvirtgithub.com/libvirt/libvirt
- libvirt/libvirt-gogithub.com/libvirt/libvirt-go
- libvirt/libvirt/src/remote/remote_protocol.xgithub.com/libvirt/libvirt/blob/master/src/remote/remote_protocol.x
依赖包1 条
- libvirt-pythonpypi.org/project/libvirt-python
其他外链4 条
- libosinfo.orglibosinfo.org/
- libvirt.org/html/libvirt-libvirt-domain.htmllibvirt.org/html/libvirt-libvirt-domain.html
- libvirt.org/internals/rpc.htmllibvirt.org/internals/rpc.html
- libvirt.org/java.htmllibvirt.org/java.html