Project

General

Profile

Download (1.46 KB) Statistics
| Branch: | Tag: | Revision:
module Katello
module Glue::Candlepin::Subscription
def self.included(base)
base.send :include, LazyAccessor
base.send :include, InstanceMethods
base.send :extend, ClassMethods

base.class_eval do
lazy_accessor :backend_data, :initializer => lambda { |_s| self.class.candlepin_data(self.organization.label, self.cp_id) }
end
end

module ClassMethods
def candlepin_data(org, cp_id)
Katello::Resources::Candlepin::Product.get(org, cp_id)[0]
end

def get_for_owner(organization)
Katello::Resources::Candlepin::Product.all(organization).select do |product|
#this product's id is non-numeric (marketing product), or its a custom product
!Glue::Candlepin::Product.engineering_product_id?(product['id']) || Katello::Product.find_by(:cp_id => product['id']).try(:custom?)
end
end
end

module InstanceMethods
def import_data
subscription_attributes = {}
product_json = self.backend_data

product_json["attributes"].each { |attr| subscription_attributes[attr["name"].to_sym] = attr["value"] }

subscription_attributes[:name] = product_json["name"]
subscription_attributes[:instance_multiplier] = product_json["multiplier"]

exceptions = subscription_attributes.keys.map(&:to_sym) - self.attribute_names.map(&:to_sym)
self.update_attributes!(subscription_attributes.except!(*exceptions))
end
end
end
end
(11-11/11)