class DependencyTask
Represents a task that resolves and builds all provisions for a dependency.
Definitions
def initialize(*arguments, **options)
Initialize the dependency task.
Implementation
def initialize(*arguments, **options)
super
@provisions = []
@environments = nil
@environment = nil
end
def dependency
Signature
-
returns
Build::Dependency The dependency being resolved by this task.
Implementation
def dependency
@node.dependency
end
def update
Build all provisions for the dependency and combine the resulting environments.
Implementation
def update
Console.debug(self) do |buffer|
buffer.puts "building #{@node} which #{@node.dependency}"
@node.provisions.each do |provision|
buffer.puts "\tbuilding #{provision.provider.name} which #{provision}"
end
end
# Lookup what things this dependency provides:
@node.provisions.each do |provision|
@provisions << invoke(
@node.provision_node_for(provision)
)
end
if wait_for_children?
update_environments!
else
fail!(ProvisionsFailed)
end
end