class Nucleon::Action::Node::Status

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/status.rb
10 def self.describe
11   super(:node, :status, 800)
12 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/status.rb
32 def arguments
33   [ :status_nodes ]
34 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/status.rb
17 def configure
18   super do
19     codes :network_save_failed
20 
21     register_nodes :status_nodes, []
22     register_bool :basic
23   end
24 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/status.rb
39 def execute
40   super do |local_node|
41     ensure_network do
42       settings[:status_nodes] = [ 'all' ] if settings[:status_nodes].empty?
43 
44       batch_success = network.batch(settings[:status_nodes], settings[:node_provider], settings[:parallel]) do |node|
45         unless node.is_a?(Nucleon.provider_class(:CORL, :node, :local))
46           state       = node.state(true)
47           state       = state.nil? ? :aborted : state.to_sym
48           ssh_enabled = ''
49 
50           case state
51           when :running, :active
52             state = green(state.to_s)
53 
54             unless settings[:basic]
55               result = node.cli.test :true
56 
57               if result.status == code.success
58                 ssh_enabled = '[ ' + green('SSH connected') + ' ]'
59               else
60                 ssh_enabled = '[ ' + red('SSH connection failed') + ' ]'
61               end
62             end
63 
64           when :stopped, :aborted
65             state = red(state.to_s)
66           end
67           info(state.to_s + " #{ssh_enabled}".rstrip, { :i18n => false, :prefix_text => yellow(node.plugin_provider) + ' ' + purple(node.plugin_name) })
68         end
69         true
70       end
71       if batch_success
72         success = network.save({ :push => true, :remote => :edit, :message => "Updating node status information.", :allow_empty => true })
73         myself.status = code.network_save_failed unless success
74       else
75         myself.status = code.batch_error
76       end
77     end
78   end
79 end
ignore() click to toggle source
   # File lib/nucleon/action/node/status.rb
28 def ignore
29   [ :nodes ]
30 end