mu 5.7.2.5 → 5.7.2.6

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.
Files changed (57) hide show
  1. data/lib/mu/command/cmd_appid.rb +10 -0
  2. data/lib/mu/command/cmd_runscale.rb +48 -2
  3. data/rdoc/classes/Mu.html +13 -68
  4. data/rdoc/classes/Mu/Command.html +13 -1
  5. data/rdoc/classes/Mu/Command/Cmd_appid.html +23 -23
  6. data/rdoc/classes/Mu/Command/Cmd_appid.src/M000053.html +18 -0
  7. data/rdoc/classes/Mu/Command/Cmd_appid.src/M000054.html +30 -0
  8. data/rdoc/classes/Mu/Command/Cmd_appid.src/M000055.html +39 -0
  9. data/rdoc/classes/Mu/Command/Cmd_appid.src/M000056.html +50 -0
  10. data/rdoc/classes/Mu/Command/Cmd_netconfig.html +60 -60
  11. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000060.html +18 -0
  12. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000061.html +22 -0
  13. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000062.html +23 -0
  14. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000063.html +23 -0
  15. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000064.html +22 -0
  16. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000065.html +23 -0
  17. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000066.html +21 -0
  18. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000067.html +22 -0
  19. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000068.html +22 -0
  20. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000069.html +21 -0
  21. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000070.html +21 -0
  22. data/rdoc/classes/Mu/Command/Cmd_netconfig.src/M000071.html +23 -0
  23. data/rdoc/classes/Mu/Command/Cmd_runscale.html +18 -19
  24. data/rdoc/classes/Mu/Command/Cmd_runscale.src/M000057.html +18 -0
  25. data/rdoc/classes/Mu/Command/Cmd_runscale.src/M000058.html +51 -0
  26. data/rdoc/classes/Mu/Command/Cmd_runscale.src/M000059.html +50 -0
  27. data/rdoc/classes/Mu/Netconfig.html +78 -78
  28. data/rdoc/classes/Mu/Netconfig.src/M000072.html +25 -0
  29. data/rdoc/classes/Mu/Netconfig.src/M000073.html +20 -0
  30. data/rdoc/classes/Mu/Netconfig.src/M000074.html +21 -0
  31. data/rdoc/classes/Mu/Netconfig.src/M000075.html +24 -0
  32. data/rdoc/classes/Mu/Netconfig.src/M000076.html +20 -0
  33. data/rdoc/classes/Mu/Netconfig.src/M000077.html +36 -0
  34. data/rdoc/classes/Mu/Netconfig.src/M000078.html +22 -0
  35. data/rdoc/classes/Mu/Netconfig.src/M000079.html +22 -0
  36. data/rdoc/classes/Mu/Netconfig.src/M000080.html +39 -0
  37. data/rdoc/classes/Mu/Netconfig.src/M000081.html +21 -0
  38. data/rdoc/classes/Mu/Netconfig.src/M000082.html +23 -0
  39. data/rdoc/classes/Mu/Netconfig.src/M000083.html +26 -0
  40. data/rdoc/classes/Mu/Netconfig.src/M000084.html +23 -0
  41. data/rdoc/classes/Mu/Netconfig.src/M000085.html +22 -0
  42. data/rdoc/classes/Mu/Netconfig.src/M000086.html +19 -0
  43. data/rdoc/classes/TCTestMu.src/M000043.html +1 -1
  44. data/rdoc/created.rid +1 -1
  45. data/rdoc/files/lib/mu/api/netconfig_rb.html +1 -1
  46. data/rdoc/files/lib/mu/command/cmd_appid_rb.html +1 -1
  47. data/rdoc/files/lib/mu/command/cmd_netconfig_rb.html +1 -1
  48. data/rdoc/files/lib/mu/command/cmd_runscale_rb.html +1 -1
  49. data/rdoc/files/test/tc_test_mu_rb.html +2 -2
  50. data/rdoc/fr_class_index.html +5 -1
  51. data/rdoc/fr_file_index.html +4 -2
  52. data/rdoc/fr_method_index.html +86 -25
  53. data/rdoc/index.html +1 -1
  54. data/test/data/app_id_stats.csv +1 -1
  55. data/test/data/app_id_status.json +43 -43
  56. data/test/tc_test_mu.rb +5 -1
  57. metadata +38 -4
