class Chef::Resource::RhsmSubscription

Public Instance Methods

pool_serial(pool_id) click to toggle source
# File lib/chef/resource/rhsm_subscription.rb, line 87
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 58
def serials_by_pool
  serials = {}
  pool = nil
  serial = nil

  cmd = "subscription-manager list --consumed"
  stdout = shell_out(cmd, env: { LANG: "en_US" }).stdout

  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 52
def subscription_attached?(subscription)
  cmd = "subscription-manager list --consumed | grep #{subscription}"
  stdout = shell_out(cmd, env: { LANG: "en_US" }).stdout
  !stdout.match(/Pool ID:\s+#{subscription}$/).nil?
end