diff --git a/atomic_reactor/koji_util.py b/atomic_reactor/koji_util.py
index f537e36..b68c6f8 100644
--- a/atomic_reactor/koji_util.py
+++ b/atomic_reactor/koji_util.py
@@ -72,7 +72,7 @@ def create_koji_session(hub_url, auth_info=None):
:param auth_info: dict, authentication parameters used for koji_login
:return: koji.ClientSession instance
"""
- session = koji.ClientSession(hub_url)
+ session = koji.ClientSession(hub_url, opts={'krb_rdns': False})
if auth_info is not None:
koji_login(session, **auth_info)
diff --git a/atomic_reactor/plugins/exit_koji_promote.py b/atomic_reactor/plugins/exit_koji_promote.py
index 0bb734b..0e714f4 100644
--- a/atomic_reactor/plugins/exit_koji_promote.py
+++ b/atomic_reactor/plugins/exit_koji_promote.py
@@ -116,8 +116,10 @@ class KojiPromotePlugin(ExitPlugin):
self.kojihub = kojihub
self.koji_ssl_certs = koji_ssl_certs
self.koji_proxy_user = koji_proxy_user
+
self.koji_principal = koji_principal
self.koji_keytab = koji_keytab
+
self.metadata_only = metadata_only
self.blocksize = blocksize
self.target = target
@@ -655,13 +657,15 @@ class KojiPromotePlugin(ExitPlugin):
:return: koji.ClientSession instance, logged in
"""
+
+ # krbV python library throws an error if these are unicode
auth_info = {
"proxyuser": self.koji_proxy_user,
"ssl_certs_dir": self.koji_ssl_certs,
- "krb_principal": self.koji_principal,
- "krb_keytab": self.koji_keytab
+ "krb_principal": str(self.koji_principal),
+ "krb_keytab": str(self.koji_keytab)
}
- return create_koji_session(self.kojihub, auth_info)
+ return create_koji_session(str(self.kojihub), auth_info)
def run(self):
"""
diff --git a/tests/koji/__init__.py b/tests/koji/__init__.py
index 910d613..ec04a85 100644
--- a/tests/koji/__init__.py
+++ b/tests/koji/__init__.py
@@ -18,7 +18,7 @@ TASK_STATES = {
TASK_STATES.update({value: name for name, value in TASK_STATES.items()})
class ClientSession(object):
- def __init__(self, hub):
+ def __init__(self, hub, opts=None):
raise ImportError("No module named koji")
diff --git a/tests/plugins/test_bump_release.py b/tests/plugins/test_bump_release.py
index 498221c..50abfc8 100644
--- a/tests/plugins/test_bump_release.py
+++ b/tests/plugins/test_bump_release.py
@@ -56,7 +56,7 @@ class TestBumpRelease(object):
return plugin
def test_component_missing(self, tmpdir):
- flexmock(koji, ClientSession=lambda hub: None)
+ flexmock(koji, ClientSession=lambda hub, opts=None: None)
plugin = self.prepare(tmpdir)
with pytest.raises(RuntimeError):
plugin.run()
@@ -66,7 +66,7 @@ class TestBumpRelease(object):
'Release',
])
def test_release_label_already_set(self, tmpdir, caplog, release_label):
- flexmock(koji, ClientSession=lambda hub: None)
+ flexmock(koji, ClientSession=lambda hub, opts=None: None)
plugin = self.prepare(tmpdir, labels={release_label: '1'})
plugin.run()
assert 'not incrementing' in caplog.text()
@@ -79,7 +79,7 @@ class TestBumpRelease(object):
{},
])
def test_missing_labels(self, tmpdir, caplog, labels):
- flexmock(koji, ClientSession=lambda hub: None)
+ flexmock(koji, ClientSession=lambda hub, opts=None: None)
plugin = self.prepare(tmpdir, labels=labels)
with pytest.raises(RuntimeError) as exc:
plugin.run()
diff --git a/tests/plugins/test_koji.py b/tests/plugins/test_koji.py
index a31711f..eeeb9a8 100644
--- a/tests/plugins/test_koji.py
+++ b/tests/plugins/test_koji.py
@@ -52,7 +52,7 @@ ROOT = "http://example.com"
# ClientSession is xmlrpc instance, we need to mock it explicitly
class MockedClientSession(object):
- def __init__(self, hub):
+ def __init__(self, hub, opts=None):
pass
def getBuildTarget(self, target):
diff --git a/tests/plugins/test_koji_promote.py b/tests/plugins/test_koji_promote.py
index 8cadb16..c11f887 100644
--- a/tests/plugins/test_koji_promote.py
+++ b/tests/plugins/test_koji_promote.py
@@ -64,7 +64,7 @@ class MockedClientSession(object):
TAG_TASK_ID = 1234
DEST_TAG = 'images-candidate'
- def __init__(self, hub, task_states=None):
+ def __init__(self, hub, opts=None, task_states=None):
self.uploaded_files = []
self.build_tags = {}
self.task_states = task_states or ['FREE', 'ASSIGNED', 'CLOSED']
@@ -218,7 +218,7 @@ def mock_environment(tmpdir, session=None, name=None,
for tag in additional_tags])
flexmock(subprocess, Popen=fake_Popen)
- flexmock(koji, ClientSession=lambda hub: session)
+ flexmock(koji, ClientSession=lambda hub, opts: session)
flexmock(GitSource)
(flexmock(OSBS)
.should_receive('get_build_logs')
diff --git a/tests/test_koji_util.py b/tests/test_koji_util.py
index 1121229..66b8910 100644
--- a/tests/test_koji_util.py
+++ b/tests/test_koji_util.py
@@ -88,8 +88,9 @@ class TestCreateKojiSession(object):
url = 'https://koji-hub-url.com'
session = flexmock()
- (flexmock(koji_util.koji)
- .should_receive('ClientSession').with_args(url).and_return(session))
+ (flexmock(koji_util.koji).should_receive('ClientSession').with_args(
+ url, opts={'krb_rdns': False}).and_return(session)
+ )
assert create_koji_session(url) == session
def test_create_authenticated_session(self):
@@ -97,8 +98,9 @@ class TestCreateKojiSession(object):
session = flexmock()
session.should_receive('krb_login').once().and_return(True)
- (flexmock(koji_util.koji)
- .should_receive('ClientSession').with_args(url).and_return(session))
+ (flexmock(koji_util.koji).should_receive('ClientSession').with_args(
+ url, opts={'krb_rdns': False}).and_return(session)
+ )
assert create_koji_session(url, {}) == session