@@ -103,6 +103,7 @@ private
103
103
  def setup argv
104
104
  parse_cli argv
105
105
  @params = {}
106
+ @peak_throughput = 0.0
106
107
 
107
108
  if @hash['test']
108
109
  @verify_only = true
@@ -339,10 +340,19 @@ private
339
340
  @reported_volume = @reported_volume + scenario["volume"]
340
341
  end
341
342
 
343
+ bits1 = (@client_tx_bytes.to_i + @client_rx_bytes.to_i) * 8
344
+ dur1 = @duration.to_f
345
+ thruput = format_float(2, bits1.to_f / dur1)
346
+
347
+ if thruput.to_f > @peak_throughput
348
+ @peak_throughput = thruput.to_f
349
+ end
350
+
342
351
  msg ""
343
352
  msg "duration: #{format_float(2, @duration)}"
344
353
  msg "concurrency: #{@reported_volume}"
345
354
  msg "tests/sec: #{format_float(2, @executed.to_f / @duration)}" if @duration.to_i > 0
355
+ msg "bits/sec: #{thruput}" if @duration.to_i > 0
346
356
  msg "passed: #{@executed}"
347
357
  msg "errors: #{@errors}"
348
358
  msg "timeouts: #{@timeouts}"
@@ -7,7 +7,7 @@ class Mu
7
7
  class Command
8
8
  class Cmd_runscale < Command
9
9
 
10
- attr_accessor :api, :params, :hosts, :addr_indexes, :offset_indexes
10
+ attr_accessor :api, :params, :hosts, :addr_indexes, :offset_indexes, :peak_concurrency, :peak_throughput
11
11
 
12
12
  # displays command-line help
13
13
  # * argv = command-line arguments
@@ -98,6 +98,8 @@ private
98
98
  def setup argv
99
99
  parse_cli argv
100
100
  @params = {}
101
+ @peak_concurrency = 0
102
+ @peak_throughput = 0.0
101
103
 
102
104
  if @hash['test']
103
105
  @verify_only = true
@@ -135,6 +137,22 @@ private
135
137
  @no_verify = true
136
138
  end
137
139
 
140
+ if not @hash['vector_address_pairing']
141
+ @vector_address_pairing = false
142
+ @limit_concurrency = false
143
+ else
144
+ @vector_address_pairing = true
145
+ @limit_concurrency = true
146
+ end
147
+
148
+ =begin
149
+ if not @hash['hold_concurrency']
150
+ @hold_concurrency = false
151
+ else
152
+ @hold_concurrency = true
153
+ end
154
+ =end
155
+
138
156
  end
139
157
 
140
158
  def run(scenario)
@@ -162,6 +180,9 @@ private
162
180
 
163
181
  configure_hosts
164
182
  @api.configure("delay", @delay)
183
+ @api.configure("vectorAddressPairing", @vector_address_pairing)
184
+ @api.configure("limitConcurrency", @limit_concurrency)
185
+ # @api.configure("holdConcurrency", @hold_concurrency)
165
186
 
166
187
  if @no_verify == false # don't do verify if no_verify==true
167
188
  msg "verifying #{scenario} ..."
@@ -389,10 +410,23 @@ private
389
410
  @reported_volume = @reported_volume + scenario["volume"]
390
411
  end
391
412
 
