Beispiel #1
0
 def populate_repository(self):
     config = {'key1': 'value1', 'key2': None}
     dist_controller.add_distributor(self.REPO_ID,
                                     'mock-distributor',
                                     config,
                                     True,
                                     distributor_id=self.DISTRIBUTOR_ID)
Beispiel #2
0
 def populate_repository(self):
     config = {'key1': 'value1', 'key2': None}
     dist_controller.add_distributor(
         self.REPO_ID,
         'mock-distributor',
         config,
         True,
         distributor_id=self.DISTRIBUTOR_ID)
Beispiel #3
0
    def setUp(self, mock_get_working_directory):
        super(DistributorScratchpadMixinTests, self).setUp()
        mock_plugins.install()
        repo_id = 'repo-1'
        with mock.patch('pulp.server.controllers.distributor.model.Repository'):
            dist_controller.add_distributor(repo_id, 'mock-distributor', {}, True,
                                            distributor_id='test-distributor')

        self.conduit = mixins.DistributorScratchPadMixin(repo_id, 'test-distributor')
Beispiel #4
0
    def setUp(self, mock_repo_qs):
        super(RepoPublishConduitTests, self).setUp()
        mock_plugins.install()
        manager_factory.initialize()

        # Populate the database with a repo with units
        dist_controller.add_distributor('repo-1', 'mock-distributor', {}, True,
                                        distributor_id='dist-1')

        self.conduit = RepoPublishConduit('repo-1', 'dist-1')
Beispiel #5
0
 def populate(self):
     config = {'key1': 'value1', 'key2': None}
     dist_controller.add_distributor(
         self.REPO_ID,
         'mock-distributor',
         config,
         True,
         distributor_id=self.DISTRIBUTOR_ID)
     manager = factory.consumer_manager()
     for consumer_id in self.ALL_CONSUMERS:
         manager.register(consumer_id)
Beispiel #6
0
    def setUp(self, mock_repo_qs):
        super(RepoPublishConduitTests, self).setUp()
        mock_plugins.install()
        manager_factory.initialize()

        # Populate the database with a repo with units
        dist_controller.add_distributor('repo-1',
                                        'mock-distributor', {},
                                        True,
                                        distributor_id='dist-1')

        self.conduit = RepoPublishConduit('repo-1', 'dist-1')
Beispiel #7
0
    def setUp(self, mock_get_working_directory):
        super(DistributorScratchpadMixinTests, self).setUp()
        mock_plugins.install()
        repo_id = 'repo-1'
        with mock.patch(
                'pulp.server.controllers.distributor.model.Repository'):
            dist_controller.add_distributor(repo_id,
                                            'mock-distributor', {},
                                            True,
                                            distributor_id='test-distributor')

        self.conduit = mixins.DistributorScratchPadMixin(
            repo_id, 'test-distributor')
Beispiel #8
0
    def test_distributor_with_id(self, m_model, m_plug_api, m_plug_call_conf, m_repo_conf_conduit):
        """
        Create a distributor with a specified distributor id.
        """
        m_repo_obj = m_model.Repository.objects.get_repo_or_missing_resource.return_value
        m_dist_inst = mock.MagicMock()
        m_plug_config = mock.MagicMock()
        m_model.Distributor.objects.get_or_404.side_effect = exceptions.MissingResource
        m_plug_api.get_distributor_by_id.return_value = (m_dist_inst, m_plug_config)
        m_dist_inst.validate_config.return_value = True
        new_dist = m_model.Distributor.return_value

        result = distributor.add_distributor('repoid', 'dist_type', None, False,
                                             distributor_id='fake_id')

        m_plug_call_conf.assert_called_once_with(m_plug_config, None)
        m_repo_conf_conduit.assert_called_once_with('dist_type')
        m_dist_inst.validate_config.assert_called_once_with(
            m_repo_obj.to_transfer_repo.return_value, m_plug_call_conf.return_value,
            m_repo_conf_conduit.return_value)
        m_dist_inst.distributor_added.assert_called_once_with(
            m_repo_obj.to_transfer_repo.return_value, m_plug_call_conf.return_value)
        m_model.Distributor.assert_called_once_with('repoid', 'fake_id', 'dist_type', None, False)
        new_dist.save.assert_called_once_with()
        self.assertTrue(result is new_dist)
