Hello, This patch addresses https://fedorahosted.org/freeipa/ticket/3503. See the commit message for details.
-- Regards, Ana Krivokapic Associate Software Engineer FreeIPA team Red Hat Inc.
From 25b94d35f4958bda8bc435494a357be13d209f26 Mon Sep 17 00:00:00 2001 From: Ana Krivokapic <akriv...@redhat.com> Date: Mon, 8 Apr 2013 05:48:11 -0400 Subject: [PATCH] Fix output for some CLI commands Add missing summary message to dnszone_del. Fix output of dnsrecord_del: it now uses output.standard_delete and excludes --all and --raw flags. Fix output of sudorule_{add,remove}_option: they now use output.standard_entry and include --all and --raw flags. https://fedorahosted.org/freeipa/ticket/3503 --- API.txt | 22 ++++++++++++++-------- VERSION | 2 +- ipalib/plugins/dns.py | 4 ++++ ipalib/plugins/sudorule.py | 6 ++++-- tests/test_cmdline/test_cli.py | 8 -------- tests/test_xmlrpc/test_dns_plugin.py | 8 ++++---- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/API.txt b/API.txt index 81a1f6187583029a4378e44d65bcc7b8d4496508..b97864eea634a65c2b3f11c47433a0f045d175d3 100644 --- a/API.txt +++ b/API.txt @@ -806,13 +806,12 @@ output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDA output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None) output: Output('value', <type 'unicode'>, None) command: dnsrecord_del -args: 2,41,3 +args: 2,39,3 arg: Str('dnszoneidnsname', cli_name='dnszone', query=True, required=True) arg: Str('idnsname', attribute=True, cli_name='name', multivalue=False, primary_key=True, query=True, required=True) option: A6Record('a6record', attribute=True, autofill=False, cli_name='a6_rec', csv=True, multivalue=True, option_group=None, required=False) option: AAAARecord('aaaarecord', attribute=True, autofill=False, cli_name='aaaa_rec', csv=True, multivalue=True, option_group=None, required=False) option: AFSDBRecord('afsdbrecord', attribute=True, autofill=False, cli_name='afsdb_rec', csv=True, multivalue=True, option_group=None, required=False) -option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui') option: APLRecord('aplrecord', attribute=True, autofill=False, cli_name='apl_rec', csv=True, multivalue=True, option_group=None, required=False) option: ARecord('arecord', attribute=True, autofill=False, cli_name='a_rec', csv=True, multivalue=True, option_group=None, required=False) option: CERTRecord('certrecord', attribute=True, autofill=False, cli_name='cert_rec', csv=True, multivalue=True, option_group=None, required=False) @@ -837,7 +836,6 @@ option: NSEC3Record('nsec3record', attribute=True, autofill=False, cli_name='nse option: NSECRecord('nsecrecord', attribute=True, autofill=False, cli_name='nsec_rec', csv=True, multivalue=True, option_group=None, required=False) option: NSRecord('nsrecord', attribute=True, autofill=False, cli_name='ns_rec', csv=True, multivalue=True, option_group=None, required=False) option: PTRRecord('ptrrecord', attribute=True, autofill=False, cli_name='ptr_rec', csv=True, multivalue=True, option_group=None, required=False) -option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui') option: RPRecord('rprecord', attribute=True, autofill=False, cli_name='rp_rec', csv=True, multivalue=True, option_group=None, required=False) option: RRSIGRecord('rrsigrecord', attribute=True, autofill=False, cli_name='rrsig_rec', csv=True, multivalue=True, option_group=None, required=False) option: SIGRecord('sigrecord', attribute=True, autofill=False, cli_name='sig_rec', csv=True, multivalue=True, option_group=None, required=False) @@ -850,7 +848,7 @@ option: TKEYRecord('tkeyrecord', attribute=True, autofill=False, cli_name='tkey_ option: TSIGRecord('tsigrecord', attribute=True, autofill=False, cli_name='tsig_rec', csv=True, multivalue=True, option_group=None, required=False) option: TXTRecord('txtrecord', attribute=True, autofill=False, cli_name='txt_rec', csv=True, multivalue=True, option_group=None, required=False) option: Str('version?', exclude='webui') -output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None)) +output: Output('result', <type 'dict'>, None) output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None) output: Output('value', <type 'unicode'>, None) command: dnsrecord_delentry @@ -3134,11 +3132,15 @@ output: Output('completed', <type 'int'>, None) output: Output('failed', <type 'dict'>, None) output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None)) command: sudorule_add_option -args: 1,2,1 +args: 1,4,3 arg: Str('cn', attribute=True, cli_name='sudorule_name', multivalue=False, primary_key=True, query=True, required=True) +option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui') option: Str('ipasudoopt', cli_name='sudooption') +option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui') option: Str('version?', exclude='webui') -output: Output('result', None, None) +output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None)) +output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None) +output: Output('value', <type 'unicode'>, None) command: sudorule_add_runasgroup args: 1,4,3 arg: Str('cn', attribute=True, cli_name='sudorule_name', multivalue=False, primary_key=True, query=True, required=True) @@ -3274,11 +3276,15 @@ output: Output('completed', <type 'int'>, None) output: Output('failed', <type 'dict'>, None) output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None)) command: sudorule_remove_option -args: 1,2,1 +args: 1,4,3 arg: Str('cn', attribute=True, cli_name='sudorule_name', multivalue=False, primary_key=True, query=True, required=True) +option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui') option: Str('ipasudoopt', cli_name='sudooption') +option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui') option: Str('version?', exclude='webui') -output: Output('result', None, None) +output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None)) +output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None) +output: Output('value', <type 'unicode'>, None) command: sudorule_remove_runasgroup args: 1,4,3 arg: Str('cn', attribute=True, cli_name='sudorule_name', multivalue=False, primary_key=True, query=True, required=True) diff --git a/VERSION b/VERSION index 884f80fad0de2f49ef6fa6fd105dcd5eb0600a67..5eda9ca36f7bf777b576bc7119f19e9622612b03 100644 --- a/VERSION +++ b/VERSION @@ -89,4 +89,4 @@ IPA_DATA_VERSION=20100614120000 # # ######################################################## IPA_API_VERSION_MAJOR=2 -IPA_API_VERSION_MINOR=55 +IPA_API_VERSION_MINOR=56 diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py index 3e6ed8357f0954f1fd081163611d05e3bff9a290..002a8eb461612609b7c87f3773d91291c388be49 100644 --- a/ipalib/plugins/dns.py +++ b/ipalib/plugins/dns.py @@ -1849,6 +1849,8 @@ api.register(dnszone_add) class dnszone_del(LDAPDelete): __doc__ = _('Delete DNS zone (SOA record).') + msg_summary = _('Deleted zone "%(value)s"') + def post_callback(self, ldap, dn, *keys, **options): try: api.Command['permission_del'](self.obj.permission_name(keys[-1]), @@ -2679,6 +2681,8 @@ api.register(dnsrecord_delentry) class dnsrecord_del(LDAPUpdate): __doc__ = _('Delete DNS resource record.') + has_output = output.standard_delete + no_option_msg = _('Neither --del-all nor options to delete a specific record provided.\n'\ "Command help may be consulted for all supported record types.") diff --git a/ipalib/plugins/sudorule.py b/ipalib/plugins/sudorule.py index 3c89b7a03c782e1bf500be3094f08789e685fb20..a89941cb6ab9b258de26bb7cf3632dc0acc7e20e 100644 --- a/ipalib/plugins/sudorule.py +++ b/ipalib/plugins/sudorule.py @@ -605,6 +605,7 @@ api.register(sudorule_remove_runasgroup) class sudorule_add_option(LDAPQuery): __doc__ = _('Add an option to the Sudo Rule.') + has_output = output.standard_entry takes_options = ( Str('ipasudoopt', cli_name='sudooption', @@ -642,7 +643,7 @@ class sudorule_add_option(LDAPQuery): entry_attrs = entry_to_dict(entry_attrs, **options) - return dict(result=entry_attrs) + return dict(result=entry_attrs, value=cn) def output_for_cli(self, textui, result, cn, **options): textui.print_dashed(_('Added option "%(option)s" to Sudo Rule "%(rule)s"') % \ @@ -657,6 +658,7 @@ api.register(sudorule_add_option) class sudorule_remove_option(LDAPQuery): __doc__ = _('Remove an option from Sudo Rule.') + has_output = output.standard_entry takes_options = ( Str('ipasudoopt', cli_name='sudooption', @@ -697,7 +699,7 @@ class sudorule_remove_option(LDAPQuery): entry_attrs = entry_to_dict(entry_attrs, **options) - return dict(result=entry_attrs) + return dict(result=entry_attrs, value=cn) def output_for_cli(self, textui, result, cn, **options): textui.print_dashed(_('Removed option "%(option)s" from Sudo Rule "%(rule)s"') % \ diff --git a/tests/test_cmdline/test_cli.py b/tests/test_cmdline/test_cli.py index 75d1608eeb556a0cfd49075acdb6deef26e092d1..f66906c6aa48137c83445147253599ae437621d1 100644 --- a/tests/test_cmdline/test_cli.py +++ b/tests/test_cmdline/test_cli.py @@ -147,8 +147,6 @@ class TestCLIParsing(object): idnsname=u'ns', del_all=True, structured=False, - raw=False, - all=False, version=API_VERSION) with self.fake_stdin('YeS\n'): self.check_command('dnsrecord_del test-example.com ns', @@ -157,8 +155,6 @@ class TestCLIParsing(object): idnsname=u'ns', del_all=True, structured=False, - raw=False, - all=False, version=API_VERSION) finally: self.run_command('dnszone_del', idnsname=u'test-example.com') @@ -184,8 +180,6 @@ class TestCLIParsing(object): del_all=False, sshfprecord=records, structured=False, - raw=False, - all=False, version=API_VERSION) finally: self.run_command('dnszone_del', idnsname=u'test-example.com') @@ -261,8 +255,6 @@ class TestCLIParsing(object): del_all=False, txtrecord=[u'"A pretty little problem," said Holmes.'], structured=False, - raw=False, - all=False, version=API_VERSION) finally: self.run_command('dnszone_del', idnsname=u'test-example.com') diff --git a/tests/test_xmlrpc/test_dns_plugin.py b/tests/test_xmlrpc/test_dns_plugin.py index fb548bb97920883c8d1e2621ecdbb8682829e8b6..f9fb3d0343d9568addf860410ac1544c36e4ee85 100644 --- a/tests/test_xmlrpc/test_dns_plugin.py +++ b/tests/test_xmlrpc/test_dns_plugin.py @@ -394,7 +394,7 @@ class test_dns(Declarative): command=('dnszone_del', [revdnszone1], {}), expected={ 'value': revdnszone1, - 'summary': None, + 'summary': u'Deleted zone "%s"' % revdnszone1, 'result': {'failed': u''}, }, ), @@ -905,7 +905,7 @@ class test_dns(Declarative): command=('dnszone_del', [dnszone2], {}), expected={ 'value': dnszone2, - 'summary': None, + 'summary': u'Deleted zone "%s"' % dnszone2, 'result': {'failed': u''}, }, ), @@ -1397,7 +1397,7 @@ class test_dns(Declarative): command=('dnszone_del', [dnszone1], {}), expected={ 'value': dnszone1, - 'summary': None, + 'summary': u'Deleted zone "%s"' % dnszone1, 'result': {'failed': u''}, }, ), @@ -1460,7 +1460,7 @@ class test_dns(Declarative): command=('dnszone_del', [dnszone1], {}), expected={ 'value': dnszone1, - 'summary': None, + 'summary': u'Deleted zone "%s"' % dnszone1, 'result': {'failed': u''}, }, ), -- 1.8.1.4
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel