summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2014-11-10 09:34:39 -0600
committerSol Jerome <sol.jerome@gmail.com>2014-11-10 09:34:39 -0600
commitf6b3d6dc89e4ba5c2ec643931394db45b8c7f176 (patch)
treedaf3ca518bb1cfe78049a8b451ef2bd6635528cf /src
parent0bfc5a946a10712a5d82daa6ae0d1cd50fbb4ba8 (diff)
parent257eb0c174ef2fdaa2015975c5919979afa8da90 (diff)
downloadbcfg2-f6b3d6dc89e4ba5c2ec643931394db45b8c7f176.tar.gz
bcfg2-f6b3d6dc89e4ba5c2ec643931394db45b8c7f176.tar.bz2
bcfg2-f6b3d6dc89e4ba5c2ec643931394db45b8c7f176.zip
Merge branch 'fix-django-db-options-parsing' into maint
Diffstat (limited to 'src')
-rw-r--r--src/lib/Bcfg2/Options.py28
1 files changed, 7 insertions, 21 deletions
diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py
index 9752ab758..652e216a5 100644
--- a/src/lib/Bcfg2/Options.py
+++ b/src/lib/Bcfg2/Options.py
@@ -1,14 +1,16 @@
"""Option parsing library for utilities."""
+import ast
import copy
import getopt
+import grp
import inspect
import os
+import pwd
import re
import shlex
import sys
-import grp
-import pwd
+
import Bcfg2.Client.Tools
from Bcfg2.Compat import ConfigParser
from Bcfg2.version import __version__
@@ -329,25 +331,9 @@ def colon_split(c_string):
def dict_split(c_string):
- """ split an option string on commas, optionally surrounded by
- whitespace and split the resulting items again on equals signs,
- returning a dict """
- result = dict()
- if c_string:
- items = re.split(r'\s*,\s*', c_string)
- for item in items:
- if r'=' in item:
- key, value = item.split(r'=', 1)
- try:
- result[key] = get_bool(value)
- except ValueError:
- try:
- result[key] = get_int(value)
- except ValueError:
- result[key] = value
- else:
- result[item] = True
- return result
+ """ literally evaluate the option in order to allow for arbitrarily nested
+ dictionaries """
+ return ast.literal_eval(c_string)
def get_bool(val):