You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@aurora.apache.org by "Bill Farner (JIRA)" <ji...@apache.org> on 2015/12/28 03:59:49 UTC

[jira] [Resolved] (AURORA-254) add a pluggable configuration validation mechanism

     [ https://issues.apache.org/jira/browse/AURORA-254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bill Farner resolved AURORA-254.
--------------------------------
    Resolution: Won't Fix

> add a pluggable configuration validation mechanism
> --------------------------------------------------
>
>                 Key: AURORA-254
>                 URL: https://issues.apache.org/jira/browse/AURORA-254
>             Project: Aurora
>          Issue Type: Task
>          Components: Client
>            Reporter: brian wickman
>            Priority: Minor
>
> In the past we've gone through deprecation cycles that match patterns on configs and flag warnings to the users.  We should generalize this pattern so that we can register validators to be applied to configs after parsing.  E.g.
> {noformat}
> class AuroraConfig(object):
>   @classmethod
>   def register_validator(cls, matcher, action):
>     cls.VALIDATORS.append((matcher, action))
> ...snip snip ... in parse_config or whatever...
>   for (matcher, action) in self.VALIDATORS.items():
>     if matcher(self.job):
>       action()
> {noformat}
> This way we can inject things at runtime like
> {noformat}
> def isupper_matcher(job):
>   return any(ch.isupper() for ch in str(job.user()))
> def isupper_action(job):
>   die('Silly rabbit, no users have upper-case characters!  Got: %s' % job.user())
> AuroraConfig.register_validator(isupper_matcher, isupper_action)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)