413
+ if @reported_volume.to_i > @peak_concurrency
414
+ @peak_concurrency = @reported_volume.to_i
415
+ end
416
+
417
+ bits1 = (@client_tx_bytes.to_i + @client_rx_bytes.to_i) * 8
418
+ dur1 = @duration.to_f
419
+ thruput = format_float(2, bits1.to_f / dur1)
420
+
421
+ if thruput.to_f > @peak_throughput
422
+ @peak_throughput = thruput.to_f
423
+ end
424
+
392
425
  msg ""
393
426
  msg "duration: #{format_float(2, @duration)}"
394
427
  msg "concurrency: #{@reported_volume}"
395
428
  msg "tests/sec: #{format_float(2, @executed.to_f / @duration)}" if @duration.to_i > 0
429
+ msg "bits/sec: #{thruput}" if @duration.to_i > 0
396
430
  msg "passed: #{@executed}"
397
431
  msg "errors: #{@errors}"
398
432
  msg "timeouts: #{@timeouts}"
@@ -414,6 +448,11 @@ private
414
448
 
415
449
  k = argv.shift
416
450
 
451
+ if [ '-a', '--vector_address_pairing' ].member? k
452
+ @hash['vector_address_pairing'] = true
453
+ next
454
+ end
455
+
417
456
  if [ '-c', '--csv' ].member? k
418
457
  @hash['testset'] = shift(k, argv)
419
458
  next
@@ -438,7 +477,12 @@ private
438
477
  help
439
478
  exit
440
479
  end
441
-
480
+ =begin
481
+ if [ '-hold', '--hold_concurrency' ].member? k
482
+ @hash['hold_concurrency'] = true
483
+ next
484
+ end
485
+ =end
442
486
  if [ '-l', '--delay' ].member? k
443
487
  @hash['delay'] = shift(k, argv)
444
488
  next
@@ -515,10 +559,12 @@ private
515
559
 
516
560
  def help
