Libvirt Domain Snapshot State 设置指南
在 libvirt 中,可以设置 Domain Snapshot 的 State 属性来反映虚拟机当前的状态。以下是一些可用的状态值:
- 'libvirt.DOMAIN_RUNNING':表示域正在运行。
- 'libvirt.DOMAIN_SHUTDOWN':表示域正在关闭。
- 'libvirt.DOMAIN_CRASHED':表示域已崩溃。
- 'libvirt.DOMAIN_PMSUSPENDED':表示域被挂起以节省电源。
- 'libvirt.DOMAIN_SHUTOFF':表示域已关闭。
- 'libvirt.DOMAIN_PAUSED':表示域已暂停。
- 'libvirt.DOMAIN_BLOCKED':表示域被阻塞。
- 'libvirt.DOMAIN_NOSTATE':表示域没有状态。
你的代码中已经包含了大多数常见状态的处理。你可以根据你的需求添加或删除一些状态。
var setSnapshot libvirtxml.DomainSnapshot
setSnapshot.Name = fmt.Sprintf('%s_%d', name, time.Now().Unix())
setSnapshot.Description = fmt.Sprintf('this is a snapshot of %s', name)
i := time.Now().Unix()
s2 := strconv.FormatInt(i, 10)
setSnapshot.CreationTime = s2
ds, _, err := domain.GetState()
if err != nil {
logger.Error(err.Error())
}
switch ds {
case libvirt.DOMAIN_RUNNING:
setSnapshot.State = 'running'
case libvirt.DOMAIN_SHUTOFF:
setSnapshot.State = 'shutoff'
case libvirt.DOMAIN_PAUSED:
setSnapshot.State = 'paused'
case libvirt.DOMAIN_CRASHED:
setSnapshot.State = 'crashed'
case libvirt.DOMAIN_NOSTATE:
setSnapshot.State = 'nostate'
case libvirt.DOMAIN_BLOCKED:
setSnapshot.State = 'blocked'
case libvirt.DOMAIN_PMSUSPENDED:
setSnapshot.State = 'pmsuspended'
}

原文地址: http://www.cveoy.top/t/topic/f3MK 著作权归作者所有。请勿转载和采集!