コード例 #1
0
ファイル: spec.py プロジェクト: pombredanne/osbs-client
 def set_params(self, sources_command=None, architecture=None, vendor=None,
                build_host=None, authoritative_registry=None,
                koji_target=None, kojiroot=None, kojihub=None,
                source_secret=None, # compatibility name for pulp_secret
                pulp_secret=None, pulp_registry=None, nfs_server_path=None,
                nfs_dest_dir=None, git_branch=None, base_image=None,
                name_label=None, git_push_url=None, git_push_username=None,
                **kwargs):
     super(ProdSpec, self).set_params(**kwargs)
     self.sources_command.value = sources_command
     self.architecture.value = architecture
     self.vendor.value = vendor
     self.build_host.value = build_host
     self.authoritative_registry.value = authoritative_registry
     self.koji_target.value = koji_target
     self.kojiroot.value = kojiroot
     self.kojihub.value = kojihub
     self.pulp_secret.value = pulp_secret or source_secret
     self.pulp_registry.value = pulp_registry
     self.nfs_server_path.value = nfs_server_path
     self.nfs_dest_dir.value = nfs_dest_dir
     self.git_push_url.value = git_push_url
     self.git_push_username.value = git_push_username
     self.git_branch.value = git_branch
     repo = git_repo_humanish_part_from_uri(self.git_uri.value)
     self.name.value = "{repo}-{branch}".format(repo=repo,
                                                branch=git_branch)
     self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(base_image)
     self.imagestream_name.value = name_label.replace('/', '-')
     self.imagestream_url.value = os.path.join(self.registry_uri.value,
                                               name_label)
     timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
     self.image_tag.value = "%s/%s:%s-%s" % (
         self.user.value,
         self.component.value,
         self.koji_target.value,
         timestamp
     )
