summaryrefslogtreecommitdiffstats
path: root/ipaclient/plugins/trust.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-04-28 10:15:01 +0200
committerJan Cholasta <jcholast@redhat.com>2016-06-03 09:00:34 +0200
commit4c7be74526bd89ed1b481f3a1ac4bb467ee0ea2c (patch)
tree3db268df3cfa41bd8a3c4655967e6931428b1ba9 /ipaclient/plugins/trust.py
parent6cfb9d73d9701767d8b76d7ff5bbc080a6be9386 (diff)
downloadfreeipa-4c7be74526bd89ed1b481f3a1ac4bb467ee0ea2c.tar.gz
freeipa-4c7be74526bd89ed1b481f3a1ac4bb467ee0ea2c.tar.xz
freeipa-4c7be74526bd89ed1b481f3a1ac4bb467ee0ea2c.zip
ipalib: split off client-side plugin code into ipaclient
Provide client-side overrides for command plugins which implement any of the client-side `interactive_prompt_callback`, `forward` or `output_for_cli` methods and move the methods from the original plugins to the overrides. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipaclient/plugins/trust.py')
-rw-r--r--ipaclient/plugins/trust.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/ipaclient/plugins/trust.py b/ipaclient/plugins/trust.py
new file mode 100644
index 000000000..004c870c3
--- /dev/null
+++ b/ipaclient/plugins/trust.py
@@ -0,0 +1,51 @@
+# Authors:
+# Alexander Bokovoy <abokovoy@redhat.com>
+# Martin Kosek <mkosek@redhat.com>
+#
+# Copyright (C) 2011 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, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+from ipaclient.frontend import MethodOverride
+from ipalib.plugable import Registry
+
+register = Registry()
+
+
+@register(override=True)
+class trust_add(MethodOverride):
+ def interactive_prompt_callback(self, kw):
+ """
+ Also ensure that realm_admin is prompted for if --admin or
+ --trust-secret is not specified when 'ipa trust-add' is run on the
+ system.
+
+ Also ensure that realm_passwd is prompted for if --password or
+ --trust-secret is not specified when 'ipa trust-add' is run on the
+ system.
+ """
+
+ trust_secret = kw.get('trust_secret')
+ realm_admin = kw.get('realm_admin')
+ realm_passwd = kw.get('realm_passwd')
+
+ if trust_secret is None:
+ if realm_admin is None:
+ kw['realm_admin'] = self.prompt_param(
+ self.params['realm_admin'])
+
+ if realm_passwd is None:
+ kw['realm_passwd'] = self.Backend.textui.prompt_password(
+ self.params['realm_passwd'].label, confirm=False)