class Chef::Resource::PublicKey
Public Instance Methods
encode_public_key(key)
click to toggle source
# File lib/chef/resource/public_key.rb, line 49 def encode_public_key(key) key_format = {} key_format[:format] = new_resource.format if new_resource.format Cheffish::KeyFormatter.encode(key, key_format) end
load_current_resource()
click to toggle source
# File lib/chef/resource/public_key.rb, line 80 def load_current_resource if ::File.exist?(new_resource.path) resource = Chef::Resource::PublicKey.new(new_resource.path, run_context) begin key, key_format = Cheffish::KeyFormatter.decode(IO.read(new_resource.path), nil, new_resource.path) if key @current_public_key = key resource.format key_format[:format] end rescue # If there is an error reading we assume format and such is broken end @current_resource = resource else not_found_resource = Chef::Resource::PublicKey.new(new_resource.path, run_context) not_found_resource.action :delete @current_resource = not_found_resource end end
load_prior_resource(*args)
click to toggle source
We are not interested in Chef's cloning behavior here.
# File lib/chef/resource/public_key.rb, line 22 def load_prior_resource(*args) Chef::Log.debug("Overloading #{resource_name}.load_prior_resource with NOOP") end
new_source_key()
click to toggle source
# File lib/chef/resource/public_key.rb, line 58 def new_source_key @new_source_key ||= begin if new_resource.source_key.is_a?(String) source_key, _source_key_format = Cheffish::KeyFormatter.decode(new_resource.source_key, new_resource.source_key_pass_phrase) elsif new_resource.source_key source_key = new_resource.source_key elsif new_resource.source_key_path source_key, _source_key_format = Cheffish::KeyFormatter.decode(IO.binread(new_resource.source_key_path), new_resource.source_key_pass_phrase, new_resource.source_key_path) else return nil end if source_key.private? @new_source_key_publicity = "private" source_key.public_key else @new_source_key_publicity = "public" source_key end end end