chef_cap 0.2.4 → 0.2.5
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.
- data/.gitignore +2 -1
- data/.rvmrc +1 -1
- data/README.rdoc +13 -7
- data/lib/chef_cap/version.rb +1 -1
- data/recipes/chef_cap.rb +2 -1
- data/spec/chef_cap_spec.rb +16 -9
- metadata +45 -46
data/.gitignore
CHANGED
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm 1.9.2-
|
1
|
+
rvm 1.9.2-p180-patched@chef_cap --create
|
data/README.rdoc
CHANGED
@@ -52,20 +52,26 @@ Run chef without deploy
|
|
52
52
|
|
53
53
|
$ cap <environment> cook
|
54
54
|
|
55
|
+
Deploy a particular Git branch, tag, or revision (overriding the default)
|
56
|
+
|
57
|
+
$ cap <environment> deploy BRANCH=my_branch
|
58
|
+
$ cap <environment> deploy TAG=my_tag
|
59
|
+
$ cap <environment> deploy REVISION=abc1234
|
60
|
+
|
55
61
|
=== chef/node.json
|
56
62
|
|
57
63
|
The following JSON keys are required in your node.json file:
|
58
64
|
|
59
|
-
{ "application": { "name": NAME } }
|
60
|
-
{ "application": { "repository": REPOSITORY } }
|
61
|
-
{ "environments": { ENVIRONMENT: { "rails_env": RAILS_ENV } } }
|
62
|
-
{ "roles": { ROLE: { "run_list": [] } } }
|
63
|
-
{ "run_list": [] }
|
65
|
+
{ "application": { "name": NAME } }
|
66
|
+
{ "application": { "repository": REPOSITORY } }
|
67
|
+
{ "environments": { ENVIRONMENT: { "rails_env": RAILS_ENV } } }
|
68
|
+
{ "roles": { ROLE: { "run_list": [] } } }
|
69
|
+
{ "run_list": [] }
|
64
70
|
|
65
71
|
Optional JSON keys:
|
66
72
|
|
67
|
-
{ "environments": { ENVIRONMENT: { "role_order": { FIRST_ROLE: [OTHER_ROLES] } } } }
|
68
|
-
{ "environments": { ENVIRONMENT: { "environment_settings": ENV_HASH } } }
|
73
|
+
{ "environments": { ENVIRONMENT: { "role_order": { FIRST_ROLE: [OTHER_ROLES] } } } }
|
74
|
+
{ "environments": { ENVIRONMENT: { "environment_settings": ENV_HASH } } }
|
69
75
|
|
70
76
|
|
71
77
|
== REQUIREMENTS
|
data/lib/chef_cap/version.rb
CHANGED
data/recipes/chef_cap.rb
CHANGED
@@ -183,6 +183,7 @@ namespace :chef do
|
|
183
183
|
json_to_modify["environment"] ||= json_to_modify["environments"]["defaults"] || {} rescue {}
|
184
184
|
env_settings.each { |k, v| ChefCapHelper.recursive_merge(json_to_modify["environment"] || {}, k, v) }
|
185
185
|
|
186
|
+
json_to_modify["environment"]["roles"] = roles_for_host
|
186
187
|
json_to_modify["environment"]["revision"] = ChefCapHelper.set_revision if ChefCapHelper.has_revision?
|
187
188
|
json_to_modify["environment"]["branch"] = ChefCapHelper.set_branch if ChefCapHelper.has_branch?
|
188
189
|
json_to_modify["environment"]["servers"] = ChefCapHelper.intialize_primary_values(json_to_modify["environment"]["servers"])
|
@@ -193,7 +194,7 @@ namespace :chef do
|
|
193
194
|
set "node_hash_for_#{channel[:host].gsub(/\./, "_")}", json_to_modify
|
194
195
|
put json_to_modify.to_json, "/tmp/chef-cap-#{rails_env}-#{channel[:host]}.json", :mode => "0600"
|
195
196
|
end
|
196
|
-
|
197
|
+
end
|
197
198
|
|
198
199
|
chef.run_chef_solo
|
199
200
|
end
|
data/spec/chef_cap_spec.rb
CHANGED
@@ -422,7 +422,7 @@ describe "chef_cap" do
|
|
422
422
|
"servers"=>[ {"hostname"=>"localhost", "roles"=>["role1", "role2"] }, {"hostname"=>"otherhost.com", "roles"=>["role1"]}]}},
|
423
423
|
"chef" => {"root"=>"path_to_cookbooks", "version"=>"0.1982.1234"},
|
424
424
|
"run_list" => ["foo", "bar"],
|
425
|
-
"environment" => {"rails_env" => "myenv", "servers"=>[ {"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"] },
|
425
|
+
"environment" => {"rails_env" => "myenv", "roles" => ["role1", "role2"], "servers"=>[ {"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"] },
|
426
426
|
{"primary" => [], "hostname"=>"otherhost.com", "roles"=>["role1"]}]},
|
427
427
|
"roles" => {"role1" => {"run_list"=>["foo"]}, "role2"=>{"run_list"=>["foo", "bar"]}}}
|
428
428
|
elsif server_session.things_that_were_set.keys.include? "node_hash_for_otherhost"
|
@@ -431,7 +431,7 @@ describe "chef_cap" do
|
|
431
431
|
"servers"=>[{"hostname"=>"localhost", "roles"=>["role1", "role2"]}, {"hostname"=>"otherhost.com", "roles"=>["role1"]}]}},
|
432
432
|
"chef"=>{"root"=>"path_to_cookbooks"},
|
433
433
|
"run_list"=>["foo"],
|
434
|
-
"environment"=>{"rails_env" => "myenv", "servers"=>[{"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"]},
|
434
|
+
"environment"=>{"rails_env" => "myenv", "roles" => ["role1"], "servers"=>[{"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"]},
|
435
435
|
{"primary" => [], "hostname"=>"otherhost.com", "roles"=>["role1"]}]},
|
436
436
|
"roles"=>{"role1"=>{"run_list"=>["foo"]}, "role2"=>{"run_list"=>["foo", "bar"]}}}
|
437
437
|
end
|
@@ -757,7 +757,8 @@ describe "chef_cap" do
|
|
757
757
|
if server_session.things_that_were_set.keys.include? "node_hash_for_localhost"
|
758
758
|
server_session.things_that_were_set["node_hash_for_localhost"]["environment"].should == {"some_default"=>"yes",
|
759
759
|
"something_else"=>"okay",
|
760
|
-
"servers"=>[{"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"]}]
|
760
|
+
"servers"=>[{"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"]}],
|
761
|
+
"roles" => []}
|
761
762
|
end
|
762
763
|
end
|
763
764
|
end
|
@@ -905,12 +906,18 @@ describe "chef_cap" do
|
|
905
906
|
server_session.stub!(:put => "stubbed")
|
906
907
|
server_session.stub!(:sudo => "stubbed")
|
907
908
|
server_session.should_receive(:set).with("node_hash_for_localhost",
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
909
|
+
{
|
910
|
+
"chef"=>{"root"=>"path_to_cookbooks"},
|
911
|
+
"environments" => { "some_env"=>{"servers"=>[{"hostname"=>"localhost", "roles"=>["role1", "role2"]}]}},
|
912
|
+
"shared"=>{"foo"=>"bar"},
|
913
|
+
"foo"=>"bar",
|
914
|
+
"something"=>"other",
|
915
|
+
"environment"=> {"revision"=>"123", "branch" => "somebranch",
|
916
|
+
"roles" => ["role1"],
|
917
|
+
"servers"=>[{"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"]}]},
|
918
|
+
"roles"=>{"role1"=>{"something"=>"other"}},
|
919
|
+
"run_list"=>nil
|
920
|
+
})
|
914
921
|
}
|
915
922
|
chef_cap.cap_task["chef:deploy"].call
|
916
923
|
end
|
metadata
CHANGED
@@ -1,50 +1,46 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef_cap
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.5
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Case Commons, LLC
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-17 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: capistrano
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2153395380 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
24
21
|
version: 2.5.5
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec-rails
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *2153395380
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec-rails
|
27
|
+
requirement: &2153394260 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.1'
|
36
33
|
type: :development
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2153394260
|
36
|
+
description: chef_cap uses chef"s JSON config format to drive both capistrano and
|
37
|
+
chef-solo"
|
38
|
+
email:
|
40
39
|
- casecommons-dev@googlegroups.com
|
41
40
|
executables: []
|
42
|
-
|
43
41
|
extensions: []
|
44
|
-
|
45
42
|
extra_rdoc_files: []
|
46
|
-
|
47
|
-
files:
|
43
|
+
files:
|
48
44
|
- .gitignore
|
49
45
|
- .rspec
|
50
46
|
- .rvmrc
|
@@ -80,35 +76,38 @@ files:
|
|
80
76
|
- spec/chef_cap_spec.rb
|
81
77
|
- spec/chef_dna_parser_spec.rb
|
82
78
|
- spec/spec_helper.rb
|
83
|
-
has_rdoc: true
|
84
79
|
homepage: https://github.com/Casecommons/chef_cap
|
85
|
-
licenses:
|
80
|
+
licenses:
|
86
81
|
- MIT
|
87
82
|
post_install_message:
|
88
83
|
rdoc_options: []
|
89
|
-
|
90
|
-
require_paths:
|
84
|
+
require_paths:
|
91
85
|
- lib
|
92
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
87
|
none: false
|
94
|
-
requirements:
|
95
|
-
- -
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version:
|
98
|
-
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
hash: 3095980632773080420
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
96
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version:
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
hash: 3095980632773080420
|
104
104
|
requirements: []
|
105
|
-
|
106
105
|
rubyforge_project:
|
107
|
-
rubygems_version: 1.
|
106
|
+
rubygems_version: 1.8.11
|
108
107
|
signing_key:
|
109
108
|
specification_version: 3
|
110
109
|
summary: capistrano + chef-solo == chef_cap"
|
111
|
-
test_files:
|
110
|
+
test_files:
|
112
111
|
- spec/chef_cap_configuration_spec.rb
|
113
112
|
- spec/chef_cap_helper_spec.rb
|
114
113
|
- spec/chef_cap_mock_cap.rb
|