Class: Katello::PackageGroup

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

Constant Summary collapse

CONTENT_TYPE =
"package_group"

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::PulpDatabaseUnit

#backend_data

Methods inherited from Model

#destroy!

Class Method Details

.list_by_filter_clauses(clauses) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'app/models/katello/package_group.rb', line 28

def self.list_by_filter_clauses(clauses)
  package_names = []
  pulp_package_groups = Katello.pulp_server.extensions.package_group.search(Katello::PackageGroup::CONTENT_TYPE, :filters => clauses)
  groupings = [:default_package_names, :conditional_package_names, :optional_package_names, :mandatory_package_names]
  if pulp_package_groups.any?
    pulp_package_groups.flat_map { |group|  groupings.each { |grouping| package_names << group[grouping] } }
    package_names.flatten!
  else
    []
  end
end

.repository_association_classObject



14
15
16
# File 'app/models/katello/package_group.rb', line 14

def self.repository_association_class
  RepositoryPackageGroup
end

Instance Method Details

#package_namesObject



40
41
42
43
# File 'app/models/katello/package_group.rb', line 40

def package_names
  group = Pulp::PackageGroup.new(self.uuid)
  group.default_package_names + group.conditional_package_names + group.optional_package_names + group.mandatory_package_names
end

#repositoryObject



18
19
20
# File 'app/models/katello/package_group.rb', line 18

def repository
  self.repositories.first
end

#update_from_json(json) ⇒ Object



22
23
24
25
26
# File 'app/models/katello/package_group.rb', line 22

def update_from_json(json)
  keys = %w(name description)
  custom_json = json.clone.delete_if { |key, _value| !keys.include?(key) }
  self.update_attributes!(custom_json)
end