:inspect_service
elsif path_match?(:tag_config, full_path)
:inspect_tag
- elsif path_match?(:provider_config, full_path)
+ elsif path_match?(:provider_config, full_path) || path_match?(:provider_env_config, full_path)
:inspect_provider
elsif path_match?(:common_config, full_path)
:inspect_common
def inspect_provider(arg, options)
if options[:base]
inspect_json manager.base_provider
+ elsif arg =~ /provider\.(.*)\.json/
+ inspect_json manager.providers[$1]
else
inspect_json manager.provider
end
end
def inspect_json(config)
- puts JSON.sorted_generate(config)
+ if config
+ puts JSON.sorted_generate(config)
+ end
end
def path_match?(path_symbol, path)
## 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
#
@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)
@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
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
#