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