def set_env(self, env, config=None):
"""
Loads config from container.yml, and stores the resulting dict to self._config.
:param env: string of either 'dev' or 'prod'. Indicates 'dev_overrides' handling.
:return: None
"""
assert env in ['dev', 'prod']
if not config:
try:
config = yaml.round_trip_load(open(self.config_path))
except IOError:
raise AnsibleContainerNotInitializedException()
except yaml.YAMLError as exc:
raise AnsibleContainerConfigException(u"Parsing container.yml - %s" % text_type(exc))
self._validate_config(config)
for service, service_config in iteritems(config.get('services') or {}):
if not service_config or isinstance(service_config, string_types):
raise AnsibleContainerConfigException(u"Error: no definition found in container.yml for service %s."
% service)
self._update_service_config(env, service_config)
# Insure settings['pwd'] = base_path. Will be used later by conductor to resolve $PWD in volumes.
if config.get('settings', None) is None:
config['settings'] = ordereddict()
config['settings']['pwd'] = self.base_path
self._resolve_defaults(config)
logger.debug(u"Parsed config", config=config)
self._config = config
评论列表
文章目录