mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Allow API plugin registration via a decorator
This makes plugin registration easier to read, less error-prone, and, for many Plugins in a single module, faster to write. Functionally, the decorator is equivalent to current plugin registration. However, in the future this style will allow cleaner semantics. As an example, and to exercise the new syntax to prevent regressions, the ping plugin is converted to this style.
This commit is contained in:
@@ -17,10 +17,10 @@
|
||||
# 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
|
||||
from ipalib import Command
|
||||
from ipalib import output
|
||||
from ipalib import _, ngettext
|
||||
from ipalib.plugable import Registry
|
||||
from ipapython.version import VERSION, API_VERSION
|
||||
|
||||
__doc__ = _("""
|
||||
@@ -51,6 +51,10 @@ EXAMPLES:
|
||||
-----------------------------------------------------
|
||||
""")
|
||||
|
||||
register = Registry()
|
||||
|
||||
|
||||
@register()
|
||||
class ping(Command):
|
||||
__doc__ = _('Ping a remote server.')
|
||||
|
||||
@@ -64,5 +68,3 @@ class ping(Command):
|
||||
back but a fixed value works for now.
|
||||
"""
|
||||
return dict(summary=u'IPA server version %s. API version %s' % (VERSION, API_VERSION))
|
||||
|
||||
api.register(ping)
|
||||
|
||||
Reference in New Issue
Block a user