module Formatron::S3::ChefServerKeys

manage the Chef Server user and organization keys

Constants

ORGANIZATION_PEM_NAME
USER_PEM_NAME

Public Class Methods

destroy( aws:, bucket:, name:, target:, guid: ) click to toggle source

rubocop:disable Metrics/MethodLength

# File lib/formatron/s3/chef_server_keys.rb, line 48
def self.destroy(
  aws:,
  bucket:,
  name:,
  target:,
  guid:
)
  user_pem_key = self.user_pem_key name: name, target: target, guid: guid
  Formatron::LOG.info do
    'Delete Chef Server user key from ' \
    "#{bucket}/#{user_pem_key}"
  end
  aws.delete_file(
    bucket: bucket,
    key: user_pem_key
  )
  organization_pem_key = self.organization_pem_key(
    name: name, target: target, guid: guid
  )
  Formatron::LOG.info do
    'Delete Chef Server organization key ' \
    "from #{bucket}/#{organization_pem_key}"
  end
  aws.delete_file(
    bucket: bucket,
    key: organization_pem_key
  )
end
get( aws:, bucket:, name:, target:, guid:, directory: ) click to toggle source

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/ParameterLists

# File lib/formatron/s3/chef_server_keys.rb, line 13
def self.get(
  aws:,
  bucket:,
  name:,
  target:,
  guid:,
  directory:
)
  user_pem_key = self.user_pem_key name: name, target: target, guid: guid
  Formatron::LOG.info do
    'Download Chef Server user key from ' \
    "#{bucket}/#{user_pem_key}"
  end
  aws.download_file(
    bucket: bucket,
    key: user_pem_key,
    path: user_pem_path(directory: directory)
  )
  organization_pem_key = self.organization_pem_key(
    name: name, target: target, guid: guid
  )
  Formatron::LOG.info do
    'Download Chef Server organization key ' \
    "from #{bucket}/#{organization_pem_key}"
  end
  aws.download_file(
    bucket: bucket,
    key: organization_pem_key,
    path: organization_pem_path(directory: directory)
  )
end
organization_pem_key(name:, target:, guid:) click to toggle source
# File lib/formatron/s3/chef_server_keys.rb, line 90
def self.organization_pem_key(name:, target:, guid:)
  Path.key(
    name: name,
    target: target,
    sub_key: "#{guid}/#{ORGANIZATION_PEM_NAME}"
  )
end
organization_pem_path(directory:) click to toggle source
# File lib/formatron/s3/chef_server_keys.rb, line 98
def self.organization_pem_path(directory:)
  File.join directory, ORGANIZATION_PEM_NAME
end
user_pem_key(name:, target:, guid:) click to toggle source

rubocop:enable Metrics/MethodLength

# File lib/formatron/s3/chef_server_keys.rb, line 78
def self.user_pem_key(name:, target:, guid:)
  Path.key(
    name: name,
    target: target,
    sub_key: "#{guid}/#{USER_PEM_NAME}"
  )
end
user_pem_path(directory:) click to toggle source
# File lib/formatron/s3/chef_server_keys.rb, line 86
def self.user_pem_path(directory:)
  File.join directory, USER_PEM_NAME
end