def setUp(self): super(Migration0004Tests, self).setUp() # Special way to import modules that start with a number self.migration = _import_all_the_way( 'pulp_rpm.plugins.migrations.0004_pkg_group_category_repoid') factory.initialize() api.initialize(False) types_db.update_database([TYPE_DEF_GROUP, TYPE_DEF_CATEGORY]) # Create the repositories necessary for the tests self.source_repo_id = 'source-repo' # where units were copied from with the bad code self.dest_repo_id = 'dest-repo' # where bad units were copied to source_repo = model.Repository(repo_id=self.source_repo_id) source_repo.save() dest_repo = model.Repository(repo_id=self.dest_repo_id) dest_repo.save() source_importer = model.Importer(self.source_repo_id, 'yum_importer', {}) source_importer.save() dest_importer = model.Importer(self.dest_repo_id, 'yum_importer', {}) dest_importer.save()
def set_importer(repo_id, importer_type_id, repo_plugin_config): """ Configures an importer to be used for the given repository. :param repo: repository object that the importer should be associated with :type repo: pulp.server.db.model.Repository :param importer_type_id: type of importer, must correspond to a plugin loaded at server startup :type importer_type_id: str :param repo_plugin_config: configuration values for the importer; may be None :type repo_plugin_config: dict or None :return: key-value pairs describing the importer that was set :rtype: dict :raises PulpExecutionException: if something goes wrong in the plugin :raises exceptions.InvalidValue: if the values passed to create the importer are invalid """ repo = model.Repository.objects.get_repo_or_missing_resource(repo_id) 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) clean_config = clean_config_dict(repo_plugin_config) # Let the importer plugin verify the configuration call_config = PluginCallConfiguration(plugin_config, clean_config) transfer_repo = repo.to_transfer_repo() validate_importer_config(repo, importer_type_id, clean_config) try: remove_importer(repo_id) except exceptions.MissingResource: pass # it didn't exist, so no harm done # Let the importer plugin initialize the importer try: importer_instance.importer_added(transfer_repo, call_config) except Exception: _logger.exception('Error initializing importer [%s] for repo [%s]' % (importer_type_id, repo.repo_id)) raise exceptions.PulpExecutionException(), None, sys.exc_info()[2] importer = model.Importer(repo_id, importer_type_id, clean_config) try: importer.save() except ValidationError, e: raise exceptions.InvalidValue(e.to_dict().keys())
def test_model_superclass(self): """ Ensure that the class is a Mongoengine Document. """ sample_model = model.Importer() self.assertTrue(isinstance(sample_model, Document))