VMware API

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
tekknokrat
User
Beiträge: 7
Registriert: Dienstag 31. August 2010, 09:44

Hallo,

ich versuche grade die VMware API von hier https://bitbucket.org/jkinred/psphere2/ zum Laufen zu bringen.
Nach einer kleineren Anpassung funktioniert das example/connect.py script bis hier:

$ usage: connect.py --url https://<host>/sdk --username <username> --password <password>
$ examples/connect.py --url https://localhost/sdk --username testuser --password *********
Traceback (most recent call last):
File "examples/connect.py", line 54, in ?
main()
File "examples/connect.py", line 51, in main
c.connect()
File "examples/connect.py", line 42, in connect
self.login()
File "/auto/user1/doirs70/Q14/eexthie/office/VMware/API/psphere2/psphere/scripting.py", line 58, in login
self.vim = Vim(self.options.url)
File "/auto/user1/doirs70/Q14/eexthie/office/VMware/API/psphere2/psphere/server.py", line 33, in __init__
self.si = ServiceInstance(si_mo_ref, self)
File "/auto/user1/doirs70/Q14/eexthie/office/VMware/API/psphere2/psphere/managedobjects.py", line 903, in __init__
super(ServiceInstance, self).__init__(self, mo_ref, server)
TypeError: __init__() takes exactly 3 arguments (4 given)
Was hat die untere Bemerkung zu bedeuten? In dieser Zeile sind nur 3 Argumente vergeben:

Code: Alles auswählen

class ServiceInstance(ManagedObject):
    def __init__(self, mo_ref, server):
        """hier kommt Zeile 903 """
        super(ServiceInstance, self).__init__(self, mo_ref, server)
        self.capability = None
        self.content = None
        self.serverClock = None

    def __getattr__(self, name):
        def func(**kwargs):
            result = self.server.invoke(name, self.mo_ref, **kwargs)
            return result

        return func
Mir kommt das irgendwie ganz schön kompliziert vor mit der Verwendung der super-Direktive. Macht das überhaupt Sinn hier?
deets

Das ist ein simpler Bug. super(Klasse, self) bindet bereits self als erstes Argument. Damit ist es dann in der darauffolgenden Argumentliste ueberfluessig. Also schmeiss es raus + guck mal, was passiert.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

ähm, diese API interessiert mich auch brennend. Wo bekomme ich Dokus davon her? Was ist damit alles möglich? Im moment versuche ich den ESX über SSH zu steuern ( was mir auch gelungen ist ). Allerdings wenns da ne gute API für Python gibt, würde ich die gerne mal ausprobieren.
Antworten