install: re-introduce option groups

Re-introduce option groups in ipa-client-install, ipa-server-install and
ipa-replica-install.

https://pagure.io/freeipa/issue/6392

Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
This commit is contained in:
Jan Cholasta
2017-03-13 10:12:40 +01:00
committed by Martin Basti
parent 774d8d0a5d
commit 2fc9feddd0
12 changed files with 310 additions and 249 deletions
+4 -2
View File
@@ -8,9 +8,10 @@ Automount installer module
from ipalib.install import service
from ipalib.install.service import enroll_only
from ipapython.install.core import knob
from ipapython.install.core import group, knob
@group
class AutomountInstallInterface(service.ServiceInstallInterface):
"""
Interface of the automount installer
@@ -19,9 +20,10 @@ class AutomountInstallInterface(service.ServiceInstallInterface):
* ipa-client-install
* ipa-client-automount
"""
description = "Automount"
automount_location = knob(
str, 'default',
str, None,
description="Automount location",
)
automount_location = enroll_only(automount_location)
+7 -10
View File
@@ -50,7 +50,7 @@ from ipapython import certdb, kernel_keyring, ipaldap, ipautil
from ipapython.admintool import ScriptError
from ipapython.dn import DN
from ipapython.install import typing
from ipapython.install.core import knob
from ipapython.install.core import group, knob, extend_knob
from ipapython.install.common import step
from ipapython.ipa_log_manager import log_mgr, root_logger
from ipapython.ipautil import (
@@ -3355,6 +3355,7 @@ def init(installer):
installer.sssd = not installer.no_sssd
@group
class ClientInstallInterface(hostname_.HostNameInstallInterface,
service.ServiceAdminInstallInterface,
sssd.SSSDInstallInterface):
@@ -3367,9 +3368,10 @@ class ClientInstallInterface(hostname_.HostNameInstallInterface,
* ipa-replica-prepare
* ipa-replica-install
"""
description = "Client"
principal = knob(
bases=service.ServiceAdminInstallInterface.principal,
principal = extend_knob(
service.ServiceAdminInstallInterface.principal,
description="principal to use to join the IPA realm",
)
principal = enroll_only(principal)
@@ -3518,8 +3520,8 @@ class ClientInstall(ClientInstallInterface,
replica_file = None
dm_password = None
ca_cert_files = knob(
bases=ClientInstallInterface.ca_cert_files,
ca_cert_files = extend_knob(
ClientInstallInterface.ca_cert_files,
)
@ca_cert_files.validator
@@ -3544,11 +3546,6 @@ class ClientInstall(ClientInstallInterface,
def prompt_password(self):
return self.interactive
automount_location = knob(
bases=automount.AutomountInstallInterface.automount_location,
default=None,
)
no_ac = knob(
None,
description="do not modify the nsswitch.conf and PAM configuration",
+5 -4
View File
@@ -5,16 +5,17 @@
from ipaclient.install import client
from ipaplatform.paths import paths
from ipapython.install import cli
from ipapython.install.core import knob
from ipapython.install.core import knob, extend_knob
class StandaloneClientInstall(client.ClientInstall):
no_host_dns = False
no_wait_for_dns = False
principal = knob(
bases=client.ClientInstall.principal,
cli_names=list(client.ClientInstall.principal.cli_names) + ['-p'],
principal = client.ClientInstall.principal
principal = extend_knob(
principal,
cli_names=list(principal.cli_names) + ['-p'],
)
password = knob(