基于python调用libvirt API

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:28   926   0

基于python调用libvirt API

1、程序代码

#!/usr/bin/python

import libvirt
import sys

def createConnection():
    conn = libvirt.openReadOnly(None)
    if conn == None:
  print 'Failed to open connection to QEMU/KVM'
  sys.exit(1)
    else:
  print '-----Connection is created successfully-----'
  return conn

def closeConnection(conn):
 print ''
 try:
  conn.close()
 except:
  print 'Failed to close the connection'
  return 1
 print 'Connection is closed'

def getDomInfoByName(conn, name):
 print ''
 print '----- get domain info by name -----'
 try:
  myDom = conn.lookupByName(name)
 except:
  print 'Failed to find the domain with name "%s"' % name
  return 1
  
 print "Dom id: %d name: %s" % (myDom.ID(), myDom.name())
 print "Dom state: %s" % myDom.state(0)
 print "Dom info: %s" % myDom.info()
 print "memory: %d MB" % (myDom.maxMemory()/1024)
 print "memory status: %s" % myDom.memoryStatus()
 print "vCPUs: %d" % myDom.maxVcpus()
 
def getDomInfoByID(conn, id):
 print ''
 print '----- get domain info by ID -----'
 try:
  myDom = conn.lookupByID(id)
 except:
  print 'Failed to find the domain with ID "%d"' % id
  return 1
  
 print "Domain id is %d ; Name is %s" % (myDom.ID(), myDom.name())

if __name__ == '__main__':
 name1 = "kvm-guest"
 name2 = "notExist"
 id1 = 3
 id2 = 9999
 print "---Get domain info via libvirt python API---"
 conn = createConnection()
 getDomInfoByName(conn, name1)
 getDomInfoByName(conn, name2)
 getDomInfoByID(conn, id1)
 getDomInfoByID(conn, id2)
 closeConnection(conn)
 

2、运行,结果如图1所示

python libvirt-test.py 2>/dev/null

 

图 1 

3、中间过程错误说明

执行运行命令时出现如图2所示的错误

图 2

本文实验环境是利用编译安装的qemu和libvirt,没有安装libvirt-python的依赖包,所以需要python官网上下载相应的包,下载链接如下

https://pypi.python.org/pypi/libvirt-python/3.10.0

下载后解压编译安装,操作如下

tar -zxvf libvirt-python-3.10.0.tar.gz
python setup.py build
python setup.py install

安装完成后,查看/usr/local/lib/python2.7/dist-packages/目录下是否有相应的包,如图3所示

图 3

即可继续执行步骤2中的指令即可得到相应运行结果。

转载于:https://www.cnblogs.com/grglym/p/8064161.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP