<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 6:10 AM, Baohua Yang <span dir="ltr"><<a href="mailto:yangbaohua@gmail.com" target="_blank">yangbaohua@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi, all<div>     The current oslo.cfg module provides an easy way to load name known options/groups from he configuration files.</div>
<div>      I am wondering if there's a possible solution to dynamically load them?</div>

<div><br></div><div>      For example, I do not know the group names (section name in the configuration file), but we read the configuration file and detect the definitions inside it.</div><div><br></div><div>#Configuration file:</div>


<div>[group1]</div><div>key1 = value1</div><div>key2 = value2<br clear="all"><div><br></div><div>       Then I want to automatically load the group1. key1 and group2. key2, without knowing the name of group1 first.</div>


<div><br></div></div></div></blockquote><div><br></div><div>That's actually good question. But it seems to be a bit complicated. You have to tell to option loader about type of given configuration item.</div><div>I also was thinking about this type of feature, and that's what came into my mind.</div>
<div><br></div><div>I found very useful JSON or YAML format for describing options. Here's simple example how to describe configuration file that would describe dynamic configuration.</div><div><br></div><div>options.yaml</div>
<div><br></div><div>- groups:</div><div>  - DEFAULT</div><div>  - NOT_DEFAULT</div><div>  - ANOTHER_ONE</div><div><br></div><div>- list:</div><div>  - option_a:</div><div>    - group: DEFAULT</div><div>    - value: [a, b ,c]</div>
<div>    - description: description</div><div><br></div><div>- dict:</div><div><div>  - option_b:</div><div>    - group: DEFAULT</div><div>    - value: { a:b, c:d}</div><div>    - description: description</div></div><div>
<br></div><div>and so on ...<br></div><div><br></div><div>Explanation:</div><div><br></div><div>` - groups` attribute defines which groups oslo.config should register.</div><div>`-  list` - option type</div><div>`- option_b` - option descriptor, each descriptor is a dict (string: list) where key is an option name, and attributes inside it describes to which group it belongs, its value, and description.</div>
<div><br></div><div>oslo.config would need just parse YAML file and register all options and in the end you'll receive a set of registered options per their groups.</div><div><br></div><div>It's the best variant of dynamic option loading, but i'm open for discussion.</div>
<div><br></div><div><br></div><div>Best regards,</div><div>Denis Makogon</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div><div></div><div>        Thanks a lot!</div><span class=""><font color="#888888"><div><br></div>-- <br><font color="#999999">Best wishes!<br><span>Baohua</span><br></font>
</font></span></div></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</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></blockquote></div><br></div></div>