class Nucleon::Action::Node::Fact
Public Class Methods
describe(action = :fact, weight = 570)
click to toggle source
# File lib/nucleon/action/node/fact.rb 10 def self.describe(action = :fact, weight = 570) 11 describe_base(:node, action, weight, nil, nil, :node_fact) 12 end
Public Instance Methods
arguments()
click to toggle source
# File lib/nucleon/action/node/fact.rb 36 def arguments 37 [ :name, :value ] 38 end
configure(aggregate = false)
click to toggle source
Calls superclass method
# File lib/nucleon/action/node/fact.rb 17 def configure(aggregate = false) 18 super() do 19 codes :fact_save_failed 20 21 unless aggregate 22 register_str :name, nil 23 register_str :value 24 25 register_bool :delete 26 27 register_translator :input_format 28 end 29 30 register_translator :format, :json 31 end 32 end
delete_node_fact(node, name, remote = nil)
click to toggle source
# File lib/nucleon/action/node/fact.rb 80 def delete_node_fact(node, name, remote = nil) 81 remote_text = remote ? "#{remote}" : "LOCAL ONLY" 82 83 node.delete_facts(name) 84 85 if node.save({ :remote => remote, :message => "Deleting fact #{name} from #{node.plugin_provider} #{node.plugin_name}" }) 86 success("Fact #{name} deleted (#{remote_text})", { :i18n => false }) 87 else 88 error("Fact #{name} deletion could not be saved", { :i18n => false }) 89 myself.status = code.fact_save_failed 90 end 91 end
execute()
click to toggle source
Calls superclass method
# File lib/nucleon/action/node/fact.rb 43 def execute 44 super do |node| 45 ensure_node(node) do 46 if ! settings[:name] || settings[:name].empty? 47 render_node_facts(node) 48 else 49 if settings.delete(:delete, false) 50 delete_node_fact(node, settings[:name], sanitize_remote(settings[:net_remote])) 51 elsif settings[:value] && ! settings[:value].empty? 52 set_node_fact(node, settings[:name], settings[:value], sanitize_remote(settings[:net_remote])) 53 else 54 render_node_fact(node, settings[:name]) 55 end 56 end 57 end 58 end 59 end
render_node_fact(node, name)
click to toggle source
# File lib/nucleon/action/node/fact.rb 72 def render_node_fact(node, name) 73 format = settings[:format] 74 myself.result = node.fact(name) 75 render result, :format => format 76 end
render_node_facts(node)
click to toggle source
# File lib/nucleon/action/node/fact.rb 64 def render_node_facts(node) 65 format = settings[:format] 66 myself.result = node.facts 67 render result, :format => format 68 end
render_provider()
click to toggle source
# File lib/nucleon/action/node/fact.rb 118 def render_provider 119 :node_fact 120 end
set_node_fact(node, name, value, remote = nil)
click to toggle source
# File lib/nucleon/action/node/fact.rb 95 def set_node_fact(node, name, value, remote = nil) 96 remote_text = remote ? "#{remote}" : "LOCAL ONLY" 97 input_format = settings[:input_format] 98 99 value = Util::Data.value(render(value, { 100 :format => input_format, 101 :silent => true 102 })) if input_format 103 104 myself.result = value 105 node.create_facts({ name => value }) 106 107 if node.save({ :remote => remote, :message => "Saving fact #{name} to #{node.plugin_provider} #{node.plugin_name}" }) 108 success("Fact #{name} saved (#{remote_text})", { :i18n => false }) 109 else 110 error("New fact #{name} could not be saved", { :i18n => false }) 111 myself.status = code.fact_save_failed 112 end 113 end