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:
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
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.
Mike - Please take a look at this as part of your protected repo story this sprint.
https://github.com/pulp/pulp_rpm/pull/7
build: 0.335
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]
Pulp v2.0 released