class Nucleon::Action::Node::Revoke

Public Class Methods

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

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/revoke.rb
27 def arguments
28   [ :public_key ]
29 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/revoke.rb
17 def configure
18   super do
19     codes :key_remove_failure
20 
21     register :public_key, :str, nil
22   end
23 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/revoke.rb
34 def execute
35   super do |node|
36     info('corl.actions.revoke.start')
37 
38     ensure_node(node) do
39       ssh_path        = Util::SSH.key_path
40       authorized_keys = File.join(ssh_path, 'authorized_keys')
41       public_key      = settings[:public_key].strip
42       output_keys     = []
43 
44       if File.exists?(authorized_keys)
45         Util::Disk.read(authorized_keys).split("\n").each do |line|
46           if line.strip.include?(public_key)
47             key_found = true
48           else
49             output_keys << line
50           end
51         end
52       end
53       unless key_found
54         unless Util::Disk.write(authorized_keys, output_keys.join("\n"))
55           myself.status = code.key_revoke_failure
56         end
57       end
58     end
59   end
60 end