python调用lib_基于python调用libvirt API

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:28   2527   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中的指令即可得到相应运行结果。

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

本版积分规则

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

下载期权论坛手机APP