2014-12-17 2 views
1

opennebula 4.8xmlrpcpython을 통해 통신을 시도하고 있습니다. 여기에 코드입니다 :opennebula와의 통신 4.8을 통해 python xmlrpc

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

PHP를 사용하여 OpenNebula 4.0.1을 사용하고 있는데도 비슷한 문제가있었습니다. 어떻게 든 인증 된 문자열의 암호는 오랫동안 해시되지 않은 것 같습니다. (이전 코드를 작성할 때 OpenNebula 3.0에서 해시 된 암호를 사용하고있었습니다.) sha1 해시 함수를 사용하여 줄을 제거하고 다시 시도해보십시오.

이 방법은 매우 안전하지 않습니다. 하나는 다른 한편으로 누군가가 이미 코드를 얻었고 OpenNebula API가 제공하는 모든 것을 수행 할 수 있다면 해시 또는 차이를 두지 않아야합니다.