class Nucleon::Action::Node::Provision
Public Class Methods
describe()
click to toggle source
Calls superclass method
# File lib/nucleon/action/node/provision.rb 10 def self.describe 11 super(:node, :provision, 615) 12 end
Public Instance Methods
arguments()
click to toggle source
# File lib/nucleon/action/node/provision.rb 31 def arguments 32 [ :environment ] 33 end
configure()
click to toggle source
Calls superclass method
# File lib/nucleon/action/node/provision.rb 17 def configure 18 super do 19 codes :provision_failure 20 21 register_bool :build, false 22 register_bool :dry_run, false 23 register_bool :check_profiles, false 24 25 register_str :environment 26 end 27 end
execute()
click to toggle source
Calls superclass method
# File lib/nucleon/action/node/provision.rb 38 def execute 39 super do |node| 40 ensure_node(node) do 41 success = true 42 43 settings.delete(:environment) if settings[:environment] == '' 44 45 if settings.has_key?(:environment) 46 CORL.create_fact(:corl_environment, settings[:environment]) 47 end 48 49 unless settings[:check_profiles] 50 info('start', { :provider => node.plugin_provider, :name => node.plugin_name }) 51 end 52 53 if settings[:build] || 54 settings.has_key?(:environment) || 55 ! ( node.build_time && File.directory?(network.build_directory) ) 56 57 info('build', { :provider => node.plugin_provider, :name => node.plugin_name }) 58 success = node.build(settings) 59 end 60 61 if success 62 provisioner_info = node.provisioner_info 63 64 node.provisioners.each do |provider, collection| 65 provider_info = provisioner_info[provider] 66 profiles = provider_info[:profiles] 67 68 collection.each do |name, provisioner| 69 if supported_profiles = provisioner.supported_profiles(node, profiles) 70 provisioner.profile_dependencies(node, supported_profiles).each do |profile| 71 info('profile', { :provider => yellow(provider), :profile => green(profile.to_s) }) 72 end 73 if CORL.admin? && ! settings[:check_profiles] 74 profile_success = provisioner.provision(node, supported_profiles, settings) 75 success = false unless profile_success 76 end 77 end 78 end 79 end 80 unless settings[:check_profiles] 81 success('complete', { :provider => node.plugin_provider, :name => node.plugin_name, :time => Time.now.to_s }) if success 82 end 83 myself.status = code.provision_failure unless success 84 end 85 end 86 end 87 end