我正在处理一组应用于ESX虚拟机vApp属性的Python脚本。我已经找到了pySphere,并且我能够添加/编辑键/标签/值属性,但是,我似乎找不到任何方式来检索这些属性 - 关于该项目没有关于pySphere项目的文档,并且classess /方法缺乏文档,因此iPython不是非常有用。使用python pysphere检索ESX vApp属性
有人会知道一种方式来列出这些属性,或者可以指向我谈论使用pySphere这样做的来源?
S.
我正在处理一组应用于ESX虚拟机vApp属性的Python脚本。我已经找到了pySphere,并且我能够添加/编辑键/标签/值属性,但是,我似乎找不到任何方式来检索这些属性 - 关于该项目没有关于pySphere项目的文档,并且classess /方法缺乏文档,因此iPython不是非常有用。使用python pysphere检索ESX vApp属性
有人会知道一种方式来列出这些属性,或者可以指向我谈论使用pySphere这样做的来源?
S.
编辑:的问题是有关检索的属性。以下内容不回答,但如果您遇到此线程(正如我所做的)寻找添加/编辑/删除属性,您可能会发现这个答案很有用。
谷歌搜索pysphere vApp properties
产生此相关的讨论,第一个结果:Access to, and modify, a VMs vApp Properties。
引述配方的要点:
# ... import, connect to server etc. ...
request = VI.ReconfigVM_TaskRequestMsg()
_this = request.new__this(vm._mor)
_this.set_attribute_type(vm._mor.get_attribute_type())
request.set_element__this(_this)
spec = request.new_spec()
vappconfig = spec.new_vAppConfig()
# e.g.
prop = vappconfig.new_property()
prop.set_element_operation('add')
info = prop.new_info()
info.set_element_key(10)
info.set_element_id("10")
info.set_element_value("test")
info.set_element_category("testCat")
vappconfig.set_element_property([prop])
spec.set_element_vAppConfig(vappconfig)
request.set_element_spec(spec)
task = viserver._proxy.ReconfigVM_Task(request)._returnval
vi_task = VITask(task, viserver)
status = vi_task.wait_for_state([vi_task.STATE_SUCCESS,
vi_task.STATE_ERROR])
链接本身给出了用于制作多种添加/编辑/删除一个字典中定义修改一个更好的包装。一探究竟。
我得到vApp属性与此脚本:
s = VIServer()
s.connect('vcenter.example.com', 'username', 'password')
vm = s.get_vm_by_name('vm01')
props = s._retrieve_properties_traversal(property_names=['config.vAppConfig.property'], obj_type="VirtualMachine", from_node=vm._mor)
for prop_set in props:
for prop in prop_set.PropSet:
for i in prop.Val.get_element_VAppPropertyInfo():
print i.get_element_label() + ' = ' + i.get_element_value()
不怎么样,但作品。
我想在这里做一些非常类似的事情。我需要提取guest,host或datastore的名称。我将如何检索对象(主机,来宾或数据存储)的名称并将其分配给一个变量(称为Name :)。这里是我的东西:对于结果中的项目: name = item.Name for p in item.PropSet: if p.Name ==“summary.capacity”: Metric =“Total_Capacity” data_host =(d,名称,公制,p.Val) print data_host – user1471980
这正是我能做的 - 添加,编辑和删除现有的属性,它不是问题的答案如何检索/检查当前存在的... – SpankMe
你是绝对正确的!教你在上午4点回答问题。大脑当时一定已经离线了......真正的问题,祝你好运! – Yonatan