lbspec 0.2.6 → 0.2.7

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 86e46129e9a44bc560ec269a223ae968e0bcb307
4
+ data.tar.gz: df753021edf7e751a0a8d3e84e6555fec95bb615
5
+ SHA512:
6
+ metadata.gz: 9590196fd3c452ca5c776d1b58ac1bb4be30edc43e4fbb21e32028bee97993d9cbffffcd71cfc243cec368a52fdc718990c8921ae4f84d48fcca9130c6ebbcc5
7
+ data.tar.gz: 2c36467d20e08a8a11eb83ecf0138c1dad5ae7072f165ed419668fac40c69f9440f54b5302720448fd9d1a5e3c613d42f3ad4171278f770df6406bcb9a08dff4
@@ -19,6 +19,7 @@ module Lbspec
19
19
  @nodes_connected = []
20
20
  @result = false
21
21
  @output = []
22
+ Util.log.debug("#{self.class} initialized #{inspect}")
22
23
  end
23
24
 
24
25
  def open
@@ -13,6 +13,7 @@ module Lbspec
13
13
  @application = options[:application] ? options[:application] : nil
14
14
  @path = options[:path] if options[:path]
15
15
  @options = options[:options] ? options[:options] : {}
16
+ Util.log.debug("#{self.class} initialized #{inspect}")
16
17
  end
17
18
 
18
19
  def send(prove = nil)
@@ -6,6 +6,8 @@ require 'lbspec'
6
6
 
7
7
  RSpec::Matchers.define :respond do |expect|
8
8
  match do |vhost|
9
+ fail ArgumentError, '#respond must have non-nil argument' unless expect
10
+ log.debug("#respond(#{expect.inspect}) is called")
9
11
  @expect = expect
10
12
  request =
