2013-10-09 7 views
1

Я работаю над набором сценариев Python, которые должны управлять свойствами виртуальной машины ESX vApp. Я нашел pySphere, и я смог добавить/отредактировать свойства key/label/value, однако я не могу найти способ получить их в любом случае - нет документации по проекту pySphere об этом, а classess/методам не хватает docstrings, поэтому iPython не очень помог.Использование pyson pysphere для извлечения свойств ESA vApp

Может кто-нибудь знать способ перечисления этих атрибутов или указать мне источник, который говорит об использовании pySphere для этого?

С.

ответ

-1

Edit: Речь идет о получении свойств. Следующее не отвечает, но если вы попадаете в этот поток (как я), который хочет добавить/изменить/удалить свойства, вы можете найти этот ответ полезным.


погуглить 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]) 

Ссылка себя выдает красивее обертка для создания множественного добавления/редактирования/удаления изменения, определенные в словаре. Проверьте это.

+0

Это именно то, что я могу сделать - добавлять, редактировать и удалять существующие свойства, и это не ответ на вопрос, как получить/проверить существующие существующие ... – SpankMe

+0

Вы абсолютно правы! Преподаёт вам урок по ответам на вопросы в 4 часа ночи. Мозг, должно быть, был отключен в то время ... Удачи с реальным вопросом! – Yonatan

0

я получаю свойства 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() 

Не очень хорошо, но работает.

+0

Я пытаюсь сделать что-то очень похожее здесь. Мне нужно вытащить имя гостя, хоста или хранилища данных. Как получить имя объекта (хост, гость или хранилище данных) и назначить его переменной (называемой именем :). Вот что у меня есть: для пункта в результатах: имя = item.Name для р в item.PropSet: если p.Name == "summary.capacity": Metric = "Total_Capacity" data_host = (d, Name, Metric, p.Val) print data_host – user1471980