From a23b8fd488ca33f3e6ffa42530debd6d5d3430ac Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Mon, 18 Jul 2016 09:37:24 +0200 Subject: [PATCH] client: fix hiding of commands which lack server support Rather than checking the server counterpart's NO_CLI, which may be False even for commands supported on the server, check wheter the server counterpart is a command defined on the server or a local placeholder. https://fedorahosted.org/freeipa/ticket/6089 Reviewed-By: Florence Blanc-Renaud --- ipaclient/plugins/automount.py | 3 ++- ipaclient/plugins/otptoken_yubikey.py | 3 ++- ipaclient/plugins/vault.py | 12 ++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ipaclient/plugins/automount.py b/ipaclient/plugins/automount.py index 8405f9f4fe283d9c068d51e10717fb1396fa44bf..c6537bc6c24b905a8e1f7fb6a7e2c931b95374c7 100644 --- a/ipaclient/plugins/automount.py +++ b/ipaclient/plugins/automount.py @@ -54,7 +54,8 @@ class _fake_automountlocation_show(Method): class automountlocation_tofiles(MethodOverride): @property def NO_CLI(self): - return self.api.Command.automountlocation_show.NO_CLI + return isinstance(self.api.Command.automountlocation_show, + _fake_automountlocation_show) def output_for_cli(self, textui, result, *keys, **options): maps = result['result']['maps'] diff --git a/ipaclient/plugins/otptoken_yubikey.py b/ipaclient/plugins/otptoken_yubikey.py index 5e0d994628ab997853a80d1f1118ba8ada9993d9..423b670de15dd7f803db1dcbb759bd0254827072 100644 --- a/ipaclient/plugins/otptoken_yubikey.py +++ b/ipaclient/plugins/otptoken_yubikey.py @@ -76,7 +76,8 @@ class otptoken_add_yubikey(Command): @property def NO_CLI(self): - return self.api.Command.otptoken_add.NO_CLI + return isinstance(self.api.Command.otptoken_add, + _fake_otptoken_add) def get_args(self): for arg in self.api.Command.otptoken_add.args(): diff --git a/ipaclient/plugins/vault.py b/ipaclient/plugins/vault.py index b7e0cfffb2fff62fdbbf438964d124fc2dd8ac36..e3a1ae3a0ad767bcee843b7fa3743a934e02d18b 100644 --- a/ipaclient/plugins/vault.py +++ b/ipaclient/plugins/vault.py @@ -204,7 +204,8 @@ class vault_add(Local): @property def NO_CLI(self): - return self.api.Command.vault_add_internal.NO_CLI + return isinstance(self.api.Command.vault_add_internal, + _fake_vault_add_internal) def get_args(self): for arg in self.api.Command.vault_add_internal.args(): @@ -401,7 +402,8 @@ class vault_mod(Local): @property def NO_CLI(self): - return self.api.Command.vault_mod_internal.NO_CLI + return isinstance(self.api.Command.vault_mod_internal, + _fake_vault_mod_internal) def get_args(self): for arg in self.api.Command.vault_mod_internal.args(): @@ -579,7 +581,8 @@ class vault_archive(Local): @property def NO_CLI(self): - return self.api.Command.vault_archive_internal.NO_CLI + return isinstance(self.api.Command.vault_archive_internal, + _fake_vault_archive_internal) def get_args(self): for arg in self.api.Command.vault_archive_internal.args(): @@ -827,7 +830,8 @@ class vault_retrieve(Local): @property def NO_CLI(self): - return self.api.Command.vault_retrieve_internal.NO_CLI + return isinstance(self.api.Command.vault_retrieve_internal, + _fake_vault_retrieve_internal) def get_args(self): for arg in self.api.Command.vault_retrieve_internal.args(): -- 2.7.4