Bug 988547 - uploading an erratum fails
uploading an erratum fails
Product: Pulp
Classification: Community
Component: rpm-support (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: 2.2.0
Assigned To: nobody nobody
Preethi Thomas
: Triaged
Depends On:
  Show dependency treegraph
Reported: 2013-07-25 15:40 EDT by Jeremy Cline
Modified: 2013-09-10 11:44 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-09-10 11:44:22 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jeremy Cline 2013-07-25 15:40:03 EDT
Description of problem: attempting to upload an erratum results in the following error: 

The web server reported an error trying to access the Pulp application. The
likely cause is that the pulp-manage-db script has not been run prior to
starting the server. More information can be found in Apache's error log file on
the server itself.

Version-Release number of selected component (if applicable): master

How reproducible: always

Steps to Reproduce:
1. pulp-admin rpm repo create --repo-id=errata-uploads
2. pulp-admin rpm repo uploads erratum  --repo-id=errata-uploads --erratum-id=RHEA-007:0000 --title='Test errata upload' --description='errata description' --version='1' --release='1' --type='bug-fix' --status=stable --update='2013-07-25 18:00:00' --issued='2013-07-25 18:00:00' --pkglist-csv=/home/jcline/test-csv --from='from@not-from_str.com'

where --pkglist-csv is a file in the format "name,version,release,epoch,arch,filename,checksum,checksum_type,sourceurl"

Actual results:
2013-07-25 15:30:25,967 - INFO - POST request to /pulp/api/v2/repositories/errata-uploads/actions/import_upload/ with parameters {"unit_type_id": "erratum", "upload_id": "1905006e-91f3-4e70-b835-49defff38ae6", "unit_key": {"id": "RHEA-007:0000"}, "unit_metadata": {"status": "stable", "from_str": "from@not-from_str.com", "updated": "2013-07-25 18:00:00", "description": "errata description", "title": "Test errata upload", "issued": "2013-07-25 18:00:00", "rights": null, "solution": null, "summary": null, "pushcount": 1, "version": "1", "references": [], "release": "1", "reboot_suggested": false, "type": "bug-fix", "pkglist": [{"packages": [{"src": "jwm-devel.home", "name": "grinder_test_package", "arch": "noarch", "sums": "55db7aa2a3c8007451405bcec071f5b96600bcf79a35d0afe5106b987a5ce205", "filename": "grinder_test_package-4.0-1.fc14.noarch.rpm", "epoch": "0", "version": "3.0", "release": "1", "type": "sha256"}], "name": "1", "short": ""}], "severity": null}}
2013-07-25 15:30:25,967 - INFO - Response status : 500 

Expected results: The erratum is successfully uploaded

Additional info: I first noticed an issue when uploading using a branch from pulp-2.2.1 that had not been merged in some time. In this branch, I could upload errata, but it caused a error when it was published. This occured because the publisher was expecting a 'from' field, but the client is using the field 'from_str' instead of 'from'. See the above POST request.
Comment 1 Jeremy Cline 2013-07-31 15:22:58 EDT
Some detailed reproduction instructions:

1. follow the recipe at https://pulp-rpm-user-guide.readthedocs.org/en/pulp-2.1/recipes.html#create-your-own-errata for uploading an erratum
2. Attempt to publish the repository
3. Check /var/log/pulp/pulp.log and confirm the repository was never actually published by checking in https://localhost/pulp/repos/

The log will show the publish never occured.

2013-07-31 15:15:21,731 pulp.server.dispatch.task:ERROR: Pulp exception occurred: PulpExecutionException
Traceback (most recent call last):
  File "/home/jcline/devel/pulp/platform/src/pulp/server/dispatch/task.py", line 138, in _run
    result = call(*args, **kwargs)
  File "/home/jcline/devel/pulp/platform/src/pulp/server/managers/repo/publish.py", line 98, in publish
    result = self._do_publish(repo, distributor_id, distributor_instance, transfer_repo, conduit, call_config)
  File "/home/jcline/devel/pulp/platform/src/pulp/server/managers/repo/publish.py", line 122, in _do_publish
    publish_report = distributor_instance.publish_repo(transfer_repo, conduit, call_config)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 451, in publish_repo
    updateinfo_xml_path = updateinfo.updateinfo(errata_units, repo.working_dir)
  File "/home/jcline/devel/pulp_rpm/pulp_rpm/src/pulp_rpm/yum_plugin/updateinfo.py", line 159, in updateinfo
    'from'             : e.metadata['from'],
PulpExecutionException: Pulp exception occurred: PulpExecutionException
2013-07-31 15:15:21,731 pulp.server.dispatch.task:INFO: FAILURE: Task 5d291a23-1d72-4a93-9969-d51f198e6137: CallRequest: RepoPublishManager.publish(u'errata', u'yum_distributor')
Comment 2 Jeremy Cline 2013-07-31 16:25:17 EDT
Comment 3 Jeff Ortel 2013-08-01 23:42:17 EDT
build: 2.2.0-0.23.beta
Comment 4 Preethi Thomas 2013-08-06 13:52:03 EDT
[root@cloud-qe-14 ~]# rpm -q pulp-server
[root@cloud-qe-14 ~]# 

[root@cloud-qe-14 ~]# pulp-admin rpm repo create --repo-id=errata
Successfully created repository [errata]

[root@cloud-qe-14 ~]# pulp-admin rpm repo uploads erratum --erratum_id=DEMO_ID_1   --title="1: pulp-test-package bit conservation"   --description="1: pulp-test-package now conserves your precious bits."   --version=1 --release="el6" --type="bugzilla" --status="final"   --updated="`date`" --issued="`date`" --reference-csv=references.csv   --pkglist-csv=package_list.csv --from=pulp-list@redhat.com --repo-id=errata
                              Unit Upload

Extracting necessary metadata for each request...
... completed

Creating upload requests on the server...
[==================================================] 100%
Initializing upload
... completed

Starting upload of selected units. If this process is stopped through ctrl+c,
the uploads will be paused and may be resumed later using the resume command or
cancelled entirely using the cancel command.

Importing into the repository...
... completed

Deleting the upload request...
... completed

[root@cloud-qe-14 ~]# pulp-admin rpm repo publish run --repo-id errata
                     Publishing Repository [errata]

This command may be exited by pressing ctrl+c without affecting the actual
operation on the server.

Publishing packages...
[==================================================] 100%
Packages: 0/0 items
... completed

Publishing distributions...
[==================================================] 100%
Distributions: 0/0 items
... completed

Generating metadata
... completed

Publishing repository over HTTPS
... completed

[root@cloud-qe-14 ~]#
Comment 7 Preethi Thomas 2013-09-10 11:44:22 EDT
2.2 released

Note You need to log in before you can comment on or make changes to this bug.