chef_cap 0.1.8 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,11 +3,7 @@ source :rubygems
3
3
  gemspec
4
4
 
5
5
  group :development do
6
- gem "rspec-rails", "2.1"
7
6
  gem "wirble"
8
7
  gem "gemcutter"
9
- end
10
-
11
- group :test do
12
- gem "rspec-rails", "2.1"
8
+ gem "autotest"
13
9
  end
data/chef_cap.gemspec CHANGED
@@ -10,10 +10,11 @@ Gem::Specification.new do |s|
10
10
  s.email = ["casecommons-dev@googlegroups.com"]
11
11
  s.homepage = "https://github.com/Casecommons/chef_cap"
12
12
  s.license = "MIT"
13
- s.add_dependency('capistrano', '>= 2.5.5')
14
13
  s.summary = %q{capistrano + chef-solo == chef_cap"}
15
14
  s.description = %q{chef_cap uses chef"s JSON config format to drive both capistrano and chef-solo"}
16
15
 
16
+ s.add_dependency('capistrano', '>= 2.5.5')
17
+ s.add_development_dependency('rspec-rails', '>= 2.1')
17
18
  s.files = `git ls-files`.split("\n")
18
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
20
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -1,3 +1,3 @@
1
1
  module ChefCap
2
- VERSION = "0.1.8"
2
+ VERSION = "0.2.1"
3
3
  end
data/recipes/chef_cap.rb CHANGED
@@ -139,10 +139,17 @@ else
139
139
  raise DnaConfigurationError, "Could not find cookbooks in JSON or as a subdirectory of where your JSON is!"
140
140
  end
141
141
 
142
+ if ChefDnaParser.parsed["chef"] && ChefDnaParser.parsed["chef"]["version"]
143
+ set :chef_version, ChefDnaParser.parsed["chef"]["version"]
144
+ else
145
+ default_chef_version = "0.9.16"
146
+ set :chef_version, default_chef_version
147
+ end
148
+
142
149
  namespace :chef do
143
150
  desc "Setup chef solo on the server(s)"
144
151
  task :setup do
145
- gem_check_for_chef_cmd = "gem specification --version '>=0.9.12' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'"
152
+ gem_check_for_chef_cmd = "gem specification --version '>=#{chef_version}' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'"
146
153
  install_chef_cmd = "sudo rvm default exec gem install chef --no-ri --no-rdoc"
147
154
  sudo "rvm default exec #{gem_check_for_chef_cmd} || #{install_chef_cmd} && echo 'Chef Solo already on this server.'"
148
155
  sudo "rvm default exec which chef-solo"
@@ -365,7 +365,8 @@ describe "chef_cap" do
365
365
  @test_dna = <<-JS
366
366
  {
367
367
  "chef": {
368
- "root": "path_to_cookbooks"
368
+ "root": "path_to_cookbooks",
369
+ "version": "0.1982.1234"
369
370
  },
370
371
  "environments": {
371
372
  "some_env": {
@@ -419,7 +420,7 @@ describe "chef_cap" do
419
420
  server_session.things_that_were_set["node_hash_for_localhost"].should == {
420
421
  "environments" => {"some_env"=>{ "rails_env" => "myenv",
421
422
  "servers"=>[ {"hostname"=>"localhost", "roles"=>["role1", "role2"] }, {"hostname"=>"otherhost.com", "roles"=>["role1"]}]}},
422
- "chef" => {"root"=>"path_to_cookbooks"},
423
+ "chef" => {"root"=>"path_to_cookbooks", "version"=>"0.1982.1234"},
423
424
  "run_list" => ["foo", "bar"],
424
425
  "environment" => {"rails_env" => "myenv", "servers"=>[ {"primary" => [], "hostname"=>"localhost", "roles"=>["role1", "role2"] },
425
426
  {"primary" => [], "hostname"=>"otherhost.com", "roles"=>["role1"]}]},
@@ -472,7 +473,7 @@ describe "chef_cap" do
472
473
 
473
474
  it "sets up chef gem" do
474
475
  chef_cap.cap_servers.should_not be_empty
475
- chef_cap.should_receive(:sudo).ordered.with("rvm default exec gem specification --version '>=0.9.12' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }' || sudo rvm default exec gem install chef --no-ri --no-rdoc && echo 'Chef Solo already on this server.'").and_return("mocked")
476
+ chef_cap.should_receive(:sudo).ordered.with("rvm default exec gem specification --version '>=0.1982.1234' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }' || sudo rvm default exec gem install chef --no-ri --no-rdoc && echo 'Chef Solo already on this server.'").and_return("mocked")
476
477
  chef_cap.should_receive(:sudo).ordered.with("rvm default exec which chef-solo").and_return("mocked")
477
478
  chef_cap.cap_task["chef:setup"].call
478
479
  end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef_cap
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 8
9
- version: 0.1.8
4
+ prerelease:
5
+ version: 0.2.1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Case Commons, LLC
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-03-09 00:00:00 -05:00
13
+ date: 2011-06-10 00:00:00 -04:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,13 +21,20 @@ dependencies:
25
21
  requirements:
26
22
  - - ">="
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 2
30
- - 5
31
- - 5
32
24
  version: 2.5.5
33
25
  type: :runtime
34
26
  version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-rails
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "2.1"
36
+ type: :development
37
+ version_requirements: *id002
35
38
  description: chef_cap uses chef"s JSON config format to drive both capistrano and chef-solo"
36
39
  email:
37
40
  - casecommons-dev@googlegroups.com
@@ -91,21 +94,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
94
  requirements:
92
95
  - - ">="
93
96
  - !ruby/object:Gem::Version
94
- segments:
95
- - 0
96
97
  version: "0"
97
98
  required_rubygems_version: !ruby/object:Gem::Requirement
98
99
  none: false
99
100
  requirements:
100
101
  - - ">="
101
102
  - !ruby/object:Gem::Version
102
- segments:
103
- - 0
104
103
  version: "0"
105
104
  requirements: []
106
105
 
107
106
  rubyforge_project:
108
- rubygems_version: 1.3.7
107
+ rubygems_version: 1.6.2
109
108
  signing_key:
110
109
  specification_version: 3
111
110
  summary: capistrano + chef-solo == chef_cap"