コード例 #2
0
    def set_params(self,
                   git_uri=None,
                   git_ref=None,
                   git_branch=None,
                   base_image=None,
                   name_label=None,
                   release=None,
                   platforms=None,
                   build_type=None,
                   filesystem_koji_task_id=None,
                   koji_parent_build=None,
                   koji_upload_dir=None,
                   flatpak=None,
                   yum_repourls=None,
                   compose_ids=None,
                   isolated=None,
                   parent_images_digests=None,
                   tags_from_yaml=None,
                   additional_tags=None,
                   git_commit_depth=None,
                   operator_manifests_extract_platform=None,
                   triggered_after_koji_task=None,
                   **kwargs):
        super(BuildUserParams, self).set_params(**kwargs)
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.git_branch.value = git_branch
        self.git_commit_depth.value = git_commit_depth
        self.tags_from_yaml.value = tags_from_yaml
        self.additional_tags.value = additional_tags or set()

        self.release.value = release
        self.build_type.value = build_type
        self.base_image.value = base_image

        self.name.value = make_name_from_git(self.git_uri.value,
                                             self.git_branch.value)

        self.parent_images_digests.value = parent_images_digests
        self.operator_manifests_extract_platform.value = operator_manifests_extract_platform
        self.platforms.value = platforms
        self.filesystem_koji_task_id.value = filesystem_koji_task_id
        self.koji_parent_build.value = koji_parent_build
        self.koji_upload_dir.value = koji_upload_dir
        self.flatpak.value = flatpak
        self.isolated.value = isolated
        self.triggered_after_koji_task.value = triggered_after_koji_task

        if not flatpak:
            if not base_image:
                raise OsbsValidationException("base_image must be provided")
            self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
                base_image)

            if not name_label:
                raise OsbsValidationException("name_label must be provided")
            self.imagestream_name.value = name_label.replace('/', '-')

        if kwargs.get('signing_intent') and compose_ids:
            raise OsbsValidationException(
                'Please only define signing_intent -OR- compose_ids, not both')
        if not (compose_ids is None or isinstance(compose_ids, list)):
            raise OsbsValidationException("compose_ids must be a list")
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.compose_ids.value = compose_ids or []
コード例 #3
0
ファイル: spec.py プロジェクト: nhr/osbs-client
    def set_params(self, git_uri=None, git_ref=None,
                   registry_uri=None,  # compatibility name for registry_uris
                   registry_uris=None, registry_secrets=None,
                   user=None,
                   component=None, openshift_uri=None, source_registry_uri=None,
                   yum_repourls=None, use_auth=None, builder_openshift_url=None,
                   build_image=None, build_imagestream=None, proxy=None,
                   sources_command=None, architecture=None, vendor=None,
                   build_host=None, authoritative_registry=None, distribution_scope=None,
                   koji_target=None, kojiroot=None, kojihub=None, koji_certs_secret=None,
                   koji_use_kerberos=None, koji_kerberos_keytab=None,
                   koji_kerberos_principal=None, koji_task_id=None,
                   source_secret=None,  # compatibility name for pulp_secret
                   pulp_secret=None, pulp_registry=None,
                   smtp_host=None, smtp_from=None, smtp_email_domain=None,
                   smtp_additional_addresses=None, smtp_error_addresses=None,
                   smtp_to_submitter=None, smtp_to_pkgowner=None,
                   nfs_server_path=None, nfs_dest_dir=None,
                   git_branch=None, base_image=None,
                   name_label=None,
                   builder_build_json_dir=None, registry_api_versions=None,
                   platform=None, platforms=None, release=None,
                   reactor_config_secret=None, client_config_secret=None,
                   token_secrets=None, arrangement_version=None,
                   info_url_format=None, artifacts_allowed_domains=None,
                   **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.user.value = user
        self.component.value = component
        self.proxy.value = proxy

        # registry_uri is the compatibility name for registry_uris
        if registry_uri is not None:
            assert registry_uris is None
            registry_uris = [registry_uri]

        self.registry_uris.value = registry_uris or []
        self.registry_secrets.value = registry_secrets or []
        self.source_registry_uri.value = source_registry_uri
        self.openshift_uri.value = openshift_uri
        self.builder_openshift_url.value = builder_openshift_url
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.use_auth.value = use_auth

        if build_imagestream and build_image:
            raise OsbsValidationException(
                'Please only define build_image -OR- build_imagestream, not both')
        self.build_image.value = build_image or DEFAULT_BUILD_IMAGE
        self.build_imagestream.value = build_imagestream

        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.koji_use_kerberos.value = koji_use_kerberos
        self.koji_kerberos_principal.value = koji_kerberos_principal
        self.koji_kerberos_keytab.value = koji_kerberos_keytab
        self.koji_task_id.value = koji_task_id
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.smtp_host.value = smtp_host
        self.smtp_from.value = smtp_from
        self.smtp_additional_addresses.value = smtp_additional_addresses
        self.smtp_error_addresses.value = smtp_error_addresses
        self.smtp_email_domain.value = smtp_email_domain
        self.smtp_to_submitter.value = smtp_to_submitter
        self.smtp_to_pkgowner.value = smtp_to_pkgowner
        self.nfs_server_path.value = nfs_server_path
        self.nfs_dest_dir.value = nfs_dest_dir
        self.git_branch.value = git_branch
        self.name.value = make_name_from_git(self.git_uri.value, self.git_branch.value)
        if not base_image:
            raise OsbsValidationException("base_image must be provided")
        self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(base_image)
        self.builder_build_json_dir.value = builder_build_json_dir
        if not name_label:
            raise OsbsValidationException("name_label must be provided")
        self.imagestream_name.value = name_label.replace('/', '-')
        # The ImageStream should take tags from the source registry
        # or, if no source registry is set, the first listed registry
        imagestream_reg = self.source_registry_uri.value
        if not imagestream_reg:
            try:
                imagestream_reg = self.registry_uris.value[0]
            except IndexError:
                logger.info("no registries specified, cannot determine imagestream url")
                imagestream_reg = None

        if imagestream_reg:
            self.imagestream_url.value = os.path.join(imagestream_reg.docker_uri,
                                                      name_label)
            logger.debug("setting 'imagestream_url' to '%s'",
                         self.imagestream_url.value)
            insecure = imagestream_reg.uri.startswith('http://')
            self.imagestream_insecure_registry.value = insecure
            logger.debug("setting 'imagestream_insecure_registry' to %r", insecure)

        timestamp = utcnow().strftime('%Y%m%d%H%M%S')
        self.image_tag.value = "%s/%s:%s-%s-%s" % (
            self.user.value,
            self.component.value,
            self.koji_target.value or 'none',
            random.randrange(10**(RAND_DIGITS - 1), 10**RAND_DIGITS),
            timestamp
        )

        self.platform.value = platform
        self.platforms.value = platforms
        self.release.value = release
        self.reactor_config_secret.value = reactor_config_secret
        self.client_config_secret.value = client_config_secret
        self.token_secrets.value = token_secrets or {}
        self.arrangement_version.value = arrangement_version
        self.info_url_format.value = info_url_format
        self.artifacts_allowed_domains.value = artifacts_allowed_domains
コード例 #4
0
ファイル: spec.py プロジェクト: yahzaa/osbs-client
    def set_params(
            self,
            git_uri=None,
            git_ref=None,
            registry_uri=None,  # compatibility name for registry_uris
            registry_uris=None,
            registry_secrets=None,
            user=None,
            component=None,
            openshift_uri=None,
            source_registry_uri=None,
            yum_repourls=None,
            use_auth=None,
            builder_openshift_url=None,
            build_image=None,
            build_imagestream=None,
            proxy=None,
            sources_command=None,
            architecture=None,
            vendor=None,
            build_host=None,
            authoritative_registry=None,
            distribution_scope=None,
            koji_target=None,
            kojiroot=None,
            kojihub=None,
            koji_certs_secret=None,
            koji_use_kerberos=None,
            koji_kerberos_keytab=None,
            koji_kerberos_principal=None,
            koji_task_id=None,
            flatpak=False,
            module=None,
            module_compose_id=None,
            flatpak_base_image=None,
            odcs_url=None,
            odcs_insecure=False,
            odcs_openidc_secret=None,
            odcs_ssl_secret=None,
            pdc_url=None,
            pdc_insecure=False,
            filesystem_koji_task_id=None,
            source_secret=None,  # compatibility name for pulp_secret
            pulp_secret=None,
            pulp_registry=None,
            smtp_host=None,
            smtp_from=None,
            smtp_email_domain=None,
            smtp_additional_addresses=None,
            smtp_error_addresses=None,
            smtp_to_submitter=None,
            smtp_to_pkgowner=None,
            git_branch=None,
            base_image=None,
            name_label=None,
            builder_build_json_dir=None,
            registry_api_versions=None,
            platforms=None,
            platform=None,
            build_type=None,
            release=None,
            reactor_config_secret=None,
            client_config_secret=None,
            token_secrets=None,
            arrangement_version=None,
            info_url_format=None,
            artifacts_allowed_domains=None,
            equal_labels=None,
            koji_upload_dir=None,
            yum_proxy=None,
            koji_parent_build=None,
            group_manifests=None,
            prefer_schema1_digest=None,
            signing_intent=None,
            compose_ids=None,
            **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.user.value = user
        self.component.value = component
        self.proxy.value = proxy

        # registry_uri is the compatibility name for registry_uris
        if registry_uri is not None:
            assert registry_uris is None
            registry_uris = [registry_uri]

        self.registry_uris.value = registry_uris or []
        self.registry_secrets.value = registry_secrets or []
        self.source_registry_uri.value = source_registry_uri
        self.openshift_uri.value = openshift_uri
        self.builder_openshift_url.value = builder_openshift_url
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.use_auth.value = use_auth

        if build_imagestream and build_image:
            raise OsbsValidationException(
                'Please only define build_image -OR- build_imagestream, not both'
            )
        self.build_image.value = build_image or DEFAULT_BUILD_IMAGE
        self.build_imagestream.value = build_imagestream

        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.koji_use_kerberos.value = koji_use_kerberos
        self.koji_kerberos_principal.value = koji_kerberos_principal
        self.koji_kerberos_keytab.value = koji_kerberos_keytab
        self.koji_task_id.value = koji_task_id
        self.flatpak.value = flatpak
        self.module.value = module
        self.module_compose_id.value = module_compose_id
        self.flatpak_base_image.value = flatpak_base_image
        self.odcs_url.value = odcs_url
        self.odcs_insecure.value = odcs_insecure
        self.odcs_openidc_secret.value = odcs_openidc_secret
        self.odcs_ssl_secret.value = odcs_ssl_secret
        self.pdc_url.value = pdc_url
        self.pdc_insecure.value = pdc_insecure
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.smtp_host.value = smtp_host
        self.smtp_from.value = smtp_from
        self.smtp_additional_addresses.value = smtp_additional_addresses
        self.smtp_error_addresses.value = smtp_error_addresses
        self.smtp_email_domain.value = smtp_email_domain
        self.smtp_to_submitter.value = smtp_to_submitter
        self.smtp_to_pkgowner.value = smtp_to_pkgowner
        self.git_branch.value = git_branch
        self.name.value = make_name_from_git(self.git_uri.value,
                                             self.git_branch.value)
        self.group_manifests.value = group_manifests or False
        self.prefer_schema1_digest.value = prefer_schema1_digest
        self.builder_build_json_dir.value = builder_build_json_dir

        if not flatpak:
            if not base_image:
                raise OsbsValidationException("base_image must be provided")
            self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
                base_image)

            if not name_label:
                raise OsbsValidationException("name_label must be provided")
            self.imagestream_name.value = name_label.replace('/', '-')
            # The ImageStream should take tags from the source registry
            # or, if no source registry is set, the first listed registry
            imagestream_reg = self.source_registry_uri.value
            if not imagestream_reg:
                try:
                    imagestream_reg = self.registry_uris.value[0]
                except IndexError:
                    logger.info(
                        "no registries specified, cannot determine imagestream url"
                    )
                    imagestream_reg = None

            if imagestream_reg:
                self.imagestream_url.value = os.path.join(
                    imagestream_reg.docker_uri, name_label)
                logger.debug("setting 'imagestream_url' to '%s'",
                             self.imagestream_url.value)
                insecure = imagestream_reg.uri.startswith('http://')
                self.imagestream_insecure_registry.value = insecure
                logger.debug("setting 'imagestream_insecure_registry' to %r",
                             insecure)

        self.platforms.value = platforms
        self.platform.value = platform
        self.build_type.value = build_type
        self.release.value = release
        self.reactor_config_secret.value = reactor_config_secret
        self.client_config_secret.value = client_config_secret
        self.token_secrets.value = token_secrets or {}
        self.arrangement_version.value = arrangement_version
        self.info_url_format.value = info_url_format
        self.artifacts_allowed_domains.value = artifacts_allowed_domains
        self.equal_labels.value = equal_labels
        self.filesystem_koji_task_id.value = filesystem_koji_task_id
        self.koji_upload_dir.value = koji_upload_dir
        self.yum_proxy.value = yum_proxy
        self.koji_parent_build.value = koji_parent_build

        if (signing_intent or compose_ids) and not self.odcs_enabled():
            raise OsbsValidationException(
                'signing_intent and compose_ids are allowed only when ODCS is enabled'
            )

        if signing_intent and compose_ids:
            raise OsbsValidationException(
                'Please only define signing_intent -OR- compose_ids, not both')

        if compose_ids and yum_repourls:
            raise OsbsValidationException(
                'Please only define yum_repourls -OR- compose_ids, not both')

        try:
            compose_ids and iter(compose_ids)
        except TypeError:
            raise OsbsValidationException("compose_ids must be a list")

        self.signing_intent.value = signing_intent
        self.compose_ids.value = compose_ids or []
        self._populate_image_tag()
コード例 #5
0
ファイル: test_utils.py プロジェクト: mlangsdorf/osbs-client
def test_get_imagestreamtag_from_image(img, expected):
    assert get_imagestreamtag_from_image(img) == expected
コード例 #6
0
ファイル: test_utils.py プロジェクト: KOgames/osbs-client
def test_get_imagestreamtag_from_image(img, expected):
    assert get_imagestreamtag_from_image(img) == expected
コード例 #7
0
ファイル: user_params.py プロジェクト: ktdreyer/osbs-client
    def set_params(self,
                   git_uri=None,
                   git_ref=None,
                   git_branch=None,
                   base_image=None,
                   name_label=None,
                   user=None,
                   component=None,
                   release=None,
                   build_image=None,
                   build_imagestream=None,
                   build_from=None,
                   platforms=None,
                   platform=None,
                   build_type=None,
                   koji_target=None,
                   koji_task_id=None,
                   filesystem_koji_task_id=None,
                   koji_parent_build=None,
                   koji_upload_dir=None,
                   flatpak=None,
                   reactor_config_map=None,
                   reactor_config_override=None,
                   yum_repourls=None,
                   signing_intent=None,
                   compose_ids=None,
                   isolated=None,
                   scratch=None,
                   parent_images_digests=None,
                   tags_from_yaml=None,
                   additional_tags=None,
                   git_commit_depth=None,
                   worker_deadline=None,
                   orchestrator_deadline=None,
                   operator_manifests_extract_platform=None,
                   triggered_after_koji_task=None,
                   **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.git_branch.value = git_branch
        self.git_commit_depth.value = git_commit_depth
        self.tags_from_yaml.value = tags_from_yaml
        self.additional_tags.value = additional_tags or set()

        self.user.value = user
        self.component.value = component
        self.release.value = release
        self.build_type.value = build_type
        self.base_image.value = base_image

        self.name.value = make_name_from_git(self.git_uri.value,
                                             self.git_branch.value)
        self.reactor_config_map.value = reactor_config_map
        self.reactor_config_override.value = reactor_config_override

        unique_build_args = (build_imagestream, build_image, build_from)
        if sum(bool(a) for a in unique_build_args) != 1:
            raise OsbsValidationException(
                'Please only define one of build_from, build_image, build_imagestream'
            )
        self.build_image.value = build_image
        self.build_imagestream.value = build_imagestream
        if self.build_image.value or self.build_imagestream.value:
            logger.warning(
                "build_image or build_imagestream is defined, they are deprecated,"
                "use build_from instead")

        if build_from:
            source_type, source_value = build_from.split(':', 1)
            if source_type not in ('image', 'imagestream'):
                raise OsbsValidationException(
                    'first part in build_from, may be only image or imagestream'
                )
            if source_type == 'image':
                self.build_image.value = source_value
            else:
                self.build_imagestream.value = source_value

        self.parent_images_digests.value = parent_images_digests
        self.operator_manifests_extract_platform.value = operator_manifests_extract_platform
        self.platforms.value = platforms
        self.platform.value = platform
        self.koji_target.value = koji_target
        self.koji_task_id.value = koji_task_id
        self.filesystem_koji_task_id.value = filesystem_koji_task_id
        self.koji_parent_build.value = koji_parent_build
        self.koji_upload_dir.value = koji_upload_dir
        self.flatpak.value = flatpak
        self.isolated.value = isolated
        self.scratch.value = scratch
        self.triggered_after_koji_task.value = triggered_after_koji_task

        if not flatpak:
            if not base_image:
                raise OsbsValidationException("base_image must be provided")
            self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
                base_image)

            if not name_label:
                raise OsbsValidationException("name_label must be provided")
            self.imagestream_name.value = name_label.replace('/', '-')

        if signing_intent and compose_ids:
            raise OsbsValidationException(
                'Please only define signing_intent -OR- compose_ids, not both')
        if not (compose_ids is None or isinstance(compose_ids, list)):
            raise OsbsValidationException("compose_ids must be a list")
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.signing_intent.value = signing_intent
        self.compose_ids.value = compose_ids or []

        try:
            self.orchestrator_deadline.value = int(orchestrator_deadline)
        except (ValueError, TypeError):
            self.orchestrator_deadline.value = ORCHESTRATOR_MAX_RUNTIME
        try:
            self.worker_deadline.value = int(worker_deadline)
        except (ValueError, TypeError):
            self.worker_deadline.value = WORKER_MAX_RUNTIME

        self._populate_image_tag()
コード例 #8
0
ファイル: spec.py プロジェクト: Cloudxtreme/osbs-client
    def set_params(
            self,
            sources_command=None,
            architecture=None,
            vendor=None,
            build_host=None,
            authoritative_registry=None,
            distribution_scope=None,
            koji_target=None,
            kojiroot=None,
            kojihub=None,
            koji_certs_secret=None,
            source_secret=None,  # compatibility name for pulp_secret
            pulp_secret=None,
            pulp_registry=None,
            pdc_secret=None,
            pdc_url=None,
            smtp_uri=None,
            nfs_server_path=None,
            nfs_dest_dir=None,
            git_branch=None,
            base_image=None,
            name_label=None,
            git_push_url=None,
            git_push_username=None,
            builder_build_json_dir=None,
            registry_api_versions=None,
            **kwargs):
        super(ProdSpec, self).set_params(**kwargs)
        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.pdc_secret.value = pdc_secret
        self.pdc_url.value = pdc_url
        self.smtp_uri.value = smtp_uri
        self.nfs_server_path.value = nfs_server_path
        self.nfs_dest_dir.value = nfs_dest_dir
        self.git_push_url.value = git_push_url
        self.git_push_username.value = git_push_username
        self.git_branch.value = git_branch
        repo = git_repo_humanish_part_from_uri(self.git_uri.value)
        namefmt = "{repo}-{branch}"
        self.name.value = namefmt.format(repo=repo,
                                         branch=git_branch or 'unknown')
        self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
            base_image)
        self.builder_build_json_dir.value = builder_build_json_dir
        self.imagestream_name.value = name_label.replace('/', '-')
        # The ImageStream should take tags from the source registry
        # or, if no source registry is set, the first listed registry
        imagestream_reg = self.source_registry_uri.value
        if not imagestream_reg:
            try:
                imagestream_reg = self.registry_uris.value[0]
            except IndexError:
                raise OsbsValidationException("No registries specified")

        self.imagestream_url.value = os.path.join(imagestream_reg.docker_uri,
                                                  name_label)
        logger.debug("setting 'imagestream_url' to '%s'",
                     self.imagestream_url.value)
        insecure = imagestream_reg.uri.startswith('http://')
        self.imagestream_insecure_registry.value = insecure
        logger.debug("setting 'imagestream_insecure_registry' to %r", insecure)
        timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        self.image_tag.value = "%s/%s:%s-%s" % (
            self.user.value, self.component.value, self.koji_target.value
            or 'none', timestamp)
