Class: Ironfan::Broker
- Defined in:
- lib/ironfan/broker.rb,
lib/ironfan/headers.rb,
lib/ironfan/broker/drive.rb,
lib/ironfan/broker/computer.rb
Defined Under Namespace
Classes: Computer, Computers, Drive
Instance Method Summary collapse
-
#discover!(clusters, with_cloud = true) ⇒ Object
Take in a Dsl::Cluster; return Computers populated with all discovered resources that correlate; computers corresponding to partial or unrecognizable resources are labeled as bogus.
- #display(computers, style) ⇒ Object
Methods inherited from Builder
Instance Method Details
#discover!(clusters, with_cloud = true) ⇒ Object
Take in a Dsl::Cluster; return Computers populated with all discovered
resources that correlate; computers corresponding to partial or
unrecognizable resources are labeled as bogus.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ironfan/broker.rb', line 14 def discover!(clusters, with_cloud = true) # Get fully resolved servers, and build Computers using them computers = Computers.new(clusters: Array(clusters)) # if with_cloud providers = computers.map{|c| c.providers.values }.flatten.uniq providers.each do |p| p.forget! end Ironfan.parallel(providers) do |provider| clusters.each do |cluster| Ironfan.step cluster.name, "Loading #{provider.handle}", :cyan provider.load cluster end end # clusters.each do |cluster| Ironfan.step cluster.name, "Reconciling DSL and provider information", :cyan end computers.correlate computers.validate end # computers end |
#display(computers, style) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/ironfan/broker.rb', line 44 def display(computers,style) defined_data = computers.map do |mach| hsh = mach.to_display(style) hsh.merge!(yield(mach)) if block_given? hsh end if defined_data.empty? ui.info "Nothing to report" else headings = defined_data.map{|hsh| hsh.keys }.flatten.uniq Formatador.display_compact_table(defined_data, headings.to_a) end end |