Wenn ich den Code unten in PyCharm laufen, bekomme ich diesen Fehler:Der Versuch, Task-Informationen auf einer virtuellen Maschine Einheit zu ziehen
--error--
C:\Python33\python.exe B:/Python/untitled3/working_test.py
'vim.VirtualMachine:vm-65063'
Traceback (most recent call last):
File "B:/Python/untitled3/working_test.py", line 47, in <module>
main()
File "B:/Python/untitled3/working_test.py", line 37, in main
filterspec = vim.TaskFilterSpec(vim.TaskFilterSpec.ByEntity(entity=source_machine))
TypeError: __init__() takes 1 positional argument but 2 were given
Process finished with exit code 1
--error--
Ich habe versucht, selbst zu verwenden, eine Klasse usw. zu schaffen, aber ich kann einfach nicht meinen Kopf herum, was ich falsch mache. Jede Hilfe wird geschätzt. Ich versuche im Grunde, Informationen über Aufgaben auf einer Entität (virtuellen Maschine) innerhalb von vsphere zu erhalten.
Danke!
import ssl
from pyVim import connect
from pyVmomi import vmodl, vim
def main():
try:
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_NONE
si = connect.SmartConnect(host='vcenter name',
user='user name',
pwd='password',
port=443,
sslContext=context)
if not si:
print("Could not connect to the specified host using specified "
"username and password")
return -1
content = si.RetrieveContent()
def getobject(vimtype, name):
obj = None
container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True)
for c in container.view:
if c.name == name:
obj = c
break
return obj
source_machine = getobject([vim.VirtualMachine], 'virtual machine name')
print(source_machine)
taskManager = content.taskManager
filterspec = vim.TaskFilterSpec(vim.TaskFilterSpec.ByEntity(entity=source_machine))
collector = taskManager.CreateCollectorForTasks(filterspec)
except vmodl.MethodFault as e:
print("Caught vmodl fault : {}".format(e.msg))
return -1
return 0
if __name__ == "__main__":
main()
ich dieses spezielle Modul weiß es nicht, aber was es sagt, ist, dass diese Klasse in der Tat keine Argumente bei der Instanziierung erwartet. – enedil