class RbVmomi::VIM::Task
Copyright © 2011-2017 VMware, Inc. All Rights Reserved. SPDX-License-Identifier: MIT
Public Instance Methods
child_tasks()
click to toggle source
Get child tasks of this task. @return [Array] List of VIM::Task objects
# File lib/rbvmomi/vim/Task.rb, line 57 def child_tasks tm = _connection.serviceContent.taskManager col = tm.CreateCollectorForTasks(:filter => { :rootTaskKey => [self.info.key], }) # XXX: Likely this is not enough and we need to collect pages other # than the latest. tasks = col.latestPage.map{|x| x.task} col.DestroyCollector() tasks end
wait_for_childtask_completion()
click to toggle source
Wait for all child tasks to finish. If any one child task failed, the exception of the first failing task is thrown. @return [Hash] Map of tasks to their info.result
on success. @raise info.error
on error.
# File lib/rbvmomi/vim/Task.rb, line 22 def wait_for_childtask_completion si = _connection.serviceInstance tasks_props = si.wait_for_multiple_tasks( ['info.state', 'info.result', 'info.error'], self.child_tasks ) Hash[tasks_props.map do |task, props| case props['info.state'] when 'success' [task, props['info.result']] when 'error' raise props['info.error'] end end] end
wait_for_completion()
click to toggle source
Wait for a task to finish. @return info.result
on success. @raise info.error
on error.
# File lib/rbvmomi/vim/Task.rb, line 8 def wait_for_completion wait_until('info.state') { %w(success error).member? info.state } case info.state when 'success' info.result when 'error' raise info.error end end
wait_for_progress() { |progress| ... }
click to toggle source
Wait for a task to finish, with progress notifications. @return (see wait_for_completion
) @raise (see wait_for_completion
) @yield [info.progress]
# File lib/rbvmomi/vim/Task.rb, line 42 def wait_for_progress wait_until('info.state', 'info.progress') do yield info.progress if block_given? %w(success error).member? info.state end case info.state when 'success' info.result when 'error' raise info.error end end