コード例 #9
0
    def set_params(self, git_uri=None, git_ref=None,
                   registry_uri=None,  # compatibility name for registry_uris
                   registry_uris=None, registry_secrets=None,
                   user=None,
                   component=None, openshift_uri=None, source_registry_uri=None,
                   yum_repourls=None, use_auth=None, builder_openshift_url=None,
                   build_image=None, build_imagestream=None, proxy=None,
                   sources_command=None, architecture=None, vendor=None,
                   build_host=None, authoritative_registry=None, distribution_scope=None,
                   koji_target=None, kojiroot=None, kojihub=None, koji_certs_secret=None,
                   koji_task_id=None,
                   source_secret=None,  # compatibility name for pulp_secret
                   pulp_secret=None, pulp_registry=None, pdc_secret=None, pdc_url=None,
                   smtp_uri=None, nfs_server_path=None,
                   nfs_dest_dir=None, git_branch=None, base_image=None,
                   name_label=None, git_push_url=None, git_push_username=None,
                   builder_build_json_dir=None, registry_api_versions=None,
                   unique_tag_only=None,
                   **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.user.value = user
        self.component.value = component
        self.proxy.value = proxy

        # registry_uri is the compatibility name for registry_uris
        if registry_uri is not None:
            assert registry_uris is None
            registry_uris = [registry_uri]

        self.registry_uris.value = registry_uris or []
        self.registry_secrets.value = registry_secrets or []
        self.source_registry_uri.value = source_registry_uri
        self.openshift_uri.value = openshift_uri
        self.builder_openshift_url.value = builder_openshift_url
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.use_auth.value = use_auth
        self.build_image.value = build_image or DEFAULT_BUILD_IMAGE
        self.build_imagestream.value = build_imagestream

        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.koji_task_id.value = koji_task_id
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.pdc_secret.value = pdc_secret
        self.pdc_url.value = pdc_url
        self.smtp_uri.value = smtp_uri
        self.nfs_server_path.value = nfs_server_path
        self.nfs_dest_dir.value = nfs_dest_dir
        self.git_push_url.value = git_push_url
        self.git_push_username.value = git_push_username
        self.git_branch.value = git_branch
        self.name.value = make_name_from_git(self.git_uri.value, self.git_branch.value)
        if not base_image:
            raise OsbsValidationException("base_image must be provided")
        self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(base_image)
        self.builder_build_json_dir.value = builder_build_json_dir
        if not name_label:
            raise OsbsValidationException("name_label must be provided")
        self.imagestream_name.value = name_label.replace('/', '-')
        # The ImageStream should take tags from the source registry
        # or, if no source registry is set, the first listed registry
        imagestream_reg = self.source_registry_uri.value
        if not imagestream_reg:
            try:
                imagestream_reg = self.registry_uris.value[0]
            except IndexError:
                logger.info("no registries specified, cannot determine imagestream url")
                imagestream_reg = None

        if imagestream_reg:
            self.imagestream_url.value = os.path.join(imagestream_reg.docker_uri,
                                                      name_label)
            logger.debug("setting 'imagestream_url' to '%s'",
                         self.imagestream_url.value)
            insecure = imagestream_reg.uri.startswith('http://')
            self.imagestream_insecure_registry.value = insecure
            logger.debug("setting 'imagestream_insecure_registry' to %r", insecure)

        timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        self.image_tag.value = "%s/%s:%s-%s" % (
            self.user.value,
            self.component.value,
            self.koji_target.value or 'none',
            timestamp
        )

        self.unique_tag_only.value = unique_tag_only
コード例 #10
0
ファイル: spec.py プロジェクト: KOgames/osbs-client
    def set_params(self, sources_command=None, architecture=None, vendor=None,
                   build_host=None, authoritative_registry=None, distribution_scope=None,
                   koji_target=None, kojiroot=None, kojihub=None, koji_certs_secret=None,
                   koji_task_id=None,
                   source_secret=None,  # compatibility name for pulp_secret
                   pulp_secret=None, pulp_registry=None, pdc_secret=None, pdc_url=None,
                   smtp_uri=None, nfs_server_path=None,
                   nfs_dest_dir=None, git_branch=None, base_image=None,
                   name_label=None, git_push_url=None, git_push_username=None,
                   builder_build_json_dir=None,
                   registry_api_versions=None, **kwargs):
        super(ProdSpec, self).set_params(**kwargs)
        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.koji_task_id.value = koji_task_id
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.pdc_secret.value = pdc_secret
        self.pdc_url.value = pdc_url
        self.smtp_uri.value = smtp_uri
        self.nfs_server_path.value = nfs_server_path
        self.nfs_dest_dir.value = nfs_dest_dir
        self.git_push_url.value = git_push_url
        self.git_push_username.value = git_push_username
        self.git_branch.value = git_branch
        self.name.value = make_name_from_git(self.git_uri.value, self.git_branch.value)
        self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(base_image)
        self.builder_build_json_dir.value = builder_build_json_dir
        self.imagestream_name.value = name_label.replace('/', '-')
        # The ImageStream should take tags from the source registry
        # or, if no source registry is set, the first listed registry
        imagestream_reg = self.source_registry_uri.value
        if not imagestream_reg:
            try:
                imagestream_reg = self.registry_uris.value[0]
            except IndexError:
                raise OsbsValidationException("No registries specified")

        self.imagestream_url.value = os.path.join(imagestream_reg.docker_uri,
                                                  name_label)
        logger.debug("setting 'imagestream_url' to '%s'",
                     self.imagestream_url.value)
        insecure = imagestream_reg.uri.startswith('http://')
        self.imagestream_insecure_registry.value = insecure
        logger.debug("setting 'imagestream_insecure_registry' to %r", insecure)
        timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        self.image_tag.value = "%s/%s:%s-%s" % (
            self.user.value,
            self.component.value,
            self.koji_target.value or 'none',
            timestamp
        )
コード例 #11
0
ファイル: spec.py プロジェクト: lcarva/osbs-client
    def set_params(self, git_uri=None, git_ref=None,
                   registry_uri=None,  # compatibility name for registry_uris
                   registry_uris=None, registry_secrets=None,
                   user=None,
                   component=None, openshift_uri=None, source_registry_uri=None,
                   yum_repourls=None, use_auth=None, builder_openshift_url=None,
                   build_image=None, build_imagestream=None, proxy=None,
                   sources_command=None, architecture=None, vendor=None,
                   build_host=None, authoritative_registry=None, distribution_scope=None,
                   koji_target=None, kojiroot=None, kojihub=None, koji_certs_secret=None,
                   koji_task_id=None,
                   source_secret=None,  # compatibility name for pulp_secret
                   pulp_secret=None, pulp_registry=None, pdc_secret=None, pdc_url=None,
                   smtp_uri=None, nfs_server_path=None,
                   nfs_dest_dir=None, git_branch=None, base_image=None,
                   name_label=None, git_push_url=None, git_push_username=None,
                   builder_build_json_dir=None, registry_api_versions=None, labels=None,
                   **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.user.value = user
        self.component.value = component
        self.proxy.value = proxy

        # registry_uri is the compatibility name for registry_uris
        if registry_uri is not None:
            assert registry_uris is None
            registry_uris = [registry_uri]

        self.registry_uris.value = registry_uris or []
        self.registry_secrets.value = registry_secrets or []
        self.source_registry_uri.value = source_registry_uri
        self.openshift_uri.value = openshift_uri
        self.builder_openshift_url.value = builder_openshift_url
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.use_auth.value = use_auth
        self.build_image.value = build_image or DEFAULT_BUILD_IMAGE
        self.build_imagestream.value = build_imagestream

        self.sources_command.value = sources_command
        self.architecture.value = architecture
        self.vendor.value = vendor
        self.build_host.value = build_host
        self.authoritative_registry.value = authoritative_registry
        self.distribution_scope.value = distribution_scope
        self.registry_api_versions.value = registry_api_versions
        self.koji_target.value = koji_target
        self.kojiroot.value = kojiroot
        self.kojihub.value = kojihub
        self.koji_certs_secret.value = koji_certs_secret
        self.koji_task_id.value = koji_task_id
        self.pulp_secret.value = pulp_secret or source_secret
        self.pulp_registry.value = pulp_registry
        self.pdc_secret.value = pdc_secret
        self.pdc_url.value = pdc_url
        self.smtp_uri.value = smtp_uri
        self.nfs_server_path.value = nfs_server_path
        self.nfs_dest_dir.value = nfs_dest_dir
        self.git_push_url.value = git_push_url
        self.git_push_username.value = git_push_username
        self.git_branch.value = git_branch
        self.name.value = make_name_from_git(self.git_uri.value, self.git_branch.value)
        if not base_image:
            raise OsbsValidationException("base_image must be provided")
        self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(base_image)
        self.builder_build_json_dir.value = builder_build_json_dir
        self.labels.value = labels
        if not name_label:
            raise OsbsValidationException("name_label must be provided")
        self.imagestream_name.value = name_label.replace('/', '-')
        # The ImageStream should take tags from the source registry
        # or, if no source registry is set, the first listed registry
        imagestream_reg = self.source_registry_uri.value
        if not imagestream_reg:
            try:
                imagestream_reg = self.registry_uris.value[0]
            except IndexError:
                logger.info("no registries specified, cannot determine imagestream url")
                imagestream_reg = None

        if imagestream_reg:
            self.imagestream_url.value = os.path.join(imagestream_reg.docker_uri,
                                                      name_label)
            logger.debug("setting 'imagestream_url' to '%s'",
                         self.imagestream_url.value)
            insecure = imagestream_reg.uri.startswith('http://')
            self.imagestream_insecure_registry.value = insecure
            logger.debug("setting 'imagestream_insecure_registry' to %r", insecure)

        timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        self.image_tag.value = "%s/%s:%s-%s" % (
            self.user.value,
            self.component.value,
            self.koji_target.value or 'none',
            timestamp
        )
コード例 #12
0
    def set_params(self,
                   git_uri=None,
                   git_ref=None,
                   git_branch=None,
                   base_image=None,
                   name_label=None,
                   user=None,
                   component=None,
                   release=None,
                   build_image=None,
                   build_imagestream=None,
                   build_from=None,
                   platforms=None,
                   platform=None,
                   build_type=None,
                   koji_target=None,
                   koji_task_id=None,
                   filesystem_koji_task_id=None,
                   koji_parent_build=None,
                   koji_upload_dir=None,
                   flatpak=None,
                   flatpak_base_image=None,
                   reactor_config_map=None,
                   reactor_config_override=None,
                   yum_repourls=None,
                   signing_intent=None,
                   compose_ids=None,
                   isolated=None,
                   scratch=None,
                   **kwargs):
        self.git_uri.value = git_uri
        self.git_ref.value = git_ref
        self.git_branch.value = git_branch
        self.user.value = user
        self.component.value = component
        self.release.value = release
        self.build_type.value = build_type
        self.base_image.value = base_image

        self.name.value = make_name_from_git(self.git_uri.value,
                                             self.git_branch.value)
        self.reactor_config_map.value = reactor_config_map
        self.reactor_config_override.value = reactor_config_override

        unique_build_args = (build_imagestream, build_image, build_from)
        if sum(bool(a) for a in unique_build_args) != 1:
            raise OsbsValidationException(
                'Please only define one of build_from, build_image, build_imagestream'
            )
        self.build_image.value = build_image
        self.build_imagestream.value = build_imagestream
        if self.build_image.value or self.build_imagestream.value:
            logger.warning(
                "build_image or build_imagestream is defined, they are deprecated,"
                "use build_from instead")

        if build_from:
            source_type, source_value = build_from.split(':', 1)
            if source_type not in ('image', 'imagestream'):
                raise OsbsValidationException(
                    'first part in build_from, may be only image or imagestream'
                )
            if source_type == 'image':
                self.build_image.value = source_value
            else:
                self.build_imagestream.value = source_value

        self.platforms.value = platforms
        self.platform.value = platform
        self.koji_target.value = koji_target
        self.koji_task_id.value = koji_task_id
        self.filesystem_koji_task_id.value = filesystem_koji_task_id
        self.koji_parent_build.value = koji_parent_build
        self.koji_upload_dir.value = koji_upload_dir
        self.flatpak.value = flatpak
        self.flatpak_base_image.value = flatpak_base_image
        self.isolated.value = isolated
        self.scratch.value = scratch

        if flatpak:
            if not flatpak_base_image:
                raise OsbsValidationException(
                    "faltpak_base_image must be provided")
        else:
            if not base_image:
                raise OsbsValidationException("base_image must be provided")
            self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
                base_image)

            if not name_label:
                raise OsbsValidationException("name_label must be provided")
            self.imagestream_name.value = name_label.replace('/', '-')

        if signing_intent and compose_ids:
            raise OsbsValidationException(
                'Please only define signing_intent -OR- compose_ids, not both')
        if compose_ids and yum_repourls:
            raise OsbsValidationException(
                'Please only define yum_repourls -OR- compose_ids, not both')
        if not (compose_ids is None or isinstance(compose_ids, list)):
            raise OsbsValidationException("compose_ids must be a list")
        if not (yum_repourls is None or isinstance(yum_repourls, list)):
            raise OsbsValidationException("yum_repourls must be a list")
        self.yum_repourls.value = yum_repourls or []
        self.signing_intent.value = signing_intent
        self.compose_ids.value = compose_ids or []

        self._populate_image_tag()
コード例 #13
0
ファイル: user_params.py プロジェクト: mlangsdorf/osbs-client
 def set_base_image(self, base_image):
     self.base_image.value = base_image
     self.trigger_imagestreamtag.value = get_imagestreamtag_from_image(
         base_image)