summaryrefslogtreecommitdiffstats
path: root/ipaserver/install
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-11-02 06:30:38 +0100
committerJan Cholasta <jcholast@redhat.com>2016-11-11 12:17:25 +0100
commit08a446a6bc516936497c1e0f278a699148f6330c (patch)
treea4577ee3a3c1cda187e9a57fab6c47758243fcef /ipaserver/install
parent269ca6c4547fc017bb3a88e994ca770047122b3e (diff)
downloadfreeipa-08a446a6bc516936497c1e0f278a699148f6330c.tar.gz
freeipa-08a446a6bc516936497c1e0f278a699148f6330c.tar.xz
freeipa-08a446a6bc516936497c1e0f278a699148f6330c.zip
install: fix subclassing of knob groups
Add new @group decorator to declare an installer class as a knob group instead of subclassing Group, so that subclassing the installer does not create duplicates of the original group. https://fedorahosted.org/freeipa/ticket/6392 Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'ipaserver/install')
-rw-r--r--ipaserver/install/server/common.py8
-rw-r--r--ipaserver/install/server/install.py10
2 files changed, 5 insertions, 13 deletions
diff --git a/ipaserver/install/server/common.py b/ipaserver/install/server/common.py
index ad3282af8..4ee83f15e 100644
--- a/ipaserver/install/server/common.py
+++ b/ipaserver/install/server/common.py
@@ -12,7 +12,7 @@ import six
from ipapython.dn import DN
from ipapython.ipautil import CheckedIPAddress
from ipapython.install import common, core
-from ipapython.install.core import Knob
+from ipapython.install.core import Knob, group
from ipalib.util import validate_domain_name
from ipaserver.install import bindinstance
from ipapython.dnsutil import check_zone_overlap
@@ -29,7 +29,8 @@ VALID_SUBJECT_ATTRS = ['st', 'o', 'ou', 'dnqualifier', 'c',
'incorporationcountry', 'businesscategory']
-class BaseServerCA(common.Installable, core.Group, core.Composite):
+@group
+class BaseServerCA(common.Installable, core.Composite):
description = "certificate system"
external_ca = Knob(
@@ -160,7 +161,8 @@ class BaseServerCA(common.Installable, core.Group, core.Composite):
)
-class BaseServerDNS(common.Installable, core.Group, core.Composite):
+@group
+class BaseServerDNS(common.Installable, core.Composite):
description = "DNS"
forwarders = Knob(
diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py
index 48ce315c4..22e0cd3d7 100644
--- a/ipaserver/install/server/install.py
+++ b/ipaserver/install/server/install.py
@@ -1138,10 +1138,6 @@ def uninstall(installer):
class ServerCA(BaseServerCA):
-
- # FIXME: Following Knobs are inherited because framework is not able to
- # help groups correctly.
-
external_ca = Knob(BaseServerCA.external_ca)
external_ca_type = Knob(BaseServerCA.external_ca_type)
external_cert_files = Knob(BaseServerCA.external_cert_files)
@@ -1176,12 +1172,6 @@ class ServerCA(BaseServerCA):
cli_aliases=['pkinit_pin'],
)
- dirsrv_cert_name = Knob(BaseServerCA.dirsrv_cert_name)
- http_cert_name = Knob(BaseServerCA.http_cert_name)
- pkinit_cert_name = Knob(BaseServerCA.pkinit_cert_name)
- ca_cert_files = Knob(BaseServerCA.ca_cert_files)
- subject = Knob(BaseServerCA.subject)
- ca_signing_algorithm = Knob(BaseServerCA.ca_signing_algorithm)
skip_schema_check = None