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

Reply via email to