# Own modules
from .. import __version__ as GLOBAL_VERSION
-from .. import DEFAULT_CONFIG_DIR
+from .. import DEFAULT_CONFIG_DIR, DEFAULT_ENVIRONMENTS_ROOT_DIR
from .. import DEFAULT_TERMINAL_WIDTH, DEFAULT_TERMINAL_HEIGHT
from .. import pp
_ = XLATOR.gettext
ngettext = XLATOR.ngettext
-__version__ = '0.3.3'
+__version__ = '0.4.0'
# =============================================================================
charset.add_charset('utf-8', charset.SHORTEST, charset.QP)
+ default_env_root_dir = DEFAULT_ENVIRONMENTS_ROOT_DIR
+
# -------------------------------------------------------------------------
def __init__(
self, appname=None, verbose=0, version=GLOBAL_VERSION, base_dir=None, quiet=False,
additional_stems=None, additional_cfgdirs=None, cfg_encoding=DEFAULT_ENCODING,
config_dir=DEFAULT_CONFIG_DIR):
+ self._env_root_dir = self.default_env_root_dir
+ self.environments = []
+
super(BaseDPXPuppetApplication, self).__init__(
appname=appname, verbose=verbose, version=version, base_dir=base_dir,
description=description, cfg_class=cfg_class, initialized=False, quiet=quiet,
env_prefix=env_prefix, config_dir=config_dir
)
+ # -------------------------------------------------------------------------
+ @property
+ def env_root_dir(self):
+ """The root directory of all puppet environments."""
+ return self._env_root_dir
+
+ @env_root_dir.setter
+ def env_root_dir(self, value):
+ if value is None:
+ self._env_root_dir = None
+ return
+
+ val = Path(value)
+ if not val.is_absolute():
+ msg = _(
+ "Path {!r} for the root directory of all puppet environments must "
+ "be an absolute path.").format(value)
+ raise ValueError(msg)
+ self._env_root_dir = val
+
+ # -------------------------------------------------------------------------
+ def as_dict(self, short=True):
+ """
+ Transforms the elements of the object into a dict
+
+ @return: structure as dict
+ @rtype: dict
+ """
+
+ res = super(BaseDPXPuppetApplication, self).as_dict(short=short)
+
+ res['default_env_root_dir'] = self.default_env_root_dir
+ res['env_root_dir'] = self.env_root_dir
+
+ return res
+
# -------------------------------------------------------------------------
def post_init(self):
"""
from fb_tools.obj import FbBaseObjectError, FbBaseObject
# Own modules
-from . import DEFAULT_FORGE_URL
+from . import DEFAULT_FORGE_URL, DEFAULT_ENVIRONMENTS_ROOT_DIR
from .pfile_moduleinfo import PuppetfileModuleInfo
"""Class for encapsulating a Puppetfile of a r10k environment."""
default_environment = 'production'
- default_env_root_dir = os.sep + os.path.join("etc", "puppetlabs", "code", "environments")
- default_env_root_dir = Path(os.sep) / "etc" / "puppetlabs" / "code" / "environments"
+ default_env_root_dir = DEFAULT_ENVIRONMENTS_ROOT_DIR
default_moduledir = Path('modules')
default_forge_url = DEFAULT_FORGE_URL