本文整理汇总了Python中pysphere.vi_task.VITask.get_result方法的典型用法代码示例。如果您正苦于以下问题:Python VITask.get_result方法的具体用法?Python VITask.get_result怎么用?Python VITask.get_result使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysphere.vi_task.VITask
的用法示例。
在下文中一共展示了VITask.get_result方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: list_files
# 需要导入模块: from pysphere.vi_task import VITask [as 别名]
# 或者: from pysphere.vi_task.VITask import get_result [as 别名]
def list_files(self, path, case_insensitive=True,
folders_first=True, match_patterns=[]):
"""Return a list of files in folder @path
"""
ds_name, file_name = re.match(self._re_path, path).groups()
ds = [k for k,v in self._server.get_datastores().items() if v == ds_name][0]
browser_mor = VIProperty(self._server, ds).browser._obj
request = VI.SearchDatastore_TaskRequestMsg()
_this = request.new__this(browser_mor)
_this.set_attribute_type(browser_mor.get_attribute_type())
request.set_element__this(_this)
request.set_element_datastorePath(path)
search_spec = request.new_searchSpec()
query = [VI.ns0.FloppyImageFileQuery_Def('floppy').pyclass(),
VI.ns0.FileQuery_Def('file').pyclass(),
VI.ns0.FolderFileQuery_Def('folder').pyclass(),
VI.ns0.IsoImageFileQuery_Def('iso').pyclass(),
VI.ns0.VmConfigFileQuery_Def('vm').pyclass(),
VI.ns0.TemplateConfigFileQuery_Def('template').pyclass(),
VI.ns0.VmDiskFileQuery_Def('vm_disk').pyclass(),
VI.ns0.VmLogFileQuery_Def('vm_log').pyclass(),
VI.ns0.VmNvramFileQuery_Def('vm_ram').pyclass(),
VI.ns0.VmSnapshotFileQuery_Def('vm_snapshot').pyclass()]
search_spec.set_element_query(query)
details = search_spec.new_details()
details.set_element_fileOwner(True)
details.set_element_fileSize(True)
details.set_element_fileType(True)
details.set_element_modification(True)
search_spec.set_element_details(details)
search_spec.set_element_searchCaseInsensitive(case_insensitive)
search_spec.set_element_sortFoldersFirst(folders_first)
search_spec.set_element_matchPattern(match_patterns)
request.set_element_searchSpec(search_spec)
response = self._server._proxy.SearchDatastore_Task(request)._returnval
vi_task = VITask(response, self._server)
if vi_task.wait_for_state([vi_task.STATE_ERROR, vi_task.STATE_SUCCESS]) == vi_task.STATE_ERROR:
raise VITaskException(vi_task.info.error)
info = vi_task.get_result()
# return info
if not hasattr(info, "file"):
return []
# for fi in info.file:
# fi._get_all()
return [{'type':fi._type,
'path':fi.path,
'size':fi.fileSize,
'modified':fi.modification,
'owner':fi.owner
} for fi in info.file]