class Nucleon::Action::Node::Keypair

Public Class Methods

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

Public Instance Methods

configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/keypair.rb
19 def configure
20   super do
21     codes :key_failure
22 
23     register :json, :bool, true
24     register :both, :bool, false
25     keypair_config
26   end
27 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/keypair.rb
38 def execute
39   super do |node|
40     if keys = keypair
41       ui.info("\n", { :prefix => false })
42       ui_group(Util::Console.cyan("#{keys.type.upcase} SSH keypair")) do |ui|
43         render_json = lambda do
44           private_key = Util::Console.blue(Util::Data.to_json(keys.encrypted_key, true))
45           ssh_key     = keys.ssh_key.gsub(/^ssh\-[a-z]+\s+/, '')
46           ssh_key     = Util::Console.green(Util::Data.to_json(ssh_key, true))
47 
48           ui.info("-----------------------------------------------------")
49           ui.info(yellow("SSH JSON string"))
50           ui.info("\n", { :prefix => false })
51           ui.info("SSH private key:\n#{private_key}", { :prefix => false })
52           ui.info("SSH public key:\n#{ssh_key}", { :prefix => false })
53           ui.info("\n", { :prefix => false })
54         end
55 
56         render_file = lambda do
57           private_key = Util::Console.blue(keys.encrypted_key)
58           ssh_key     = Util::Console.green(keys.ssh_key)
59 
60           ui.info("-----------------------------------------------------")
61           ui.info(yellow("SSH file rendering"))
62           ui.info("\n", { :prefix => false })
63           ui.info("SSH private key:\n#{private_key}", { :prefix => false })
64           ui.info("SSH public key:\n#{ssh_key}", { :prefix => false })
65           ui.info("\n", { :prefix => false })
66         end
67 
68         if settings[:both]
69           render_json.call
70           render_file.call
71         else
72           if settings[:json]
73             render_json.call
74           else
75             render_file.call
76           end
77         end
78       end
79     else
80       myself.status = code.key_failure
81     end
82   end
83 end
ignore() click to toggle source
   # File lib/nucleon/action/node/keypair.rb
31 def ignore
32   node_ignore
33 end