vault-add: set the default vault type on the client side if none was given

`vault-add` commands does much processing depending on the vault type even
before the request is forwarded to remote server. Since default values for
parameters are now filled only on server side, the client-side logic would
fail if the vault type was not explicitly given. In this case we have to
retrieve and use the default vault type from schema.

https://fedorahosted.org/freeipa/ticket/6047

Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
This commit is contained in:
Martin Babinsky 2016-07-12 13:44:49 +02:00 committed by Petr Vobornik
parent 6c74bd2bcc
commit a1a7ecdc7b

View File

@ -221,6 +221,11 @@ class vault_add(Local):
def forward(self, *args, **options): def forward(self, *args, **options):
vault_type = options.get('ipavaulttype') vault_type = options.get('ipavaulttype')
if vault_type is None:
internal_cmd = self.api.Command.vault_add_internal
vault_type = internal_cmd.params.ipavaulttype.default
password = options.get('password') password = options.get('password')
password_file = options.get('password_file') password_file = options.get('password_file')
public_key = options.get('ipavaultpublickey') public_key = options.get('ipavaultpublickey')