Merge pull request #6096 from edx/jarv/config-refactor-wip

Jarv/config refactor wip
This commit is contained in:
John Jarvis
2014-12-08 13:19:29 -05:00
5 changed files with 581 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
"""
Helper functions for configuration parsing
"""
import collections
def convert_tokens(tokens):
"""
This function is called on the token
dictionary that is imported from a yaml file.
It returns a new dictionary where
all strings containing 'None' are converted
to a literal None due to a bug in Ansible
"""
if tokens == 'None':
return None
elif isinstance(tokens, basestring) or (not isinstance(tokens, collections.Iterable)):
return tokens
elif isinstance(tokens, dict):
return {
convert_tokens(k): convert_tokens(v)
for k, v in tokens.items()
}
else:
return [convert_tokens(v) for v in tokens]