screwcap 0.3.5 → 0.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.
@@ -0,0 +1 @@
1
+ use :unknown_file
@@ -14,3 +14,8 @@ task_for :expect, :server => :test do
14
14
  run "ls"
15
15
  end
16
16
 
17
+ task :abort_test, :server => :test do
18
+ run "this will fail", :onfailure => :failover, :abort => true
19
+ run "ls"
20
+ end
21
+
@@ -25,10 +25,6 @@ task_for :task3, :servers => [:test, :test2] do
25
25
  local "ls" #empty in tests so it doesn't pollute
26
26
  end
27
27
 
28
- task_for :seq1, :server => :test do
29
- run "1"
30
- end
31
-
32
28
  task_for :seq2, :server => :test do
33
29
  run "2"
34
30
  end
@@ -36,5 +32,3 @@ end
36
32
  task_for :non_parallel, :server => :test, :parallel => false do
37
33
  run "ls"
38
34
  end
39
-
40
- sequence :deploy, :tasks => [:seq1, :seq2]
@@ -0,0 +1,11 @@
1
+ set :pie, "moon pie"
2
+
3
+ server :test, :addresses => ["slashdot.org","google.com"], :user => "root"
4
+
5
+ command_set :my_command_set do
6
+ run "test"
7
+ end
8
+
9
+ task :my_task, :server => :test do
10
+ run "test"
11
+ end
data/test/config/use.rb CHANGED
@@ -1 +1 @@
1
- use :simple_recipe
1
+ use :super_simple_recipe
@@ -0,0 +1 @@
1
+ use "test/config/super_simple_recipe.rb"
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: screwcap
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 3
9
8
  - 5
10
- version: 0.3.5
9
+ version: "0.5"
11
10
  platform: ruby
12
11
  authors:
13
12
  - Grant Ammons
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-10-28 00:00:00 -04:00
17
+ date: 2010-11-19 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -109,8 +108,6 @@ extra_rdoc_files:
109
108
  - History.txt
110
109
  - Manifest.txt
111
110
  files:
112
- - Gemfile
113
- - Gemfile.lock
114
111
  - History.txt
115
112
  - Manifest.txt
116
113
  - README.rdoc
@@ -119,23 +116,25 @@ files:
119
116
  - bin/screwcap
120
117
  - lib/screwcap.rb
121
118
  - lib/screwcap/base.rb
122
- - lib/screwcap/deployer.rb
123
119
  - lib/screwcap/message_logger.rb
124
120
  - lib/screwcap/runner.rb
125
121
  - lib/screwcap/sequence.rb
126
122
  - lib/screwcap/server.rb
127
123
  - lib/screwcap/task.rb
124
+ - lib/screwcap/task_manager.rb
128
125
  - lib/trollop.rb
129
126
  - recipes/setup_rails.rb
127
+ - runrdoc
130
128
  - screwcap.gemspec
131
- - spec/command_set_spec.rb
132
- - spec/deployer_spec.rb
129
+ - spec/runner_spec.rb
133
130
  - spec/sequence_spec.rb
134
131
  - spec/server_spec.rb
135
132
  - spec/spec.opts
136
133
  - spec/spec_helper.rb
134
+ - spec/task_manager_spec.rb
137
135
  - spec/task_spec.rb
138
136
  - tasks/rspec.rake
137
+ - test/config/bad_use.rb
139
138
  - test/config/command_sets.rb
140
139
  - test/config/expect.rb
141
140
  - test/config/gateway.rb
@@ -143,12 +142,14 @@ files:
143
142
  - test/config/no_server.rb
144
143
  - test/config/rails_tasks.rb
145
144
  - test/config/simple_recipe.rb
145
+ - test/config/super_simple_recipe.rb
146
146
  - test/config/undefined_command_set.rb
147
147
  - test/config/undefined_item.rb
148
148
  - test/config/undefined_server.rb
149
149
  - test/config/unknown_use.rb
150
150
  - test/config/upload.rb
151
151
  - test/config/use.rb
