Class: Katello::Rpm

Inherits:
Model
  • Object
show all
Includes:
Concerns::PulpDatabaseUnit
Defined in:
app/models/katello/rpm.rb

Constant Summary collapse

CONTENT_TYPE =
Pulp::Rpm::CONTENT_TYPE

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::PulpDatabaseUnit

#backend_data

Methods inherited from Model

#destroy!

Class Method Details

.default_sortObject



21
22
23
# File 'app/models/katello/rpm.rb', line 21

def self.default_sort
  order(:name).order(:epoch).order(:version_sortable).order(:release_sortable)
end

.repository_association_classObject



25
26
27
# File 'app/models/katello/rpm.rb', line 25

def self.repository_association_class
  RepositoryRpm
end

.search_version_equal(version) ⇒ Object



36
37
38
# File 'app/models/katello/rpm.rb', line 36

def self.search_version_equal(version)
  Katello::Util::PackageFilter.new(self, version, Katello::Util::PackageFilter::EQUAL).results
end

.search_version_range(min = nil, max = nil) ⇒ Object



29
30
31
32
33
34
# File 'app/models/katello/rpm.rb', line 29

def self.search_version_range(min = nil, max = nil)
  query = self.all
  query = Katello::Util::PackageFilter.new(query, min, Katello::Util::PackageFilter::GREATER_THAN).results if min
  query = Katello::Util::PackageFilter.new(query, max, Katello::Util::PackageFilter::LESS_THAN).results if max
  query
end

.total_for_repositories(repos) ⇒ Object



50
51
52
# File 'app/models/katello/rpm.rb', line 50

def self.total_for_repositories(repos)
  self.in_repositories(repos).uniq.count
end

Instance Method Details

#nvraObject



58
59
60
# File 'app/models/katello/rpm.rb', line 58

def nvra
  Util::Package.build_nvra(self.as_json.with_indifferent_access)
end

#nvreaObject



54
55
56
# File 'app/models/katello/rpm.rb', line 54

def nvrea
  Util::Package.build_nvrea(self.as_json.with_indifferent_access, false)
end

#update_from_json(json) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'app/models/katello/rpm.rb', line 40

def update_from_json(json)
  keys = Pulp::Rpm::PULP_INDEXED_FIELDS - ['_id']
  custom_json = json.clone.delete_if { |key, _value| !keys.include?(key) }
  if custom_json.any? { |name, value| self.send(name) != value }
    custom_json[:release_sortable] = Util::Package.sortable_version(custom_json[:release])
    custom_json[:version_sortable] = Util::Package.sortable_version(custom_json[:version])
    self.update_attributes!(custom_json)
  end
end