<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">The oslo.policy has a class method `from_dict` which can be helpful. </div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">So I replaced the `parse_rule` with `from_dict`, and it works as expect.</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Is there any other feature that oslo.policy doesn't have?</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 7, 2015 at 6:48 PM, Sergey Vilgelm <span dir="ltr"><<a href="mailto:svilgelm@mirantis.com" target="_blank">svilgelm@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi nova-team,<br><br>Jeffrey Zhang has updated his patch[1].<span class=""><div>Dan Smith, Could you remove -2?</div><div><br></div></span><div>[1] <a href="https://review.openstack.org/#/c/198065" target="_blank">https://review.openstack.org/#/c/198065</a></div><div><div><div class="h5"><br><br><blockquote type="cite">On Aug 20, 2015, at 17:26, Sergey Vilgelm <<a href="mailto:svilgelm@mirantis.com" target="_blank">svilgelm@mirantis.com</a>> wrote:<br><br>Nova-cores,<br>Do you have any decision about the patch: <a href="https://review.openstack.org/#/c/198065/" target="_blank">https://review.openstack.org/#/c/198065/</a> ?<br>Dan Smith, Could you remove -2?<br>Jeffrey Zhang, What is your opinion?<br><br>On Tue, Aug 4, 2015 at 12:26 AM, Doug Hellmann <<a href="mailto:doug@doughellmann.com" target="_blank">doug@doughellmann.com</a>> wrote:<br>Excerpts from Doug Hellmann's message of 2015-08-03 16:19:31 -0400:<br>> Excerpts from Morgan Fainberg's message of 2015-08-04 06:05:56 +1000:<br>> ><br>> > > On Aug 4, 2015, at 05:49, Doug Hellmann <<a href="mailto:doug@doughellmann.com" target="_blank">doug@doughellmann.com</a>> wrote:<br>> > ><br>> > > Excerpts from Sergey Vilgelm's message of 2015-08-03 22:11:50 +0300:<br>> > >>> On Mon, Aug 3, 2015 at 9:37 PM, Doug Hellmann <<a href="mailto:doug@doughellmann.com" target="_blank">doug@doughellmann.com</a>> wrote:<br>> > >>><br>> > >>> Making that function public may be the most expedient fix, but the<br>> > >>> parser was made private for a reason, so before we expose it we<br>> > >>> should understand why, and if there are alternatives (such as<br>> > >>> creating a fixture in oslo.policy to do what the nova tests need).<br>> > >><br>> > >> Probably we may extend the Rules class and add the similar functions as a<br>> > >> classmethod?<br>> > >> I've created a patch for slo.policy as example[1]<br>> > ><br>> > > Well, my point was that the folks working on that library considered the<br>> > > entire parser to be private. That could just be overly ambitious API<br>> > > pruning, or there could be some underlying reason (like, the syntax may<br>> > > be changing or we want apps to interact with APIs and not generate DSL<br>> > > and feed it to the library). So we should find out about the reason<br>> > > before looking for alternative places to expose the parser.<br>> > ><br>> ><br>> > The idea is to have apis vs dsl generation. But we did a "everything private that isnt clearly used" as a starting point. I would prefer to not make this public and have a fixture instead. That said, i am not hard-set against a change to make it public.<br>><br>> It would be easy enough to provide a fixture, which would make it clear<br>> that the API is meant for testing and not for general use. I see a<br>> couple of options:<br>><br>> 1. a fixture that takes some DSL text and creates a new Enforcer<br>>    instance populated with the rules based on parsing the text<br>><br>> 2. a fixture that takes some DSL text *and* an existing Enforcer<br>>    instance and replaces the rules inside that Enforcer instance with the<br>>    rules represented by the DSL text<br>><br>> Option 1 feels a little cleaner but option 2 is more like how Nova<br>> is using parse_rule() now and may be easier to drop in.<br><br>Brant also pointed out on IRC that the Rules class already has a<br>load_json() class method that invokes the parser, so maybe the thing to<br>do is update nova's tests to use that method. A fixture would still be<br>an improvement, but using the existing code will let us move ahead<br>faster (assuming we've decided not to wait for the new features to be<br>implemented).<br><br>Doug<br><br>><br>> Doug<br>><br>> ><br>> > > Doug<br>> > ><br>> > >><br>> > >> [1] <a href="https://review.openstack.org/#/c/208617/" target="_blank">https://review.openstack.org/#/c/208617/</a><br>> > ><br>> > > __________________________________________________________________________<br>> > > OpenStack Development Mailing List (not for usage questions)<br>> > > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>> > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>> ><br>><br><br>__________________________________________________________________________<br>OpenStack Development Mailing List (not for usage questions)<br>Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br><br><br><br>-- <br>Thanks,<br>Sergey Vilgelm<br>OpenStack Software Engineer<br>Mirantis Inc.<br>Skype: sergey.vilgelm<br>Phone: <a href="tel:%2B36%2070%20512%203836" value="+36705123836" target="_blank">+36 70 512 3836</a><br></blockquote><br></div></div><div><br>—<span class=""><br>Sergey Vilgelm<br>OpenStack Software Engineer<br>Mirantis Inc.<br></span></div><br></div></div><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:13px;border-collapse:collapse"><font face="trebuchet ms, sans-serif"><div class="gmail_default" style="font-family:'trebuchet ms',sans-serif;display:inline">​Jeffrey </div> Zhang</font></span></div><div><font face="trebuchet ms, sans-serif">Blog: <a href="http://xcodest.me" target="_blank">http://xcodest.me</a></font></div><div><font face="trebuchet ms, sans-serif">twitter/weibo: @jeffrey4l</font></div></div></div>
</div></div>