Class: Chef::Knife::KeyCreate
- Inherits:
-
Object
- Object
- Chef::Knife::KeyCreate
- Defined in:
- lib/chef/knife/key_create.rb
Overview
Service class for UserKeyCreate and ClientKeyCreate, Implements common functionality of knife [user | org client] key create.
Instance Attribute Summary collapse
-
#config ⇒ Object
Returns the value of attribute config.
Instance Method Summary collapse
- #create_key_from_hash(output) ⇒ Object
- #display_info(input) ⇒ Object
- #display_private_key(private_key) ⇒ Object
- #edit_data(key) ⇒ Object
- #edit_hash(key) ⇒ Object
-
#initialize(actor, actor_field_name, ui, config) ⇒ KeyCreate
constructor
A new instance of KeyCreate.
- #output_private_key_to_file(private_key) ⇒ Object
- #public_key_or_key_name_error_msg ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(actor, actor_field_name, ui, config) ⇒ KeyCreate
Returns a new instance of KeyCreate.
35 36 37 38 39 40 |
# File 'lib/chef/knife/key_create.rb', line 35 def initialize(actor, actor_field_name, ui, config) @actor = actor @actor_field_name = actor_field_name @ui = ui @config = config end |
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
33 34 35 |
# File 'lib/chef/knife/key_create.rb', line 33 def config @config end |
Instance Method Details
#create_key_from_hash(output) ⇒ Object
72 73 74 |
# File 'lib/chef/knife/key_create.rb', line 72 def create_key_from_hash(output) Chef::Key.from_hash(output).create end |
#display_info(input) ⇒ Object
58 59 60 |
# File 'lib/chef/knife/key_create.rb', line 58 def display_info(input) @ui.info(input) end |
#display_private_key(private_key) ⇒ Object
62 63 64 |
# File 'lib/chef/knife/key_create.rb', line 62 def display_private_key(private_key) @ui.msg(private_key) end |
#edit_data(key) ⇒ Object
50 51 52 |
# File 'lib/chef/knife/key_create.rb', line 50 def edit_data(key) @ui.edit_data(key) end |
#edit_hash(key) ⇒ Object
54 55 56 |
# File 'lib/chef/knife/key_create.rb', line 54 def edit_hash(key) @ui.edit_hash(key) end |
#output_private_key_to_file(private_key) ⇒ Object
66 67 68 69 70 |
# File 'lib/chef/knife/key_create.rb', line 66 def output_private_key_to_file(private_key) File.open(@config[:file], "w") do |f| f.print(private_key) end end |
#public_key_or_key_name_error_msg ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/chef/knife/key_create.rb', line 42 def public_key_or_key_name_error_msg <<~EOS You must pass either --public-key or --key-name, or both. If you only pass --public-key, a key name will be generated from the fingerprint of your key. If you only pass --key-name, a key pair will be generated by the server. EOS end |
#run ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/chef/knife/key_create.rb', line 76 def run key = Chef::Key.new(@actor, @actor_field_name) if !@config[:public_key] && !@config[:key_name] raise Chef::Exceptions::KeyCommandInputError, public_key_or_key_name_error_msg elsif !@config[:public_key] key.create_key(true) end if @config[:public_key] key.public_key(File.read(File.(@config[:public_key]))) end if @config[:key_name] key.name(@config[:key_name]) end if @config[:expiration_date] key.expiration_date(@config[:expiration_date]) else key.expiration_date("infinity") end output = edit_hash(key) key = create_key_from_hash(output) display_info("Created key: #{key.name}") if key.private_key if @config[:file] output_private_key_to_file(key.private_key) else display_private_key(key.private_key) end end end |