[apparmor] [patch] Add severity() to BaseRule class

Christian Boltz apparmor at cboltz.de
Fri Jun 5 22:38:41 UTC 2015


Hello,

Am Freitag, 5. Juni 2015 schrieb Steve Beattie:
> On Wed, Jun 03, 2015 at 11:57:00PM +0200, Christian Boltz wrote:

> > [ 19-baserule-add-severity.diff ]
> 
> Acked-by: Steve Beattie <steve at nxnw.org> as is. Some comments:
> > === modified file utils/apparmor/rule/__init__.py

> > +    def severity(self, sev_db):
> > +        '''return severity of this rule (a number between 0 and 10,
> > where 0 means harmless and 10 means critical), +           or
> > sev_db.NOT_IMPLEMENTED if no severity check is implemented for this
> > rule type.
> Should the comment here say anything about possibly returning
> sev_db.unknown?

Should I add another line to the comment mentioning "unknown"?
(to make things more interesting, the exact value of "unknown" is 
specified when creating a sev_db instance, the default for unknown is 
"10", and everywhere we use sev_db we have _("unknown") as default)

> > === modified file utils/test/test-baserule.py

> > +    def test_default_severity(self):
> > +        sev_db = severity.Severity('severity.db', 'unknown')
> > +        obj = BaseRule()
> > +        rank = obj.severity(sev_db)
> 
> From an object-oriented perspective, it feels a little odd to me to
> ask a rule what the severity of that rule is given a severity db. 

I see the severity as a property of the rule, which is one of the 
reasons why I placed it in the rule. (sev_db is just the tool helping to 
find out the severity, and the main reason why I pass in the sev_db is 
that I don't want to have it as global variable somewhere.)

Another reason was that the check needs to access a class-internal 
variable, and it felt more natural to have access to that variables 
inside the class (and then ask sev_db about a string).

Summed up "Dear rule, how severe are you?"

> It
> seems like the more natural conceptual structure would be to ask the
> severity db what it thinks the severity of a given rule object is. Not
> an objection to this patch, but just one of those things that feels
> quirky about the division of responsibilities.

Summed up: "Dear sev_db, how severe is this rule?"

OK, that sounds like a reason to move the code to severity.py.
(_One_ reason. I have two *eg*)

Can we agree to disagree, or do we need to vote in the next meeting? ;-)


Regards,

Christian Boltz
-- 
> My personal opinion is that bugzilla should be sent in a rocket
> to the oblivion and pick up something sane and usable, [...]
Do you really mean the core Bugzilla software or perhaps some
infrastructure software like this "Internet in CHAINs" thingy or
whatever its actual name is?
[> Cristian Rodríguez and Johannes Meixner in opensuse-factory]




More information about the AppArmor mailing list