pec 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/lib/pec.rb +10 -0
- data/lib/pec/configure/user_data.rb +4 -3
- data/lib/pec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae9991c84cf924eeded0c16490deff591c71818d
|
4
|
+
data.tar.gz: b98a208107bef4732f3e4d48c17655f7d06de6bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f56a90b1cbfeeeff1654ff0cd6e7a6cd625976aa49cd438f848ba0f8998c47281eec54429f678bd07cf3459a49b188da59a59d23439a32223c480830936d8b4
|
7
|
+
data.tar.gz: 2059f9a12057dbb4c64bbb31bdd88298df94b4da33db613598a3710cfb6fb1de3fe2ae53b9e4512fcb4d1d66e4c1b462c47a9bb7ce64af29683b6d44fff82226
|
data/Gemfile
CHANGED
data/lib/pec.rb
CHANGED
@@ -31,3 +31,13 @@ require "pec/cli"
|
|
31
31
|
module Pec
|
32
32
|
end
|
33
33
|
|
34
|
+
class ::Hash
|
35
|
+
def deep_merge(second)
|
36
|
+
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
|
37
|
+
self.merge(second.to_h, &merger)
|
38
|
+
end
|
39
|
+
def deep_merge!(second)
|
40
|
+
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
|
41
|
+
self.merge!(second.to_h, &merger)
|
42
|
+
end
|
43
|
+
end
|
@@ -6,8 +6,8 @@ module Pec
|
|
6
6
|
def make(config, ports)
|
7
7
|
user_data = {}
|
8
8
|
user_data["write_files"] = make_port_content(config, ports) if ports
|
9
|
-
user_data.
|
10
|
-
user_data.
|
9
|
+
user_data.deep_merge!(config.user_data) if config.user_data
|
10
|
+
user_data.deep_merge!(get_template(config)) if get_template(config)
|
11
11
|
Base64.encode64("#cloud-config\n" + user_data.to_yaml)
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ module Pec
|
|
15
15
|
config.templates.inject({}) do |merge_template, template|
|
16
16
|
template.to_s.concat('.yaml') unless template.to_s.match(/.*\.yaml/)
|
17
17
|
raise(Pec::Errors::UserData, "template:#{template} is not fond!") unless FileTest.exist?("user_datas/#{template}")
|
18
|
-
merge_template.
|
18
|
+
merge_template.deep_merge!(YAML.load_file("user_datas/#{template}").to_hash)
|
19
19
|
end if config.templates
|
20
20
|
end
|
21
21
|
|
@@ -34,3 +34,4 @@ module Pec
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
data/lib/pec/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kazuhiko yamashita
|
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
190
|
version: '0'
|
191
191
|
requirements: []
|
192
192
|
rubyforge_project:
|
193
|
-
rubygems_version: 2.
|
193
|
+
rubygems_version: 2.2.2
|
194
194
|
signing_key:
|
195
195
|
specification_version: 4
|
196
196
|
summary: openstack vm booter.
|