• 基于python调用libvirt API


    基于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中的指令即可得到相应运行结果。

  • 相关阅读:
    论文阅记 YOLOv4: Optimal Speed and Accuracy of Object Detection
    【项目实战】yolov3-tiny人脸数据模型训练
    面试题54. 二叉搜索树的第k大节点
    102. 二叉树的层序遍历
    107. 二叉树的层次遍历 II
    连续子数组的最大和
    172. 阶乘后的零
    26 进制
    405. 数字转换为十六进制数
    504. 七进制数
  • 原文地址:https://www.cnblogs.com/grglym/p/8064161.html
Copyright © 2020-2023  润新知