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.
- data/lib/taste_tester/host.rb +23 -9
- data/lib/taste_tester/server.rb +12 -2
- data/lib/taste_tester/tunnel.rb +4 -3
- metadata +61 -71
data/lib/taste_tester/host.rb
CHANGED
@@ -33,7 +33,9 @@ module TasteTester
|
|
33
33
|
@name = name
|
34
34
|
@user = ENV['USER']
|
35
35
|
@server = server
|
36
|
-
|
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
|
-
|
73
|
-
|
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::
|
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::
|
158
|
-
|
159
|
-
|
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
|
data/lib/taste_tester/server.rb
CHANGED
@@ -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
|
-
|
54
|
-
|
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
|
data/lib/taste_tester/tunnel.rb
CHANGED
@@ -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
|
-
|
52
|
-
"#{@
|
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
|
-
|
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
|
-
|
20
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
26
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
42
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
-
|
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
|
-
|
101
|
-
|
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
|
-
|
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.
|
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
|
-
|