summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/__init__.py2
-rw-r--r--ipalib/plugins/hbacrule.py7
-rw-r--r--ipalib/plugins/rpcclient.py13
-rw-r--r--ipaserver/install/plugins/adtrust.py14
-rw-r--r--ipaserver/install/plugins/dns.py13
-rw-r--r--ipaserver/install/plugins/fix_replica_agreements.py7
-rw-r--r--ipaserver/install/plugins/rename_managed.py10
-rw-r--r--ipaserver/install/plugins/update_ca_topology.py7
-rw-r--r--ipaserver/install/plugins/update_idranges.py9
-rw-r--r--ipaserver/install/plugins/update_pacs.py7
-rw-r--r--ipaserver/install/plugins/update_passsync.py10
-rw-r--r--ipaserver/install/plugins/update_referint.py8
-rw-r--r--ipaserver/install/plugins/update_services.py7
-rw-r--r--ipaserver/install/plugins/update_uniqueness.py7
-rw-r--r--ipaserver/install/plugins/upload_cacrt.py8
-rw-r--r--ipaserver/plugins/dogtag.py14
-rw-r--r--ipaserver/plugins/join.py7
-rw-r--r--ipaserver/plugins/ldap2.py7
-rw-r--r--ipaserver/plugins/xmlserver.py23
19 files changed, 99 insertions, 81 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py
index 788fc8ead..4bf4a8788 100644
--- a/ipalib/__init__.py
+++ b/ipalib/__init__.py
@@ -897,6 +897,8 @@ if version_info[3] == 'final':
else:
__version__ = '%d.%d.%d.%s.%d' % version_info
+Registry = plugable.Registry
+
class API(plugable.API):
bases = (Command, Object, Method, Backend, Updater)
diff --git a/ipalib/plugins/hbacrule.py b/ipalib/plugins/hbacrule.py
index 54487eded..54c661133 100644
--- a/ipalib/plugins/hbacrule.py
+++ b/ipalib/plugins/hbacrule.py
@@ -410,7 +410,7 @@ class hbacrule_disable(LDAPQuery):
)
-
+# @register()
class hbacrule_add_accesstime(LDAPQuery):
"""
Add an access time to an HBAC rule.
@@ -449,9 +449,8 @@ class hbacrule_add_accesstime(LDAPQuery):
)
)
-#api.register(hbacrule_add_accesstime)
-
+# @register()
class hbacrule_remove_accesstime(LDAPQuery):
"""
Remove access time to HBAC rule.
@@ -489,8 +488,6 @@ class hbacrule_remove_accesstime(LDAPQuery):
)
)
-#api.register(hbacrule_remove_accesstime)
-
@register()
class hbacrule_add_user(LDAPAddMember):
diff --git a/ipalib/plugins/rpcclient.py b/ipalib/plugins/rpcclient.py
index 6010b8dda..af2bc38d4 100644
--- a/ipalib/plugins/rpcclient.py
+++ b/ipalib/plugins/rpcclient.py
@@ -23,12 +23,15 @@
RPC client plugins.
"""
-from ipalib import api
+from ipalib import Registry, api
+
+register = Registry()
+
if 'in_server' in api.env and api.env.in_server is False:
from ipalib.rpc import xmlclient, jsonclient
- api.register(xmlclient)
- api.register(jsonclient)
+ register()(xmlclient)
+ register()(jsonclient)
# FIXME: api.register only looks at the class name, so we need to create
# trivial subclasses with the desired name.
@@ -37,14 +40,14 @@ if 'in_server' in api.env and api.env.in_server is False:
class rpcclient(xmlclient):
"""xmlclient renamed to 'rpcclient'"""
pass
- api.register(rpcclient)
+ register()(rpcclient)
elif api.env.rpc_protocol == 'jsonrpc':
class rpcclient(jsonclient):
"""jsonclient renamed to 'rpcclient'"""
pass
- api.register(rpcclient)
+ register()(rpcclient)
else:
raise ValueError('unknown rpc_protocol: %s' % api.env.rpc_protocol)
diff --git a/ipaserver/install/plugins/adtrust.py b/ipaserver/install/plugins/adtrust.py
index ce58d7f17..506838ca7 100644
--- a/ipaserver/install/plugins/adtrust.py
+++ b/ipaserver/install/plugins/adtrust.py
@@ -17,15 +17,18 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
from ipaserver.install import sysupgrade
+register = Registry()
DEFAULT_ID_RANGE_SIZE = 200000
+
+@register()
class update_default_range(Updater):
"""
Create default ID range for upgraded servers.
@@ -119,6 +122,7 @@ class update_default_range(Updater):
return False, [update]
+@register()
class update_default_trust_view(Updater):
"""
Create Default Trust View for upgraded servers.
@@ -164,6 +168,7 @@ class update_default_trust_view(Updater):
return False, [update]
+@register()
class update_sigden_extdom_broken_config(Updater):
"""Fix configuration of sidgen and extdom plugins
@@ -230,6 +235,7 @@ class update_sigden_extdom_broken_config(Updater):
return restart, ()
+@register()
class update_sids(Updater):
"""SIDs may be not created properly if bug with wrong configuration for
sidgen and extdom plugins is effective
@@ -310,9 +316,3 @@ class update_sids(Updater):
sysupgrade.set_upgrade_state('sidgen', 'update_sids', False)
return False, ()
-
-
-api.register(update_default_range)
-api.register(update_default_trust_view)
-api.register(update_sids)
-api.register(update_sigden_extdom_broken_config)
diff --git a/ipaserver/install/plugins/dns.py b/ipaserver/install/plugins/dns.py
index c72395327..7bd2b2697 100644
--- a/ipaserver/install/plugins/dns.py
+++ b/ipaserver/install/plugins/dns.py
@@ -23,13 +23,16 @@ import time
from ldif import LDIFWriter
-from ipalib import api, errors, util
+from ipalib import Registry, errors, util
from ipalib import Updater
from ipapython.dn import DN
from ipalib.plugins.dns import dns_container_exists
from ipapython.ipa_log_manager import root_logger
+register = Registry()
+
+@register()
class update_dnszones(Updater):
"""
Update all zones to meet requirements in the new FreeIPA versions
@@ -89,9 +92,8 @@ class update_dnszones(Updater):
return False, []
-api.register(update_dnszones)
-
+@register()
class update_dns_limits(Updater):
"""
bind-dyndb-ldap persistent search queries LDAP for all DNS records.
@@ -137,9 +139,8 @@ class update_dns_limits(Updater):
return False, [dnsupdate]
-api.register(update_dns_limits)
-
+@register()
class update_master_to_dnsforwardzones(Updater):
"""
Update all zones to meet requirements in the new FreeIPA versions
@@ -351,5 +352,3 @@ class update_master_to_dnsforwardzones(Updater):
zone['idnsname'][0])
return False, []
-
-api.register(update_master_to_dnsforwardzones)
diff --git a/ipaserver/install/plugins/fix_replica_agreements.py b/ipaserver/install/plugins/fix_replica_agreements.py
index 00f2415d4..321ddc636 100644
--- a/ipaserver/install/plugins/fix_replica_agreements.py
+++ b/ipaserver/install/plugins/fix_replica_agreements.py
@@ -18,12 +18,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from ipaserver.install import replication
-from ipalib import api
+from ipalib import Registry
from ipalib import Updater
+register = Registry()
+
EXCLUDE_TEMPLATE = '(objectclass=*) $ EXCLUDE %s'
+@register()
class update_replica_attribute_lists(Updater):
"""
Run through all replication agreements and ensure that EXCLUDE list
@@ -109,5 +112,3 @@ class update_replica_attribute_lists(Updater):
attribute, str(e))
else:
self.log.debug("%s: No update necessary" % attribute)
-
-api.register(update_replica_attribute_lists)
diff --git a/ipaserver/install/plugins/rename_managed.py b/ipaserver/install/plugins/rename_managed.py
index 873c3ddb0..1d0ed0f0d 100644
--- a/ipaserver/install/plugins/rename_managed.py
+++ b/ipaserver/install/plugins/rename_managed.py
@@ -19,11 +19,13 @@
import six
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython import ipautil
from ipapython.dn import DN
+register = Registry()
+
if six.PY3:
unicode = str
@@ -151,6 +153,8 @@ class GenerateUpdateMixin(object):
return (restart, update_list)
+
+@register()
class update_managed_post_first(Updater, GenerateUpdateMixin):
"""
Update managed entries
@@ -162,8 +166,8 @@ class update_managed_post_first(Updater, GenerateUpdateMixin):
return False, update_list
-api.register(update_managed_post_first)
+@register()
class update_managed_post(Updater, GenerateUpdateMixin):
"""
Update managed entries
@@ -173,5 +177,3 @@ class update_managed_post(Updater, GenerateUpdateMixin):
(restart, update_list) = self.generate_update(True)
return restart, update_list
-
-api.register(update_managed_post)
diff --git a/ipaserver/install/plugins/update_ca_topology.py b/ipaserver/install/plugins/update_ca_topology.py
index 311db3f0c..d76849bf9 100644
--- a/ipaserver/install/plugins/update_ca_topology.py
+++ b/ipaserver/install/plugins/update_ca_topology.py
@@ -2,13 +2,16 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
-from ipalib import api
+from ipalib import Registry
from ipalib import Updater
from ipaserver.install import certs, cainstance
from ipaserver.install import ldapupdate
from ipaplatform.paths import paths
+register = Registry()
+
+@register()
class update_ca_topology(Updater):
"""
Updates CA topology configuration entries
@@ -29,5 +32,3 @@ class update_ca_topology(Updater):
ld.update([paths.CA_TOPOLOGY_ULDIF])
return False, []
-
-api.register(update_ca_topology)
diff --git a/ipaserver/install/plugins/update_idranges.py b/ipaserver/install/plugins/update_idranges.py
index 167617271..e6788ca83 100644
--- a/ipaserver/install/plugins/update_idranges.py
+++ b/ipaserver/install/plugins/update_idranges.py
@@ -17,12 +17,15 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
+register = Registry()
+
+@register()
class update_idrange_type(Updater):
"""
Update all ID ranges that do not have ipaRangeType attribute filled.
@@ -109,6 +112,7 @@ class update_idrange_type(Updater):
return False, []
+@register()
class update_idrange_baserid(Updater):
"""
Update ipa-ad-trust-posix ranges' base RID to 0. This applies to AD trust
@@ -171,6 +175,3 @@ class update_idrange_baserid(Updater):
"idranges updated")
return False, []
-
-api.register(update_idrange_type)
-api.register(update_idrange_baserid)
diff --git a/ipaserver/install/plugins/update_pacs.py b/ipaserver/install/plugins/update_pacs.py
index e361844e5..53a0c2c37 100644
--- a/ipaserver/install/plugins/update_pacs.py
+++ b/ipaserver/install/plugins/update_pacs.py
@@ -17,11 +17,14 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
+register = Registry()
+
+@register()
class update_pacs(Updater):
"""
Includes default nfs:None only if no nfs: PAC present in ipakrbauthzdata.
@@ -50,5 +53,3 @@ class update_pacs(Updater):
self.log.debug('PAC for nfs is already set, not adding nfs:NONE.')
return False, []
-
-api.register(update_pacs)
diff --git a/ipaserver/install/plugins/update_passsync.py b/ipaserver/install/plugins/update_passsync.py
index 521000c4f..36ebb49d9 100644
--- a/ipaserver/install/plugins/update_passsync.py
+++ b/ipaserver/install/plugins/update_passsync.py
@@ -2,12 +2,16 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
from ipaserver.install import sysupgrade
+register = Registry()
+
+
+@register()
class update_passync_privilege_check(Updater):
def execute(self, **options):
@@ -34,8 +38,8 @@ class update_passync_privilege_check(Updater):
return False, []
-api.register(update_passync_privilege_check)
+@register()
class update_passync_privilege_update(Updater):
"""
Add PassSync user as a member of PassSync privilege, if it exists
@@ -72,5 +76,3 @@ class update_passync_privilege_update(Updater):
sysupgrade.set_upgrade_state('winsync', 'passsync_privilege_updated', True)
return False, [update]
-
-api.register(update_passync_privilege_update)
diff --git a/ipaserver/install/plugins/update_referint.py b/ipaserver/install/plugins/update_referint.py
index aefe28ce0..bf5393730 100644
--- a/ipaserver/install/plugins/update_referint.py
+++ b/ipaserver/install/plugins/update_referint.py
@@ -2,11 +2,15 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
+register = Registry()
+
+
+@register()
class update_referint(Updater):
"""
Update referential integrity configuration to new style
@@ -83,5 +87,3 @@ class update_referint(Updater):
return False, []
return False, []
-
-api.register(update_referint)
diff --git a/ipaserver/install/plugins/update_services.py b/ipaserver/install/plugins/update_services.py
index 853797363..28f240155 100644
--- a/ipaserver/install/plugins/update_services.py
+++ b/ipaserver/install/plugins/update_services.py
@@ -17,12 +17,15 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
+register = Registry()
+
+@register()
class update_service_principalalias(Updater):
"""
Update all services which do not have ipakrbprincipalalias attribute
@@ -88,5 +91,3 @@ class update_service_principalalias(Updater):
" services updated")
return False, []
return False, []
-
-api.register(update_service_principalalias)
diff --git a/ipaserver/install/plugins/update_uniqueness.py b/ipaserver/install/plugins/update_uniqueness.py
index ea1c6753c..674f2cd2a 100644
--- a/ipaserver/install/plugins/update_uniqueness.py
+++ b/ipaserver/install/plugins/update_uniqueness.py
@@ -17,12 +17,15 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from ipalib import api, errors
+from ipalib import Registry, errors
from ipalib import Updater
from ipapython.dn import DN
from ipapython.ipa_log_manager import root_logger
+register = Registry()
+
+@register()
class update_uniqueness_plugins_to_new_syntax(Updater):
"""
Migrate uniqueness plugins to new style syntax
@@ -218,5 +221,3 @@ class update_uniqueness_plugins_to_new_syntax(Updater):
update_list.append(update)
return False, update_list
-
-api.register(update_uniqueness_plugins_to_new_syntax)
diff --git a/ipaserver/install/plugins/upload_cacrt.py b/ipaserver/install/plugins/upload_cacrt.py
index dcb7fe747..cc26fb463 100644
--- a/ipaserver/install/plugins/upload_cacrt.py
+++ b/ipaserver/install/plugins/upload_cacrt.py
@@ -18,11 +18,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from ipaserver.install import certs
-from ipalib import api, errors, certstore
+from ipalib import Registry, errors, certstore
from ipalib import Updater
from ipapython import certdb
from ipapython.dn import DN
+register = Registry()
+
+
+@register()
class update_upload_cacrt(Updater):
"""
Upload public CA certificate to LDAP
@@ -92,5 +96,3 @@ class update_upload_cacrt(Updater):
ldap.update_entry(entry)
return False, []
-
-api.register(update_upload_cacrt)
diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py
index 162afbf21..935f9ba20 100644
--- a/ipaserver/plugins/dogtag.py
+++ b/ipaserver/plugins/dogtag.py
@@ -1269,7 +1269,7 @@ def select_any_master(ldap2, service='CA'):
#-------------------------------------------------------------------------------
-from ipalib import api, errors, SkipPluginModule
+from ipalib import Registry, api, errors, SkipPluginModule
if api.env.ra_plugin != 'dogtag':
# In this case, abort loading this plugin module...
raise SkipPluginModule(reason='dogtag not selected as RA plugin')
@@ -1281,7 +1281,10 @@ from ipalib.util import cachedproperty
from ipalib import _
from ipaplatform.paths import paths
+register = Registry()
+
+@register()
class ra(rabase.rabase):
"""
Request Authority backend plugin.
@@ -1895,10 +1898,8 @@ class ra(rabase.rabase):
return results
-api.register(ra)
-
-
# ----------------------------------------------------------------------------
+@register()
class kra(Backend):
"""
KRA backend plugin (for Vault)
@@ -1957,8 +1958,6 @@ class kra(Backend):
return KRAClient(connection, crypto)
-api.register(kra)
-
class RestClient(Backend):
"""Simple Dogtag REST client to be subclassed by other backends.
@@ -2091,6 +2090,7 @@ class RestClient(Backend):
return (status, resp_headers, resp_body)
+@register()
class ra_certprofile(RestClient):
"""
Profile management backend plugin.
@@ -2146,5 +2146,3 @@ class ra_certprofile(RestClient):
Delete the profile from Dogtag
"""
self._ssldo('DELETE', profile_id, headers={'Accept': 'application/json'})
-
-api.register(ra_certprofile)
diff --git a/ipaserver/plugins/join.py b/ipaserver/plugins/join.py
index cfa135432..0f877b4d1 100644
--- a/ipaserver/plugins/join.py
+++ b/ipaserver/plugins/join.py
@@ -23,7 +23,7 @@ Joining an IPA domain
import six
-from ipalib import api
+from ipalib import Registry, api
from ipalib import Command, Str
from ipalib import errors
from ipalib import _
@@ -32,6 +32,8 @@ from ipaserver.install import installutils
if six.PY3:
unicode = str
+register = Registry()
+
def validate_host(ugettext, cn):
"""
@@ -43,6 +45,7 @@ def validate_host(ugettext, cn):
return None
+@register()
class join(Command):
"""Join an IPA domain"""
@@ -127,5 +130,3 @@ class join(Command):
config['ipacertificatesubjectbase']
return (dn, attrs_list)
-
-api.register(join)
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
index d50ae1698..179350385 100644
--- a/ipaserver/plugins/ldap2.py
+++ b/ipaserver/plugins/ldap2.py
@@ -52,11 +52,14 @@ except ImportError:
def __init__(self, criticality, authzId=None):
LDAPControl.__init__(self, '1.3.6.1.4.1.42.2.27.9.5.2', criticality, authzId)
-from ipalib import api, errors, _
+from ipalib import Registry, errors, _
from ipalib.crud import CrudBackend
from ipalib.request import context
+register = Registry()
+
+@register()
class ldap2(CrudBackend, LDAPClient):
"""
LDAP Backend Take 2.
@@ -578,5 +581,3 @@ class ldap2(CrudBackend, LDAPClient):
if truncated:
return (-1, output)
return (len(output), output)
-
-api.register(ldap2)
diff --git a/ipaserver/plugins/xmlserver.py b/ipaserver/plugins/xmlserver.py
index 7460ead69..cc496544b 100644
--- a/ipaserver/plugins/xmlserver.py
+++ b/ipaserver/plugins/xmlserver.py
@@ -22,16 +22,19 @@
Loads WSGI server plugins.
"""
-from ipalib import api
+from ipalib import Registry, api
+
+register = Registry()
+
if 'in_server' in api.env and api.env.in_server is True:
from ipaserver.rpcserver import wsgi_dispatch, xmlserver, jsonserver_kerb, jsonserver_session, login_kerberos, login_password, change_password, sync_token, xmlserver_session
- api.register(wsgi_dispatch)
- api.register(xmlserver)
- api.register(jsonserver_kerb)
- api.register(jsonserver_session)
- api.register(login_kerberos)
- api.register(login_password)
- api.register(change_password)
- api.register(sync_token)
- api.register(xmlserver_session)
+ register()(wsgi_dispatch)
+ register()(xmlserver)
+ register()(jsonserver_kerb)
+ register()(jsonserver_session)
+ register()(login_kerberos)
+ register()(login_password)
+ register()(change_password)
+ register()(sync_token)
+ register()(xmlserver_session)