Bug 871075 - Permission error on creating repository
Summary: Permission error on creating repository
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Pulp
Classification: Retired
Component: user-experience
Version: Master
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: Sprint 41
Assignee: Michael Hrivnak
QA Contact: Preethi Thomas
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-10-29 14:45 UTC by Preethi Thomas
Modified: 2013-09-09 16:35 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-01-09 17:07:37 UTC
Embargoed:


Attachments (Terms of Use)

Description Preethi Thomas 2012-10-29 14:45:54 UTC
Description of problem:

Client side error "permission error" on repo create

Version-Release number of selected component (if applicable):
[root@pulp-master ~]# rpm -q pulp-rpm-server
pulp-rpm-server-0.0.334-1.fc17.noarch
[root@pulp-master ~]# 


How reproducible:


Steps to Reproduce:

[root@pulp-master ~]# pulp-admin rpm repo create --repo-id scientific --feed http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/updates/security/
The server indicated one or more values were incorrect. The server provided the
following error message:

   Pulp exception occurred: PulpDataException

More information can be found in the client log file ~/.pulp/admin.log.

[root@pulp-master ~]# pulp-admin rpm repo create --repo-id test
The server indicated one or more values were incorrect. The server provided the
following error message:

   Pulp exception occurred: PulpDataException

More information can be found in the client log file ~/.pulp/admin.log.


1.
2.
3.
  
Actual results:
2012-10-29 10:32:30,966 - ERROR - Exception occurred:
        href:      /pulp/api/v2/repositories/
        method:    POST
        status:    400
        error:     Pulp exception occurred: PulpDataException
        traceback: None
        data:      {u'args': [[13, u'Permission denied']]}


Expected results:


Additional info:

Comment 1 Preethi Thomas 2012-10-30 16:04:47 UTC
So the real issue here is  /etc/pki/pulp/content/pulp-protected-repos
 not getting created on install.

From pulp.log

2012-10-30 12:01:37,204 15058:139764938303232: pulp.plugins.yum_importer.importer:INFO: importer:86 validate_config invoked, config values are: {u'feed_url': u'http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/updates/security/'}
2012-10-30 12:01:37,206 15058:139764938303232: pulp.plugins.yum_importer.importer:INFO: importer:264 importer_added invoked
2012-10-30 12:01:37,211 15058:139764938303232: pulp.plugins.yum_distributor.distributor:INFO: distributor:89 validate_config invoked, config values are: {u'http': False, u'https': True, u'relative_url': u'/linux/scientific/6x/x86_64/updates/security/'}
2012-10-30 12:01:37,212 15058:139764938303232: pulp.server.managers.repo.distributor:ERROR: distributor:185 Exception received from distributor [yum_distributor] while validating config
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/distributor.py", line 176, in add_distributor
    result = distributor_instance.validate_config(transfer_repo, call_config, transfer_related_repos)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 162, in validate_config
    self.process_repo_auth_certificate_bundle(repo.id, repo_relative_path, auth_cert_bundle)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 224, in process_repo_auth_certificate_bundle
    protected_repo_utils_obj.delete_protected_repo(repo_relative_path)
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 75, in delete_protected_repo
    f.save()
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 155, in save
    f = open(self.filename, 'w')
IOError: [Errno 13] Permission denied: '/etc/pki/pulp/content/pulp-protected-repos'
2012-10-30 12:01:37,214 15058:139764938303232: pulp.server.managers.repo.cud:ERROR: cud:171 Exception adding distributor to repo [scientific]; the repo will be deleted
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/cud.py", line 169, in create_and_configure_repo
    distributor_manager.add_distributor(repo_id, type_id, plugin_config, auto_publish, distributor_id)
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/distributor.py", line 176, in add_distributor
    result = distributor_instance.validate_config(transfer_repo, call_config, transfer_related_repos)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 162, in validate_config
    self.process_repo_auth_certificate_bundle(repo.id, repo_relative_path, auth_cert_bundle)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 224, in process_repo_auth_certificate_bundle
    protected_repo_utils_obj.delete_protected_repo(repo_relative_path)
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 75, in delete_protected_repo
    f.save()
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 155, in save
    f = open(self.filename, 'w')
