Skip to content

Instantly share code, notes, and snippets.

@grzn
Created June 7, 2012 18:58
Show Gist options
  • Save grzn/2890811 to your computer and use it in GitHub Desktop.
Save grzn/2890811 to your computer and use it in GitHub Desktop.
infi.pyvisdk Task facade API
from infi.pyvisdk import Vim
client = Vim()
managed_object = client.getHostSystems()[0]
def some_vmware_op()
# This does something with the host
raise NotImplementedError()
def simple_operation():
task_manager = client.get_task_manager()
with task_manager.task(managed_object, 'this is what I am going to do', 'com.infinidat.myapp'):
some_vmware_op()
def another_operation()
task_manager = client.get_task_manager()
task = task_manager.task(managed_object, 'doing this', 'com.infinidat.app')
op = task.wraps(some_vmware_op)
op()
def complex_operationg():
task_manager = client.get_task_manager()
with task_manager.task(managed_object, 'doing something complex', 'com.infinidat.myapp') as task:
some_vmware_op()
task.update_progress(50)
some_vmware_op()
task.update_progress(100)
def another_complex_operation():
task_manager = client.get_task_manager()
with task_manager.task(managed_object, 'complex op', 'com.infinidat.myapp') as task:
task.step(some_vmware_op, some_vmware_op, some_vmware_op)
def nested_operations():
client = self.get_client()
task_manager = client.get_task_manager()
with task_manager.task(managed_object, 'doing this', 'com.infinidat.myapp') as parent:
with task_manager.task(managed_object, "and this", 'com.infinifdat.myapp', parent=parent):
some_vmware_op()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment