Class: Katello::ContentViewDebFilter
Constant Summary
collapse
- CONTENT_TYPE =
Deb::CONTENT_TYPE
Katello::ContentViewFilter::CONTENT_OPTIONS, Katello::ContentViewFilter::CONTENT_TYPES, Katello::ContentViewFilter::DEB, Katello::ContentViewFilter::DOCKER, Katello::ContentViewFilter::ERRATA, Katello::ContentViewFilter::MODULE_STREAM, Katello::ContentViewFilter::PACKAGE_GROUP, Katello::ContentViewFilter::RPM
Class Method Summary
collapse
Instance Method Summary
collapse
applicable, #applicable_repos, #as_json, class_for, #content_type, create_for, deb, docker, errata, #filter_type, module_stream, #original_module_streams=, #original_packages=, #params_format, #resulting_products, rule_class_for, rule_ids_for, #validate_content_view, #validate_filter_repos, yum
Methods inherited from Model
#destroy!
Class Method Details
.generate_deb_clauses(package_filenames = []) ⇒ Object
28
29
30
|
# File 'app/models/katello/content_view_deb_filter.rb', line 28
def self.generate_deb_clauses(package_filenames = [])
{ 'filename' => { "$in" => package_filenames } } unless package_filenames.empty?
end
|
Instance Method Details
#applicable_debs ⇒ Object
32
33
34
|
# File 'app/models/katello/content_view_deb_filter.rb', line 32
def applicable_debs
Deb.in_repositories(self.applicable_repos)
end
|
#content_unit_pulp_ids(repo) ⇒ Object
19
20
21
22
23
24
25
26
|
# File 'app/models/katello/content_view_deb_filter.rb', line 19
def content_unit_pulp_ids(repo)
deb_filenames = []
self.deb_rules.each do |rule|
deb_filenames.concat(query_debs(repo, rule))
end
debs = Deb.in_repositories(repo)
debs.where(filename: deb_filenames).pluck(:pulp_id).flatten.uniq
end
|
#generate_clauses(repo) ⇒ Object
9
10
11
12
13
14
15
16
17
|
# File 'app/models/katello/content_view_deb_filter.rb', line 9
def generate_clauses(repo)
package_filenames = []
self.deb_rules.each do |rule|
package_filenames.concat(query_debs(repo, rule))
end
ContentViewDebFilter.generate_deb_clauses(package_filenames)
end
|
#query_debs(repo, rule) ⇒ Object
36
37
38
39
|
# File 'app/models/katello/content_view_deb_filter.rb', line 36
def query_debs(repo, rule)
debs = Deb.in_repositories(repo)
query_debs_from_collection(debs, rule).pluck("#{Deb.table_name}.filename")
end
|
#query_debs_from_collection(collection, rule) ⇒ Object
41
42
43
44
45
46
47
48
49
|
# File 'app/models/katello/content_view_deb_filter.rb', line 41
def query_debs_from_collection(collection, rule)
query_name = rule.name.tr("*", "%")
query = collection.where("#{Deb.table_name}.name ilike ?", query_name)
if rule.architecture.present?
query_arch = rule.architecture.tr("*", "%")
query = query.where("#{Deb.table_name}.architecture ilike ?", query_arch)
end
query.default_sort
end
|