Project

Profile

Help

Issue #2346

repoview decode errors

Added by dad264 almost 2 years ago. Updated 9 months ago.

Status:
NEW
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Severity:
3. High
Version:
2.9.3
Platform Release:
Blocks Release:
OS:
CentOS 6
Backwards Incompatible:
No
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:

Description

Hello all,

I've been tracking down publishing failures due to repoview generation not being able to decode to UTF-8.

    [traceback] => Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/celery/app/trace.py", line 240, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 484, in __call__
    return super(Task, self).__call__(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 103, in __call__
    return super(PulpTask, self).__call__(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/celery/app/trace.py", line 437, in __protected_call__
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 971, in publish
    result = check_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
  File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 1038, in check_publish
    result = _do_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
  File "/usr/lib/python2.6/site-packages/pulp/server/controllers/repository.py", line 1090, in _do_publish
    publish_report = publish_repo(transfer_repo, conduit, call_config)
  File "/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py", line 669, in wrap_f
    return f(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/distributors/yum/distributor.py", line 174, in publish_repo
    return self._publisher.process_lifecycle()
  File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 564, in process_lifecycle
    super(PluginStep, self).process_lifecycle()
  File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 161, in process_lifecycle
    step.process()
  File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 263, in process
    self._record_failure(e, tb)
  File "/usr/lib/python2.6/site-packages/pulp/plugins/util/publish_step.py", line 394, in _record_failure
    error_details['error'] = str(e)
  File "/usr/lib/python2.6/site-packages/pulp/server/exceptions.py", line 96, in __str__
    return msg.encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 113061: ordinal not in range(128)

After some investication, I've narrowed it down to this pattern:

This command (which pulp seems to be generating):
createrepo_c -d --update --keep-all-metadata --local-sqlite -s sha256 --skip-stat /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/

Followed by:
repoview -f /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/

Will generate the decoding error:
sqlite3.OperationalError: Could not decode to UTF-8 column 'location_href' with text ...

However, if I run the createrepo_c without the update or keep metadata flags:
createrepo_c -d --local-sqlite -s sha256 --skip-stat /var/lib/pulp/published/yum/http/repos/mirror/scientific/6x/x86_64/os/

The repoview command works like a charm.

Any thoughts?

repoview-unicode.diff (1.5 KB) quick patch for /usr/bin/repoview cretep, 07/26/2017 04:04 PM repoview-unicode.diff

History

#1 Updated by amacdona@redhat.com almost 2 years ago

  • Triaged changed from No to Yes

#2 Updated by alexjfisher over 1 year ago

Hi
I think I've just hit this bug too. Feed URL is https://www.mirrorservice.org/sites/mirror.centos.org/7/os/x86_64

pulp-admin rpm repo sync run --repo-id centos-7-x86_64-base

-SNIP-

Generating HTML files
[\]

Task Failed

'ascii' codec can't decode byte 0xd0 in position 19732: ordinal not in
range(128)

in /var/log/messages

Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) oview", line 544, in do_packages\n    pkg_data = self.get_package_data(pkgname)\n  File "/usr/bin/repoview", line 442, in get_package_data\n    rows = pcursor.fetchall()\nsqlite3.OperationalError: Could not decode to UTF-8 column \'location_href\' with text \'\x90\x0b\x17\x04\x81\x7f\'\n', 40906, 40907, 'ordinal not in range(128)')
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) Traceback (most recent call last):
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     R = retval = fun(*args, **kwargs)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 505, in __call__
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return super(Task, self).__call__(*args, **kwargs)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 108, in __call__
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return super(PulpTask, self).__call__(*args, **kwargs)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return self.run(*args, **kwargs)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1099, in publish
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     result = check_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1191, in check_publish
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     result = _do_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/controllers/repository.py", line 1243, in _do_publish
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     publish_report = publish_repo(transfer_repo, conduit, call_config)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 708, in wrap_f
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return f(*args, **kwargs)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/distributors/yum/distributor.py", line 174, in publish_repo
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return self._publisher.process_lifecycle()
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 572, in process_lifecycle
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     super(PluginStep, self).process_lifecycle()
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 163, in process_lifecycle
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     step.process()
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 271, in process
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     self._record_failure(e, tb)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/plugins/util/publish_step.py", line 402, in _record_failure
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     error_details['error'] = str(e)
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)   File "/usr/lib/python2.7/site-packages/pulp/server/exceptions.py", line 96, in __str__
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576)     return msg.encode('utf-8')
Apr  6 10:16:22 pulp01c pulp: celery.worker.job:ERROR: (1159-48576) UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 40906: ordinal not in range(128)

