def publish(self, group_id, distributor_id, distributor=None, distributor_instance=None, plugin_config=None, publish_config_override=None): """ Requests the given distributor publish the repository group. @param group_id: identifies the repo group @type group_id: str @param distributor_id: identifies the group's distributor @type distributor_id: str @param distributor: distributor metadata as associate with the repo group @type distributor: dict @param distributor_instance: instance of group's distributor to be used for publishing @type distributor_instance: GroupDistributor @param plugin_config: general configuration for the distributor instance @type plugin_config: dict or None @param publish_config_override: values to pass the plugin for this publish call alone @type publish_config_override: dict """ if None in (distributor, distributor_instance): raise MissingResource(repo_group=group_id, group_distributor=distributor_id) group_query_manager = manager_factory.repo_group_query_manager() # Validation group = group_query_manager.get_group(group_id) distributor_type_id = distributor['distributor_type_id'] # Assemble the data needed for publish conduit = RepoGroupPublishConduit(group_id, distributor_id) call_config = PluginCallConfiguration(plugin_config, distributor['config'], publish_config_override) transfer_group = common_utils.to_transfer_repo_group(group) transfer_group.working_dir = common_utils.group_distributor_working_dir( distributor_type_id, group_id) # TODO: Add events for group publish start/complete self._do_publish(transfer_group, distributor_id, distributor_instance, conduit, call_config)
def setUp(self): super(RepoGroupPublishConduitTests, self).setUp() mock_plugins.install() manager_factory.initialize() self.group_manager = manager_factory.repo_group_manager() self.distributor_manager = manager_factory.repo_group_distributor_manager() self.group_id = 'conduit-group' self.distributor_id = 'conduit-distributor' self.group_manager.create_repo_group(self.group_id) self.distributor_manager.add_distributor(self.group_id, 'mock-group-distributor', {}, distributor_id=self.distributor_id) self.conduit = RepoGroupPublishConduit(self.group_id, self.distributor_id)
def publish(group_id, distributor_id, publish_config_override=None): """ Requests the given distributor publish the repository group. :param group_id: identifies the repo group :type group_id: str :param distributor_id: identifies the group's distributor :type distributor_id: str :param publish_config_override: values to pass the plugin for this publish call alone :type publish_config_override: dict """ distributor_manager = manager_factory.repo_group_distributor_manager() distributor = distributor_manager.get_distributor( group_id, distributor_id) distributor_type_id = distributor['distributor_type_id'] distributor_instance, plugin_config = plugin_api.get_group_distributor_by_id( distributor_type_id) group_query_manager = manager_factory.repo_group_query_manager() # Validation group = group_query_manager.get_group(group_id) distributor_type_id = distributor['distributor_type_id'] # Assemble the data needed for publish conduit = RepoGroupPublishConduit(group_id, distributor) call_config = PluginCallConfiguration(plugin_config, distributor['config'], publish_config_override) transfer_group = common_utils.to_transfer_repo_group(group) transfer_group.working_dir = common_utils.group_distributor_working_dir( distributor_type_id, group_id) # TODO: Add events for group publish start/complete RepoGroupPublishManager._do_publish(transfer_group, distributor_id, distributor_instance, conduit, call_config)