|
|
@@ -570,12 +570,21 @@ class ServiceExtendsResolver(object):
|
|
|
config_path = self.get_extended_config_path(extends)
|
|
|
service_name = extends['service']
|
|
|
|
|
|
- extends_file = ConfigFile.from_filename(config_path)
|
|
|
- validate_config_version([self.config_file, extends_file])
|
|
|
- extended_file = process_config_file(
|
|
|
- extends_file, self.environment, service_name=service_name
|
|
|
- )
|
|
|
- service_config = extended_file.get_service(service_name)
|
|
|
+ if config_path == self.service_config.filename:
|
|
|
+ try:
|
|
|
+ service_config = self.config_file.get_service(service_name)
|
|
|
+ except KeyError:
|
|
|
+ raise ConfigurationError(
|
|
|
+ "Cannot extend service '{}' in {}: Service not found".format(
|
|
|
+ service_name, config_path)
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ extends_file = ConfigFile.from_filename(config_path)
|
|
|
+ validate_config_version([self.config_file, extends_file])
|
|
|
+ extended_file = process_config_file(
|
|
|
+ extends_file, self.environment, service_name=service_name
|
|
|
+ )
|
|
|
+ service_config = extended_file.get_service(service_name)
|
|
|
|
|
|
return config_path, service_config, service_name
|
|
|
|