Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.

Commit

Permalink
Cannot add importer to the repository.
Browse files Browse the repository at this point in the history
  • Loading branch information
ipanova committed Jul 27, 2016
1 parent 428ad30 commit 3811a33
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
5 changes: 5 additions & 0 deletions server/pulp/server/controllers/importer.py
Expand Up @@ -138,8 +138,13 @@ def validate_importer_config(repo_obj, importer_type_id, config):
:param config: configuration values for the importer
:type config: dict
:raises PulpCodedValidationException: if importer_type_id is invalid
:raises exceptions.PulpDataException: if config is invalid.
"""
if not plugin_api.is_valid_importer(importer_type_id):
raise exceptions.PulpCodedValidationException(error_code=error_codes.PLP1008,
importer_type_id=importer_type_id)

importer_instance, plugin_config = plugin_api.get_importer_by_id(importer_type_id)
call_config = PluginCallConfiguration(plugin_config, config)
transfer_repo = repo_obj.to_transfer_repo()
Expand Down
2 changes: 1 addition & 1 deletion server/pulp/server/webservices/views/repositories.py
Expand Up @@ -338,8 +338,8 @@ def post(self, request, repo_id):
"""
importer_type = request.body_as_json.get('importer_type_id', None)
config = request.body_as_json.get('importer_config', None)
importer_controller.validate_importer_config(repo_id, importer_type, config)
repo = model.Repository.objects.get_repo_or_missing_resource(repo_id)
importer_controller.validate_importer_config(repo, importer_type, config)
async_result = importer_controller.queue_set_importer(repo, importer_type, config)
raise exceptions.OperationPostponed(async_result)

Expand Down
9 changes: 9 additions & 0 deletions server/test/unit/server/controllers/test_importer.py
Expand Up @@ -254,6 +254,15 @@ def test_valid_as_expected(self, m_plug_call_config, m_repo_model, m_plug_api):
imp_inst.validate_config.assert_called_once_with(
m_repo.to_transfer_repo.return_value, m_plug_call_config.return_value)

@mock.patch('pulp.server.controllers.importer.PluginCallConfiguration')
def test_invalid_importer_type(self, m_plug_call_config, m_repo_model, m_plug_api):
m_repo = m_repo_model.objects.get_repo_or_missing_resource.return_value
m_plug_api.is_valid_importer.return_value = False

with self.assertRaises(exceptions.PulpCodedValidationException) as cm:
importer.validate_importer_config(m_repo, 'm_type', 'm_conf')
self.assertEqual(cm.exception.error_code.code, 'PLP1008')


@mock.patch('pulp.server.controllers.importer.model')
@mock.patch('pulp.server.controllers.importer.manager_factory')
Expand Down

0 comments on commit 3811a33

Please sign in to comment.