handle external rpms gracefully in cli and webui
This commit is contained in:
parent
4881571e11
commit
c8808cfa22
3 changed files with 53 additions and 26 deletions
39
cli/koji
39
cli/koji
|
|
@ -1018,7 +1018,7 @@ def handle_import(options, session, args):
|
|||
def do_import(path, data):
|
||||
rinfo = dict([(k,data[k]) for k in ('name','version','release','arch')])
|
||||
prev = session.getRPM(rinfo)
|
||||
if prev:
|
||||
if prev and not prev.get('external_repo_id', 0):
|
||||
if prev['payloadhash'] == koji.hex_string(data['sigmd5']):
|
||||
print _("RPM already imported: %s") % path
|
||||
else:
|
||||
|
|
@ -1165,6 +1165,9 @@ def handle_import_sig(options, session, args):
|
|||
if not rinfo:
|
||||
print "No such rpm in system: %(name)s-%(version)s-%(release)s.%(arch)s" % data
|
||||
continue
|
||||
if rinfo.get('external_repo_id'):
|
||||
print "Skipping external rpm: %(name)s-%(version)s-%(release)s.%(arch)s@%(external_repo_name)s" %rpminfo
|
||||
continue
|
||||
sighdr = koji.rip_rpm_sighdr(path)
|
||||
previous = session.queryRPMSigs(rpm_id=rinfo['id'], sigkey=sigkey)
|
||||
assert len(previous) <= 1
|
||||
|
|
@ -1639,6 +1642,9 @@ def handle_list_signed(options, session, args):
|
|||
rpm_idx[rinfo['id']] = rinfo
|
||||
if rinfo is None:
|
||||
parser.error(_("No such RPM: %s") % options.rpm)
|
||||
if rinfo.get('external_repo_id'):
|
||||
print "External rpm: %(name)s-%(version)s-%(release)s.%(arch)s@%(external_repo_name)s" %rpminfo
|
||||
sys.exit(1)
|
||||
qopts['rpm_id'] = rinfo['id']
|
||||
if options.build:
|
||||
binfo = session.getBuild(options.build)
|
||||
|
|
@ -2297,21 +2303,28 @@ def anon_handle_rpminfo(options, session, args):
|
|||
info['epoch'] = ""
|
||||
else:
|
||||
info['epoch'] = str(info['epoch']) + ":"
|
||||
buildinfo = session.getBuild(info['build_id'])
|
||||
buildinfo['name'] = buildinfo['package_name']
|
||||
buildinfo['arch'] = 'src'
|
||||
if buildinfo['epoch'] is None:
|
||||
buildinfo['epoch'] = ""
|
||||
else:
|
||||
buildinfo['epoch'] = str(buildinfo['epoch']) + ":"
|
||||
if not info.get('external_repo_id', 0):
|
||||
buildinfo = session.getBuild(info['build_id'])
|
||||
buildinfo['name'] = buildinfo['package_name']
|
||||
buildinfo['arch'] = 'src'
|
||||
if buildinfo['epoch'] is None:
|
||||
buildinfo['epoch'] = ""
|
||||
else:
|
||||
buildinfo['epoch'] = str(buildinfo['epoch']) + ":"
|
||||
print "RPM: %(epoch)s%(name)s-%(version)s-%(release)s.%(arch)s [%(id)d]" %info
|
||||
print "RPM Path: %s" % os.path.join(koji.pathinfo.build(buildinfo), koji.pathinfo.rpm(info))
|
||||
print "SRPM: %(epoch)s%(name)s-%(version)s-%(release)s [%(id)d]" % buildinfo
|
||||
print "SRPM Path: %s" % os.path.join(koji.pathinfo.build(buildinfo), koji.pathinfo.rpm(buildinfo))
|
||||
print "Built: %s" % time.strftime('%a, %d %b %Y %H:%M:%S %Z', time.localtime(info['buildtime']))
|
||||
if info.get('external_repo_id'):
|
||||
repo = session.getExternalRepo(info['external_repo_id'])
|
||||
print "External Repository: %(name)s [%(id)i]" % repo
|
||||
print "External Repository url: %(url)s" % repo
|
||||
else:
|
||||
print "RPM Path: %s" % os.path.join(koji.pathinfo.build(buildinfo), koji.pathinfo.rpm(info))
|
||||
print "SRPM: %(epoch)s%(name)s-%(version)s-%(release)s [%(id)d]" % buildinfo
|
||||
print "SRPM Path: %s" % os.path.join(koji.pathinfo.build(buildinfo), koji.pathinfo.rpm(buildinfo))
|
||||
print "Built: %s" % time.strftime('%a, %d %b %Y %H:%M:%S %Z', time.localtime(info['buildtime']))
|
||||
print "Payload: %(payloadhash)s" %info
|
||||
print "Size: %(size)s" %info
|
||||
print "Build ID: %(build_id)s" %info
|
||||
if not info.get('external_repo_id', 0):
|
||||
print "Build ID: %(build_id)s" %info
|
||||
if info['buildroot_id'] is None:
|
||||
print "No buildroot data available"
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1138,18 +1138,21 @@ def rpminfo(req, rpmID, fileOrder='name', fileStart=None):
|
|||
epochStr = '%s:' % rpm['epoch']
|
||||
values['title'] = values['title'] % epochStr
|
||||
|
||||
build = server.getBuild(rpm['build_id'])
|
||||
build = None
|
||||
if rpm['build_id'] != None:
|
||||
build = server.getBuild(rpm['build_id'])
|
||||
builtInRoot = None
|
||||
if rpm['buildroot_id'] != None:
|
||||
builtInRoot = server.getBuildroot(rpm['buildroot_id'])
|
||||
requires = server.getRPMDeps(rpm['id'], koji.DEP_REQUIRE)
|
||||
requires.sort(_sortbyname)
|
||||
provides = server.getRPMDeps(rpm['id'], koji.DEP_PROVIDE)
|
||||
provides.sort(_sortbyname)
|
||||
obsoletes = server.getRPMDeps(rpm['id'], koji.DEP_OBSOLETE)
|
||||
obsoletes.sort(_sortbyname)
|
||||
conflicts = server.getRPMDeps(rpm['id'], koji.DEP_CONFLICT)
|
||||
conflicts.sort(_sortbyname)
|
||||
if rpm['external_repo_id'] == 0:
|
||||
values['requires'] = server.getRPMDeps(rpm['id'], koji.DEP_REQUIRE)
|
||||
values['requires'].sort(_sortbyname)
|
||||
values['provides'] = server.getRPMDeps(rpm['id'], koji.DEP_PROVIDE)
|
||||
values['provides'].sort(_sortbyname)
|
||||
values['obsoletes'] = server.getRPMDeps(rpm['id'], koji.DEP_OBSOLETE)
|
||||
values['obsoletes'].sort(_sortbyname)
|
||||
values['conflicts'] = server.getRPMDeps(rpm['id'], koji.DEP_CONFLICT)
|
||||
values['conflicts'].sort(_sortbyname)
|
||||
buildroots = server.listBuildroots(rpmID=rpm['id'])
|
||||
buildroots.sort(kojiweb.util.sortByKeyFunc('-create_event_time'))
|
||||
|
||||
|
|
@ -1157,10 +1160,6 @@ def rpminfo(req, rpmID, fileOrder='name', fileStart=None):
|
|||
values['rpm'] = rpm
|
||||
values['build'] = build
|
||||
values['builtInRoot'] = builtInRoot
|
||||
values['requires'] = requires
|
||||
values['provides'] = provides
|
||||
values['obsoletes'] = obsoletes
|
||||
values['conflicts'] = conflicts
|
||||
values['buildroots'] = buildroots
|
||||
|
||||
files = kojiweb.util.paginateMethod(server, values, 'listRPMFiles', args=[rpm['id']],
|
||||
|
|
|
|||
|
|
@ -11,10 +11,18 @@
|
|||
<th>ID</th><td>$rpm.id</td>
|
||||
</tr>
|
||||
<tr>
|
||||
#if $build
|
||||
<th>Name</th><td><a href="packageinfo?packageID=$build.package_id">$rpm.name</a></td>
|
||||
#else
|
||||
<th>Name</th><td>$rpm.name</td>
|
||||
#end if
|
||||
</tr>
|
||||
<tr>
|
||||
#if $build
|
||||
<th>Version</th><td><a href="buildinfo?buildID=$build.id">$rpm.version</a></td>
|
||||
#else
|
||||
<th>Version</th><td>$rpm.version</td>
|
||||
#end if
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Release</th><td>$rpm.release</td>
|
||||
|
|
@ -25,6 +33,11 @@
|
|||
<tr>
|
||||
<th>Arch</th><td>$rpm.arch</td>
|
||||
</tr>
|
||||
#if $rpm.external_repo_id
|
||||
<tr>
|
||||
<th>External Repository</th><td>$rpm.external_repo_name</td>
|
||||
</tr>
|
||||
#end if
|
||||
<tr>
|
||||
<th>Size</th><td>$rpm.size</td>
|
||||
</tr>
|
||||
|
|
@ -39,6 +52,7 @@
|
|||
<th>Buildroot</th><td><a href="buildrootinfo?buildrootID=$builtInRoot.id">$builtInRoot.tag_name-$builtInRoot.id-$builtInRoot.repo_id</a></td>
|
||||
</tr>
|
||||
#end if
|
||||
#if $rpm.external_repo_id == 0
|
||||
<tr>
|
||||
<th>Provides</th>
|
||||
<td class="container">
|
||||
|
|
@ -144,6 +158,7 @@
|
|||
#end if
|
||||
</td>
|
||||
</tr>
|
||||
#end if
|
||||
<tr>
|
||||
<th>Component of</th>
|
||||
<td class="container">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue