Sha256: 0c832e2b18bf00b2ca43960a78fe1b1d9d2c38ed60eaf92ce48e626522817263

Contents?: true

Size: 1.83 KB

Versions: 6

Compression:

Stored size: 1.83 KB

Contents

module Katello
  class ContentViewPuppetModule < Katello::Model
    self.include_root_in_json = false

    belongs_to :content_view, :class_name => "Katello::ContentView", :inverse_of => :content_view_versions

    validates_lengths_from_database
    validates :content_view_id, :presence => true
    validates :name, :uniqueness => { :scope => :content_view_id }, :allow_blank => true
    validates :uuid, :uniqueness => { :scope => :content_view_id }, :allow_blank => true

    validates_with Validators::ContentViewPuppetModuleValidator

    scoped_search :on => :name, :complete_value => true
    scoped_search :on => :author, :complete_value => true
    scoped_search :on => :uuid, :complete_value => true
    scoped_search :on => :name, :in => :content_view, :rename => :content_view_name

    def puppet_module
      PuppetModule.find_by_uuid(self.uuid)
    end

    def computed_version
      if self.uuid
        puppet_module = PuppetModule.where(:uuid => self.uuid).first
      else
        puppet_module = PuppetModule.latest_module(
          self.name,
          self.author,
          self.content_view.puppet_repos
        )
      end

      puppet_module.try(:version)
    end

    def latest_in_modules_by_author?(puppet_module_list)
      latest_from_list = puppet_module_list.where(:author => self.author).order(:sortable_version => :desc).first
      self.computed_version.eql?(latest_from_list.try(:version))
    end

    before_save :set_attributes

    private

    def set_attributes
      return unless SETTINGS[:katello][:use_pulp]
      if self.uuid.present?
        puppet_module = PuppetModule.with_identifiers(self.uuid).first
        fail Errors::NotFound, _("Couldn't find Puppet Module with id '%s'") % self.uuid unless puppet_module

        self.name = puppet_module.name
        self.author = puppet_module.author
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
katello-3.3.2 app/models/katello/content_view_puppet_module.rb
katello-3.3.1.1 app/models/katello/content_view_puppet_module.rb
katello-3.3.1 app/models/katello/content_view_puppet_module.rb
katello-3.3.0.1 app/models/katello/content_view_puppet_module.rb
katello-3.3.0 app/models/katello/content_view_puppet_module.rb
katello-3.3.0.rc2 app/models/katello/content_view_puppet_module.rb