11
13
  Lbspec::Request.new(vhost, @from,
@@ -40,16 +42,19 @@ RSpec::Matchers.define :respond do |expect|
40
42
  end
41
43
 
42
44
  chain :from do |from|
45
+ fail ArgumentError, '#from must have non-nil argument' unless from
43
46
  @from = from
44
47
  @chain_str = Lbspec::Util.add_string(@chain_str, " from #{from}")
45
48
  end
46
49
 
47
50
  chain :path do |path|
51
+ fail ArgumentError, '#path must have non-nil argument' unless path
48
52
  @path = path
49
53
  @chain_str = Lbspec::Util.add_string(@chain_str, " via #{path}")
50
54
  end
51
55
 
52
56
  chain :with do |string|
57
+ fail ArgumentError, '#with must have non-nil argument' unless string
53
58
  @string = string
54
59
  @chain_str = Lbspec::Util.add_string(@chain_str, " via #{string}")
55
60
  end
@@ -77,4 +82,8 @@ RSpec::Matchers.define :respond do |expect|
77
82
  result << ", but did#{negation}.\n" + "requested:\n"
78
83
  result << request_str.gsub(/^/, ' ')
79
84
  end
85
+
86
+ def log
87
+ Lbspec::Util.log
88
+ end
80
89
  end
@@ -6,6 +6,8 @@ require 'lbspec'
6
6
 
7
7
  RSpec::Matchers.define :transfer do |nodes|
8
8
  match do |vhost|
9
+ fail ArgumentError, '#transfer must have non-nil argument' unless nodes
10
+ log.debug("#transfer(#{nodes.inspect}) is called")
9
11
  prove = Lbspec::Util.create_prove
10
12
  capture =
11
13
  Lbspec::Capture.new(nodes, @port, prove, @include_str)
@@ -21,6 +23,7 @@ RSpec::Matchers.define :transfer do |nodes|
21
23
  end
22
24
 
23
25
  chain :port do |port|
26
+ fail ArgumentError, '#port must have non-nil argument' unless port
24
27
  @port = port
25
28
  @chain_str = Lbspec::Util.add_string(@chain_str, " port #{port}")
26
29
  end
@@ -48,16 +51,19 @@ RSpec::Matchers.define :transfer do |nodes|
48
51
  end
49
52
 
50
53
  chain :from do |from|
54
+ fail ArgumentError, '#from must have non-nil argument' unless from
51
55
  @from = from
52
56
  @chain_str = Lbspec::Util.add_string(@chain_str, " from #{from}")
53
57
  end
54
58
 
55
59
  chain :include do |str|
60
+ fail ArgumentError, '#include must have non-nil argument' unless str
56
61
  @include_str = str
57
62
  @chain_str = Lbspec::Util.add_string(@chain_str, " including #{str}")
58
63
  end
59
64
 
60
65
  chain :path do |path|
66
+ fail ArgumentError, '#path must have non-nil argument' unless path
61
67
  @path = path
62
68
  @chain_str = Lbspec::Util.add_string(@chain_str, " via #{path}")
63
69
  end
@@ -98,4 +104,8 @@ RSpec::Matchers.define :transfer do |nodes|
98
104
  result << o[:output].gsub(/^/, ' ') + "\n"
99
105
  end
100
106
  end
107
+
108
+ def log
109
+ Lbspec::Util.log
110
+ end
101
111
  end
data/lib/lbspec/util.rb CHANGED
@@ -3,9 +3,9 @@
3
3
  module Lbspec
4
4
  # Lbspec::Util provides some utilities
5
5
  class Util
6
+ @logger = nil
7
+ @log_level = Logger::ERROR
6
8
  class << self
7
- @logger = nil
8
- @log_level = Logger::ERROR
9
9
  attr_accessor :logger, :log_level
10
10
  end
11
11
 
@@ -39,22 +39,35 @@ module Lbspec
39
39
  end
40
40
 
41
41
  def self.exec_command(command, node = nil)
42
- output = command + "\n"
43
42
  if node
44
- options = { config: true, verbose: log_level }
45
- Net::SSH.start(node, ssh_user(node), options) do |ssh|
46
- output << ssh.exec!(command).to_s
47
- end
43
+ exec_command_remote(command, node)
48
44
  else
49
- output << `#{command}`.to_s
45
+ exec_command_local(command)
46
+ end
47
+ end
48
+
49
+ def self.exec_command_remote(command, node = nil)
50
+ output = command + "\n"
51
+ log.debug("ssh to #{node}:#{command}")
52
+ options = { config: true, verbose: log_level }
53
+ Net::SSH.start(node, ssh_user(node), options) do |ssh|
54
+ output << ssh.exec!(command).to_s
50
55
  end
51
56
  end
52
57
 
58
+ def self.exec_command_local(command)
59
+ output = command + "\n"
60
+ log.debug("execute locally: #{command}")
61
+ output << `#{command}`.to_s
62
+ end
63
+
53
64
  def self.ssh_user(node)
54
65
  # if there is no user for the node in ~/.ssh/config
55
66
  # use current user name for login
56
67
  user = Net::SSH::Config.for(node)[:user]
57
68
  user ? user : `whoami`.chomp
69
+ log.debug("ssh #{node} as user:#{user}")
70
+ user
58
71
  end
59
72
  end
60
73
  end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  # Lbspec is an RSpec plugin for easy Loadbalancer testing.
3
3
  module Lbspec
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.7'
5
5
  end
@@ -10,6 +10,12 @@ describe Lbspec::Util do
10
10
  Lbspec::Util.logger.should eql('test')
11
11
  end
12
12
  end
13
+ describe '#log_level' do
14
+ it 'should set/get log_level' do
15
+ Lbspec::Util.log_level = Logger::WARN
16
+ Lbspec::Util.log_level.should eql(Logger::WARN)
17
+ end
18
+ end
13
19
  describe '#log' do
14
20
  before :each do
15
21
  Lbspec::Util.logger = nil
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lbspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
5
- prerelease:
4
+ version: 0.2.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - OTA Hiroshi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rubocop
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: coveralls
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: debugger
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: highline
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rspec
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - ~>
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - ~>
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: net-ssh
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -177,33 +160,26 @@ files:
177
160
  homepage: https://github.com/otahi/lbspec
178
161
  licenses:
179
162
  - MIT
163
+ metadata: {}
180
164
  post_install_message:
181
165
  rdoc_options: []
182
166
  require_paths:
183
167
  - lib
184
168
  required_ruby_version: !ruby/object:Gem::Requirement
185
- none: false
186
169
  requirements:
187
- - - ! '>='
170
+ - - '>='
188
171
  - !ruby/object:Gem::Version
189
172
  version: '0'
190
- segments:
191
- - 0
192
- hash: -1965399059659681873
193
173
  required_rubygems_version: !ruby/object:Gem::Requirement
194
- none: false
195
174
  requirements:
196
- - - ! '>='
175
+ - - '>='
197
176
  - !ruby/object:Gem::Version
198
177
  version: '0'
199
- segments:
200
- - 0
201
- hash: -1965399059659681873
202
178
  requirements: []
203
179
  rubyforge_project:
204
- rubygems_version: 1.8.21
180
+ rubygems_version: 2.2.2
205
181
  signing_key:
206
- specification_version: 3
182
+ specification_version: 4
207
183
  summary: Easily test your Loadbalancers with RSpec.
208
184
  test_files:
209
185
  - spec/lbspec_respond_spec.rb