testlab 1.4.3 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,11 +12,8 @@ class TestLab
12
12
  def create
13
13
  @ui.logger.debug { "Container Create: #{self.id}" }
14
14
 
15
- (self.node.state != :running) and return false
16
- (self.lxc.state != :not_created) and return false
17
-
18
- # If we are in ephemeral mode do not attempt to create the container.
19
- self.lxc_clone.exists? and return false
15
+ (self.node.state == :running) or return false
16
+ (self.state == :not_created) or return false
20
17
 
21
18
  please_wait(:ui => @ui, :message => format_object_action(self, 'Create', :green)) do
22
19
  configure
@@ -37,14 +34,12 @@ class TestLab
37
34
  def destroy
38
35
  @ui.logger.debug { "Container Destroy: #{self.id}" }
39
36
 
40
- (self.node.state != :running) and return false
41
- (self.lxc.state == :not_created) and return false
42
-
43
- # If we are in ephemeral mode do not attempt to destroy the container.
44
- self.lxc_clone.exists? and return false
37
+ (self.node.state == :running) or return false
38
+ (self.state != :not_created) or return false
45
39
 
46
40
  please_wait(:ui => @ui, :message => format_object_action(self, 'Destroy', :red)) do
47
41
  self.lxc.destroy(%(-f))
42
+ self.lxc_clone.destroy(%(-f))
48
43
 
49
44
  do_provisioner_callbacks(self, :destroy, @ui)
50
45
  end
@@ -60,8 +55,8 @@ class TestLab
60
55
  def up
61
56
  @ui.logger.debug { "Container Up: #{self.id}" }
62
57
 
63
- (self.node.state != :running) and return false
64
- (self.lxc.state == :running) and return false
58
+ (self.node.state == :running) or return false
59
+ (self.state != :running) or return false
65
60
 
66
61
  please_wait(:ui => @ui, :message => format_object_action(self, 'Up', :green)) do
67
62
  configure
@@ -106,8 +101,8 @@ class TestLab
106
101
  def down
107
102
  @ui.logger.debug { "Container Down: #{self.id}" }
108
103
 
109
- (self.node.state != :running) and return false
110
- (self.lxc.state != :running) and return false
104
+ (self.node.state == :running) or return false
105
+ (self.state == :running) or return false
111
106
 
112
107
  please_wait(:ui => @ui, :message => format_object_action(self, 'Down', :red)) do
113
108
 
@@ -70,7 +70,11 @@ class TestLab
70
70
  #
71
71
  # @return [Symbol] A symbol indicating the state of the container.
72
72
  def state
73
- self.lxc.state
73
+ if self.lxc_clone.exists?
74
+ self.lxc_clone.state
75
+ else
76
+ self.lxc.state
77
+ end
74
78
  end
75
79
 
76
80
  # Container Mode
@@ -7,8 +7,8 @@ class TestLab
7
7
  def create
8
8
  @ui.logger.debug { "Network Create: #{self.id} " }
9
9
 
10
- (self.node.state != :running) and return false
11
- (self.state != :not_created) and return false
10
+ (self.node.state == :running) or return false
11
+ (self.state == :not_created) or return false
12
12
 
13
13
  please_wait(:ui => @ui, :message => format_object_action(self, 'Create', :green)) do
14
14
  self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
@@ -16,7 +16,7 @@ set -x
16
16
  grep '#{def_tag}' /etc/network/interfaces && exit 0
17
17
  cat <<EOI | tee -a /etc/network/interfaces
18
18
  #{def_tag}
19
- auto br0
19
+ auto #{self.bridge}
20
20
  iface #{self.bridge} inet static
21
21
  bridge_ports none
22
22
  bridge_stp off
@@ -41,8 +41,8 @@ brctl setfd #{self.bridge} 0
41
41
  def destroy
42
42
  @ui.logger.debug { "Network Destroy: #{self.id} " }
43
43
 
44
- (self.node.state != :running) and return false
45
- (self.state == :not_created) and return false
44
+ (self.node.state == :running) or return false
45
+ (self.state != :not_created) or return false
46
46
 
47
47
  please_wait(:ui => @ui, :message => format_object_action(self, 'Destroy', :red)) do
48
48
  self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
