[Freeipa-devel] Proposed changes to the HBAC grammar

Stephen Gallagher sgallagh at redhat.com
Mon Nov 22 15:13:59 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/19/2010 04:09 PM, Dmitri Pal wrote:
> Stephen Gallagher wrote:
>> Breaking the thread intentionally to bring back focus.
>>
>> With Adam's recent input, I've modified the grammar to what I hope will
>> be it's final form.
>>
>> The complete grammar is available at
>> https://fedorahosted.org/sssd/wiki/HBAC_Grammar
>>
>> The differences from my previous proposal (involving septets) is here:
>> https://fedorahosted.org/sssd/wiki/HBAC_Grammar?action=diff&version=3
>>
>>
>> The primary change is that instead of introducing the septet concept, we
>> will specify "day within a range". So the first Friday of the month
>> would be:
>>
>> accessTime = periodic monthly on Fri between 1-7
>>
>> Tuesdays for the second half of the month would be:
>> accessTime = periodic monthly on Tue between 15-31
>>
>>
>> I don't anticipate that last being very common, but it's now possible.
>>
>> Please chime in if you have any further comments about the grammar, or
>> we will declare this final and move to adjusting the implementation next
>> week.
>>
> Why you are making it singular?
> Why it can't be:
> accessTime = periodic monthly on Tue, Thu between 15-31
> or
> accessTime = periodic monthly on Mon-Wed between 15-31
> or
> accessTime = periodic monthly on 1,2,3 between 15-31 <- meaning same as
> above
> 
> It seems that "singular" in this case is an artificial limitation.

I'll agree with this. We can remove the "singular" limitation.


> However I would also treat the last portion of the rule differently.
> In stead of:
> 
> M-on = "on" WSP day-of-the-week-singular WSP "between" WSP day-of-the-month-range
> and
> day-of-the-month-range = range 1-31
> 
> M-on = "on" WSP day-of-the-week WSP "during-7-day-set" WSP day-set
> day-set = day-set-list / day-set-range
> day-set-list = "1-7","8-14","15-21","22-28","29+"
> or alternatively
> day-set-list = "1","2","3","4","5" <- meaning first seven days, second seven days etc.
> if we use this version them day-set-range can be just:
> day-set-range = 1-5
> otherwise it might be a bit more ugly.
> If we now combine day set-list and day set range into one list range in the same way as we allow in interval for days we would be able to express
> 
> accessTime = periodic monthly on Tue, Thu between 15-31
> 
> it will look like:
> 
> accessTime = periodic monthly on Tue, Thu during-7-day-set 2-3          
> or
> accessTime = periodic monthly on Tue, Thu during-7-day-set 2,3
> 
> as well as 
> accessTime = periodic monthly on Tue, Thu during-7-day-set 1            <--- meaning first Tue and Thu of the month
> 
> or
> 
> accessTime = periodic monthly on Tue, Thu during-7-day-set 1-5          <--- meaning all Tue and Thu of the month
> 
> 
> I would actually argue that we would be able to reuse the interval logic from the month for this so it should not be more work than what has been proposed.
> 


I am opposed to this completely. It's both unreadable and
incomprehensible to most users. I think the language we've described
between eliminating the "singular" limitation and adding negative
numbers to describe the numbers back from the end of the month will
provide all the versatility we need.

Adding "7-day-set" is no different from the "septet" we discussed
previously and shot down.


Examples with my current proposal:

The first Tuesday and Thursday of the month:
accessTime = periodic monthly on Tue,Thu between 1 - 7

All Tuesdays and Thursdays in the month:
accessTime = periodic monthly on Tue,Thu between 1 - 31

The last Tuesday and Thursday of the month:
accessTime = periodic monthly on Tue,Thus between -7 - -1

I'm questioning whether for readability (especially with negative values
in play) we should switch to:

accessTime = periodic monthly on Tue,Thus between -7 and -1

Using "and" in place of the range hyphen. Thoughts?

- -- 
Stephen Gallagher
RHCE 804006346421761

Delivering value year after year.
Red Hat ranks #1 in value among software vendors.
http://www.redhat.com/promo/vendor/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAkzqiLcACgkQeiVVYja6o6NGoACfUyTjhvYx8eFcXUWcmdAi2oT4
zfIAoJMipLumnwIvSSNBT0G3NmRxQOom
=hnac
-----END PGP SIGNATURE-----




More information about the Freeipa-devel mailing list