From b0b9972213760dcf351cdd85dbfe2c38fc21b2e6 Mon Sep 17 00:00:00 2001 From: Milan KubĂ­k Date: Tue, 5 Apr 2016 10:04:37 +0200 Subject: ipatests: fix for change_principal context manager The context manager was leaving API object disconnected when an exception was raised inside of it. This led to resource leak in the tests. https://fedorahosted.org/freeipa/ticket/5733 Reviewed-By: Martin Babinsky --- ipatests/util.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'ipatests') diff --git a/ipatests/util.py b/ipatests/util.py index 6aefe74d3..118c47a12 100644 --- a/ipatests/util.py +++ b/ipatests/util.py @@ -696,16 +696,17 @@ def change_principal(user, password, client=None, path=None): client.Backend.rpcclient.disconnect() - with private_ccache(ccache_name): - kinit_password(user, password, ccache_name) - client.Backend.rpcclient.connect() - - try: - yield - finally: - client.Backend.rpcclient.disconnect() + try: + with private_ccache(ccache_name): + kinit_password(user, password, ccache_name) + client.Backend.rpcclient.connect() - client.Backend.rpcclient.connect() + try: + yield + finally: + client.Backend.rpcclient.disconnect() + finally: + client.Backend.rpcclient.connect() def get_group_dn(cn): return DN(('cn', cn), api.env.container_group, api.env.basedn) -- cgit