aboutsummaryrefslogtreecommitdiff
path: root/lib/leap_cli/config/manager.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/leap_cli/config/manager.rb')
-rw-r--r--lib/leap_cli/config/manager.rb18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb
index d6cb89e..46d7686 100644
--- a/lib/leap_cli/config/manager.rb
+++ b/lib/leap_cli/config/manager.rb
@@ -16,7 +16,7 @@ module LeapCli
## ATTRIBUTES
##
- attr_reader :services, :tags, :nodes, :provider, :common, :secrets
+ attr_reader :services, :tags, :nodes, :provider, :providers, :common, :secrets
attr_reader :base_services, :base_tags, :base_provider, :base_common
#
@@ -48,7 +48,7 @@ module LeapCli
@base_services = load_all_json(Path.named_path([:service_config, '*'], Path.provider_base), Config::Tag)
@base_tags = load_all_json(Path.named_path([:tag_config, '*'], Path.provider_base), Config::Tag)
@base_common = load_json(Path.named_path(:common_config, Path.provider_base), Config::Object)
- @base_provider = load_json(Path.named_path(:provider_config, Path.provider_base), Config::Object)
+ @base_provider = load_json(Path.named_path(:provider_config, Path.provider_base), Config::Provider)
# load provider
provider_path = Path.named_path(:provider_config, @provider_dir)
@@ -58,7 +58,7 @@ module LeapCli
@tags = load_all_json(Path.named_path([:tag_config, '*'], @provider_dir), Config::Tag)
@nodes = load_all_json(Path.named_path([:node_config, '*'], @provider_dir), Config::Node)
@common = load_json(common_path, Config::Object)
- @provider = load_json(provider_path, Config::Object)
+ @provider = load_json(provider_path, Config::Provider)
@secrets = load_json(Path.named_path(:secrets_config, @provider_dir), Config::Secrets)
### BEGIN HACK
@@ -83,8 +83,18 @@ module LeapCli
remove_disabled_nodes
end
- # validate
+ # load optional environment specific providers
validate_provider(@provider)
+ @providers = {}
+ environments.each do |env|
+ if Path.defined?(:provider_env_config)
+ provider_path = Path.named_path([:provider_env_config, env], @provider_dir)
+ providers[env] = load_json(provider_path, Config::Provider)
+ providers[env].inherit_from! @provider
+ validate_provider(providers[env])
+ end
+ end
+
end
#