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