taste_tester 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -33,7 +33,9 @@ module TasteTester
33
33
  @name = name
34
34
  @user = ENV['USER']
35
35
  @server = server
36
- @tunnel = TasteTester::Tunnel.new(@name, @server)
36
+ if TasteTester::Config.use_ssh_tunnels
37
+ @tunnel = TasteTester::Tunnel.new(@name, @server)
38
+ end
37
39
  end
38
40
 
39
41
  def runchef
@@ -69,11 +71,14 @@ module TasteTester
69
71
  def test
70
72
  logger.warn("Taste-testing on #{@name}")
71
73
 
72
- # Nuke any existing tunnels that may be there
73
- TasteTester::Tunnel.kill(@name)
74
+ if TasteTester::Config.use_ssh_tunnels
75
+ # Nuke any existing tunnels that may be there
76
+ TasteTester::Tunnel.kill(@name)
77
+
78
+ # Then setup the tunnel
79
+ @tunnel.run
80
+ end
74
81
 
75
- # Then setup the tunnel
76
- @tunnel.run
77
82
  @serialized_config = Base64.encode64(config).gsub(/\n/, '')
78
83
 
79
84
  # Then setup the testing
@@ -105,7 +110,9 @@ module TasteTester
105
110
  def untest
106
111
  logger.warn("Removing #{@name} from taste-tester")
107
112
  ssh = TasteTester::SSH.new(@name)
108
- TasteTester::Tunnel.kill(@name)
113
+ if TasteTester::Config.use_ssh_tunnels
114
+ TasteTester::Tunnel.kill(@name)
115
+ end
109
116
  ssh << 'rm -vf /etc/chef/client.rb'
110
117
  ssh << 'rm -vf /etc/chef/client-taste-tester.rb'
111
118
  ssh << 'ln -vs /etc/chef/client-prod.rb /etc/chef/client.rb'
@@ -154,9 +161,16 @@ module TasteTester
154
161
  def keeptesting
155
162
  logger.warn("Renewing taste-tester on #{@name} until" +
156
163
  " #{TasteTester::Config.testing_end_time}")
157
- TasteTester::Tunnel.kill(@name)
158
- @tunnel = TasteTester::Tunnel.new(@name, @server)
159
- @tunnel.run
164
+ if TasteTester::Config.use_ssh_tunnels
165
+ TasteTester::Tunnel.kill(@name)
166
+ @tunnel = TasteTester::Tunnel.new(@name, @server)
167
+ @tunnel.run
168
+ else
169
+ ssh = TasteTester::SSH.new(@name)
170
+ ssh << "touch -t #{TasteTester::Config.testing_end_time}" +
171
+ " #{TasteTester::Config.timestamp_file}"
172
+ ssh.run!
173
+ end
160
174
  end
161
175
 
162
176
  private
@@ -50,8 +50,18 @@ module TasteTester
50
50
  # If we are using SSH tunneling listen on localhost, otherwise listen
51
51
  # on all addresses - both v4 and v6. Note that on localhost, ::1 is
52
52
  # v6-only, so we default to 127.0.0.1 instead.
53
- @addr = TasteTester::Config.use_ssh_tunnels ? '127.0.0.1' : '::'
54
- @host = 'localhost'
53
+ if TasteTester::Config.use_ssh_tunnels
54
+ @addr = '127.0.0.1'
55
+ @host = 'localhost'
56
+ else
57
+ @addr = '::'
58
+ begin
59
+ @host = Socket.gethostname
60
+ rescue
61
+ logger.error('Unable to find fqdn')
62
+ exit 1
63
+ end
64
+ end
55
65
  end
56
66
 
57
67
  def start
@@ -48,8 +48,9 @@ module TasteTester
48
48
  " touch -t #{TasteTester::Config.testing_end_time}" +
49
49
  " #{TasteTester::Config.timestamp_file} && sleep #{@delta_secs}"
50
50
  cmd = "ssh -T -o BatchMode=yes -o ConnectTimeout=#{@timeout} " +
51
- "-o ExitOnForwardFailure=yes -f -R #{@port}:localhost:" +
52
- "#{@server.port} root@#{@host} \"#{cmds}\""
51
+ '-o ServerAliveInterval=10 -o ServerAliveCountMax=6 ' +
52
+ "-f -R #{@port}:localhost:#{@server.port} " +
53
+ "root@#{@host} \"#{cmds}\""
53
54
  cmd
54
55
  end
55
56
 
@@ -60,7 +61,7 @@ module TasteTester
60
61
  # to true so it doesn't mess up other things... even though this is
61
62
  # the only thing we're currently executing in this SSH.
62
63
  ssh << "( [ -s #{TasteTester::Config.timestamp_file} ]" +
63
- " && kill -- -\$(cat #{TasteTester::Config.timestamp_file}); true )"
64
+ " && kill -9 -- -\$(cat #{TasteTester::Config.timestamp_file}); true )"
64
65
  ssh.run!
65
66
  end
66
67
  end
metadata CHANGED
@@ -1,75 +1,74 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: taste_tester
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Phil Dibowitz
14
9
  - Marcin Sawicki
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2014-09-05 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2014-09-23 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: mixlib-config
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
33
23
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: colorize
37
24
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
39
26
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: colorize
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
47
39
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: between_meals
51
40
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
41
+ version_requirements: !ruby/object:Gem::Requirement
53
42
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: between_meals
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
61
55
  type: :runtime
62
- version_requirements: *id003
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
63
  description: Utility for testing Chef changes using chef-zero
64
64
  email:
65
- executables:
65
+ executables:
66
66
  - taste-tester
67
67
  extensions: []
68
-
69
- extra_rdoc_files:
68
+ extra_rdoc_files:
70
69
  - README.md
71
70
  - LICENSE
72
- files:
71
+ files:
73
72
  - README.md
74
73
  - LICENSE
75
74
  - lib/taste_tester/host.rb
@@ -85,37 +84,28 @@ files:
85
84
  - bin/taste-tester
86
85
  - scripts/taste-untester
87
86
  homepage: https://github.com/facebook/taste-tester
88
- licenses:
87
+ licenses:
89
88
  - Apache
90
89
  post_install_message:
91
90
  rdoc_options: []
92
-
93
- require_paths:
91
+ require_paths:
94
92
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
93
+ required_ruby_version: !ruby/object:Gem::Requirement
96
94
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
104
- required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
100
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
113
105
  requirements: []
114
-
115
106
  rubyforge_project:
116
- rubygems_version: 1.8.5
107
+ rubygems_version: 1.8.29
117
108
  signing_key:
118
109
  specification_version: 3
119
110
  summary: Taste Tester
120
111
  test_files: []
121
-