PulpDataException: Pulp exception occurred: PulpDataException
2012-10-30 12:01:37,222 15058:139764938303232: pulp.plugins.yum_importer.importer:INFO: importer:267 importer_removed invoked
2012-10-30 12:01:37,238 15058:139764938303232: pulp.server.dispatch.task:ERROR: task:131 Pulp exception occurred: PulpDataException
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pulp/server/dispatch/task.py", line 128, in _run
    result = call(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/cud.py", line 169, in create_and_configure_repo
    distributor_manager.add_distributor(repo_id, type_id, plugin_config, auto_publish, distributor_id)
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/distributor.py", line 176, in add_distributor
    result = distributor_instance.validate_config(transfer_repo, call_config, transfer_related_repos)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 162, in validate_config
    self.process_repo_auth_certificate_bundle(repo.id, repo_relative_path, auth_cert_bundle)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 224, in process_repo_auth_certificate_bundle
    protected_repo_utils_obj.delete_protected_repo(repo_relative_path)
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 75, in delete_protected_repo
    f.save()
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 155, in save
    f = open(self.filename, 'w')
PulpDataException: Pulp exception occurred: PulpDataException
2012-10-30 12:01:37,240 15058:139764938303232: pulp.server.dispatch.task:INFO: task:163 FAILURE: Task 580d0021-9060-40e8-96c7-00b4f530e5ef: CallRequest: RepoManager.create_and_configure_repo(u'scientific', None, None, {u'_repo-type': u'rpm-repo'}, u'yum_importer', {u'feed_url': u'http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/updates/security/'}, [{u'distributor_id': u'yum_distributor', u'auto_publish': True, u'distributor_type': u'yum_distributor', u'distributor_config': {u'http': False, u'relative_url': u'/linux/scientific/6x/x86_64/updates/security/', u'https': True}}, {u'distributor_id': u'iso_distributor', u'auto_publish': False, u'distributor_type': u'iso_distributor', u'distributor_config': {u'http': False, u'https': True}}])
2012-10-30 12:01:37,278 15058:139765030557440: pulp.server.webservices.middleware.exception:ERROR: exception:46 Pulp exception occurred: PulpDataException
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/exception.py", line 44, in __call__
    return self.app(environ, start_response)
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/middleware/postponed.py", line 39, in __call__
    return self.app(environ, start_response)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 277, in wsgi
    result = self.handle_with_processors()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 26, in _handle_with_processors
    return process(self.processors)
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in process
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/web/application.py", line 555, in processor
    return handler()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in <lambda>
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in process
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/web/application.py", line 570, in processor
    result = handler()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in <lambda>
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 25, in process
    return self.handle()
  File "/usr/lib/python2.7/site-packages/web/application.py", line 228, in handle
    return self._delegate(fn, self.fvars, args)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 411, in _delegate
    return f()
  File "/usr/lib/python2.7/site-packages/web/application.py", line 419, in <lambda>
    f = lambda: self._delegate_sub_application(pat, what)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 444, in _delegate_sub_application
    return app.handle_with_processors()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 26, in _handle_with_processors
    return process(self.processors)
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in process
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/web/application.py", line 555, in processor
    return handler()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in <lambda>
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in process
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/web/application.py", line 570, in processor
    result = handler()
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 23, in <lambda>
    return p(lambda : process(processors))
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/application.py", line 25, in process
    return self.handle()
  File "/usr/lib/python2.7/site-packages/web/application.py", line 228, in handle
    return self._delegate(fn, self.fvars, args)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 409, in _delegate
    return handle_class(cls)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 385, in handle_class
    return tocall(*args)
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py", line 231, in _auth_decorator
    value = method(self, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/repositories.py", line 175, in POST
    repo = execution.execute_sync(call_request)
  File "/usr/lib/python2.7/site-packages/pulp/server/dispatch/task.py", line 128, in _run
    result = call(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/cud.py", line 169, in create_and_configure_repo
    distributor_manager.add_distributor(repo_id, type_id, plugin_config, auto_publish, distributor_id)
  File "/usr/lib/python2.7/site-packages/pulp/server/managers/repo/distributor.py", line 176, in add_distributor
    result = distributor_instance.validate_config(transfer_repo, call_config, transfer_related_repos)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 162, in validate_config
    self.process_repo_auth_certificate_bundle(repo.id, repo_relative_path, auth_cert_bundle)
  File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 224, in process_repo_auth_certificate_bundle
    protected_repo_utils_obj.delete_protected_repo(repo_relative_path)
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 75, in delete_protected_repo
    f.save()
  File "/usr/lib/python2.7/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 155, in save
    f = open(self.filename, 'w')
PulpDataException: Pulp exception occurred: PulpDataException

Comment 2 Randy Barlow 2012-10-30 16:31:00 UTC
There are two potential solutions to this problem. Either the RPM can drop /etc/pki/pulp/content/pulp-protected-repos as an empty file owned apache:apache with mode 644, or we should make /etc/pki/pulp/content be owned by apache with suitable privileges so that the server process can create that file as necessary.

Comment 3 Jay Dobies 2012-10-30 17:44:04 UTC
Mike - Please take a look at this as part of your protected repo story this sprint.

Comment 4 Michael Hrivnak 2012-10-30 20:47:38 UTC
https://github.com/pulp/pulp_rpm/pull/7

Comment 5 Jeff Ortel 2012-10-30 21:40:11 UTC
build: 0.335

Comment 6 Preethi Thomas 2012-11-05 17:40:24 UTC
verified
repo create creates repo on fresh install without errors

pulp-rpm-server-0.0.335-1.fc17.noarch


[root@pulp-master ~]# pulp-admin -u admin -p admin  rpm repo create --repo-id scientific --feed http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/updates/security/
Successfully created repository [scientific]

Comment 7 Preethi Thomas 2013-01-09 17:07:37 UTC
Pulp v2.0 released


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