class RhEntitlement::Lookup

Public Class Methods

instance() click to toggle source
# File lib/rh_entitlement/lookup.rb, line 57
def self.instance
  @@instance ||= new
end
make_url_variants(url) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 47
def self.make_url_variants(url)
  urls = [url]
  if url.match(/\dServer/)
    urls.push(url.gsub(/\dServer/, '$releasever'))
  else
    urls.push(url.gsub('$releasever', '6Server'))
    urls.push(url.gsub('$releasever', '7Server'))
  end
end
new() click to toggle source
# File lib/rh_entitlement/lookup.rb, line 3
def initialize
  @entitlements = {}
end

Public Instance Methods

add_cert(key, cert) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 24
def add_cert(key, cert)
  @entitlements[key] = RhEntitlement::Certificate.new(cert)
  self
end
add_certificate_file(filename) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 15
def add_certificate_file(filename)
  add_cert(File.basename(filename).sub('.pem', ''), File.read(filename))
end
add_certs(certs) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 29
def add_certs(certs)
  certs.each do |key, cert|
    add_cert key, cert
  end
  self
end
add_path(path) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 7
def add_path(path)
  return unless File.directory? path
  Dir.glob("#{path}/*.pem").grep(/\/\d+\.pem$/).each do |filename|
    add_certificate_file(filename)
  end
  self
end
entitlements() click to toggle source
# File lib/rh_entitlement/lookup.rb, line 19
def entitlements
  add_path('/etc/pki/entitlement') if @entitlements.empty?
  @entitlements
end
find_url(url) click to toggle source
# File lib/rh_entitlement/lookup.rb, line 36
def find_url(url)
  urls = self.class.make_url_variants(url)
  entitlements.each do |key, entitlement|
    urls.each do |search|
      return key if entitlement.urls.has?(search)
    end
  end

  nil
end