taste_tester 0.0.4 → 0.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.
@@ -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
-