kondate 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +7 -0
- data/README.md +14 -0
- data/lib/kondate.rb +4 -2
- data/lib/kondate/cli.rb +1 -1
- data/lib/kondate/hash_ext.rb +42 -0
- data/lib/kondate/property_builder.rb +3 -3
- data/lib/kondate/version.rb +1 -1
- metadata +3 -3
- data/lib/ext/hash/deep_merge.rb +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38db840e774d8575edff8aa3dbbd3d90d46e9dbb
|
4
|
+
data.tar.gz: 4988f05f9ff465ead90e59abc233c6101f46d0f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcfa3c75c22e6915c0fe3f234b9c1046476ebcf311a346e5f029eeb9fb9722f63d0f8862513af02147127ab8eadf0920660a9ebfe9c4786967bc9d73d7fea988
|
7
|
+
data.tar.gz: 9caa081558c981e425fbb34d567b7be60bc1ccd7e7dd2f7a60c5951ad0e7c1eec07ec821ff920f729376bebd257a26d4680c24759ab6523036f7e05bdf577d40
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -223,6 +223,8 @@ set :set_property, YAML.load_file(ENV['TARGET_NODE_FILE'])
|
|
223
223
|
|
224
224
|
because these ENVs are passed by `kondate serverspec`.
|
225
225
|
|
226
|
+
See [templates/spec/spec_helper.rb](./lib/kondate/templates/spec/spec_helper.rb) for an example.
|
227
|
+
|
226
228
|
## Host Plugin
|
227
229
|
|
228
230
|
The default reads `hosts.yml` to resolve roles of a host, but
|
@@ -281,6 +283,18 @@ host_plugin:
|
|
281
283
|
|
282
284
|
`config.type` and `config.path` is available in the above config.
|
283
285
|
|
286
|
+
## Development
|
287
|
+
|
288
|
+
```
|
289
|
+
bundle exec exe/kondate generate
|
290
|
+
vagrant up
|
291
|
+
```
|
292
|
+
|
293
|
+
```
|
294
|
+
bundle exec exe/kondate itamae vagrant-centos --role sample
|
295
|
+
bundle exec exe/kondate serverspec vagrant-centos --role sample
|
296
|
+
```
|
297
|
+
|
284
298
|
## ToDo
|
285
299
|
|
286
300
|
write tests
|
data/lib/kondate.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
|
1
|
+
module Kondate
|
2
|
+
ROOT = File.expand_path('../..', __FILE__)
|
3
|
+
end
|
2
4
|
|
3
5
|
require "kondate/version"
|
4
6
|
require "kondate/config"
|
5
7
|
require "kondate/property_builder"
|
6
|
-
require "
|
8
|
+
require "kondate/hash_ext"
|
7
9
|
require "kondate/string_util"
|
8
10
|
require "kondate/error"
|
data/lib/kondate/cli.rb
CHANGED
@@ -31,7 +31,7 @@ module Kondate
|
|
31
31
|
FileUtils.mkdir_p(File.join(target_dir, dir)) unless @options[:dry_run]
|
32
32
|
end
|
33
33
|
|
34
|
-
templates_dir = File.join(
|
34
|
+
templates_dir = File.join(Kondate::ROOT, 'lib', 'kondate', 'templates')
|
35
35
|
templates_dir_length = templates_dir.length
|
36
36
|
Find.find(templates_dir).select {|f| File.file?(f) }.each do |src|
|
37
37
|
dst = File.join(target_dir, src[templates_dir_length+1 .. -1])
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# activesupport/core_ext/hash/deep_merge.rb
|
2
|
+
module Kondate
|
3
|
+
class HashExt < ::Hash
|
4
|
+
# Returns a new hash with +self+ and +other_hash+ merged recursively.
|
5
|
+
#
|
6
|
+
# h1 = { a: true, b: { c: [1, 2, 3] } }
|
7
|
+
# h2 = { a: false, b: { x: [3, 4, 5] } }
|
8
|
+
#
|
9
|
+
# h1.deep_merge(h2) #=> { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
|
10
|
+
#
|
11
|
+
# Like with Hash#merge in the standard library, a block can be provided
|
12
|
+
# to merge values:
|
13
|
+
#
|
14
|
+
# h1 = { a: 100, b: 200, c: { c1: 100 } }
|
15
|
+
# h2 = { b: 250, c: { c1: 200 } }
|
16
|
+
# h1.deep_merge(h2) { |key, this_val, other_val| this_val + other_val }
|
17
|
+
# # => { a: 100, b: 450, c: { c1: 300 } }
|
18
|
+
def deep_merge(other_hash, &block)
|
19
|
+
dup.deep_merge!(other_hash, &block)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Same as +deep_merge+, but modifies +self+.
|
23
|
+
def deep_merge!(other_hash, &block)
|
24
|
+
other_hash.each_pair do |current_key, other_value|
|
25
|
+
this_value = self[current_key]
|
26
|
+
|
27
|
+
self[current_key] = if this_value.is_a?(Hash) && other_value.is_a?(Hash)
|
28
|
+
_this_value = HashExt.new.replace(this_value)
|
29
|
+
_this_value.deep_merge(other_value, &block).to_h
|
30
|
+
else
|
31
|
+
if block_given? && key?(current_key)
|
32
|
+
block.call(current_key, this_value, other_value)
|
33
|
+
else
|
34
|
+
other_value
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
self
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -74,14 +74,14 @@ module Kondate
|
|
74
74
|
role_property = get_content(role_file(role))
|
75
75
|
secret_role_property = get_content(secret_role_file(role))
|
76
76
|
|
77
|
-
property = {
|
77
|
+
property = HashExt.new.deep_merge!({
|
78
78
|
'role' => role,
|
79
79
|
'roles' => roles,
|
80
80
|
'attributes' => {},
|
81
|
-
}.deep_merge!(role_property).
|
81
|
+
}).deep_merge!(role_property).
|
82
82
|
deep_merge!(secret_role_property).
|
83
83
|
deep_merge!(node_property).
|
84
|
-
deep_merge!(secret_node_property)
|
84
|
+
deep_merge!(secret_node_property).to_h
|
85
85
|
|
86
86
|
# filter out the recipe
|
87
87
|
if filter_recipes and !filter_recipes.empty?
|
data/lib/kondate/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kondate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sonots
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: itamae
|
@@ -133,7 +133,6 @@ files:
|
|
133
133
|
- exe/kondate
|
134
134
|
- exe/serverspec-kondate
|
135
135
|
- kondate.gemspec
|
136
|
-
- lib/ext/hash/deep_merge.rb
|
137
136
|
- lib/ext/itamae/attributes.rb
|
138
137
|
- lib/ext/itamae/kondate.rb
|
139
138
|
- lib/ext/serverspec/attributes.rb
|
@@ -142,6 +141,7 @@ files:
|
|
142
141
|
- lib/kondate/cli.rb
|
143
142
|
- lib/kondate/config.rb
|
144
143
|
- lib/kondate/error.rb
|
144
|
+
- lib/kondate/hash_ext.rb
|
145
145
|
- lib/kondate/host_plugin/file.rb
|
146
146
|
- lib/kondate/property_builder.rb
|
147
147
|
- lib/kondate/string_util.rb
|
data/lib/ext/hash/deep_merge.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# activesupport/core_ext/hash/deep_merge.rb
|
2
|
-
class Hash
|
3
|
-
# Returns a new hash with +self+ and +other_hash+ merged recursively.
|
4
|
-
#
|
5
|
-
# h1 = { a: true, b: { c: [1, 2, 3] } }
|
6
|
-
# h2 = { a: false, b: { x: [3, 4, 5] } }
|
7
|
-
#
|
8
|
-
# h1.deep_merge(h2) #=> { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
|
9
|
-
#
|
10
|
-
# Like with Hash#merge in the standard library, a block can be provided
|
11
|
-
# to merge values:
|
12
|
-
#
|
13
|
-
# h1 = { a: 100, b: 200, c: { c1: 100 } }
|
14
|
-
# h2 = { b: 250, c: { c1: 200 } }
|
15
|
-
# h1.deep_merge(h2) { |key, this_val, other_val| this_val + other_val }
|
16
|
-
# # => { a: 100, b: 450, c: { c1: 300 } }
|
17
|
-
def deep_merge(other_hash, &block)
|
18
|
-
dup.deep_merge!(other_hash, &block)
|
19
|
-
end
|
20
|
-
|
21
|
-
# Same as +deep_merge+, but modifies +self+.
|
22
|
-
def deep_merge!(other_hash, &block)
|
23
|
-
other_hash.each_pair do |current_key, other_value|
|
24
|
-
this_value = self[current_key]
|
25
|
-
|
26
|
-
self[current_key] = if this_value.is_a?(Hash) && other_value.is_a?(Hash)
|
27
|
-
this_value.deep_merge(other_value, &block)
|
28
|
-
else
|
29
|
-
if block_given? && key?(current_key)
|
30
|
-
block.call(current_key, this_value, other_value)
|
31
|
-
else
|
32
|
-
other_value
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
self
|
38
|
-
end
|
39
|
-
end
|