示例#1
0
    def generate_auto_labels(self, base_labels, df_labels, plugin_labels):
        generated = {}
        all_labels = base_labels.copy()
        all_labels.update(df_labels)
        all_labels.update(plugin_labels)

        # build date
        dt = datetime.datetime.utcfromtimestamp(atomic_reactor_start_time)
        generated['build-date'] = dt.isoformat()

        # architecture - assuming host and image architecture is the same
        generated['architecture'], _ = get_docker_architecture(self.tasker)

        # build host
        docker_info = self.tasker.get_info()
        generated['com.redhat.build-host'] = docker_info['Name']

        # VCS info
        vcs = self.workflow.source.get_vcs_info()
        if vcs:
            generated['vcs-type'] = vcs.vcs_type
            generated['vcs-url'] = vcs.vcs_url
            generated['vcs-ref'] = vcs.vcs_ref

        for lbl in self.auto_labels:
            if lbl not in generated:
                self.log.warning(
                    "requested automatic label %r is not available", lbl)

            else:
                self.labels[lbl] = generated[lbl]
                self.log.info("automatic label %r is generated to %r", lbl,
                              generated[lbl])
    def generate_auto_labels(self, base_labels, df_labels, plugin_labels):
        generated = {}
        all_labels = base_labels.copy()
        all_labels.update(df_labels)
        all_labels.update(plugin_labels)

        # build date
        dt = datetime.datetime.utcfromtimestamp(atomic_reactor_start_time)
        generated['build-date'] = dt.isoformat()

        # architecture - assuming host and image architecture is the same
        generated['architecture'], _ = get_docker_architecture(self.tasker)

        # build host
        docker_info = self.tasker.get_info()
        generated['com.redhat.build-host'] = docker_info['Name']

        # VCS info
        vcs = self.workflow.source.get_vcs_info()
        if vcs:
            generated['vcs-type'] = vcs.vcs_type
            generated['vcs-url'] = vcs.vcs_url
            generated['vcs-ref'] = vcs.vcs_ref

        for lbl in self.auto_labels:
            if lbl not in generated:
                self.log.warning("requested automatic label %r is not available", lbl)

            elif lbl in plugin_labels:
                self.log.info("label %r is set explicitly, not using generated value", lbl)

            else:
                self.labels[lbl] = generated[lbl]
                self.log.info("automatic label %r is generated to %r", lbl, generated[lbl])
示例#3
0
def get_buildroot(build_id, tasker, osbs, rpms):
    """
    Build the buildroot entry of the metadata.
    :param build_id: str, ocp build_id
    :param tasker: ContainerTasker instance
    :param osbs: OSBS instance
    :param rpms: bool, get rpms for components metadata
    :return: dict, partial metadata
    """
    docker_info = tasker.get_info()
    host_arch, docker_version = get_docker_architecture(tasker)

    buildroot = {
        'id':
        1,
        'host': {
            'os': docker_info['OperatingSystem'],
            'arch': host_arch,
        },
        'content_generator': {
            'name': PROG,
            'version': atomic_reactor_version,
        },
        'container': {
            'type': 'docker',
            'arch': os.uname()[4],
        },
        'tools': [{
            'name': tool['name'],
            'version': tool['version'],
        } for tool in get_version_of_tools()] + [
            {
                'name': 'docker',
                'version': docker_version,
            },
        ],
        'extra': {
            'osbs': {
                'build_id': build_id,
                'builder_image_id': get_builder_image_id(build_id, osbs),
            }
        },
        'components': [],
    }
    if rpms:
        buildroot['components'] = get_rpms()

    return buildroot
    def get_buildroot(self, build_id):
        """
        Build the buildroot entry of the metadata.

        :return: dict, partial metadata
        """

        docker_info = self.tasker.get_info()
        host_arch, docker_version = get_docker_architecture(self.tasker)

        buildroot = {
            'id': 1,
            'host': {
                'os': docker_info['OperatingSystem'],
                'arch': host_arch,
            },
            'content_generator': {
                'name': PROG,
                'version': atomic_reactor_version,
            },
            'container': {
                'type': 'docker',
                'arch': os.uname()[4],
            },
            'tools': [
                {
                    'name': tool['name'],
                    'version': tool['version'],
                }
                for tool in get_version_of_tools()] + [
                {
                    'name': 'docker',
                    'version': docker_version,
                },
            ],
            'components': self.get_rpms(),
            'extra': {
                'osbs': {
                    'build_id': build_id,
                    'builder_image_id': self.get_builder_image_id(),
                }
            },
        }

        return buildroot
    def get_buildroot(self, build_id):
        """
        Build the buildroot entry of the metadata.

        :return: dict, partial metadata
        """

        docker_info = self.tasker.get_info()
        host_arch, docker_version = get_docker_architecture(self.tasker)

        buildroot = {
            'id': 1,
            'host': {
                'os': docker_info['OperatingSystem'],
                'arch': host_arch,
            },
            'content_generator': {
                'name': PROG,
                'version': atomic_reactor_version,
            },
            'container': {
                'type': 'docker',
                'arch': os.uname()[4],
            },
            'tools': [
                {
                    'name': tool['name'],
                    'version': tool['version'],
                }
                for tool in get_version_of_tools()] + [
                {
                    'name': 'docker',
                    'version': docker_version,
                },
            ],
            'components': self.get_rpms(),
            'extra': {
                'osbs': {
                    'build_id': build_id,
                    'builder_image_id': self.get_builder_image_id(),
                }
            },
        }

        return buildroot
    def generate_auto_labels(self, auto_labels):
        generated = {}

        # build date
        dt = datetime.datetime.fromtimestamp(atomic_reactor_start_time)
        generated['build-date'] = dt.isoformat()

        # architecture - assuming host and image architecture is the same
        generated['architecture'], _ = get_docker_architecture(self.tasker)

        # build host
        docker_info = self.tasker.get_info()
        generated['com.redhat.build-host'] = docker_info['Name']

        # VCS info
        vcs = self.workflow.source.get_vcs_info()
        if vcs:
            generated['vcs-type'] = vcs.vcs_type
            generated['vcs-url'] = vcs.vcs_url
            generated['vcs-ref'] = vcs.vcs_ref

        for old, new in self.aliases.items():
            self.log.info("old=%r new=%r", old, new)
            if new in generated and old not in generated:
                self.log.info("adding %r for compatibility", old)
                generated[old] = generated[new]

        for lbl in auto_labels:
            if lbl in self.labels:
                self.log.info(
                    "label %r is set explicitly, not using generated value",
                    lbl)
                continue

            if lbl in generated:
                self.labels[lbl] = generated[lbl]
            else:
                self.log.warning(
                    "requested automatic label %r is not available", lbl)