Sha256: 0aa3f6b33a77e3817eea4744eccd43e33ccac53123e8e42e5e762b74f91fabaf

Contents?: true

Size: 1.92 KB

Versions: 38

Compression:

Stored size: 1.92 KB

Contents

module Katello
  module Glue::Candlepin::Owner
    def self.included(base)
      base.send :include, LazyAccessor
      base.send :include, InstanceMethods

      base.class_eval do
        validates :label,
            :presence => true,
            :format => { :with => /\A[\w-]*\z/ }

        lazy_accessor :service_levels, :initializer => lambda { |_s| Resources::Candlepin::Owner.service_levels(label) }
        lazy_accessor :system_purposes, :initializer => lambda { |_s| Resources::Candlepin::Owner.system_purpose(label) }
        lazy_accessor :debug_cert, :initializer => lambda { |_s| load_debug_cert }
      end
    end

    module InstanceMethods
      def find_owner
        Resources::Candlepin::Owner.find(self.label)
      end

      def candlepin_owner_exists?
        find_owner
        true
      rescue RestClient::ResourceNotFound
        false
      end

      def owner_details
        @owner_details ||= find_owner
        @owner_details['virt_who'] ||= self.subscriptions.using_virt_who.any?

        @owner_details
      end

      def service_level
        self.owner_details['defaultServiceLevel']
      end

      def service_level=(level)
        Resources::Candlepin::Owner.update(self.label, :defaultServiceLevel => level)
      end

      def content_access_mode
        self.owner_details['contentAccessMode']
      end

      def simple_content_access?(cached: true)
        Rails.cache.fetch("#{self.label}_simple_content_access?", expires_in: 1.minute, force: !cached) do
          content_access_mode == "org_environment"
        end
      end

      def generate_debug_cert
        Resources::Candlepin::Owner.generate_ueber_cert(label)
      end

      def load_debug_cert
        return Resources::Candlepin::Owner.get_ueber_cert(label)
      rescue RestClient::ResourceNotFound
        return generate_debug_cert
      end

      def imports
        Resources::Candlepin::Owner.imports(self.label)
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
katello-4.4.2.2 app/models/katello/glue/candlepin/owner.rb
katello-4.4.2.1 app/models/katello/glue/candlepin/owner.rb
katello-4.4.2 app/models/katello/glue/candlepin/owner.rb
katello-4.5.1 app/models/katello/glue/candlepin/owner.rb
katello-4.5.0 app/models/katello/glue/candlepin/owner.rb
katello-4.5.0.rc2 app/models/katello/glue/candlepin/owner.rb
katello-4.4.1 app/models/katello/glue/candlepin/owner.rb
katello-4.5.0.rc1 app/models/katello/glue/candlepin/owner.rb
katello-4.4.0.2 app/models/katello/glue/candlepin/owner.rb
katello-4.4.0.1 app/models/katello/glue/candlepin/owner.rb
katello-4.3.1 app/models/katello/glue/candlepin/owner.rb
katello-4.4.0 app/models/katello/glue/candlepin/owner.rb
katello-4.4.0.rc2 app/models/katello/glue/candlepin/owner.rb
katello-4.4.0.rc1 app/models/katello/glue/candlepin/owner.rb
katello-4.2.2 app/models/katello/glue/candlepin/owner.rb
katello-4.3.0 app/models/katello/glue/candlepin/owner.rb
katello-4.3.0.rc4 app/models/katello/glue/candlepin/owner.rb
katello-4.3.0.rc3 app/models/katello/glue/candlepin/owner.rb
katello-4.3.0.rc2.1 app/models/katello/glue/candlepin/owner.rb
katello-4.3.0.rc2 app/models/katello/glue/candlepin/owner.rb