Fix novajoin-ipa-setup to set logging correctly

In freeipa f62a0fdb904d2a4bb1961847e240dbb6df3b0b67 the IPA
client library was modified to remove the log_manager.  This patch
fixes the novajoin code for all versions of IPA.

See rhbz# 1644747

Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Co-Authored-By: Grzegorz Grasza <xek@redhat.com>
Change-Id: I2da12bedfc8790ebd1005c98f2e05953d127b3b9
This commit is contained in:
Ade Lee 2018-11-01 17:37:51 -04:00 committed by Grzegorz Grasza
parent 83fa9bbe82
commit b74cae51e3
3 changed files with 21 additions and 12 deletions

View File

@ -155,8 +155,11 @@ class NovajoinRole(object):
except Exception as e:
raise ConfigurationError("get_ca_certs() error: %s" % e)
certs = [x509.load_certificate(c[0], x509.DER) for c in certs
if c[2] is not False]
if version.NUM_VERSION < 40600:
certs = [x509.load_certificate(c[0], x509.DER) for c in certs
if c[2] is not False]
else:
certs = [c[0] for c in certs if c[2] is not False]
return certs
@ -200,8 +203,9 @@ class NovajoinRole(object):
os.close(cafile_fd)
ca_certs = self._get_ca_certs(server, realm)
ca_certs = [cert.public_bytes(serialization.Encoding.PEM)
for cert in ca_certs]
if version.NUM_VERSION < 40600:
ca_certs = [cert.public_bytes(serialization.Encoding.PEM)
for cert in ca_certs]
x509.write_certificate_list(ca_certs, cafile_name)
return cafile_name

View File

@ -28,10 +28,8 @@ import testtools
import time
import uuid
from ipapython.ipa_log_manager import log_mgr
from ipalib import api
from ipapython import version
import six
from novajoin import config
@ -58,9 +56,14 @@ class TestIPAService(testtools.TestCase):
CONF.keytab = '/tmp/test.keytab'
super(TestIPAService, self).setUp()
self.ipaclient = IPAClient()
# suppress the Forwarding messages from ipa
console = log_mgr.get_handler('console')
console.setLevel(logging.WARN)
# This is not needed in versions newer than 4.7
if version.NUM_VERSION < 40600:
from ipapython.ipa_log_manager import log_mgr
console = log_mgr.get_handler('console')
console.setLevel(logging.WARN)
if hostname is None:
hostname = six.text_type(str(uuid.uuid4()) + '.' + api.env.domain)
os.environ['KRB5_CONFIG'] = 'krb5.conf'

View File

@ -20,7 +20,6 @@ import shutil
import sys
from ipalib import api, errors
from ipapython import version
from ipapython.ipa_log_manager import log_mgr
from novajoin import configure_ipa
from novajoin.errors import ConfigurationError
@ -67,8 +66,11 @@ if __name__ == '__main__':
and opts.realm and opts.server)
# suppress the Forwarding messages from ipa
console = log_mgr.get_handler('console')
console.setLevel(logging.WARN)
# This is not needed in versions newer than 4.7
if version.NUM_VERSION < 40600:
from ipapython.ipa_log_manager import log_mgr
console = log_mgr.get_handler('console')
console.setLevel(logging.WARN)
novajoin = configure_ipa.NovajoinRole(user=opts.user,
hostname=opts.hostname)