517
561
  helps = [
562
+ { :short => '-a', :long => '--vector_address_pairing', :value => '', :help => 'sets vectorAddressPairing to true (limits and maps concurrency to the rows in the testset)' },
518
563
  { :short => '-c', :long => '--csv', :value => '<string>', :help => 'name of the csv testset to run' },
519
564
  { :short => '-d', :long => '--dir', :value => '<string>', :help => 'directory containing the scenario file' },
520
565
  { :short => '-f', :long => '--default_host', :value => '<string>', :help => 'default_host setting' },
521
566
  { :short => '-h', :long => '--help', :value => '', :help => 'help on command line options' },
567
+ # { :short => '-hold', :long => '--hold_concurrency', :value => '', :help => 'sets holdConcurrency to tru' },
522
568
  { :short => '-i', :long => '--interfaces', :value => '<string>', :help => 'comma-separated list of interfaces, e.g. b1,b2 or b1-1000,b2 for ip range' },
523
569
  { :short => '-l', :long => '--delay', :value => '<string>', :help => 'intra-scenario delay value' },
524
570
  { :short => '-m', :long => '--mu_string', :value => '<string>', :help => 'user, password, mu_ip in the form of admin:admin@10.9.8.7' },
@@ -55,16 +55,20 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../files/lib/mu/api/scale_rb.html">
59
- lib/mu/api/scale.rb
58
+ <a href="../files/lib/mu/api/netconfig_rb.html">
59
+ lib/mu/api/netconfig.rb
60
60
  </a>
61
61
  <br />
62
- <a href="../files/lib/mu/command/cmd_runscale_rb.html">
63
- lib/mu/command/cmd_runscale.rb
62
+ <a href="../files/lib/mu/command/cmd_appid_rb.html">
63
+ lib/mu/command/cmd_appid.rb
64
64
  </a>
65
65
  <br />
66
- <a href="../files/lib/mu_rb.html">
67
- lib/mu.rb
66
+ <a href="../files/lib/mu/command/cmd_netconfig_rb.html">
67
+ lib/mu/command/cmd_netconfig.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/mu/command/cmd_runscale_rb.html">
71
+ lib/mu/command/cmd_runscale.rb
68
72
  </a>
69
73
  <br />
70
74
  </td>
@@ -73,7 +77,9 @@
73
77
  <tr class="top-aligned-row">
74
78
  <td><strong>Parent:</strong></td>
75
79
  <td>
80
+ <a href="Object.html">
76
81
  Object
82
+ </a>
77
83
  </td>
78
84
  </tr>
79
85
  </table>
@@ -86,25 +92,10 @@
86
92
 
87
93
  <div id="contextContent">
88
94
 
89
- <div id="description">
90
- <p>
91
- <a href="Mu/Command.html">Command</a>-line tools and applications for using
92
- the <a href="Mu.html">Mu</a> Dynamics REST Api&#8216;s
93
- </p>
94
-
95
- </div>
96
95
 
97
96
 
98
97
  </div>
99
98
 
100
- <div id="method-list">
101
- <h3 class="section-bar">Methods</h3>
102
-
103
- <div class="name-list">
104
- <a href="#M000002">check_version</a>&nbsp;&nbsp;
105
- <a href="#M000001">run</a>&nbsp;&nbsp;
106
- </div>
107
- </div>
108
99
 
109
100
  </div>
110
101
 
@@ -117,23 +108,10 @@ the <a href="Mu.html">Mu</a> Dynamics REST Api&#8216;s
117
108
  <h3 class="section-bar">Classes and Modules</h3>
118
109
 
119
110
  Class <a href="Mu/Command.html" class="link">Mu::Command</a><br />
120
- Class <a href="Mu/Scale.html" class="link">Mu::Scale</a><br />
111
+ Class <a href="Mu/Netconfig.html" class="link">Mu::Netconfig</a><br />
121
112
 
122
113
  </div>
123
114
 
124
- <div id="constants-list">
125
- <h3 class="section-bar">Constants</h3>
126
-
127
- <div class="name-list">
128
- <table summary="Constants">
129
- <tr class="top-aligned-row context-row">
130
- <td class="context-item-name">Version</td>
131
- <td>=</td>
132
- <td class="context-item-value">@version.freeze</td>
133
- </tr>
134
- </table>
135
- </div>
136
- </div>
137
115
 
138
116
 
139
117
 
@@ -141,39 +119,6 @@ Class <a href="Mu/Scale.html" class="link">Mu::Scale</a><br />
141
119
 
142
120
 
143
121
  <!-- if method_list -->
144
- <div id="methods">
145
- <h3 class="section-bar">Public Class methods</h3>
146
-
147
- <div id="method-M000002" class="method-detail">
148
- <a name="M000002"></a>
149
-
150
- <div class="method-heading">
151
- <a href="Mu.src/M000002.html" target="Code" class="method-signature"
152
- onclick="popupCode('Mu.src/M000002.html');return false;">
153
- <span class="method-name">check_version</span><span class="method-args">()</span>
154
- </a>
155
- </div>
156
-
157
- <div class="method-description">
158
- </div>
159
- </div>
160
-
161
- <div id="method-M000001" class="method-detail">
162
- <a name="M000001"></a>
163
-
164
- <div class="method-heading">
165
- <a href="Mu.src/M000001.html" target="Code" class="method-signature"
166
- onclick="popupCode('Mu.src/M000001.html');return false;">
167
- <span class="method-name">run</span><span class="method-args">(cmd, argv)</span>
168
- </a>
169
- </div>
170
-
171
- <div class="method-description">
172
- </div>
173
- </div>
174
-
175
-
176
- </div>
177
122
 
178
123
 
179
124
  </div>
@@ -55,6 +55,14 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
+ <a href="../../files/lib/mu/command/cmd_appid_rb.html">
59
+ lib/mu/command/cmd_appid.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/mu/command/cmd_netconfig_rb.html">
63
+ lib/mu/command/cmd_netconfig.rb
64
+ </a>
65
+ <br />
58
66
  <a href="../../files/lib/mu/command/cmd_runscale_rb.html">
59
67
  lib/mu/command/cmd_runscale.rb
60
68
  </a>
@@ -65,7 +73,9 @@
65
73
  <tr class="top-aligned-row">
66
74
  <td><strong>Parent:</strong></td>
67
75
  <td>
76
+ <a href="../Object.html">
68
77
  Object
78
+ </a>
69
79
  </td>
70
80
  </tr>
71
81
  </table>
@@ -93,7 +103,9 @@
93
103
  <div id="class-list">
94
104
  <h3 class="section-bar">Classes and Modules</h3>
95
105
 
96
- Class <a href="Command/Cmd_runscale.html" class="link">Mu::Command::Cmd_runscale</a><br />
106
+ Class <a href="Command/Cmd_appid.html" class="link">Mu::Command::Cmd_appid</a><br />
107
+ Class <a href="Command/Cmd_netconfig.html" class="link">Mu::Command::Cmd_netconfig</a><br />
108
+ Class <a href="Command/Cmd_runscale.html" class="link">Mu::Command::Cmd_runscale</a><br />
97
109
 
98
110
  </div>
99
111
 
@@ -86,10 +86,10 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000145">cmd_help</a>&nbsp;&nbsp;
90
- <a href="#M000148">cmd_run_dir</a>&nbsp;&nbsp;
91
- <a href="#M000147">cmd_run_file</a>&nbsp;&nbsp;
92
- <a href="#M000146">cmd_running?</a>&nbsp;&nbsp;
89
+ <a href="#M000053">cmd_help</a>&nbsp;&nbsp;
90
+ <a href="#M000056">cmd_run_dir</a>&nbsp;&nbsp;
91
+ <a href="#M000055">cmd_run_file</a>&nbsp;&nbsp;
92
+ <a href="#M000054">cmd_running?</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -144,12 +144,12 @@
144
144
  <div id="methods">
145
145
  <h3 class="section-bar">Public Instance methods</h3>
146
146
 
147
- <div id="method-M000145" class="method-detail">
148
- <a name="M000145"></a>
147
+ <div id="method-M000053" class="method-detail">
148
+ <a name="M000053"></a>
149
149
 
150
150
  <div class="method-heading">
151
- <a href="Cmd_appid.src/M000145.html" target="Code" class="method-signature"
152
- onclick="popupCode('Cmd_appid.src/M000145.html');return false;">
151
+ <a href="Cmd_appid.src/M000053.html" target="Code" class="method-signature"
152
+ onclick="popupCode('Cmd_appid.src/M000053.html');return false;">
153
153
  <span class="method-name">cmd_help</span><span class="method-args">(argv)</span>
154
154
  </a>
155
155
  </div>
@@ -161,20 +161,20 @@ displays command-line help
161
161
  </div>
162
162
  </div>
163
163
 
164
- <div id="method-M000148" class="method-detail">
165
- <a name="M000148"></a>
164
+ <div id="method-M000056" class="method-detail">
165
+ <a name="M000056"></a>
166
166
 
167
167
  <div class="method-heading">
168
- <a href="Cmd_appid.src/M000148.html" target="Code" class="method-signature"
169
- onclick="popupCode('Cmd_appid.src/M000148.html');return false;">
168
+ <a href="Cmd_appid.src/M000056.html" target="Code" class="method-signature"
169
+ onclick="popupCode('Cmd_appid.src/M000056.html');return false;">
170
170
  <span class="method-name">cmd_run_dir</span><span class="method-args">(argv)</span>
171
171
  </a>
172
172
  </div>
173
173
 
174
174
  <div class="method-description">
175
175
  <p>
176
- runs through a directory of msl files and executes a Studio <a
177
- href="../Scale.html">Scale</a> test for each one
176
+ runs through a directory of msl files and executes a Studio Scale test for
177
+ each one
178
178
  </p>
179
179
  <pre>
180
180
  * argv = command-line arguments, require a directory (-d) argument
@@ -183,19 +183,19 @@ href="../Scale.html">Scale</a> test for each one
183
183
  </div>
184
184
  </div>
185
185
 
186
- <div id="method-M000147" class="method-detail">
187
- <a name="M000147"></a>
186
+ <div id="method-M000055" class="method-detail">
187
+ <a name="M000055"></a>
188
188
 
189
189
  <div class="method-heading">
190
- <a href="Cmd_appid.src/M000147.html" target="Code" class="method-signature"
191
- onclick="popupCode('Cmd_appid.src/M000147.html');return false;">
190
+ <a href="Cmd_appid.src/M000055.html" target="Code" class="method-signature"
191
+ onclick="popupCode('Cmd_appid.src/M000055.html');return false;">
192
192
  <span class="method-name">cmd_run_file</span><span class="method-args">(argv)</span>
193
193
  </a>
194
194
  </div>
195
195
 
196
196
  <div class="method-description">
197
197
  <p>
198
- runs a single Studio <a href="../Scale.html">Scale</a> test
198
+ runs a single Studio Scale test
199
199
  </p>
200
200
  <pre>
201
201
  * argv = command-line arguments, requires a scenario (-s) argument
@@ -203,12 +203,12 @@ runs a single Studio <a href="../Scale.html">Scale</a> test
203
203
  </div>
204
204
  </div>
205
205
 
206
- <div id="method-M000146" class="method-detail">
207
- <a name="M000146"></a>
206
+ <div id="method-M000054" class="method-detail">
207
+ <a name="M000054"></a>
208
208
 
209
209
  <div class="method-heading">
210
- <a href="Cmd_appid.src/M000146.html" target="Code" class="method-signature"
211
- onclick="popupCode('Cmd_appid.src/M000146.html');return false;">
210
+ <a href="Cmd_appid.src/M000054.html" target="Code" class="method-signature"
211
+ onclick="popupCode('Cmd_appid.src/M000054.html');return false;">
212
212
  <span class="method-name">cmd_running?</span><span class="method-args">(argv)</span>
213
213
  </a>
214
214
  </div>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>cmd_help (Mu::Command::Cmd_appid)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/mu/command/cmd_appid.rb, line 13</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cmd_help</span> <span class="ruby-identifier">argv</span>
15
+ <span class="ruby-identifier">help</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>cmd_running? (Mu::Command::Cmd_appid)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/mu/command/cmd_appid.rb, line 19</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cmd_running?</span> <span class="ruby-identifier">argv</span>
15
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@api</span>.<span class="ruby-identifier">nil?</span>
16
+ <span class="ruby-identifier">msg</span> <span class="ruby-value str">&quot;false&quot;</span>
17
+ <span class="ruby-keyword kw">return</span>
18
+ <span class="ruby-keyword kw">end</span>
19
+
20
+ <span class="ruby-identifier">status</span> = <span class="ruby-ivar">@api</span>.<span class="ruby-identifier">status</span>
21
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">status</span>.<span class="ruby-identifier">nil?</span>
22
+ <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">status</span>[<span class="ruby-value str">&quot;status&quot;</span>].<span class="ruby-identifier">nil?</span>
23
+ <span class="ruby-identifier">msg</span> <span class="ruby-identifier">status</span>[<span class="ruby-value str">&quot;status&quot;</span>][<span class="ruby-value str">&quot;running&quot;</span>]
24
+ <span class="ruby-keyword kw">end</span>
25
+ <span class="ruby-keyword kw">else</span>
26
+ <span class="ruby-identifier">msg</span> <span class="ruby-value str">&quot;false&quot;</span>
27
+ <span class="ruby-keyword kw">end</span>
28
+ <span class="ruby-keyword kw">end</span></pre>
29
+ </body>
30
+ </html>