Sha256: d46e66ee4954a783b0ad4e74a4594fca03fa5b31b693b55dbe392c3df846eac5

Contents?: true

Size: 1.59 KB

Versions: 9

Compression:

Stored size: 1.59 KB

Contents

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

    ALLOWED_REPOSITORY_TYPES = [Repository::YUM_TYPE,
                                Repository::DOCKER_TYPE,
                                Repository::OSTREE_TYPE
                               ]

    belongs_to :content_view, :inverse_of => :content_view_repositories,
                              :class_name => "Katello::ContentView"
    belongs_to :repository, :inverse_of => :content_view_repositories,
                            :class_name => "Katello::Repository"

    validates_lengths_from_database
    validates :repository_id, :uniqueness => {:scope => :content_view_id}
    validate :content_view_composite
    validate :ensure_repository_type
    validate :check_repo_membership

    private

    def content_view_composite
      if content_view.composite?
        errors.add(:base, _("Cannot add repositories to a composite content view"))
      end
    end

    def ensure_repository_type
      unless ALLOWED_REPOSITORY_TYPES.include?(repository.content_type)
        errors.add(:base, _("Cannot add %s repositories to a content view.") % repository.content_type)
      end
    end

    def check_repo_membership
      unless self.content_view.organization == self.repository.product.organization
        errors.add(:base, _("Cannot add a repository from an Organization other than %s.") % self.content_view.organization.name)
      end

      unless self.repository.content_view.default?
        errors.add(:base, _("Repositories from published Content Views are not allowed."))
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
katello-3.0.2 app/models/katello/content_view_repository.rb
katello-3.0.1 app/models/katello/content_view_repository.rb
katello-3.0.0 app/models/katello/content_view_repository.rb
katello-3.0.0.rc7 app/models/katello/content_view_repository.rb
katello-3.0.0.rc5 app/models/katello/content_view_repository.rb
katello-3.0.0.rc4 app/models/katello/content_view_repository.rb
katello-3.0.0.rc3 app/models/katello/content_view_repository.rb
katello-3.0.0.rc2 app/models/katello/content_view_repository.rb
katello-3.0.0.rc1 app/models/katello/content_view_repository.rb