Other than turning off repoview, any other solutions?

Thanks,
Alex

#3 Updated by bmbouter over 1 year ago

We could help guide you into contributing a PR for it. I think you want to cause the utf-8 decoding to use the 'replace' option. We made some similar changes fixing Issue #1903. You can see some of the associated Pull requests there. Also I wrote some about the 'replace' option here

Also consider writing a Pulp Smash test for this. Those are written here: https://github.com/PulpQE/pulp-smash/issues and the issue number gets stored as the 'Smash Test' field.

#4 Updated by cretep 12 months ago

There are two bugs, one with repoview and one with pulp.

Firstly, repoview cannot handle utf8 strings in rpm package metadata. A quick patch for repoview is attached. repoview has two problems: it instructed sqlite to output ascii (which failed), and its html/rss writers required ascii inputs (and thus failed).

Secondly, pulp's error handling cannot handle utf8 strings. See the last two lines of the traceback above:

error_details['error'] = str(e)
...
return msg.encode('utf-8')
str() is not unicode-safe, and .encode() is overly strict and has failed -- really undesirable for a failure handler! The most failsafe approach I have found is unicode(x, errors='ignore')

#5 Updated by bmbouter 12 months ago

@cretep Thank you for investigating this.

Is the repoview issue known upstrema in repoview? It would be great to if you could ensure that it is and submit your patch to them.

Regarding the Pulp issue what about using: return msg.encode('utf-8', 'replace') there instead of return msg.encode('utf-8')? Or are you suggesting replacing error_details['error'] = str(e) with error_details['error'] = unicode(e, errors='ignore')?

Posting an actual diff (against master please) would help me understand what you are proposing. Can that be done?

#6 Updated by pthomas@redhat.com 12 months ago

  • Severity changed from 2. Medium to 3. High

Seem like this is an issue with the 2.14 beta as well. I have been able to reproduce this on a RHEL7.4 pulp server syncing rhel7 content.


[root@ibm-x3550m3-07 ~]# rpm -qa |grep pulp |sort
pulp-admin-client-2.14.0-0.3.rc.el7.noarch
pulp-deb-admin-extensions-1.5.2-0.2.beta.el7.noarch
pulp-deb-plugins-1.5.2-0.2.beta.el7.noarch
pulp-docker-admin-extensions-3.0.0-0.3.rc.el7.noarch
pulp-docker-plugins-3.0.0-0.3.rc.el7.noarch
pulp-ostree-admin-extensions-1.3.0-0.3.rc.el7.noarch
pulp-ostree-plugins-1.3.0-0.3.rc.el7.noarch
pulp-puppet-admin-extensions-2.14.0-0.3.rc.el7.noarch
pulp-puppet-plugins-2.14.0-0.3.rc.el7.noarch
pulp-python-admin-extensions-2.0.1-0.3.rc.el7.noarch
pulp-python-plugins-2.0.1-0.3.rc.el7.noarch
pulp-rpm-admin-extensions-2.14.0-0.3.rc.el7.noarch
pulp-rpm-plugins-2.14.0-0.3.rc.el7.noarch
pulp-selinux-2.14.0-0.3.rc.el7.noarch
pulp-server-2.14.0-0.3.rc.el7.noarch
python-isodate-0.5.0-4.pulp.el7.noarch
python-kombu-3.0.33-6.pulp.el7.noarch
python-pulp-bindings-2.14.0-0.3.rc.el7.noarch
python-pulp-client-lib-2.14.0-0.3.rc.el7.noarch
python-pulp-common-2.14.0-0.3.rc.el7.noarch
python-pulp-deb-common-1.5.2-0.2.beta.el7.noarch
python-pulp-docker-common-3.0.0-0.3.rc.el7.noarch
python-pulp-oid_validation-2.14.0-0.3.rc.el7.noarch
python-pulp-ostree-common-1.3.0-0.3.rc.el7.noarch
python-pulp-puppet-common-2.14.0-0.3.rc.el7.noarch
python-pulp-python-common-2.0.1-0.3.rc.el7.noarch
python-pulp-repoauth-2.14.0-0.3.rc.el7.noarch
python-pulp-rpm-common-2.14.0-0.3.rc.el7.noarch
python-pulp-streamer-2.14.0-0.3.rc.el7.noarch
[root@ibm-x3550m3-07 ~]# 

