.\"
.\" The "list" command description
.\"
-.SS \fBlist\fR [\-\-help] [\-\-processes <processes>] [\-\-showurls]
+.SS \fBlist\fR [\-\-help] [\-\-processes <processes>] [\-\-showurls] [\-\-ignore <regexp>]
.RS 2
List submissions in the following format:
Note, that this parameter can also be specified in \fIrepa\fR configuration file.
.RE
+.PP
+.B \-\-ignore <regexp>
+.RS 2
+Ignore packaging failures for specified regexp. <regexp> is a slash-separated string <repository>/<architecture>/<package>, for example arm.*/armv7./.*_aggregate.
+Note, that this parameter can also be specified in \fIrepa\fR configuration file.
+.RE
.PP
.\"
.RS 2
showurls = off
.RE
+.RS 2
+ignore = arm-.*/armv7./.*_aggregate$
+.RE
.RS 2
.RE
.RS 2
-Some options (project, processes, colorize, showurls) can be overridden by commandline options (--project, --processes, --colorize, --showurls)
+Some options (project, processes, colorize, showurls, ignore) can be overridden by commandline options (--project, --processes, --colorize, --showurls, --ignore)
.RE
.SH BUGS
import sys
import json
+import re
from repa.common import (OBS_PROJECT_PREFIX, Colorizer,
get_download_url, get_obs_url)
from repa.obs import OBS
from repa.main import sub_main
-def get_status(meta, colorizer, build_results=None):
+def get_status(meta, colorizer, build_results=None, ignore=''):
"""Get overall status by analyzing package and image build status."""
if build_results:
codes = set()
- for target in build_results.itervalues():
+ pkgstatus = {}
+ for (repo, arch), target in build_results.iteritems():
codes.add(target.get('code'))
codes.add(target.get('state'))
for pkginfo in target['packages']:
- codes.add(pkginfo[1])
+ # ignore packages if they match ignore regexp
+ if not (ignore and re.match(ignore, "%s/%s/%s" % \
+ (repo, arch, pkginfo[0]))):
+ codes.add(pkginfo[1])
statuses = [('broken', ('red', 'broken source')),
('unresolvable', ('red', 'unresolvable packages')),
def list_submissions(obs, target, processes, is_colorize=False,
- showurls=False):
+ showurls=False, ignore=''):
"""List submissions and groups."""
colorizer = Colorizer(is_colorize)
# submissions
continue
projects = [project.split('/')[-1] for project in meta['projects']]
print '%-37s %-37s %s' % (meta['git_tag'], \
- get_status(meta, colorizer, build_results), ','.join(projects))
+ get_status(meta, colorizer, build_results, ignore),
+ ','.join(projects))
if showurls:
show_urls(meta)
parser.add_argument('--showurls', action='store_true',
help='show OBS and download urls',
default=config.get('showurls', '').lower() == 'on')
+ parser.add_argument('--ignore', default=config.get('ignore', ''),
+ help='ignore package failures by regexp')
@staticmethod
def run(argv):
"""Command line entry point. Called from [sub_]main"""
obs = OBS(argv.apiurl, argv.apiuser, argv.apipasswd)
return list_submissions(obs, argv.project, argv.processes,
- argv.colorize, argv.showurls)
+ argv.colorize, argv.showurls, argv.ignore)
if __name__ == '__main__':