ipa-server-install: fix zonemgr argument validator

Fix `ERROR 'str' object has no attribute 'decode'` when --zonemgr is
passed to ipa-server-install.

Solution copied from commit 75d26e1f01,
function `ipaserver.install.bindinstance.zonemgr_callback` duplicates
the behavior of the method affected by this patch.

Issue: https://pagure.io/freeipa/issue/7612

Signed-off-by: Armando Neto <abiagion@redhat.com>
Reviewed-By: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
Armando Neto 2018-07-03 17:12:07 -03:00 committed by Christian Heimes
parent 9c86d35a3f
commit e8d33ccfd1
2 changed files with 10 additions and 2 deletions

View File

@ -476,7 +476,11 @@ class DNSInstallInterface(hostname.HostNameInstallInterface):
encoding = getattr(sys.stdin, 'encoding', None)
if encoding is None:
encoding = 'utf-8'
value = value.decode(encoding)
# value is string in py2 and py3
if not isinstance(value, unicode):
value = value.decode(encoding)
bindinstance.validate_zonemgr_str(value)
except ValueError as e:
# FIXME we can do this in better way

View File

@ -410,7 +410,11 @@ class TestInstallMasterDNS(IntegrationTest):
pass
def test_install_master(self):
tasks.install_master(self.master, setup_dns=True)
tasks.install_master(
self.master,
setup_dns=True,
extra_args=['--zonemgr', 'me@example.org'],
)
def test_install_kra(self):
tasks.install_kra(self.master, first_instance=True)