[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo create --repo-id RHEL7 --feed http://download.devel.redhat.com/released/RHEL-7/7.4/Server/x86_64/os/  --repoview true   --remove-missing true
Successfully created repository [RHEL7]

[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo sync run --repo-id RHEL7
+----------------------------------------------------------------------+
                    Synchronizing Repository [RHEL7]
+----------------------------------------------------------------------+

This command may be exited via ctrl+c without affecting the request.

Downloading metadata...
[|]
... completed

Downloading repository content...
[\]
[==================================================] 100%
RPMs:       4986/4986 items
Delta RPMs: 0/0 items

... completed

Downloading distribution files...
[==================================================] 100%
Distributions: 5/5 items
... completed

Importing errata...
[-]
... completed

Importing package groups/categories...
[|]
... completed

Cleaning duplicate packages...
[-]
... completed

Task Succeeded

Initializing repo metadata
[-]
... completed

Publishing Distribution files
[-]
... completed

Publishing RPMs
[==================================================] 100%
4986 of 4986 items
... completed

Publishing Delta RPMs
... skipped

Publishing Errata
[|]
... completed

Publishing Comps file
[==================================================] 100%
91 of 91 items
... completed

Publishing Metadata.
[-]
... completed

Closing repo metadata
[-]
... completed

Generating sqlite files
[-]
... completed

Generating HTML files
[-]

Task Failed

'ascii' codec can't decode byte 0xf0 in position 11874: ordinal not in
range(128)

[root@ibm-x3550m3-07 ~]# hostname
ibm-x3550m3-07.lab.eng.brq.redhat.com
[root@ibm-x3550m3-07 ~]# pulp-admin rpm repo sync run --repo-id RHEL7
+----------------------------------------------------------------------+
                    Synchronizing Repository [RHEL7]
+----------------------------------------------------------------------+

This command may be exited via ctrl+c without affecting the request.

Downloading metadata...
[|]
... completed

Downloading repository content...
[-]
[==================================================] 100%
RPMs:       0/0 items
Delta RPMs: 0/0 items

... completed

Downloading distribution files...
[==================================================] 100%
Distributions: 0/0 items
... completed

Importing errata...
[-]
... completed

Importing package groups/categories...
[-]
... completed

Cleaning duplicate packages...
[-]
... completed

Task Succeeded

Initializing repo metadata
[-]
... completed

Publishing Distribution files
[-]
... completed

Publishing RPMs
[==================================================] 100%
4986 of 4986 items
... completed

Publishing Delta RPMs
... skipped

Publishing Errata
[|]
... completed

Publishing Comps file
[==================================================] 100%
91 of 91 items
... completed

Publishing Metadata.
[-]
... completed

Closing repo metadata
[-]
... completed

Generating sqlite files
[-]
... completed

Generating HTML files
[/]

Task Failed

Error occurred during 'repoview' execution: Examining repository...done
Opening
primary database...done
Opening changelogs database...done
Parsing
comps.xml...done
Copying layout...done
Examining state db...done
Collecting
letters...done
Writing package compat-db47.html
Writing package
compat-glibc.html
Writing package compat-libcap1.html
Writing package
compat-libf2c-34.html
Writing package compat-libgfortran-41.html
Writing package
compat-libtiff3.html
Writing package compat-openldap.html
Writing package
libpng12.html
Writing package openssl098e.html
Writing group
compat-libraries.group.html
Writing package elinks.html
Writing package
fetchmail.html
Writing package ftp.html
Writing package irssi.html
Writing
package lftp.html
Writing package mutt.html
Writing package whois.html
Writing
group console-internet.group.html
Writing package ElectricFence.html
Writing
package ant.html
Writing package autoconf.html
Writing package
automake.html
Writing package babel.html
Writing package binutils.html
Writing
package bison.html
Writing package byacc.html
Writing package bzr.html
Writing
package chrpath.html
Writing package cmake.html
Writing package
compat-gcc-44.html
Writing package compat-gcc-44-c++.html
Writing package
cscope.html
Writing package ctags.html
Writing package cvs.html
Writing package
dejagnu.html
Writing package diffstat.html
Writing package doxygen.html
Writing
package elfutils.html
Writing package expect.html
Writing package
flex.html
Writing package gcc.html
Writing package gcc-c++.html
Writing package
gcc-gfortran.html
Writing package gcc-gnat.html
Writing package
gcc-objc.html
Writing package gcc-objc++.html
Writing package
gettext.html
Writing package git.html
Writing package imake.html
Writing package
indent.html
Writing package intltool.html
Writing package
javapackages-tools.html
Writing package ksc.html
Writing package
libstdc++-docs.html
Writing package libtool.html
Writing package
make.html
Writing package mercurial.html
Writing package
mod_dav_svn.html
Writing package nasm.html
Writing package patch.html
Writing
package patchutils.html
Writing package perltidy.html
Writing package
pkgconfig.html
Writing package python-docs.html
Writing package rcs.html
Writing
package redhat-rpm-config.html
Writing package rpm-build.html
Writing package
rpm-sign.html
Writing package rpmdevtools.html
Writing package
rpmlint.html
Writing package subversion.html
Writing package swig.html
Writing
package systemtap.html
Writing package systemtap-sdt-devel.html
Writing package
systemtap-server.html
Writing group development.group.html
Writing package
authconfig-gtk.html
Writing package gnome-disk-utility.html
Writing package
gnome-packagekit.html
Writing package policycoreutils-gui.html
Writing package
setools-console.html
Writing package setroubleshoot.html
Writing package
system-config-kdump.html
Writing package system-config-kickstart.html
Writing
package system-config-users.html
Writing package
system-config-users-docs.html
Writing package wireshark-gnome.html
Writing group
graphical-admin-tools.group.html
Writing package authd.html
Writing package
cups-lpd.html
Writing package finger.html
Writing package
finger-server.html
Writing package ksh.html
Writing package mksh.html
Writing
package ncompress.html
Writing package rsh.html
Writing package
rsh-server.html
Writing package rusers.html
Writing package
rusers-server.html
Writing package rwho.html
Writing package talk.html
Writing
package talk-server.html
Writing package tcp_wrappers.html
Writing package
telnet.html
Writing package telnet-server.html
Writing package tftp.html
Writing
package xinetd.html
Writing package ypbind.html
Writing package
ypserv.html
Writing group legacy-unix.group.html
Writing package
atlas.html
Writing package fftw.html
Writing package fftw-devel.html
Writing
package fftw-static.html
Writing package gnuplot.html
Writing package
gsl-devel.html
Writing package lapack.html
Writing package
mpich-3.0-devel.html
Writing package mpich-3.2-devel.html
Writing package
mpitests-mvapich2.html
Writing package mpitests-openmpi.html
Writing package
mvapich2-2.0-devel.html
Writing package mvapich2-2.0-doc.html
Writing package
mvapich2-2.0-psm-devel.html
Writing package mvapich2-2.2-devel.html
Writing
package mvapich2-2.2-doc.html
Writing package
mvapich2-2.2-psm-devel.html
Writing package mvapich2-2.2-psm2-devel.html
Writing
package numpy.html
Writing package openmpi.html
Writing package
openmpi-devel.html
Writing package scipy.html
Writing package units.html
Writing
group scientific.group.html
Writing package aide.html
Writing package
hmaccalc.html
Writing package openscap.html
Writing package
openscap-utils.html
Writing package scap-security-guide.html
Writing package
scap-security-guide-doc.html
Writing package scap-workbench.html
Writing package
strongimcv.html
Writing package tncfhh.html
Writing package
tpm-quote-tools.html
Writing package tpm-tools.html
Writing package
tpm2-tools.html
Writing package trousers.html
Writing group
security-tools.group.html
Writing package coolkey.html
Writing package
esc.html
Writing package opencryptoki.html
Writing package opensc.html
Writing
package pam_pkcs11.html
Writing package pcsc-lite-ccid.html
Writing group
smart-card.group.html
Writing package conman.html
Writing package
crypto-utils.html
Writing package dump.html
Writing package
hardlink.html
Writing package lsscsi.html
Writing package mc.html
Writing
package mgetty.html
Writing package pexpect.html
Writing package
rdist.html
Writing package rear.html
Writing package rrdtool.html
Writing
package screen.html
Writing package scrub.html
Writing package
snapper.html
Writing package symlinks.html
Writing package
system-storage-manager.html
Writing package tree.html
Writing package
xdelta.html
Writing group system-admin-tools.group.html
Writing package
OpenIPMI.html
Writing package fence-agents-all.html
Writing package
freeipmi.html
Writing package freeipmi-bmc-watchdog.html
Writing package
freeipmi-ipmidetectd.html
Writing package ipmitool.html
Writing package
openhpi.html
Writing package watchdog.html
Writing group
system-management.group.html
Writing package 389-ds-base.html
Writing package
389-ds-base-libs.html
Writing group letter_3.group.html
Writing package
abattis-cantarell-fonts.html
Writing package abrt.html
Writing package
abrt-addon-ccpp.html
Writing package abrt-addon-kerneloops.html
Writing package
abrt-addon-pstoreoops.html
Writing package abrt-addon-python.html
Writing
package abrt-addon-vmcore.html

::
Traceback (most recent call last):
  File
"/usr/bin/repoview", line 940, in <module>
    main()
  File
"/usr/bin/repoview", line 937, in main
    Repoview(opts)
  File
"/usr/bin/repoview", line 191, in __init__
    packages =
self.do_packages(repo_data, group_data, pkgnames)
  File "/usr/bin/repoview",
line 544, in do_packages
    pkg_data = self.get_package_data(pkgname)
  File
"/usr/bin/repoview", line 442, in get_package_data
    rows =
pcursor.fetchall()
sqlite3.OperationalError: Could not decode to UTF-8 column
'location_href' with text ''

#7 Updated by kfiresmith 11 months ago

+1 for RHEL 7 server kickstart channel.

#8 Updated by jrhodes 9 months ago

+1 as well for CentOS 7 and CentOS 6 base repos. Still present in 2.14.1.

Feed URLS:
CentOS 7: http://mirror.centos.org/centos/7/os/x86_64/
CentOS 6: http://mirror.centos.org/centos/6/os/x86_64/

Important package versions:

repoview-0.6.6-4.el7.noarch
pulp-server-2.14.1-1.el7.noarch
python-pulp-client-lib-2.14.1-1.el7.noarch
python-pulp-repoauth-2.14.1-1.el7.noarch
pulp-rpm-plugins-2.14.1-1.el7.noarch
python-isodate-0.5.0-4.pulp.el7.noarch
python-kombu-3.0.33-8.pulp.el7.noarch
pulp-selinux-2.14.1-1.el7.noarch
python-pulp-bindings-2.14.1-1.el7.noarch
python-pulp-oid_validation-2.14.1-1.el7.noarch
python-pulp-common-2.14.1-1.el7.noarch
pulp-admin-client-2.14.1-1.el7.noarch
pulp-rpm-admin-extensions-2.14.1-1.el7.noarch
python-pulp-rpm-common-2.14.1-1.el7.noarch

Running on CentOS 7.4.1708

Please register to edit this issue

Also available in: Atom PDF