Beispiel #9
0
    def test_dup_distributor(self, m_delete, m_model, m_plug_api, m_plug_call_conf,
                             m_repo_conf_conduit):
        """
        Ensure that an already existing distributor is removed and recreated.
        """
        m_repo_obj = m_model.Repository.objects.get_repo_or_missing_resource.return_value
        m_dist_inst = mock.MagicMock()
        m_plug_config = mock.MagicMock()
        m_plug_api.get_distributor_by_id.return_value = (m_dist_inst, m_plug_config)
        m_dist_inst.validate_config.return_value = True
        new_dist = m_model.Distributor.return_value

        result = distributor.add_distributor('repoid', 'dist_type', None, False,
                                             distributor_id='dist_id')

        m_delete.assert_called_once_with('repoid', 'dist_id')
        m_plug_call_conf.assert_called_once_with(m_plug_config, None)
        m_repo_conf_conduit.assert_called_once_with('dist_type')
        m_dist_inst.validate_config.assert_called_once_with(
            m_repo_obj.to_transfer_repo.return_value, m_plug_call_conf.return_value,
            m_repo_conf_conduit.return_value)
        m_dist_inst.distributor_added.assert_called_once_with(
            m_repo_obj.to_transfer_repo.return_value, m_plug_call_conf.return_value)
        m_model.Distributor.assert_called_once_with('repoid', 'dist_id', 'dist_type', None, False)
        new_dist.save.assert_called_once_with()
        self.assertTrue(result is new_dist)
Beispiel #10
0
    def post(self, request, repo_id):
        """
        Associate a distributor with a repository.

        :param request: WSGI request object
        :type  request: django.core.handlers.wsgi.WSGIRequest
        :param repo_id: The id of the repository to associate with
        :type  repo_id: basestring

        :return: Response containing the serialized distributor
        :rtype : django.http.HttpResponse
        """
        distributor_type = request.body_as_json.get('distributor_type_id')
        if distributor_type is None:
            raise exceptions.MissingValue('distributor_type_id')

        distributor_config = request.body_as_json.get('distributor_config')
        distributor_id = request.body_as_json.get('distributor_id')
        auto_publish = request.body_as_json.get('auto_publish', False)

        distributor = dist_controller.add_distributor(repo_id, distributor_type, distributor_config,
                                                      auto_publish, distributor_id)
        serialized = model.Distributor.SERIALIZER(distributor).data
        response = generate_json_response_with_pulp_encoder(serialized)
        return generate_redirect_response(response, serialized['_href'])
Beispiel #11
0
    def post(self, request, repo_id):
        """
        Associate a distributor with a repository.

        :param request: WSGI request object
        :type  request: django.core.handlers.wsgi.WSGIRequest
        :param repo_id: The id of the repository to associate with
        :type  repo_id: basestring

        :return: Response containing the serialized distributor
        :rtype : django.http.HttpResponse
        """
        distributor_type = request.body_as_json.get('distributor_type_id')
        if distributor_type is None:
            raise exceptions.MissingValue('distributor_type_id')

        distributor_config = request.body_as_json.get('distributor_config')
        distributor_id = request.body_as_json.get('distributor_id')
        auto_publish = request.body_as_json.get('auto_publish', False)

        distributor = dist_controller.add_distributor(repo_id, distributor_type, distributor_config,
                                                      auto_publish, distributor_id)
        serialized = model.Distributor.serializer(distributor).data
        response = generate_json_response_with_pulp_encoder(serialized)
        return generate_redirect_response(response, serialized['_href'])
