def test_get_pulp_session(self, fallback, config, raise_error): tasker, workflow = self.prepare() workflow.plugin_workspace[ReactorConfigPlugin.key] = {} if raise_error: with pytest.raises(Exception): read_yaml(config, 'schemas/config.json') return config_json = read_yaml(config, 'schemas/config.json') auth_info = { "pulp_secret_path": config_json['pulp']['auth'].get('ssl_certs_dir'), "username": config_json['pulp']['auth'].get('username'), "password": config_json['pulp']['auth'].get('password'), "dockpulp_loglevel": None } fallback_map = {} if fallback: fallback_map = {'auth': deepcopy(auth_info), 'name': config_json['pulp']['name']} fallback_map['auth']['ssl_certs_dir'] = fallback_map['auth'].pop('pulp_secret_path') else: workflow.plugin_workspace[ReactorConfigPlugin.key][WORKSPACE_CONF_KEY] =\ ReactorConfig(config_json) (flexmock(atomic_reactor.pulp_util.PulpHandler) .should_receive('__init__') .with_args(workflow, config_json['pulp']['name'], 'logger', **auth_info) .once() .and_return(None)) get_pulp_session(workflow, 'logger', fallback_map)
def __init__(self, tasker, workflow, pulp_registry_name=None, pulp_secret_path=None, username=None, password=None, dockpulp_loglevel=None): """ constructor :param tasker: DockerTasker instance :param workflow: DockerBuildWorkflow instance :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/ dockpulp.conf :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise :param username: pulp username, used in preference to certificate and key :param password: pulp password, used in preference to certificate and key """ # call parent constructor super(PulpPublishPlugin, self).__init__(tasker, workflow) self.workflow = workflow self.pulp_fallback = { 'name': pulp_registry_name, 'loglevel': dockpulp_loglevel, 'auth': { 'ssl_certs_dir': pulp_secret_path, 'username': username, 'password': password } } self.pulp_handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback)
def __init__(self, tasker, workflow, pulp_registry_name=None, pulp_secret_path=None, username=None, password=None, dockpulp_loglevel=None): """ constructor :param tasker: DockerTasker instance :param workflow: DockerBuildWorkflow instance :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/ dockpulp.conf :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise :param username: pulp username, used in preference to certificate and key :param password: pulp password, used in preference to certificate and key """ # call parent constructor super(PulpPublishPlugin, self).__init__(tasker, workflow) self.workflow = workflow self.pulp_fallback = { 'name': pulp_registry_name, 'loglevel': dockpulp_loglevel, 'auth': { 'ssl_certs_dir': pulp_secret_path, 'username': username, 'password': password } } self.pulp_handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback)
def set_v1_tags(self, v1_image_id): image_names = self.workflow.tag_conf.images[:] handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback) pulp_repos = handler.create_dockpulp_and_repos(image_names) repo_tags = {} for repo_id, pulp_repo in pulp_repos.items(): repo_tags[repo_id] = {"tag": "%s:%s" % (",".join(pulp_repo.tags), v1_image_id)} handler.update_repo(repo_id, repo_tags[repo_id]) return repo_tags
def set_v1_tags(self, v1_image_id): image_names = self.workflow.tag_conf.images[:] handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback) pulp_repos = handler.create_dockpulp_and_repos(image_names) repo_tags = {} for repo_id, pulp_repo in pulp_repos.items(): repo_tags[repo_id] = { "tag": "%s:%s" % (",".join(pulp_repo.tags), v1_image_id) } handler.update_repo(repo_id, repo_tags[repo_id]) return repo_tags
def test_get_pulp_session(self, fallback, config, raise_error): tasker, workflow = self.prepare() workflow.plugin_workspace[ReactorConfigPlugin.key] = {} if raise_error: with pytest.raises(Exception): read_yaml(config, 'schemas/config.json') return config_json = read_yaml(config, 'schemas/config.json') auth_info = { "pulp_secret_path": config_json['pulp']['auth'].get('ssl_certs_dir'), "username": config_json['pulp']['auth'].get('username'), "password": config_json['pulp']['auth'].get('password'), "dockpulp_loglevel": None } fallback_map = {} if fallback: fallback_map = { 'auth': deepcopy(auth_info), 'name': config_json['pulp']['name'] } fallback_map['auth']['ssl_certs_dir'] = fallback_map['auth'].pop( 'pulp_secret_path') else: workflow.plugin_workspace[ReactorConfigPlugin.key][WORKSPACE_CONF_KEY] =\ ReactorConfig(config_json) (flexmock(atomic_reactor.pulp_util.PulpHandler).should_receive( '__init__').with_args(workflow, config_json['pulp']['name'], 'logger', **auth_info).once().and_return(None)) get_pulp_session(workflow, 'logger', fallback_map)
def __init__(self, tasker, workflow, pulp_registry_name=None, load_squashed_image=None, load_exported_image=None, image_names=None, pulp_secret_path=None, username=None, password=None, dockpulp_loglevel=None, publish=True): """ constructor :param tasker: DockerTasker instance :param workflow: DockerBuildWorkflow instance :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/ dockpulp.conf :param load_squashed_image: obsolete name for load_exported_image, please don't use :param load_exported_image: bool, use exported tar instead of image from Docker :param image_names: list of additional image names :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise :param username: pulp username, used in preference to certificate and key :param password: pulp password, used in preference to certificate and key :param publish: Bool, whether to publish to crane or not """ # call parent constructor super(PulpPushPlugin, self).__init__(tasker, workflow) self.pulp_fallback = { 'name': pulp_registry_name, 'loglevel': dockpulp_loglevel, 'auth': { 'ssl_certs_dir': pulp_secret_path, 'username': username, 'password': password } } self.image_names = image_names if load_squashed_image is not None and load_exported_image is not None and \ (load_squashed_image != load_exported_image): raise RuntimeError("Can\'t use load_squashed_image and " "load_exported_image with different values") if load_squashed_image is not None: self.log.warning('load_squashed_image argument is obsolete and will be ' 'removed in a future version; please use load_exported_image instead') self.load_exported_image = load_exported_image or load_squashed_image or False self.publish = publish and not are_plugins_in_order(self.workflow.postbuild_plugins_conf, self.key, PLUGIN_PULP_SYNC_KEY) self.pulp_handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback)
def __init__(self, tasker, workflow, pulp_registry_name=None, load_squashed_image=None, load_exported_image=None, image_names=None, pulp_secret_path=None, username=None, password=None, dockpulp_loglevel=None, publish=True): """ constructor :param tasker: DockerTasker instance :param workflow: DockerBuildWorkflow instance :param pulp_registry_name: str, name of pulp registry to use, specified in /etc/ dockpulp.conf :param load_squashed_image: obsolete name for load_exported_image, please don't use :param load_exported_image: bool, use exported tar instead of image from Docker :param image_names: list of additional image names :param pulp_secret_path: path to pulp.cer and pulp.key; $SOURCE_SECRET_PATH otherwise :param username: pulp username, used in preference to certificate and key :param password: pulp password, used in preference to certificate and key :param publish: Bool, whether to publish to crane or not """ # call parent constructor super(PulpPushPlugin, self).__init__(tasker, workflow) self.pulp_fallback = { 'name': pulp_registry_name, 'loglevel': dockpulp_loglevel, 'auth': { 'ssl_certs_dir': pulp_secret_path, 'username': username, 'password': password } } self.image_names = image_names if load_squashed_image is not None and load_exported_image is not None and \ (load_squashed_image != load_exported_image): raise RuntimeError("Can\'t use load_squashed_image and " "load_exported_image with different values") if load_squashed_image is not None: self.log.warning('load_squashed_image argument is obsolete and will be ' 'removed in a future version; please use load_exported_image instead') self.load_exported_image = load_exported_image or load_squashed_image or False self.publish = publish and not are_plugins_in_order(self.workflow.postbuild_plugins_conf, self.key, PLUGIN_PULP_SYNC_KEY) self.pulp_handler = get_pulp_session(self.workflow, self.log, self.pulp_fallback)