backend/server/importlib/packageImport.py | 4 +-- backend/spacewalk/common/rhn_pkg.py | 33 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-)
New commits: commit 4a7e2c2f175cbe71e937c901cd456d647978b9f8 Author: Simon Lukasik slukasik@redhat.com Date: Tue Feb 8 17:36:30 2011 +0100
Introducing an interface common for rpm, deb and mpm packages
Addressing: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/spacewalk/server/apacheUploadServer.py", line 97, in _wrapper ret = function(req) File "/usr/share/rhn/upload_server/handlers/package_push/package_push.py", line 134, in handler relative_path=self.rel_package_path, org_id=self.org_id) File "/usr/lib/python2.4/site-packages/spacewalk/server/rhnPackageUpload.py", line 164, in push_package importer.run() File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/importLib.py", line 630, in run self.submit() File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/packageImport.py", line 297, in submit self._import_signatures() File "/usr/lib/python2.4/site-packages/spacewalk/server/importlib/packageImport.py", line 485, in _import_signatures header = rhn_rpm.get_package_header(filename=full_path) File "/usr/lib/python2.4/site-packages/spacewalk/common/rhn_rpm.py", line 282, in get_package_header hdr = ts.hdrFromFdno(file_desc) File "/usr/lib/python2.4/site-packages/spacewalk/common/rhn_rpm.py", line 106, in hdrFromFdno return self.ts.hdrFromFdno(fd) error: error reading package header
diff --git a/backend/server/importlib/packageImport.py b/backend/server/importlib/packageImport.py index b1b675b..7efe7ab 100644 --- a/backend/server/importlib/packageImport.py +++ b/backend/server/importlib/packageImport.py @@ -21,7 +21,7 @@ import os.path from importLib import GenericPackageImport, IncompletePackage, \ Import, InvalidArchError, InvalidChannelError, \ IncompatibleArchError -from spacewalk.common import CFG, rhn_rpm +from spacewalk.common import CFG, rhn_pkg from spacewalk.server import taskomatic from spacewalk.server.rhnServer import server_packages
@@ -483,7 +483,7 @@ class PackageImport(ChannelPackageSubscription): if package['path']: full_path = os.path.join(CFG.MOUNT_POINT, package['path']) if os.path.exists(full_path): - header = rhn_rpm.get_package_header(filename=full_path) + header = rhn_pkg.get_package_header(filename=full_path) server_packages.processPackageKeyAssociations(header, package['checksum_type'], package['checksum'])
diff --git a/backend/spacewalk/common/rhn_pkg.py b/backend/spacewalk/common/rhn_pkg.py new file mode 100644 index 0000000..3097416 --- /dev/null +++ b/backend/spacewalk/common/rhn_pkg.py @@ -0,0 +1,33 @@ +# +# Copyright (c) 2008--2011 Red Hat, Inc. +# +# This software is licensed to you under the GNU General Public License, +# version 2 (GPLv2). There is NO WARRANTY for this software, express or +# implied, including the implied warranties of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 +# along with this software; if not, see +# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. +# +# Red Hat trademarks are not licensed under GPLv2. No permission is +# granted to use or replicate Red Hat trademarks that are incorporated +# in this software or its documentation. +# + +import rhn_rpm +import rhn_mpm +import rhn_deb + +def rhn_pkg(filename=None, file=None, fd=None): + if filename: + if filename.endswith('.deb'): + return rhn_deb + elif filename.endswith('.rpm'): + return rhn_rpm + else: + return rhn_mpm + # XXX recognize backend also by file/fd + return rhn_rpm + +def get_package_header(filename=None, file=None, fd=None): + return rhn_pkg(filename=filename, file=file, fd=fd) \ + .get_package_header(filename=filename, file=file, fd=fd)
spacewalk-commits@lists.fedorahosted.org