From cf4eadbf9926962ec38966fc5b9b63df44c08be9 Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Sat, 16 Jul 2016 20:17:57 -0400 Subject: [PATCH] Some work to get koji profiles working. --- rida.conf | 6 ++++-- rida/builder.py | 43 +++++++++++++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/rida.conf b/rida.conf index e500e35a..aaeda2c3 100644 --- a/rida.conf +++ b/rida.conf @@ -1,8 +1,10 @@ [DEFAULT] system = koji messaging = fedmsg -koji_config = /etc/rida/koji.conf -koji_profile = koji +koji_config = ~/.koji/config +# See https://fedoraproject.org/wiki/Koji/WritingKojiCode#Profiles +koji_profile = staging +koji_arches = ["x86_64"] db = sqlite:///rida.db pdc_url = http://fed-mod.org:8000/rest_api/v1 pdc_insecure = True diff --git a/rida/builder.py b/rida/builder.py index eb5e21f4..0b2138e6 100644 --- a/rida/builder.py +++ b/rida/builder.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- - - # Copyright (c) 2016 Red Hat, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a copy @@ -30,9 +28,14 @@ # their tag names. # TODO: Ensure the RPM %dist tag is set according to the policy. -import koji from abc import ABCMeta, abstractmethod +import logging +import os + from kobo.shortcuts import run +import koji + +log = logging.getLogger(__name__) # TODO: read defaults from rida's config KOJI_DEFAULT_GROUPS = { @@ -152,25 +155,41 @@ class KojiModuleBuilder(GenericBuilder): self.module_str = module self.__prep = False self._koji_profile_name = config.koji_profile + log.debug("Using koji profile %r" % self._koji_profile_name) self.koji_module = koji.get_profile_module(self._koji_profile_name) opts = {} - krbservice = getattr(self.koji_module.config, "krbservice", None) + koji_config = self.koji_module.config + + krbservice = getattr(koji_config, "krbservice", None) if krbservice: opts["krbservice"] = krbservice - self.koji_session = koji.ClientSession(self.koji_module.config.server, opts=opts) + address = koji_config.server + log.info("Connecting to koji %r, %r" % (address, opts)) + self.koji_session = koji.ClientSession(address, opts=opts) - if self.koji_module.config.authtype == "kerberos": - keytab = getattr(self.koji_module.config, "keytab", None) - principal = getattr(self.koji_module.config, "principal", None) + authtype = koji_config.authtype + if authtype == "kerberos": + keytab = getattr(koji_config, "keytab", None) + principal = getattr(koji_config, "principal", None) if keytab and principal: - self.koji_session.krb_login(principal=principal, keytab=keytab, proxyuser=None) + self.koji_session.krb_login( + principal=principal, + keytab=keytab, + proxyuser=None, + ) else: self.koji_session.krb_login() - - elif self.koji_module.config.authtype == "ssl": - self.koji_session.ssl_login(self.koji_module.config.cert, None, self.koji_module.serverca, proxyuser=None) + elif authtype == "ssl": + self.koji_session.ssl_login( + os.path.expanduser(koji_config.cert), + None, + os.path.expanduser(koji_config.serverca), + proxyuser=None, + ) + else: + raise ValueError("Unrecognized koji authtype %r" % authtype) self.arches = config.koji_arches