class Chef::Resource::RhsmSubscription

Public Instance Methods

pool_serial(pool_id) click to toggle source
# File lib/chef/resource/rhsm_subscription.rb, line 90
def pool_serial(pool_id)
  serials_by_pool[pool_id]
end
serials_by_pool() click to toggle source
# File lib/chef/resource/rhsm_subscription.rb, line 62
def serials_by_pool
  serials = {}
  pool = nil
  serial = nil

  cmd = Mixlib::ShellOut.new("subscription-manager list --consumed", env: { LANG: "en_US" })
  cmd.run_command
  cmd.stdout.lines.each do |line|
    line.strip!
    key, value = line.split(/:\s+/, 2)
    next unless ["Pool ID", "Serial"].include?(key)

    if key == "Pool ID"
      pool = value
    elsif key == "Serial"
      serial = value
    end

    next unless pool && serial

    serials[pool] = serial
    pool = nil
    serial = nil
  end

  serials
end
subscription_attached?(subscription) click to toggle source
# File lib/chef/resource/rhsm_subscription.rb, line 56
def subscription_attached?(subscription)
  cmd = Mixlib::ShellOut.new("subscription-manager list --consumed | grep #{subscription}", env: { LANG: "en_US" })
  cmd.run_command
  !cmd.stdout.match(/Pool ID:\s+#{subscription}$/).nil?
end