Beispiel #12
0
            importer_controller.set_importer(repo_id, importer_type_id, importer_repo_plugin_config)
        except Exception:
            _logger.exception(
                'Exception adding importer to repo [%s]; the repo will be deleted' % repo_id)
            repo.delete()
            raise

    # Add the distributors. Delete the repository if this fails.
    for distributor in distributor_list or []:
        type_id = distributor.get('distributor_type_id')
        plugin_config = distributor.get('distributor_config')
        auto_publish = distributor.get('auto_publish', False)
        dist_id = distributor.get('distributor_id')

        try:
            dist_controller.add_distributor(repo_id, type_id, plugin_config, auto_publish, dist_id)
        except Exception:
            _logger.exception('Exception adding distributor to repo [%s]; the repo will be '
                              'deleted' % repo_id)
            repo.delete()
            raise

    return repo


def queue_delete(repo_id):
    """
    Dispatch the task to delete the specified repository.

    :param repo_id: id of the repository to delete
    :type  repo_id: str
Beispiel #13
0
    def setUp(self):
        super(RepoConfigConduitTests, self).setUp()
        mock_plugins.install()
        manager_factory.initialize()

        with mock.patch('pulp.server.controllers.distributor.model.Repository.objects'):
            # Populate the database with a repo with units
            dist_controller.add_distributor(
                'repo-1', 'mock-distributor', {"relative_url": "/a/bc/d"}, True,
                distributor_id='dist-1')
            dist_controller.add_distributor(
                'repo-1', 'mock-distributor', {"relative_url": "/a/c"}, True,
                distributor_id='dist-2')
            dist_controller.add_distributor(
                'repo-2', 'mock-distributor', {"relative_url": "/a/bc/e"}, True,
                distributor_id='dist-3')
            dist_controller.add_distributor(
                'repo-3', 'mock-distributor', {}, True, distributor_id='dist-4')
            dist_controller.add_distributor(
                'repo-4', 'mock-distributor', {"relative_url": "repo-5"}, True,
                distributor_id='dist-5')
            dist_controller.add_distributor(
                'repo-5', 'mock-distributor', {"relative_url": "a/bcd/e"}, True,
                distributor_id='dist-1')
            dist_controller.add_distributor(
                'repo-6', 'mock-distributor', {"relative_url": "a/bcde/f/"}, True,
                distributor_id='dist-1')

            self.conduit = RepoConfigConduit('rpm')
Beispiel #14
0
    def setUp(self):
        super(RepoConfigConduitTests, self).setUp()
        mock_plugins.install()
        manager_factory.initialize()

        with mock.patch(
                'pulp.server.controllers.distributor.model.Repository.objects'
        ):
            # Populate the database with a repo with units
            dist_controller.add_distributor('repo-1',
                                            'mock-distributor',
                                            {"relative_url": "/a/bc/d"},
                                            True,
                                            distributor_id='dist-1')
            dist_controller.add_distributor('repo-1',
                                            'mock-distributor',
                                            {"relative_url": "/a/c"},
                                            True,
                                            distributor_id='dist-2')
            dist_controller.add_distributor('repo-2',
                                            'mock-distributor',
                                            {"relative_url": "/a/bc/e"},
                                            True,
                                            distributor_id='dist-3')
            dist_controller.add_distributor('repo-3',
                                            'mock-distributor', {},
                                            True,
                                            distributor_id='dist-4')
            dist_controller.add_distributor('repo-4',
                                            'mock-distributor',
                                            {"relative_url": "repo-5"},
                                            True,
                                            distributor_id='dist-5')
            dist_controller.add_distributor('repo-5',
                                            'mock-distributor',
                                            {"relative_url": "a/bcd/e"},
                                            True,
                                            distributor_id='dist-1')
            dist_controller.add_distributor('repo-6',
                                            'mock-distributor',
                                            {"relative_url": "a/bcde/f/"},
                                            True,
                                            distributor_id='dist-1')

            self.conduit = RepoConfigConduit('rpm')