跳至正文
Wener Notes

Libvirt API

约 1 分钟阅读
标签:API

核心概念

对象说明
virConnectPtrHypervisor 连接
virDomainPtr虚拟机 (运行中或已定义)
virNetworkPtr虚拟网络
virStoragePool存储池
virStorageVol存储卷

Go 示例

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 示例

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());
    }
}

参考

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

GitHub4 条
依赖包1 条
其他外链4 条
最近更新commit d77e4c2编辑