aboutsummaryrefslogtreecommitdiff
path: root/lib/leap_cli/config/manager.rb
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2012-11-14 23:08:59 -0800
committerelijah <elijah@riseup.net>2012-11-14 23:08:59 -0800
commit5bafe7947a20b1d6208577ad6151053701243382 (patch)
tree44fb29869d78c24efa2b7f336fa62a5decd6c61d /lib/leap_cli/config/manager.rb
parenta36a9a2c15be7db9f77dc1ef2be09652b6954ec3 (diff)
downloadleap_cli-5bafe7947a20b1d6208577ad6151053701243382.tar.gz
leap_cli-5bafe7947a20b1d6208577ad6151053701243382.tar.bz2
inherit .json from leap_platform/provider_base
Diffstat (limited to 'lib/leap_cli/config/manager.rb')
-rw-r--r--lib/leap_cli/config/manager.rb42
1 files changed, 30 insertions, 12 deletions
diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb
index 7406f1c..e90b589 100644
--- a/lib/leap_cli/config/manager.rb
+++ b/lib/leap_cli/config/manager.rb
@@ -17,21 +17,37 @@ module LeapCli
#
# load .json configuration files
#
- def load(provider_dir=Path.provider)
- @provider_dir = provider_dir
- @services = load_all_json(Path.named_path([:service_config, '*'], provider_dir))
- @tags = load_all_json(Path.named_path([:tag_config, '*'], provider_dir))
- @nodes = load_all_json(Path.named_path([:node_config, '*'], provider_dir))
- @common = load_json(Path.named_path(:common_config, provider_dir))
- @provider = load_json(Path.named_path(:provider_config, provider_dir))
- @secrets = load_json(Path.named_path(:secrets_config, provider_dir))
-
- Util::assert!(@provider, "Failed to load provider.json")
- Util::assert!(@common, "Failed to load common.json")
+ def load
+ @provider_dir = Path.provider
+ # load base
+ base_services = load_all_json(Path.named_path([:service_config, '*'], Path.provider_base))
+ base_tags = load_all_json(Path.named_path([:tag_config, '*'], Path.provider_base))
+ base_common = load_json(Path.named_path(:common_config, Path.provider_base))
+ base_provider = load_json(Path.named_path(:provider_config, Path.provider_base))
+
+ # load provider
+ provider_path = Path.named_path(:provider_config, @provider_dir)
+ common_path = Path.named_path(:common_config, @provider_dir)
+ Util::assert_files_exist!(provider_path, common_path)
+ @services = load_all_json(Path.named_path([:service_config, '*'], @provider_dir))
+ @tags = load_all_json(Path.named_path([:tag_config, '*'], @provider_dir))
+ @nodes = load_all_json(Path.named_path([:node_config, '*'], @provider_dir))
+ @common = load_json(common_path)
+ @provider = load_json(provider_path)
+ @secrets = load_json(Path.named_path(:secrets_config, @provider_dir))
+
+ # inherit
+ @services.inherit_from! base_services
+ @tags.inherit_from! base_tags
+ @common.inherit_from! base_common
+ @provider.inherit_from! base_provider
@nodes.each do |name, node|
@nodes[name] = apply_inheritance(node)
end
+
+ # validate
+ validate_provider(@provider)
end
#
@@ -244,7 +260,9 @@ module LeapCli
#
PRIVATE_IP_RANGES = /(^127\.0\.0\.1)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)/
def validate_provider(provider)
- Util::assert! provider.vagrant.network =~ PRIVATE_IP_RANGES, 'provider.json error: vagrant.network is not a local private network'
+ Util::assert! provider.vagrant.network =~ PRIVATE_IP_RANGES do
+ log 0, :error, 'in provider.json: vagrant.network is not a local private network'
+ end
end
end