[openstack-dev] [Nova] Configuration validation

Tracy Jones tjones at vmware.com
Tue Nov 12 18:51:09 UTC 2013


Mark - does Oslo.config already do any duplicate config checking?  If not that’s probably a good place for that part

On Nov 12, 2013, at 10:06 AM, Tracy Jones <tjones at vmware.com> wrote:

> Thanks folks for the interesting suggestions on this topic!  I’ll b updating the BP this week with this and other info i am gathering. 
> 
> Please let me know if you are interested in being involved in brainstorming on this issue and I will set up an irc meeting to discuss it further
> 
> On Nov 11, 2013, at 3:08 PM, Mark McLoughlin <markmc at redhat.com> wrote:
> 
>> Hi Nikola,
>> 
>> On Mon, 2013-11-11 at 12:44 +0100, Nikola Đipanov wrote:
>>> Hey all,
>>> 
>>> During the summit session on the the VMWare driver roadmap, a topic of
>>> validating the passed configuration prior to starting services came up
>>> (see [1] for more detail on how it's connected to that specific topic).
>>> 
>>> Several ideas were thrown around during the session mostly documented in
>>> [1].
>>> 
>>> There are a few more cases when something like this could be useful (see
>>> bug [2] and related patch [3]), and I was wondering if a slightly
>>> different approach might be useful. For example use an already existing
>>> validation hook in the service class [4] to call into a validation
>>> framework that will potentially stop the service with proper
>>> logging/notifications. The obvious benefit would be that there is no
>>> pre-run required from the user, and the danger of running a
>>> misconfigured stack is smaller.
>> 
>> One thing worth trying would be to encode the validation rules in the
>> config option declaration.
>> 
>> Some rules could be straightforward, like:
>> 
>> opts = [
>>  StrOpt('foo_url',
>>         validate_rule=cfg.MatchesRegexp('(git|http)://')),
>> ]
>> 
>> but the rule you describe is more complex e.g.
>> 
>> def validate_proxy_url(conf, group, key, value):
>>    if not conf.vnc_enabled:
>>        return
>>    if conf.ssl_only and value.startswith("http://"):
>>        raise ValueError('ssl_only option detected, but ...')
>> 
>> opts = [
>>  StrOpt('novncproxy_base_url',
>>         validate_rule=validate_proxy_url),
>>  ...
>> ]
>> 
>> I'm not sure I love this yet, but it's worth experimenting with.
>> 
>> Mark.
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131112/e487438e/attachment.html>


More information about the OpenStack-dev mailing list