1

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 パッケージからこの例を持っていますが、新しいバージョンの では動作opennebulaせず、作者はこのプロジェクトにもう取り組んでいません。

4

1 に答える 1

0

PHPを使用してOpenNebula 4.0.1を使用していますが、同様の問題がありました。どういうわけか、認証された文字列のパスワードがハッシュされていないようです。(以前のコードを書いたときは、OpenNebula 3.0 でハッシュ化されたパスワードを使用していました。) sha1 ハッシュ関数を使用して行を削除し、もう一度やり直してください。

この方法では、あまり安全ではないように見えます。一方、誰かがあなたのコードを既に入手していて、その人が OpenNebula API が提供するあらゆることを実行できる場合、ハッシュ化されているかどうかにかかわらず、大きな違いはありません。

于 2015-01-19T06:33:59.383 に答える