[
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)