gusteau 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ ## 1.1.1 / 2013-07-14
2
+ * Bugfix: environment attributes got altered by node ones
3
+
1
4
  ## 1.0.7.dev / 2013-07-10
2
5
  * Replace the fully-blown test-kitchen with a simpler serverspec setup
3
6
  * Randomise Vagrant IP address in the template
data/README.md CHANGED
@@ -27,7 +27,7 @@ Some of the features include:
27
27
  Gusteau is a Ruby gem:
28
28
 
29
29
  ```
30
- gem install gusteau --pre
30
+ gem install gusteau
31
31
  ```
32
32
 
33
33
  The following command generates an example Chef-repo:
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
22
22
  gem.add_dependency 'coderay'
23
23
  gem.add_dependency 'json'
24
24
  gem.add_dependency 'hashie'
25
- gem.add_dependency 'hash-deep-merge'
25
+ gem.add_dependency 'deep_merge'
26
26
  gem.add_dependency 'net-ssh', '>= 2.2.2'
27
27
  gem.add_dependency 'archive-tar-minitar', '>= 0.5.2'
28
28
 
@@ -1,5 +1,5 @@
1
1
  require 'gusteau/erb'
2
- require 'hash_deep_merge'
2
+ require 'gusteau/helpers'
3
3
 
4
4
  module Gusteau
5
5
  class Config
@@ -56,12 +56,13 @@ module Gusteau
56
56
  #
57
57
  def build_node(node_name, env_hash, node_hash)
58
58
  node_config = {
59
- 'server' => node_hash,
60
- 'attributes' => (env_hash['attributes'] || {}).deep_merge(node_hash['attributes'] || {}),
59
+ 'server' => node_hash.slice('host', 'port', 'user', 'password', 'platform', 'vagrant'),
60
+ 'attributes' => (node_hash['attributes'] || {}).deep_merge(env_hash['attributes'] || {}),
61
61
  'run_list' => node_hash['run_list'] || env_hash['run_list'],
62
62
  'before' => env_hash['before'] || @config['before'],
63
63
  'after' => env_hash['after'] || @config['after']
64
64
  }
65
+ node_config['server'].delete 'attributes'
65
66
  Gusteau::Node.new(node_name, node_config)
66
67
  end
67
68
  end
@@ -0,0 +1,7 @@
1
+ require 'deep_merge'
2
+
3
+ class Hash
4
+ def slice *keys
5
+ select{|k| keys.member?(k)}
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Gusteau
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -10,6 +10,7 @@ environments:
10
10
 
11
11
  production:
12
12
  attributes:
13
+ net: { hostname: prod }
13
14
  users:
14
15
  - alex
15
16
  - simon
@@ -23,12 +24,14 @@ environments:
23
24
  <<: *default_node
24
25
  host: db.myapp.com
25
26
  attributes:
27
+ net: { hostname: prod-db }
26
28
  mysql:
27
29
  server_root_password: prodsecret
28
30
  www:
29
31
  <<: *default_node
30
32
  host: www.myapp.com
31
33
  attributes:
34
+ net: { hostname: prod-www }
32
35
  nginx:
33
36
  workers: 4
34
37
  run_list: [ 'recipe[varnish]', 'recipe[nginx]' ]
@@ -26,6 +26,7 @@ describe Gusteau::Config do
26
26
 
27
27
  it "should deeply merge the attributes" do
28
28
  nodes['production-db'].config['attributes'].must_equal({
29
+ 'net' => {'hostname' => 'prod-db'},
29
30
  'users' => ['alex', 'simon'],
30
31
  'mysql' => {'server_port' => 3307, 'server_root_password' => 'prodsecret' }
31
32
  })
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gusteau
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-07-10 00:00:00.000000000 Z
13
+ date: 2013-07-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: optitron
@@ -93,7 +93,7 @@ dependencies:
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  - !ruby/object:Gem::Dependency
96
- name: hash-deep-merge
96
+ name: deep_merge
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  none: false
99
99
  requirements:
@@ -249,6 +249,7 @@ files:
249
249
  - lib/gusteau/compressed_tar_stream.rb
250
250
  - lib/gusteau/config.rb
251
251
  - lib/gusteau/erb.rb
252
+ - lib/gusteau/helpers.rb
252
253
  - lib/gusteau/log.rb
253
254
  - lib/gusteau/node.rb
254
255
  - lib/gusteau/server.rb
@@ -301,7 +302,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
301
302
  version: '0'
302
303
  segments:
303
304
  - 0
304
- hash: -4376898351999153113
305
+ hash: -340047835644286635
305
306
  required_rubygems_version: !ruby/object:Gem::Requirement
306
307
  none: false
307
308
  requirements:
@@ -310,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
311
  version: '0'
311
312
  segments:
312
313
  - 0
313
- hash: -4376898351999153113
314
+ hash: -340047835644286635
314
315
  requirements: []
315
316
  rubyforge_project:
316
317
  rubygems_version: 1.8.23