@@ -61,8 +61,8 @@ brctl delbr #{self.bridge}
61
61
  def up
62
62
  @ui.logger.debug { "Network Up: #{self.id} " }
63
63
 
64
- (self.node.state != :running) and return false
65
- # (self.state == :running) and return false
64
+ (self.node.state == :running) or return false
65
+ # (self.state != :running) or return false
66
66
 
67
67
  please_wait(:ui => @ui, :message => format_object_action(self, 'Up', :green)) do
68
68
  self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
@@ -80,8 +80,8 @@ ifconfig #{self.bridge} #{self.ip} netmask #{self.netmask} broadcast #{self.broa
80
80
  def down
81
81
  @ui.logger.debug { "Network Down: #{self.id} " }
82
82
 
83
- (self.node.state != :running) and return false
84
- # (self.state != :running) and return false
83
+ (self.node.state == :running) or return false
84
+ # (self.state == :running) or return false
85
85
 
86
86
  please_wait(:ui => @ui, :message => format_object_action(self, 'Down', :red)) do
87
87
  self.node.bootstrap(<<-EOF, :ignore_exit_status => true)
@@ -7,7 +7,7 @@ class TestLab
7
7
  def create
8
8
  @ui.logger.debug { "Node Create: #{self.id} " }
9
9
 
10
- (self.state != :not_created) and return false
10
+ (self.state == :not_created) or return false
11
11
 
12
12
  please_wait(:ui => @ui, :message => format_object_action(self, 'Create', :green)) do
13
13
  @provider.create
@@ -22,7 +22,7 @@ class TestLab
22
22
  def destroy
23
23
  @ui.logger.debug { "Node Destroy: #{self.id} " }
24
24
 
25
- (self.state == :not_created) and return false
25
+ (self.state != :not_created) or return false
26
26
 
27
27
  please_wait(:ui => @ui, :message => format_object_action(self, 'Destroy', :red)) do
28
28
  @provider.destroy
@@ -37,7 +37,7 @@ class TestLab
37
37
  def up
38
38
  @ui.logger.debug { "Node Up: #{self.id} " }
39
39
 
40
- (self.state == :running) and return false
40
+ (self.state != :running) or return false
41
41
 
42
42
  please_wait(:ui => @ui, :message => format_object_action(self, 'Up', :green)) do
43
43
  @provider.up
@@ -52,7 +52,7 @@ class TestLab
52
52
  def down
53
53
  @ui.logger.debug { "Node Down: #{self.id} " }
54
54
 
55
- (self.state != :running) and return false
55
+ (self.state == :running) or return false
56
56
 
57
57
  please_wait(:ui => @ui, :message => format_object_action(self, 'Down', :red)) do
58
58
  @provider.down
@@ -63,16 +63,19 @@ class TestLab
63
63
  # Online Vagrant-controlled VM
64
64
  def up
65
65
  self.vagrant_cli("up", self.instance_id)
66
+
66
67
  ZTK::TCPSocketCheck.new(:host => self.ip, :port => self.port, :wait => 120, :ui => @ui).wait
67
68
 
68
69
  true
69
70
  end
70
71
 
71
72
  # Halt Vagrant-controlled VM
72
- def down
73
+ def down(*args)
73
74
  !self.exists? and raise VagrantError, MSG_NO_LAB
74
75
 
