From 529819b02b1c6e78b85481b417ae896b7237f0e2 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Thu, 22 Jan 2009 00:39:26 -0700 Subject: Renamed f_misc.py plugin module to misc.py --- ipalib/plugins/__init__.py | 3 -- ipalib/plugins/f_misc.py | 89 ---------------------------------------------- ipalib/plugins/misc.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 92 deletions(-) delete mode 100644 ipalib/plugins/f_misc.py create mode 100644 ipalib/plugins/misc.py diff --git a/ipalib/plugins/__init__.py b/ipalib/plugins/__init__.py index 544429ef3..146e10e1d 100644 --- a/ipalib/plugins/__init__.py +++ b/ipalib/plugins/__init__.py @@ -19,7 +19,4 @@ """ Sub-package containing all core plugins. - -By convention, modules with frontend plugins are named f_*.py and modules -with backend plugins are named b_*.py. """ diff --git a/ipalib/plugins/f_misc.py b/ipalib/plugins/f_misc.py deleted file mode 100644 index a2f0fa4e4..000000000 --- a/ipalib/plugins/f_misc.py +++ /dev/null @@ -1,89 +0,0 @@ -# Authors: -# Jason Gerard DeRose -# -# Copyright (C) 2008 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; version 2 only -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -""" -Misc frontend plugins. -""" - -import re -from ipalib import api, LocalOrRemote - - - -# FIXME: We should not let env return anything in_server -# when mode == 'production'. This would allow an attacker to see the -# configuration of the server, potentially revealing compromising -# information. However, it's damn handy for testing/debugging. -class env(LocalOrRemote): - """Show environment variables""" - - takes_args = ('variables*',) - - def __find_keys(self, variables): - keys = set() - for query in variables: - if '*' in query: - pat = re.compile(query.replace('*', '.*') + '$') - for key in self.env: - if pat.match(key): - keys.add(key) - elif query in self.env: - keys.add(query) - return sorted(keys) - - def execute(self, variables, **options): - if variables is None: - keys = self.env - else: - keys = self.__find_keys(variables) - return tuple( - (key, self.env[key]) for key in keys - ) - - def output_for_cli(self, textui, result, variables, **options): - if len(result) == 0: - return - if len(result) == 1: - textui.print_keyval(result) - return - textui.print_name(self.name) - textui.print_keyval(result) - textui.print_count(result, '%d variables') - -api.register(env) - - -class plugins(LocalOrRemote): - """Show all loaded plugins""" - - def execute(self, **options): - plugins = sorted(self.api.plugins, key=lambda o: o.plugin) - return tuple( - (p.plugin, p.bases) for p in plugins - ) - - def output_for_cli(self, textui, result, **options): - textui.print_name(self.name) - for (plugin, bases) in result: - textui.print_indented( - '%s: %s' % (plugin, ', '.join(bases)) - ) - textui.print_count(result, '%d plugin loaded', '%s plugins loaded') - -api.register(plugins) diff --git a/ipalib/plugins/misc.py b/ipalib/plugins/misc.py new file mode 100644 index 000000000..a2f0fa4e4 --- /dev/null +++ b/ipalib/plugins/misc.py @@ -0,0 +1,89 @@ +# Authors: +# Jason Gerard DeRose +# +# Copyright (C) 2008 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; version 2 only +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +""" +Misc frontend plugins. +""" + +import re +from ipalib import api, LocalOrRemote + + + +# FIXME: We should not let env return anything in_server +# when mode == 'production'. This would allow an attacker to see the +# configuration of the server, potentially revealing compromising +# information. However, it's damn handy for testing/debugging. +class env(LocalOrRemote): + """Show environment variables""" + + takes_args = ('variables*',) + + def __find_keys(self, variables): + keys = set() + for query in variables: + if '*' in query: + pat = re.compile(query.replace('*', '.*') + '$') + for key in self.env: + if pat.match(key): + keys.add(key) + elif query in self.env: + keys.add(query) + return sorted(keys) + + def execute(self, variables, **options): + if variables is None: + keys = self.env + else: + keys = self.__find_keys(variables) + return tuple( + (key, self.env[key]) for key in keys + ) + + def output_for_cli(self, textui, result, variables, **options): + if len(result) == 0: + return + if len(result) == 1: + textui.print_keyval(result) + return + textui.print_name(self.name) + textui.print_keyval(result) + textui.print_count(result, '%d variables') + +api.register(env) + + +class plugins(LocalOrRemote): + """Show all loaded plugins""" + + def execute(self, **options): + plugins = sorted(self.api.plugins, key=lambda o: o.plugin) + return tuple( + (p.plugin, p.bases) for p in plugins + ) + + def output_for_cli(self, textui, result, **options): + textui.print_name(self.name) + for (plugin, bases) in result: + textui.print_indented( + '%s: %s' % (plugin, ', '.join(bases)) + ) + textui.print_count(result, '%d plugin loaded', '%s plugins loaded') + +api.register(plugins) -- cgit