通过python xmlrpc与opennebula 4.8进行通信

时间:2014-12-17 14:59:41

标签: python opennebula

我尝试通过opennebula 4.8xmlrpcpython进行通信。这是代码:

import xmlrpclib
import re
import hashlib

server = 'http://10.1.7.205:2633/RPC2'
user = "oneadmin"
password = "pass"
password = hashlib.sha1(password).hexdigest()
one_auth = '{0}:{1}'.format(user, password)

def getProxy():
    return xmlrpclib.ServerProxy(server)

def getVMInfo(id):
    response = getProxy().one.vm.info(one_auth,id)
    if response[0]:
        return response[1]
    else:
        raise Exception(response[1])

- >

Exception: [VirtualMachineInfo] User couldn't be authenticated, aborting call.

我在oca package中有此示例,但它不适用于opennebula的新版本,而且作者不再参与此项目。

1 个答案:

答案 0 :(得分:0)

虽然我使用的是OpenNebula 4.0.1,但我遇到了类似的问题。似乎以某种方式,经过身份验证的字符串中的密码不会长时间散列。 (当我编写旧代码时,它在OpenNebula 3.0中使用哈希密码。)您可以尝试使用sha1哈希函数删除该行,然后重试。

这种方式看起来不太安全。另一方面,如果有人已经获得你的代码,并且他/她/它可以继续做任何事情,OpenNebula API提供,散列或不散列应该没有太大的区别。