75
- self.vagrant_cli("halt", self.instance_id)
76
+ arguments = (%W(halt #{self.instance_id}) + args).flatten.compact
77
+
78
+ self.vagrant_cli(*arguments)
76
79
 
77
80
  true
78
81
  end
@@ -1,9 +1,9 @@
1
1
  set -x
2
+ set -e
2
3
 
3
4
  dpkg --status bind9 &> /dev/null || <%= (@resolv[:object] == :container).inspect %>
4
5
 
5
- if [ $? -eq 0 ]; then
6
- cat << EOF | tee /etc/resolv.conf
6
+ cat <<EOF | tee /etc/resolv.conf
7
7
  <%= ZTK::Template.do_not_edit_notice(:message => "TestLab Resolv Provisioner") %>
8
8
  <% if !@resolv[:domain].nil? -%>
9
9
  domain <%= @resolv[:domain] %>
@@ -17,4 +17,3 @@ nameserver <%= server %>
17
17
  <% end -%>
18
18
  <% end -%>
19
19
  EOF
20
- fi
@@ -1,6 +1,6 @@
1
1
  class TestLab
2
2
  unless const_defined?(:VERSION)
3
3
  # TestLab Gem Version
4
- VERSION = "1.4.3"
4
+ VERSION = "1.4.4"
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3
4
+ version: 1.4.4
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Zachary Patten
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-08-08 00:00:00.000000000 Z
12
+ date: 2013-08-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: gli
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: lxc
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: ztk
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: activesupport
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: bundler
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: pry
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rake
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: redcarpet
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ! '>='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ! '>='
123
140
  - !ruby/object:Gem::Version
@@ -125,6 +142,7 @@ dependencies:
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: aruba
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ! '>='
130
148
  - !ruby/object:Gem::Version
@@ -132,6 +150,7 @@ dependencies:
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
155
  - - ! '>='
137
156
  - !ruby/object:Gem::Version
@@ -139,6 +158,7 @@ dependencies:
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: rspec
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
163
  - - ! '>='
144
164
  - !ruby/object:Gem::Version
@@ -146,6 +166,7 @@ dependencies:
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
171
  - - ! '>='
151
172
  - !ruby/object:Gem::Version
@@ -153,6 +174,7 @@ dependencies:
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: yard
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
179
  - - ! '>='
158
180
  - !ruby/object:Gem::Version
@@ -160,6 +182,7 @@ dependencies:
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
187
  - - ! '>='
165
188
  - !ruby/object:Gem::Version
@@ -167,6 +190,7 @@ dependencies:
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: coveralls
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
195
  - - ! '>='
172
196
  - !ruby/object:Gem::Version
@@ -174,6 +198,7 @@ dependencies:
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
203
  - - ! '>='
179
204
  - !ruby/object:Gem::Version
@@ -303,26 +328,27 @@ files:
303
328
  homepage: http://hackers.lookout.com/testlab/
304
329
  licenses:
305
330
  - Apache 2.0
306
- metadata: {}
307
331
  post_install_message:
308
332
  rdoc_options: []
309
333
  require_paths:
310
334
  - lib
311
335
  required_ruby_version: !ruby/object:Gem::Requirement
336
+ none: false
312
337
  requirements:
313
338
  - - ! '>='
314
339
  - !ruby/object:Gem::Version
315
340
  version: '0'
316
341
  required_rubygems_version: !ruby/object:Gem::Requirement
342
+ none: false
317
343
  requirements:
318
344
  - - ! '>='
319
345
  - !ruby/object:Gem::Version
320
346
  version: '0'
321
347
  requirements: []
322
348
  rubyforge_project:
323
- rubygems_version: 2.0.6
349
+ rubygems_version: 1.8.25
324
350
  signing_key:
325
- specification_version: 4
351
+ specification_version: 3
326
352
  summary: A toolkit for building virtual computer labs
327
353
  test_files:
328
354
  - features/step_definitions/container_steps.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzQyNWVlODk4ZmQwZGRlYzM1YTRiM2VhOGE0MTllZTZiOWVmODUyMg==
5
- data.tar.gz: !binary |-
6
- YzhhMTgyMGRmYzIxODRkYzgyYzRkM2E3NjRjYmQ4YzRlMGE3NzFmYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MWY3NmU2NGQ1OTUzYzM3NTQxODk1MmMyYWIzNDRhYzQyNzE0MGJjNDA4MWZj
10
- NGJiZTdhNDgxOWFjMTFmZDVlNzAyYTg3N2RkNjM4YTMxZmIyMDlmMDQ3Nzk2
11
- MDNkN2ZlZGFkMjE0ZDhkNzM2ZjhjNjdmYzUxNGM0OTAzOTljYWY=
12
- data.tar.gz: !binary |-
13
- Y2MyMTY5ZjQ5NzE4OTQ3ODJlYzEwNjExYzBiZGU4YjM1OWJkZWE1MTc5MmFi
14
- ODM2YTdjY2I2Mjc0ZGI5ODdjZDA0YThjNzZhNjBlYjgzNjE0ZTU4YTM3OTIz
15
- MmY5MmJiZGMzNTU3MWE5NTgzMGNhZTgwNDQyNTU0YzgyMTU5NDA=