screwcap 0.3.5 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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