diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-10-22 13:02:35 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-11-10 17:35:44 -0600 |
commit | 3d26097342ecbda755135dc3cf39517d75c027aa (patch) | |
tree | 334936b918b16a1128dcc14e37d242d969ae0352 /src/lib/Bcfg2/Options | |
parent | b50d7b239f5b6530873df25a80dde484f955581c (diff) | |
download | bcfg2-3d26097342ecbda755135dc3cf39517d75c027aa.tar.gz bcfg2-3d26097342ecbda755135dc3cf39517d75c027aa.tar.bz2 bcfg2-3d26097342ecbda755135dc3cf39517d75c027aa.zip |
Options: fix path canonicalization and file-like objects
This fixes canonicalizing PathOption values when the default value of
a config file-only option is used. It also fixes PathOptions that get
a file-like object instead of a filename string.
Diffstat (limited to 'src/lib/Bcfg2/Options')
-rw-r--r-- | src/lib/Bcfg2/Options/Options.py | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/lib/Bcfg2/Options/Options.py b/src/lib/Bcfg2/Options/Options.py index 36148c279..f1a201f1e 100644 --- a/src/lib/Bcfg2/Options/Options.py +++ b/src/lib/Bcfg2/Options/Options.py @@ -364,25 +364,20 @@ class PathOption(Option): def _get_default(self): """ Getter for the ``default`` property """ - if self.__class__.repository is None or self._default is None: + if not hasattr(self._default, "replace"): return self._default else: - return self._default.replace("<repository>", - self.__class__.repository) + return self._type(self._default) default = property(_get_default, Option._set_default) def _type(self, value): """Type function that fixes up <repository> macros.""" if self.__class__.repository is None: - _debug("Cannot fix up <repository> macros yet for %s" % self) return value else: - rv = self._original_type(Types.path( + return self._original_type(Types.path( value.replace("<repository>", self.__class__.repository))) - _debug("Fixing up <repository> macros in %s: %s -> %s" % - (self, value, rv)) - return rv class _BooleanOptionAction(argparse.Action): |