152
+ - test/config/use2.rb
152
153
  has_rdoc: true
153
154
  homepage: http://gammons.github.com/screwcap
154
155
  licenses: []
data/Gemfile DELETED
@@ -1,14 +0,0 @@
1
- # A sample Gemfile
2
- source "http://rubygems.org"
3
-
4
- gem "net-ssh"
5
- gem "net-scp"
6
- gem "net-ssh-gateway"
7
-
8
- group :development do
9
- gem 'hoe'
10
- gem 'newgem'
11
- gem 'ruby-debug'
12
- gem 'mocha'
13
- gem 'rspec', '1.3.1'
14
- end
data/Gemfile.lock DELETED
@@ -1,49 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- RedCloth (4.2.3)
5
- activesupport (2.3.9)
6
- columnize (0.3.1)
7
- hoe (2.6.2)
8
- rake (>= 0.8.7)
9
- rubyforge (>= 2.0.4)
10
- json_pure (1.4.6)
11
- linecache (0.43)
12
- mocha (0.9.8)
13
- rake
14
- net-scp (1.0.4)
15
- net-ssh (>= 1.99.1)
16
- net-ssh (2.0.23)
17
- net-ssh-gateway (1.0.1)
18
- net-ssh (>= 1.99.1)
19
- newgem (1.5.3)
20
- RedCloth (>= 4.1.1)
21
- activesupport (~> 2.3.4)
22
- hoe (>= 2.4.0)
23
- rubigen (>= 1.5.3)
24
- syntax (>= 1.0.0)
25
- rake (0.8.7)
26
- rspec (1.3.1)
27
- rubigen (1.5.5)
28
- activesupport (~> 2.3.5)
29
- ruby-debug (0.10.3)
30
- columnize (>= 0.1)
31
- ruby-debug-base (~> 0.10.3.0)
32
- ruby-debug-base (0.10.3)
33
- linecache (>= 0.3)
34
- rubyforge (2.0.4)
35
- json_pure (>= 1.1.7)
36
- syntax (1.0.0)
37
-
38
- PLATFORMS
39
- ruby
40
-
41
- DEPENDENCIES
42
- hoe
43
- mocha
44
- net-scp
45
- net-ssh
46
- net-ssh-gateway
47
- newgem
48
- rspec (= 1.3.1)
49
- ruby-debug
@@ -1,57 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Command sets" do
4
- before(:all) do
5
- @stdout = []
6
- Deployer.any_instance.stubs(:log).with() { |msg| @stdout << msg}
7
- @deployer = Deployer.new(:recipe_file => "./test/config/command_sets.rb", :silent => true)
8
- end
9
-
10
- it "should be able to define a generic list of commands" do
11
- task = @deployer.__tasks.find {|t| t.__name == :really_simple_task }
12
- task.should have(3).__commands
13
- task.__commands.map{|c| c[:command]}.should == %w(1 2 3)
14
- end
15
-
16
- it "should be able to use deployment variables" do
17
- task = @deployer.__tasks.find {|t| t.__name == :use_command_set_no_override }
18
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
19
- task.__commands.map {|c| c[:command]}.should == ["tester","run with tester","bongo"]
20
- end
21
-
22
- it "should be able to use task variables" do
23
- task = @deployer.__tasks.find {|t| t.__name == :task_set_var }
24
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
25
- task.__commands.map {|c| c[:command]}.should == ["bojangles"]
26
- end
27
-
28
- it "should favor variables that were overridden by a task" do
29
- task = @deployer.__tasks.find {|t| t.__name == :use_command_set_with_override }
30
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
31
- task.__commands.map {|c| c[:command]}.should == ["shasta","run with shasta","bongo"]
32
- end
33
-
34
- it "should favor variables defined in the command set definition" do
35
- task = @deployer.__tasks.find {|t| t.__name == :command_set_override }
36
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
37
- task.__commands.map {|c| c[:command]}.should == ["dingle"]
38
- end
39
-
40
- it "should accept nested command sets" do
41
- task = @deployer.__tasks.find {|t| t.__name == :nested_command_set }
42
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
43
- task.__commands.map {|c| c[:command]}.should == %w(1 2 3 4)
44
- end
45
-
46
- it "nested command sets have their own variable scope" do
47
- task = @deployer.__tasks.find {|t| t.__name == :nested_scoping }
48
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
49
- task.__commands.map {|c| c[:command]}.should == %w(birdo nested birdo task)
50
- end
51
-
52
- it "should be able to call scp just like a task" do
53
- task = @deployer.__tasks.find {|t| t.__name == :task_use_scp}
54
- task.__command_sets.first.instance_eval(&task.__command_sets.first.__block)
55
- task.__commands.map {|c| c[:command]}.should == [nil]
56
- end
57
- end
@@ -1,78 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Deployers" do
4
- before(:all) do
5
- Net::SSH.stubs(:start).yields(SSHObject.new(:return_stream => :stdout, :return_data => "hostname = asdf\n"))
6
- Runner.stubs(:ssh_exec!).returns(["ok","",0,nil])
7
- end
8
-
9
- it "should complain if no server was defined" do
10
- lambda { Deployer.new(:recipe_file => "./test/config/no_server.rb", :silent => true)}.should raise_error(Screwcap::ConfigurationError)
11
- end
12
-
13
- it "should complain if there is an undefined item in a task" do
14
- lambda { Deployer.new(:recipe_file => "./test/config/undefined_item.rb", :silent => true)}.should raise_error(NoMethodError)
15
- end
16
-
17
- it "should complain if screwcap cannot find the task to run" do
18
- lambda { Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true).run! :task }.should raise_error(Screwcap::TaskNotFound)
19
- end
20
-
21
- it "should complain if a gateway has more than one address" do
22
- end
23
-
24
- it "should be able to define tasks and servers" do
25
- deployer = Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true)
26
-
27
- deployer.should have(6).__tasks
28
- deployer.should have(2).__servers
29
- end
30
-
31
- it "should be able to define variables with set" do
32
- deployer = Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true)
33
- deployer.should respond_to(:deploy_var)
34
- deployer.should respond_to(:deploy_var_2)
35
- deployer.should respond_to(:deploy_var_3)
36
-
37
- deployer.deploy_var.should == "tester"
38
- deployer.deploy_var_2.should == "bongo"
39
- deployer.deploy_var_3.should == ["one","two"]
40
- end
41
-
42
- it "should be able to define command sets" do
43
- deployer = Deployer.new(:recipe_file => "./test/config/command_sets.rb", :silent => true)
44
- deployer.should have(9).__command_sets
45
- end
46
-
47
- it "should be able to define gateways" do
48
- deployer = Deployer.new(:recipe_file => "./test/config/gateway.rb", :silent => true)
49
- deployer.should have(3).__servers
50
- deployer.__servers.select {|s| s.__options[:is_gateway] == true }.size.should == 1
51
- end
52
-
53
- it "should be able to define sequences" do
54
- deployer = Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true)
55
- deployer.should have(1).__sequences
56
- end
57
-
58
- it "should be able to run a single task" do
59
- deployer = Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true)
60
- deployer.run! :task1
61
- #lambda { deployer.run! :task1 }.should_not raise_error
62
- end
63
-
64
- it "should be able to run multiple tasks" do
65
- deployer = Deployer.new(:recipe_file => "./test/config/simple_recipe.rb", :silent => true)
66
- lambda { deployer.run! :task1, :task2 }.should_not raise_error
67
- end
68
-
69
- it "should be able to include other task files with the use keyword" do
70
- deployer = Deployer.new(:recipe_file => "./test/config/use.rb", :silent => true)
71
- deployer.should have(6).__tasks
72
- deployer.deploy_var.should == "tester"
73
- end
74
-
75
- it "should complain if we attempt to use an unknown file" do
76
- lambda {Deployer.new(:recipe_file => "./test/config/unknown_use.rb", :silent => true) }.should raise_error(Screwcap::IncludeFileNotFound)
77
- end
78
- end