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