我正在處理一組應用於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