summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Keating <jkeating@redhat.com>2008-06-05 15:15:28 -0400
committerJesse Keating <jkeating@redhat.com>2008-06-05 15:15:28 -0400
commitb70a28763de8ebbe1eb0e85ca8d024d7aeeab620 (patch)
treee0568fe96721d985f0637bd150222f170e4a5d82
parent8a29a6ae8c8feda1575f7705a332344e3f04afc4 (diff)
downloadreleng-b70a28763de8ebbe1eb0e85ca8d024d7aeeab620.tar.gz
releng-b70a28763de8ebbe1eb0e85ca8d024d7aeeab620.tar.xz
releng-b70a28763de8ebbe1eb0e85ca8d024d7aeeab620.zip
Create new functions to be able to use multiCall when verifying and importing sigs
-rwxr-xr-xscripts/sign_unsigned.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/scripts/sign_unsigned.py b/scripts/sign_unsigned.py
index 5d65068..d9b9d8e 100755
--- a/scripts/sign_unsigned.py
+++ b/scripts/sign_unsigned.py
@@ -528,11 +528,35 @@ class SignUnsigned(CliTool, KojiTool):
else:
self.koji_session.addRPMSig(rpminfo['id'], base64.encodestring(sighdr))
+ def import_sigs(self, importdict, sigkey):
+ self.koji_session.multicall = True
+ for rpm in importdict.keys():
+ if self.options.test:
+ self.print_msg("Would have imported signature '%s' from %s" % (sigkey, importdict[rpm][2]))
+ else:
+ self.koji_session.addRPMSig(rpm, base64.encodestring(importdict[rpm][0]))
+
+ self.koji_session.multiCall()
+
def get_key_id(self, keyname):
for id, data in self.gpg_keys.items():
if keyname.lower() in (data.get('name', ""), data.get('signing_server_id', "")):
return id
+ def import_sig_from_files(self, rpminfos, level, workdir):
+ importdict = {}
+ # Verify that sigs are correct
+ for rpm in rpminfos:
+ src = self.rpm_path(rpm)
+ fn = "%s.rpm" % self.rpm_nvra(rpm)
+ path = "%s/%s" % (workdir, fn)
+ sighdr, sigkey = self.rip_sighdr(path)
+ if self.get_key_id(level).lower() != sigkey.lower():
+ self.print_msg("Error: unexpected signature key [%s], skipping import from %s" % (sigkey, path))
+ continue
+ importdict[rpm['id']] = (sighdr, sigkey.lower(), self.rpm_nvra(rpm))
+ self.import_sigs(importdict, self.get_key_id(level).lower())
+
def import_sig_from_file(self, rpminfo, path=None, level=None):
if path is None:
path = self.rpm_path(rpminfo)
@@ -629,9 +653,7 @@ class SignUnsigned(CliTool, KojiTool):
if self.options.test:
return
self.print_debug("Importing signatures")
- for rpminfo in rpms:
- fn = "%s.rpm" % self.rpm_nvra(rpminfo)
- self.import_sig_from_file(rpminfo, path="%s/%s" % (workdir, fn), level=level)
+ self.import_sig_from_files(rpms, level, workdir)
if self.options.write_rpms:
self.print_msg("Writing RPMs")
for rpminfo in rpms: