class DistributorScratchpadMixinTests(base.PulpServerTests): def clean(self): super(DistributorScratchpadMixinTests, self).clean() types_database.clean() model.Repository.drop_collection() @mock.patch('pulp.server.managers.repo._common.get_working_directory', return_value="/var/cache/pulp/mock_worker/mock_task_id") def setUp(self, mock_get_working_directory): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' with mock.patch( 'pulp.server.managers.repo.distributor.model.Repository'): self.distributor_manager.add_distributor( repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = mixins.DistributorScratchPadMixin( repo_id, 'test-distributor') def tearDown(self): super(DistributorScratchpadMixinTests, self).tearDown() manager_factory.reset() mock_plugins.reset() def test_get_set_scratchpad(self): """ Tests scratchpad calls. """ # Test - get no scratchpad self.assertTrue(self.conduit.get_scratchpad() is None) # Test - set scrathpad value = 'dragon' self.conduit.set_scratchpad(value) # Test - get updated value self.assertEqual(value, self.conduit.get_scratchpad()) def test_scratchpad_with_error(self): # Setup mock_distributor_manager = mock.Mock() mock_distributor_manager.get_distributor_scratchpad.side_effect = Exception( ) mock_distributor_manager.set_distributor_scratchpad.side_effect = Exception( ) manager_factory._INSTANCES[ manager_factory.TYPE_REPO_DISTRIBUTOR] = mock_distributor_manager # Test self.assertRaises(mixins.DistributorConduitException, self.conduit.get_scratchpad) self.assertRaises(mixins.DistributorConduitException, self.conduit.set_scratchpad, 'foo')
class DistributorScratchpadMixinTests(base.PulpServerTests): def clean(self): super(DistributorScratchpadMixinTests, self).clean() types_database.clean() Repo.get_collection().remove() def setUp(self): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.repo_manager = RepoManager() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' self.repo_manager.create_repo(repo_id) self.distributor_manager.add_distributor( repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = DistributorScratchPadMixin(repo_id, 'test-distributor') def tearDown(self): super(DistributorScratchpadMixinTests, self).tearDown() manager_factory.reset() def test_get_set_scratchpad(self): """ Tests scratchpad calls. """ # Test - get no scratchpad self.assertTrue(self.conduit.get_scratchpad() is None) # Test - set scrathpad value = 'dragon' self.conduit.set_scratchpad(value) # Test - get updated value self.assertEqual(value, self.conduit.get_scratchpad()) def test_scratchpad_with_error(self): # Setup mock_distributor_manager = mock.Mock() mock_distributor_manager.get_distributor_scratchpad.side_effect = Exception( ) mock_distributor_manager.set_distributor_scratchpad.side_effect = Exception( ) manager_factory._INSTANCES[ manager_factory.TYPE_REPO_DISTRIBUTOR] = mock_distributor_manager # Test self.assertRaises(DistributorConduitException, self.conduit.get_scratchpad) self.assertRaises(DistributorConduitException, self.conduit.set_scratchpad, 'foo')
class DistributorScratchpadMixinTests(base.PulpServerTests): def clean(self): super(DistributorScratchpadMixinTests, self).clean() types_database.clean() Repo.get_collection().remove() @mock.patch('pulp.server.managers.repo._common.get_working_directory', return_value="/var/cache/pulp/mock_worker/mock_task_id") def setUp(self, mock_get_working_directory): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.repo_manager = RepoManager() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' self.repo_manager.create_repo(repo_id) self.distributor_manager.add_distributor(repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = mixins.DistributorScratchPadMixin(repo_id, 'test-distributor') def tearDown(self): super(DistributorScratchpadMixinTests, self).tearDown() manager_factory.reset() mock_plugins.reset() def test_get_set_scratchpad(self): """ Tests scratchpad calls. """ # Test - get no scratchpad self.assertTrue(self.conduit.get_scratchpad() is None) # Test - set scrathpad value = 'dragon' self.conduit.set_scratchpad(value) # Test - get updated value self.assertEqual(value, self.conduit.get_scratchpad()) def test_scratchpad_with_error(self): # Setup mock_distributor_manager = mock.Mock() mock_distributor_manager.get_distributor_scratchpad.side_effect = Exception() mock_distributor_manager.set_distributor_scratchpad.side_effect = Exception() manager_factory._INSTANCES[manager_factory.TYPE_REPO_DISTRIBUTOR] = mock_distributor_manager # Test self.assertRaises(mixins.DistributorConduitException, self.conduit.get_scratchpad) self.assertRaises(mixins.DistributorConduitException, self.conduit.set_scratchpad, 'foo')
def setUp(self, mock_get_working_directory): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.repo_manager = RepoManager() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' self.repo_manager.create_repo(repo_id) self.distributor_manager.add_distributor(repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = mixins.DistributorScratchPadMixin(repo_id, 'test-distributor')
def setUp(self, mock_get_working_directory): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' with mock.patch( 'pulp.server.managers.repo.distributor.model.Repository'): self.distributor_manager.add_distributor( repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = mixins.DistributorScratchPadMixin( repo_id, 'test-distributor')
def get_repo_data(repo_ids): """ Find, open, and return the gdbm database file associated with each repo plus that repo's publish protocol :param repo_ids: list of repository IDs. :type repo_ids: list :return: dictionary where keys are repo IDs, and values are dicts that contain an open gdbm database under key "db", and a protocol under key "protocol". :rtype: dict """ ret = {} for distributor in RepoDistributorManager.find_by_repo_list(repo_ids): publish_protocol = _get_protocol_from_distributor(distributor) protocol_key, protocol_default_value = PROTOCOL_CONFIG_KEYS[ publish_protocol] repo_path = distributor['config'].get(protocol_key, protocol_default_value) repo_id = distributor['repo_id'] db_path = os.path.join(repo_path, repo_id, constants.REPO_DEPDATA_FILENAME) try: ret[repo_id] = { 'db': gdbm.open(db_path, 'r'), 'protocol': publish_protocol } except gdbm.error: _LOGGER.error( 'failed to find dependency database for repo %s. re-publish to fix.' % repo_id) return ret
def get_repo_data(repo_ids): """ Find, open, and return the gdbm database file associated with each repo plus that repo's publish protocol :param repo_ids: list of repository IDs. :type repo_ids: list :return: dictionary where keys are repo IDs, and values are dicts that contain an open gdbm database under key "db", and a protocol under key "protocol". :rtype: dict """ ret = {} for distributor in RepoDistributorManager.find_by_repo_list(repo_ids): publish_protocol = _get_protocol_from_distributor(distributor) protocol_key, protocol_default_value = PROTOCOL_CONFIG_KEYS[publish_protocol] repo_path = distributor['config'].get(protocol_key, protocol_default_value) repo_id = distributor['repo_id'] db_path = os.path.join(repo_path, repo_id, constants.REPO_DEPDATA_FILENAME) try: ret[repo_id] = {'db': gdbm.open(db_path, 'r'), 'protocol': publish_protocol} except gdbm.error: _LOGGER.error('failed to find dependency database for repo %s. re-publish to fix.' % repo_id) return ret
def setUp(self, mock_get_working_directory): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' with mock.patch('pulp.server.managers.repo.distributor.model.Repository'): self.distributor_manager.add_distributor(repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = mixins.DistributorScratchPadMixin(repo_id, 'test-distributor')
def setUp(self): super(DistributorScratchpadMixinTests, self).setUp() mock_plugins.install() self.repo_manager = RepoManager() self.distributor_manager = RepoDistributorManager() repo_id = 'repo-1' self.repo_manager.create_repo(repo_id) self.distributor_manager.add_distributor(repo_id, 'mock-distributor', {}, True, distributor_id='test-distributor') self.conduit = DistributorScratchPadMixin(repo_id, 'test-distributor')
def find_yum_distributor(self, repo_id): dist_manager = RepoDistributorManager() for dist in dist_manager.get_distributors(repo_id): if dist["distributor_type_id"] == 'yum_distributor': return dist raise Exception("Could not find yum distributor for %s" % repo_id)