python xmlrpc_python xmlrpc的学习一例(获取kvm信息)

python xmlrpc的学习一例(获取kvm信息)

服务端代码:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

from SimpleXMLRPCServer import SimpleXMLRPCServer

from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

import json

import libvirt

import socket

#获取本机电脑名

myname = socket.getfqdn(socket.gethostname(  ))

#获取本机ip

myaddr = socket.gethostbyname(myname)

print myaddr

conn = libvirt.open("qemu:///system")

class RequestHandler(SimpleXMLRPCRequestHandler):

rpc_paths = ('/RPC2',)

try:

server = SimpleXMLRPCServer((myaddr,8000),

requestHandler=RequestHandler)

except Exception,e:

print e

#server.register_instance()

server.register_introspection_functions()

def get_kvm_list():

dom = conn.listDomainsID()

return dom

def get_kvm_info(domain):

dom = conn.lookupByID(domain)

infos = dom.info()

print infos

print dom.name()

infodir = {}

infodir['id'] = domain

infodir['Name'] = dom.name()

infodir['state'] = infos[0]

infodir['MaxMemory'] = infos[1]

infodir['CPUS'] = infos[3]

infodir['CPUTIME'] = infos[2]

return infodir

server.register_function(get_kvm_list,'kvmlist')

server.register_function(get_kvm_info,'kvminfo')

server.serve_forever()

客户端代码:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

import xmlrpclib

KVMhost = '192.168.0.109'

x = xmlrpclib.ServerProxy("http://%s:8000"%KVMhost)

print x.system.listMethods()

a =x.kvmlist()

print a

for i in a:

dir = x.kvminfo(i)

print "=================================================="

print "Id is :",dir['id']

print 'domain Name is :',dir['Name']

print 'State is :',dir['state']

print 'Max Memory is :', dir['MaxMemory']

print 'Num of cpu is :',dir['CPUS']

print 'Cpu time is :',dir['CPUTIME']

运行结果:

[root@c03 xmlserver]# python kvmmonitorCiletn.py

['kvminfo', 'kvmlist', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']

[4, 15]

==================================================

Id is : 4

domain Name is : winxp

State is : 1

Max Memory is : 1048576

Num of cpu is : 1

Cpu time is : 1048576

==================================================

Id is : 15

domain Name is : salttest

State is : 1

Max Memory is : 1048576

Num of cpu is : 1

Cpu time is : 1048576

简单的练习下xmlrpc的使用。用来获取宿主主机上面的虚拟机的信息。打算用来集中管理kvm。:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值