class Nucleon::Action::Node::Group

Public Class Methods

describe(action = :group, weight = 670) click to toggle source
   # File lib/nucleon/action/node/group.rb
10 def self.describe(action = :group, weight = 670)
11   describe_base(:node, action, weight, nil, nil, :node_group)
12 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/group.rb
34 def arguments
35   [ :name ]
36 end
configure(aggregate = false) click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/group.rb
17 def configure(aggregate = false)
18   super() do
19     codes :group_save_failed
20     
21     unless aggregate
22       register_str :name, nil
23       
24       register_bool :add      
25       register_bool :delete
26     end
27     
28     register_translator :format, :json
29   end
30 end
delete_node_group(node, name, remote = nil) click to toggle source
   # File lib/nucleon/action/node/group.rb
82 def delete_node_group(node, name, remote = nil)
83   remote_text = remote ? "#{remote}" : "LOCAL ONLY"
84   
85   node.remove_groups(name)
86           
87   if node.save({ :remote => remote, :message => "Deleting group #{name} from #{node.plugin_provider} #{node.plugin_name}" })
88     success("Group #{name} deleted (#{remote_text})", { :i18n => false })
89   else
90     error("Group #{name} deletion could not be saved", { :i18n => false })
91     myself.status = code.group_save_failed  
92   end  
93 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/group.rb
41 def execute
42   super do |node|
43     ensure_node(node) do
44       if ! settings[:name] || settings[:name].empty?
45         render_node_groups(node)
46       else
47         if settings.delete(:delete, false)
48           delete_node_group(node, settings[:name], sanitize_remote(network, settings[:net_remote]))                
49         elsif settings.delete(:add, false)
50           set_node_group(node, settings[:name], sanitize_remote(network, settings[:net_remote]))
51         else
52           render_node_group(node, settings[:name])
53         end
54       end
55     end
56   end
57 end
render_node_group(node, name) click to toggle source
   # File lib/nucleon/action/node/group.rb
70 def render_node_group(node, name)
71   if node.groups.include?(name.to_s)
72     myself.result = true
73     success("Group #{name} found", { :i18n => false })
74   else
75     myself.result = false
76     warn("Group #{name} not found", { :i18n => false })
77   end
78 end
render_node_groups(node) click to toggle source
   # File lib/nucleon/action/node/group.rb
62 def render_node_groups(node)
63   format        = settings[:format]
64   myself.result = node.groups        
65   render result, :format => format  
66 end
render_provider() click to toggle source
    # File lib/nucleon/action/node/group.rb
114 def render_provider
115   :node_group
116 end
set_node_group(node, name, remote = nil) click to toggle source
    # File lib/nucleon/action/node/group.rb
 97 def set_node_group(node, name, remote = nil)
 98   remote_text  = remote ? "#{remote}" : "LOCAL ONLY"
 99           
100   myself.result = name           
101   node.add_groups(name)    
102           
103   if node.save({ :remote => remote, :message => "Saving group #{name} to #{node.plugin_provider} #{node.plugin_name}" })
104     success("Group #{name} saved (#{remote_text})", { :i18n => false })
105   else
106     error("New group #{name} could not be saved", { :i18n => false })
107     myself.status = code.group_save_failed  
108   end  
109 end