def add_repo_filters(content_view_id, nevras)
cw_filter = api_call :content_view_filters,
:create,
{ :content_view_id => content_view_id,
:name => 'Satellite 5 channel equivalence filter',
:type => 'rpm',
:inclusion => true}
packages = nevras.collect do |package_nevra|
match = /^([^:]+)-(\d+):([^-]+)-(.*)\.([^.]*)$/.match(package_nevra)
raise "Bad nevra: #{package_nevra}" unless match
{ :name => match[1],
:epoch => match[2],
:version => match[3],
:release => match[4],
:architecture => match[5]
}
end
packages.group_by { |package| package[:name] } .each do |name, _packages|
api_call :content_view_filter_rules,
:create,
{ :content_view_filter_id => cw_filter['id'],
:name => name}
end
end