Project

Profile

Help

Issue #2095

closed

Publishing with the rpm_rsync_distributor without first publishing with the yum_distributor causes a traceback

Added by bmbouter almost 8 years ago. Updated almost 4 years ago.

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'

Also available in: Atom PDF