コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
    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)