[apparmor] [patch] fix and improve recursive_print()
Christian Boltz
apparmor at cboltz.de
Sat Nov 15 00:32:36 UTC 2014
Hello,
Am Freitag, 14. November 2014 schrieb Steve Beattie:
> On Tue, Nov 11, 2014 at 08:09:35PM +0100, Christian Boltz wrote:
> > The updated version adds support for nested lists - for the start of
> > each list, print a *. Without that, you get a long list of items
> > without an indicator if/when a new parent list starts.
>
> Acked-by: Steve Beattie <steve at nxnw.org>, though maybe instead of just
> printing a '*', printing an opening '[' and closing ']', instead?
Good idea, I changed it before commiting.
> Also, what do think of the following patch to get rid of output like:
>
> - <apparmor.rules.Raw_DBUS_Rule object at 0x7fb797813da0>
>
> when handling any of the raw rules objects (formatting improvements
> welcome)?
>
> Signed-off-by: Steve Beattie <steve at nxnw.org>
> ---
> utils/apparmor/common.py | 3 +++
> utils/apparmor/rules.py | 6 ++++++
> 2 files changed, 9 insertions(+)
>
> Index: b/utils/apparmor/common.py
> ===================================================================
> --- a/utils/apparmor/common.py
> +++ b/utils/apparmor/common.py
> @@ -20,6 +20,7 @@ import subprocess
> import sys
> import termios
> import tty
> +import apparmor.rules as rules
>
> DEBUGGING = False
>
> @@ -96,6 +97,8 @@ def recursive_print(src, dpth = 0, key =
> empty = False
> if empty:
> print (tabs + '[--- empty ---]')
> + elif isinstance(src, rules._Raw_Rule):
IMHO we should keep the object type as a "headline", so please add
(untested, please adjust if needed)
print (tabs + '%s' % src)
This will also print the memory address, which can be helpful to find
out if you have multiple references to the same object or separate
objects.
> + src.recursive_print(dpth)
> else:
> if key:
> print (tabs + '%s = %s' % (key, src))
> Index: b/utils/apparmor/rules.py
> ===================================================================
> --- a/utils/apparmor/rules.py
> +++ b/utils/apparmor/rules.py
> @@ -56,6 +56,12 @@ class _Raw_Rule(object):
> 'deny ' if self.deny else '',
> self.rule)
>
> + def recursive_print(self, depth):
> + tabs = ' ' * depth * 4
> + print('%saudit = %s' % (tabs, self.audit))
> + print('%sdeny = %s' % (tabs, self.deny))
> + print('%sraw rule = %s' % (tabs, self.rule))
> +
> class Raw_DBUS_Rule(_Raw_Rule):
> pass
With the "headline" added,
Acked-by: Christian Boltz <apparmor at cboltz.de>
Regards,
Christian Boltz
--
<suseROCKs> I hate email
<suseROCKs> I hate internet
<suseROCKs> I hate computers
<suseROCKs> why can't we go back to old fashioned smoke signaling??
[from #opensuse-project]
More information about the AppArmor
mailing list