Actions
Issue #2095
closedPublishing with the rpm_rsync_distributor without first publishing with the yum_distributor causes a traceback
Status:
CLOSED - WONTFIX
Priority:
Normal
Assignee:
-
Sprint/Milestone:
-
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:
Description
Let the file rsync_distributor_config.json have contents similar to the snippet below.
{
"distributor_id": "rpm_rsync_distributor",
"distributor_type_id": "rpm_rsync_distributor",
"distributor_config": {
"remote": {
"auth_type": "publickey",
"ssh_user": "57840d112d527166ac000259",
"ssh_identity_file": "/home/vagrant/openshift",
"host": "rsync-bmbouter.rhcloud.com",
"root": "/var/lib/openshift/57840d112d527166ac000259/app-root/repo/diy"
},
"predistributor_id": "yum_distributor"
}
}
Let the publish_rsync.json file have these contents:
{
"id": "rpm_rsync_distributor",
"override_config": {"skip_fast_forward": true}
}
Now consider this reproducer:
pulp-admin rpm repo delete --repo-id zoo
pulp-admin orphan remove --all
pulp-admin rpm repo create --repo-id zoo --feed https://repos.fedorapeople.org/repos/pulp/pulp/fixtures/rpm/
http --verify no --auth admin:admin POST https://localhost/pulp/api/v2/repositories/zoo/distributors/ < rsync_distributor_config.json
# pulp-admin rpm repo sync run --repo-id zoo
http --verify no --auth admin:admin POST https://localhost/pulp/api/v2/repositories/zoo/actions/publish/ < publish_rsync.json
Observe that the original yum_distributor publish is commented out so it isn't actually run. When running this reproducer you will receive a traceback like this one:
Task pulp.server.managers.repo.publish.publish[0048d7e9-c687-4eb0-9eb8-537b2ed2fa23] raised unexpected: OSError(2, 'No such file or directory')
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/vagrant/devel/pulp/server/pulp/server/async/tasks.py", line 488, in __call__
return super(Task, self).__call__(*args, **kwargs)
File "/home/vagrant/devel/pulp/server/pulp/server/async/tasks.py", line 103, in __call__
return super(PulpTask, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
return self.run(*args, **kwargs)
File "/home/vagrant/devel/pulp/server/pulp/server/controllers/repository.py", line 971, in publish
result = check_publish(repo_obj, dist_id, dist_inst, transfer_repo, conduit, call_config)
File "/home/vagrant/devel/pulp/server/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 "/home/vagrant/devel/pulp/server/pulp/server/controllers/repository.py", line 1090, in _do_publish
publish_report = publish_repo(transfer_repo, conduit, call_config)
File "/home/vagrant/devel/pulp/server/pulp/server/async/tasks.py", line 673, in wrap_f
return f(*args, **kwargs)
File "/home/vagrant/devel/pulp_rpm/plugins/pulp_rpm/plugins/distributors/rsync/distributor.py", line 122, in publish_repo
TYPE_ID_DISTRIBUTOR_RPM_RSYNC)
File "/home/vagrant/devel/pulp/server/pulp/plugins/rsync/publish.py", line 310, in __init__
self._add_necesary_steps(date_filter=date_filter, config=config)
File "/home/vagrant/devel/pulp_rpm/plugins/pulp_rpm/plugins/distributors/rsync/publish.py", line 98, in _add_necesary_steps
repodata_file_list = os.listdir(os.path.join(master_dir, 'repodata'))
OSError: [Errno 2] No such file or directory: '/var/lib/pulp/published/yum/https/repos/repos/pulp/pulp/fixtures/rpm/repodata'
Actions