我尝试通过opennebula 4.8
和xmlrpc
与python
进行通信。这是代码:
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
的新版本,而且作者不再参与此项目。
答案 0 :(得分:0)
虽然我使用的是OpenNebula 4.0.1,但我遇到了类似的问题。似乎以某种方式,经过身份验证的字符串中的密码不会长时间散列。 (当我编写旧代码时,它在OpenNebula 3.0中使用哈希密码。)您可以尝试使用sha1哈希函数删除该行,然后重试。
这种方式看起来不太安全。另一方面,如果有人已经获得你的代码,并且他/她/它可以继续做任何事情,OpenNebula API提供,散列或不散列应该没有太大的区别。