mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 15:40:01 -06:00
2f7df393fd
File arguments are relevant only on the client, on the server they are the same as Str. Specify the arguments as Str in ipalib.plugins and override them with File in ipaclient.plugins. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
#
|
|
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
|
|
#
|
|
|
|
from ipaclient.frontend import MethodOverride
|
|
from ipalib import util
|
|
from ipalib.parameters import File
|
|
from ipalib.plugable import Registry
|
|
from ipalib.text import _
|
|
|
|
register = Registry()
|
|
|
|
|
|
@register(override=True)
|
|
class certprofile_show(MethodOverride):
|
|
def forward(self, *keys, **options):
|
|
if 'out' in options:
|
|
util.check_writable_file(options['out'])
|
|
|
|
result = super(certprofile_show, self).forward(*keys, **options)
|
|
if 'out' in options and 'config' in result['result']:
|
|
with open(options['out'], 'wb') as f:
|
|
f.write(result['result'].pop('config'))
|
|
result['summary'] = (
|
|
_("Profile configuration stored in file '%(file)s'")
|
|
% dict(file=options['out'])
|
|
)
|
|
|
|
return result
|
|
|
|
|
|
@register(override=True)
|
|
class certprofile_import(MethodOverride):
|
|
def get_options(self):
|
|
for option in super(certprofile_import, self).get_options():
|
|
if option.name == 'file':
|
|
option = option.clone_retype(option.name, File)
|
|
yield option
|
|
|
|
|
|
@register(override=True)
|
|
class certprofile_mod(MethodOverride):
|
|
def get_options(self):
|
|
for option in super(certprofile_mod, self).get_options():
|
|
if option.name == 'file':
|
|
option = option.clone_retype(option.name, File)
|
|
yield option
|