Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new tool to create PublishFilter based on NON_FTP_PACKAGES.group #2027

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions dist/package/openSUSE-release-tools.spec
Expand Up @@ -418,6 +418,7 @@ exit 0
%{_bindir}/osrt-issue-diff
%{_bindir}/osrt-k8s-secret
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-nonftp2publishfilter
%{_bindir}/osrt-obs_clone
%{_bindir}/osrt-openqa-maintenance
%{_bindir}/osrt-requestfinder
Expand Down
38 changes: 38 additions & 0 deletions nonftp2publishfilter.py
@@ -0,0 +1,38 @@
#!/usr/bin/python3

import argparse
from lxml import etree as ET
from osc import conf
from osc.core import meta_get_filelist
from osclib.core import package_binary_list
from osclib.core import source_file_load
import sys
import yaml


def getpackages(apiurl, project):
packages = set()
xml = ET.fromstring(source_file_load(
apiurl, project, '000product', 'NON_FTP_PACKAGES.group'))
packages.update(xml.xpath('//group/packagelist/package/@name'))

return packages

def main(args):
conf.get_config(override_apiurl=args.apiurl)
conf.config['debug'] = args.debug
apiurl = conf.config['apiurl']

for p in sorted(getpackages(apiurl, args.project)):
print('PublishFilter: {}-.*\\.rpm'.format(p))


if __name__ == '__main__':
description = 'read NON_FTP_PACKAGES.group to create publish filter for prjconf'
parser = argparse.ArgumentParser(description=description)
parser.add_argument('-A', '--apiurl', help='OBS instance API URL')
parser.add_argument('-d', '--debug', action='store_true', help='print useful debugging info')
parser.add_argument('project', help='project process')
args = parser.parse_args()

sys.exit(main(args))