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 )
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 []
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
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()
def test_get_imagestreamtag_from_image(img, expected): assert get_imagestreamtag_from_image(img) == expected
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()
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)
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
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 )
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 )
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()
def set_base_image(self, base_image): self.base_image.value = base_image self.trigger_imagestreamtag.value = get_imagestreamtag_from_image( base_image)