Ticket #941 (closed defect: fixed)
Incomplete information for entry Package:gpg-pubkey; cannot verify
Reported by: | jjneely | Owned by: | desai |
---|---|---|---|
Priority: | minor | Milestone: | Bcfg2 1.1.0 Release |
Component: | bcfg2-client | Version: | 1.0 |
Keywords: | Cc: |
Description
Several folks have complained about the following error message with gpg-pubkeys and the new YUMng:
Incomplete information for entry Package:gpg-pubkey; cannot verify ... due to absence of version attribute(s)
which can be followed by a traceback:
YUMng.Install() call failed: Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/Bcfg2/Client/Frame.py", line 303, in DispatchInstallCalls tool.Install(handled, self.states) File "/usr/lib/python2.6/site-packages/Bcfg2/Client/Tools/YUMng.py", line 734, in Install status = self.instance_status[inst] KeyError: <Element Instance at 1c64440>
Folks are getting this by following the documented way of specifying gpg keys like this:
<BoundPackage name='gpg-pubkey' type="rpm"> <!-- The Realm Linux RPM signing key GPG v1.2.1 --> <Instance simplefile='/etc/pki/rpm-gpg/RPM-GPG-KEY-RealmLinux-0' version='b274beb2' release='4283a289'/> <!-- Red Hat's signing key for Beta products --> <Instance simplefile='/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta-2' version='f21541eb' release='4a5233e7'/> <!-- Red Hat's current RPM signing key --> <Instance simplefile='/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' version='37017186' release='45761324'/> <!-- CentOS5: Required for compatibility with CentOS 5 RL bases --> <Instance simplefile='/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5' version='e8562897' release='459f07a4'/> <!-- Used with RHEL4 products and below --> <Instance simplefile='/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-former' version='db42a60e' release='37ea5438'/> </BoundPackage>
Problems so far: Even though YUMng is handling this still, the type should be set to "yum" not "rpm" although that does not fix the above.
This produces the following in the XML sent to the client:
<Package name="gpg-pubkey" type="rpm">
The gpg-pubkeys work if they are specified as a Package rather than a BoundPackage?. Removing the type and changing the above specification to Package yields the following XML sent to the client:
<Package name="gpg-pubkey" type="yum" version="auto">
With the version key set in the package, the default canVerify() method succedes. The canVerify() method checks YUMng.__req__ which specifies both name and version attributes for the Package tag.
So, what's the right fix. Documentation updates relevant to the new YUMng driver need to happen. I'd like some help in getting that done. We can just use the normal Package tags for gpg-pubkeys and document that. Secondly, the minimum information YUMng needs to verify a packages is its name, so we can remove version from YUMng.__req__.