class Nucleon::Action::Node::Devkey

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/devkey.rb
12 def self.describe
13   super(:node, :devkey, 530)
14 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/devkey.rb
54 def arguments
55   [ :key_nodes ]
56 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/devkey.rb
19 def configure
20   super do
21     codes :no_password_given
22 
23     keypair_config
24     config[:require_password].default = true
25 
26     register_array :key_nodes, nil do |values|
27       if values.nil?
28         warn('key_nodes_empty')
29         next false
30       end
31 
32       node_plugins = CORL.loaded_plugins(:CORL, :node)
33       success      = true
34 
35       values.each do |value|
36         if info = CORL.plugin_class(:CORL, :node).translate_reference(value)
37           if ! node_plugins.keys.include?(info[:provider].to_sym) || info[:name].empty?
38             warn('key_nodes', { :value => value, :node_provider => info[:provider],  :name => info[:name] })
39             success = false
40           end
41         end
42       end
43       success
44     end
45   end
46 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/devkey.rb
61 def execute
62   super do |local_node|
63     ensure_network do
64       keypair = keypair(true, false)
65 
66       if keypair.nil?
67         myself.status = code.no_password_given
68       else
69         batch_success = network.batch(settings[:key_nodes], settings[:node_provider], false) do |node|
70           render_options = { :id => node.id, :hostname => node.hostname }
71 
72           info('start', render_options)
73           node.attach_keys(keypair)
74         end
75         if batch_success
76           network.save({ :push => true, :remote => :edit })
77         else
78           myself.status = code.batch_error
79         end
80       end
81     end
82   end
83 end
ignore() click to toggle source
   # File lib/nucleon/action/node/devkey.rb
50 def ignore
51   [ :nodes, :parallel ]
52 end