~cgb-cs/appscale/appscale-main

« back to all changes in this revision

Viewing changes to AppController/coverage/lib-user_app_client_rb.html

  • Committer: Chris Bunch
  • Date: 2012-02-18 07:22:47 UTC
  • Revision ID: cgb@cs.ucsb.edu-20120218072247-30zy7vqjc02id65p
moved coverage folder up a level

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
 
3
  <head>
 
4
    <title>lib/user_app_client.rb</title>
 
5
    <link href="screen.css" media="all" rel="stylesheet" type="text/css" />
 
6
    <link href="print.css" media="print" rel="stylesheet" type="text/css" />
 
7
    
 
8
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
 
9
    <script type="text/javascript" src="rcov.js"></script>
 
10
  </head>
 
11
  <body>
 
12
    <h1>Appcontroller C0 Coverage Information - RCov</h1>
 
13
    <h2>lib/user_app_client.rb</h2>
 
14
 
 
15
    
 
16
 
 
17
    <div class="report_table_wrapper">
 
18
      <table class='report' id='report_table'>
 
19
        <thead>
 
20
          <tr>
 
21
            <th class="left_align">Name</th>
 
22
            <th class="right_align">Total Lines</th>
 
23
            <th class="right_align">Lines of Code</th>
 
24
            <th class="left_align">Total Coverage</th>
 
25
            <th class="left_align">Code Coverage</th>
 
26
          </tr>
 
27
        </thead>
 
28
        <tbody>
 
29
          <tr>
 
30
            <td class="left_align"><a href="lib-user_app_client_rb.html">lib/user_app_client.rb</a></td>
 
31
            <td class='right_align'><tt>300</tt></td>
 
32
            <td class='right_align'><tt>231</tt></td>
 
33
            <td class="left_align"><div class="percent_graph_legend"><tt class=''>24.67%</tt></div>
 
34
          <div class="percent_graph">
 
35
            <div class="covered" style="width:25px"></div>
 
36
            <div class="uncovered" style="width:75px"></div>
 
37
          </div></td>
 
38
            <td class="left_align"><div class="percent_graph_legend"><tt class=''>12.12%</tt></div>
 
39
          <div class="percent_graph">
 
40
            <div class="covered" style="width:12px"></div>
 
41
            <div class="uncovered" style="width:88px"></div>
 
42
          </div></td>
 
43
          </tr>
 
44
        </tbody>
 
45
      </table>
 
46
    </div>
 
47
    
 
48
    <h3>Key</h3>
 
49
    
 
50
    <div class="key"><pre><span class='marked'>Code reported as executed by Ruby looks like this...</span><span class='marked1'>and this: this line is also marked as covered.</span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this,</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).</span><span class='uncovered'>Finally, here's a line marked as not executed.</span></pre></div>
 
51
 
 
52
    <h3>Coverage Details</h3>
 
53
 
 
54
    <table class="details">
 
55
      <tbody>
 
56
        
 
57
          
 
58
          
 
59
          <tr class="inferred">
 
60
            <td><pre><a name="line1">1</a> #!/usr/bin/ruby -w</pre></td>
 
61
          </tr>
 
62
        
 
63
          
 
64
          
 
65
          <tr class="inferred">
 
66
            <td><pre><a name="line2">2</a> # Programmer: Chris Bunch</pre></td>
 
67
          </tr>
 
68
        
 
69
          
 
70
          
 
71
          <tr class="inferred">
 
72
            <td><pre><a name="line3">3</a> </pre></td>
 
73
          </tr>
 
74
        
 
75
          
 
76
          
 
77
          <tr class="inferred">
 
78
            <td><pre><a name="line4">4</a> </pre></td>
 
79
          </tr>
 
80
        
 
81
          
 
82
          
 
83
          <tr class="inferred">
 
84
            <td><pre><a name="line5">5</a> # Imports within Ruby's standard libraries</pre></td>
 
85
          </tr>
 
86
        
 
87
          
 
88
          
 
89
          <tr class="marked">
 
90
            <td><pre><a name="line6">6</a> require 'base64'</pre></td>
 
91
          </tr>
 
92
        
 
93
          
 
94
          
 
95
          <tr class="marked">
 
96
            <td><pre><a name="line7">7</a> require 'openssl'</pre></td>
 
97
          </tr>
 
98
        
 
99
          
 
100
          
 
101
          <tr class="marked">
 
102
            <td><pre><a name="line8">8</a> require 'soap/rpc/driver'</pre></td>
 
103
          </tr>
 
104
        
 
105
          
 
106
          
 
107
          <tr class="marked">
 
108
            <td><pre><a name="line9">9</a> require 'timeout'</pre></td>
 
109
          </tr>
 
110
        
 
111
          
 
112
          
 
113
          <tr class="inferred">
 
114
            <td><pre><a name="line10">10</a> </pre></td>
 
115
          </tr>
 
116
        
 
117
          
 
118
          
 
119
          <tr class="inferred">
 
120
            <td><pre><a name="line11">11</a> </pre></td>
 
121
          </tr>
 
122
        
 
123
          
 
124
          
 
125
          <tr class="inferred">
 
126
            <td><pre><a name="line12">12</a> # AppControllers and other services need to read or write data relating to users</pre></td>
 
127
          </tr>
 
128
        
 
129
          
 
130
          
 
131
          <tr class="inferred">
 
132
            <td><pre><a name="line13">13</a> # and applications hosted in AppScale. Since it has to be done in a</pre></td>
 
133
          </tr>
 
134
        
 
135
          
 
136
          
 
137
          <tr class="inferred">
 
138
            <td><pre><a name="line14">14</a> # database-agnostic fashion, we throw up a special server that responds to SOAP</pre></td>
 
139
          </tr>
 
140
        
 
141
          
 
142
          
 
143
          <tr class="inferred">
 
144
            <td><pre><a name="line15">15</a> # requests for this information, called the UserAppServer. This class provides</pre></td>
 
145
          </tr>
 
146
        
 
147
          
 
148
          
 
149
          <tr class="inferred">
 
150
            <td><pre><a name="line16">16</a> # convenience methods for interacting with the UserAppServer.</pre></td>
 
151
          </tr>
 
152
        
 
153
          
 
154
          
 
155
          <tr class="marked">
 
156
            <td><pre><a name="line17">17</a> class UserAppClient</pre></td>
 
157
          </tr>
 
158
        
 
159
          
 
160
          
 
161
          <tr class="marked">
 
162
            <td><pre><a name="line18">18</a>   attr_reader :conn, :ip, :secret</pre></td>
 
163
          </tr>
 
164
        
 
165
          
 
166
          
 
167
          <tr class="inferred">
 
168
            <td><pre><a name="line19">19</a> </pre></td>
 
169
          </tr>
 
170
        
 
171
          
 
172
          
 
173
          <tr class="inferred">
 
174
            <td><pre><a name="line20">20</a> </pre></td>
 
175
          </tr>
 
176
        
 
177
          
 
178
          
 
179
          <tr class="inferred">
 
180
            <td><pre><a name="line21">21</a>   # The port that the UserAppServer binds to, by default.</pre></td>
 
181
          </tr>
 
182
        
 
183
          
 
184
          
 
185
          <tr class="marked">
 
186
            <td><pre><a name="line22">22</a>   DEFAULT_UASERVER_PORT = 4343</pre></td>
 
187
          </tr>
 
188
        
 
189
          
 
190
          
 
191
          <tr class="inferred">
 
192
            <td><pre><a name="line23">23</a> </pre></td>
 
193
          </tr>
 
194
        
 
195
          
 
196
          
 
197
          <tr class="inferred">
 
198
            <td><pre><a name="line24">24</a> </pre></td>
 
199
          </tr>
 
200
        
 
201
          
 
202
          
 
203
          <tr class="marked">
 
204
            <td><pre><a name="line25">25</a>   def initialize(ip, secret)</pre></td>
 
205
          </tr>
 
206
        
 
207
          
 
208
          
 
209
          <tr class="uncovered">
 
210
            <td><pre><a name="line26">26</a>     @ip = ip</pre></td>
 
211
          </tr>
 
212
        
 
213
          
 
214
          
 
215
          <tr class="uncovered">
 
216
            <td><pre><a name="line27">27</a>     @secret = secret</pre></td>
 
217
          </tr>
 
218
        
 
219
          
 
220
          
 
221
          <tr class="uncovered">
 
222
            <td><pre><a name="line28">28</a>     </pre></td>
 
223
          </tr>
 
224
        
 
225
          
 
226
          
 
227
          <tr class="uncovered">
 
228
            <td><pre><a name="line29">29</a>     @conn = SOAP::RPC::Driver.new(&quot;https://#{@ip}:#{DEFAULT_UASERVER_PORT}&quot;)</pre></td>
 
229
          </tr>
 
230
        
 
231
          
 
232
          
 
233
          <tr class="uncovered">
 
234
            <td><pre><a name="line30">30</a>     @conn.add_method(&quot;change_password&quot;, &quot;user&quot;, &quot;password&quot;, &quot;secret&quot;)</pre></td>
 
235
          </tr>
 
236
        
 
237
          
 
238
          
 
239
          <tr class="uncovered">
 
240
            <td><pre><a name="line31">31</a>     @conn.add_method(&quot;commit_new_user&quot;, &quot;user&quot;, &quot;passwd&quot;, &quot;utype&quot;, &quot;secret&quot;)</pre></td>
 
241
          </tr>
 
242
        
 
243
          
 
244
          
 
245
          <tr class="uncovered">
 
246
            <td><pre><a name="line32">32</a>     @conn.add_method(&quot;commit_new_app&quot;, &quot;user&quot;, &quot;appname&quot;, &quot;language&quot;, &quot;secret&quot;)</pre></td>
 
247
          </tr>
 
248
        
 
249
          
 
250
          
 
251
          <tr class="uncovered">
 
252
            <td><pre><a name="line33">33</a>     @conn.add_method(&quot;commit_tar&quot;, &quot;app_name&quot;, &quot;tar&quot;, &quot;secret&quot;)</pre></td>
 
253
          </tr>
 
254
        
 
255
          
 
256
          
 
257
          <tr class="uncovered">
 
258
            <td><pre><a name="line34">34</a>     @conn.add_method(&quot;delete_app&quot;, &quot;appname&quot;, &quot;secret&quot;)    </pre></td>
 
259
          </tr>
 
260
        
 
261
          
 
262
          
 
263
          <tr class="uncovered">
 
264
            <td><pre><a name="line35">35</a>     @conn.add_method(&quot;is_app_enabled&quot;, &quot;appname&quot;, &quot;secret&quot;)</pre></td>
 
265
          </tr>
 
266
        
 
267
          
 
268
          
 
269
          <tr class="uncovered">
 
270
            <td><pre><a name="line36">36</a>     @conn.add_method(&quot;is_user_cloud_admin&quot;, &quot;username&quot;, &quot;secret&quot;)</pre></td>
 
271
          </tr>
 
272
        
 
273
          
 
274
          
 
275
          <tr class="uncovered">
 
276
            <td><pre><a name="line37">37</a>     @conn.add_method(&quot;does_user_exist&quot;, &quot;username&quot;, &quot;secret&quot;)</pre></td>
 
277
          </tr>
 
278
        
 
279
          
 
280
          
 
281
          <tr class="uncovered">
 
282
            <td><pre><a name="line38">38</a>     @conn.add_method(&quot;get_user_data&quot;, &quot;username&quot;, &quot;secret&quot;)</pre></td>
 
283
          </tr>
 
284
        
 
285
          
 
286
          
 
287
          <tr class="uncovered">
 
288
            <td><pre><a name="line39">39</a>     @conn.add_method(&quot;get_app_data&quot;, &quot;appname&quot;, &quot;secret&quot;)</pre></td>
 
289
          </tr>
 
290
        
 
291
          
 
292
          
 
293
          <tr class="uncovered">
 
294
            <td><pre><a name="line40">40</a>     @conn.add_method(&quot;delete_instance&quot;, &quot;appname&quot;, &quot;host&quot;, &quot;port&quot;, &quot;secret&quot;)</pre></td>
 
295
          </tr>
 
296
        
 
297
          
 
298
          
 
299
          <tr class="uncovered">
 
300
            <td><pre><a name="line41">41</a>     @conn.add_method(&quot;get_tar&quot;, &quot;app_name&quot;, &quot;secret&quot;)</pre></td>
 
301
          </tr>
 
302
        
 
303
          
 
304
          
 
305
          <tr class="uncovered">
 
306
            <td><pre><a name="line42">42</a>     @conn.add_method(&quot;add_instance&quot;, &quot;appname&quot;, &quot;host&quot;, &quot;port&quot;, &quot;secret&quot;)</pre></td>
 
307
          </tr>
 
308
        
 
309
          
 
310
          
 
311
          <tr class="uncovered">
 
312
            <td><pre><a name="line43">43</a>     @conn.add_method(&quot;get_all_apps&quot;, &quot;secret&quot;)</pre></td>
 
313
          </tr>
 
314
        
 
315
          
 
316
          
 
317
          <tr class="uncovered">
 
318
            <td><pre><a name="line44">44</a>     @conn.add_method(&quot;get_all_users&quot;, &quot;secret&quot;)</pre></td>
 
319
          </tr>
 
320
        
 
321
          
 
322
          
 
323
          <tr class="uncovered">
 
324
            <td><pre><a name="line45">45</a>   end</pre></td>
 
325
          </tr>
 
326
        
 
327
          
 
328
          
 
329
          <tr class="inferred">
 
330
            <td><pre><a name="line46">46</a> </pre></td>
 
331
          </tr>
 
332
        
 
333
          
 
334
          
 
335
          <tr class="marked">
 
336
            <td><pre><a name="line47">47</a>   def make_call(timeout, retry_on_except)</pre></td>
 
337
          </tr>
 
338
        
 
339
          
 
340
          
 
341
          <tr class="uncovered">
 
342
            <td><pre><a name="line48">48</a>     result = &quot;&quot;</pre></td>
 
343
          </tr>
 
344
        
 
345
          
 
346
          
 
347
          <tr class="uncovered">
 
348
            <td><pre><a name="line49">49</a>     begin</pre></td>
 
349
          </tr>
 
350
        
 
351
          
 
352
          
 
353
          <tr class="uncovered">
 
354
            <td><pre><a name="line50">50</a>       Timeout::timeout(timeout) do</pre></td>
 
355
          </tr>
 
356
        
 
357
          
 
358
          
 
359
          <tr class="uncovered">
 
360
            <td><pre><a name="line51">51</a>         begin</pre></td>
 
361
          </tr>
 
362
        
 
363
          
 
364
          
 
365
          <tr class="uncovered">
 
366
            <td><pre><a name="line52">52</a>           yield if block_given?</pre></td>
 
367
          </tr>
 
368
        
 
369
          
 
370
          
 
371
          <tr class="uncovered">
 
372
            <td><pre><a name="line53">53</a>         end</pre></td>
 
373
          </tr>
 
374
        
 
375
          
 
376
          
 
377
          <tr class="uncovered">
 
378
            <td><pre><a name="line54">54</a>       end</pre></td>
 
379
          </tr>
 
380
        
 
381
          
 
382
          
 
383
          <tr class="uncovered">
 
384
            <td><pre><a name="line55">55</a>     rescue OpenSSL::SSL::SSLError</pre></td>
 
385
          </tr>
 
386
        
 
387
          
 
388
          
 
389
          <tr class="uncovered">
 
390
            <td><pre><a name="line56">56</a>       retry</pre></td>
 
391
          </tr>
 
392
        
 
393
          
 
394
          
 
395
          <tr class="uncovered">
 
396
            <td><pre><a name="line57">57</a>     rescue Errno::ECONNREFUSED</pre></td>
 
397
          </tr>
 
398
        
 
399
          
 
400
          
 
401
          <tr class="uncovered">
 
402
            <td><pre><a name="line58">58</a>       if retry_on_except</pre></td>
 
403
          </tr>
 
404
        
 
405
          
 
406
          
 
407
          <tr class="uncovered">
 
408
            <td><pre><a name="line59">59</a>         sleep(1)</pre></td>
 
409
          </tr>
 
410
        
 
411
          
 
412
          
 
413
          <tr class="uncovered">
 
414
            <td><pre><a name="line60">60</a>         retry</pre></td>
 
415
          </tr>
 
416
        
 
417
          
 
418
          
 
419
          <tr class="uncovered">
 
420
            <td><pre><a name="line61">61</a>       else</pre></td>
 
421
          </tr>
 
422
        
 
423
          
 
424
          
 
425
          <tr class="uncovered">
 
426
            <td><pre><a name="line62">62</a>         abort(&quot;We were unable to establish a connection with the UserAppServer at the designated location. Is AppScale currently running?&quot;)</pre></td>
 
427
          </tr>
 
428
        
 
429
          
 
430
          
 
431
          <tr class="uncovered">
 
432
            <td><pre><a name="line63">63</a>       end </pre></td>
 
433
          </tr>
 
434
        
 
435
          
 
436
          
 
437
          <tr class="uncovered">
 
438
            <td><pre><a name="line64">64</a>    rescue Exception =&gt; except</pre></td>
 
439
          </tr>
 
440
        
 
441
          
 
442
          
 
443
          <tr class="uncovered">
 
444
            <td><pre><a name="line65">65</a>       if except.class == Interrupt</pre></td>
 
445
          </tr>
 
446
        
 
447
          
 
448
          
 
449
          <tr class="uncovered">
 
450
            <td><pre><a name="line66">66</a>         abort</pre></td>
 
451
          </tr>
 
452
        
 
453
          
 
454
          
 
455
          <tr class="uncovered">
 
456
            <td><pre><a name="line67">67</a>       end</pre></td>
 
457
          </tr>
 
458
        
 
459
          
 
460
          
 
461
          <tr class="uncovered">
 
462
            <td><pre><a name="line68">68</a> </pre></td>
 
463
          </tr>
 
464
        
 
465
          
 
466
          
 
467
          <tr class="uncovered">
 
468
            <td><pre><a name="line69">69</a>       puts &quot;An exception of type #{except.class} was thrown.&quot;</pre></td>
 
469
          </tr>
 
470
        
 
471
          
 
472
          
 
473
          <tr class="uncovered">
 
474
            <td><pre><a name="line70">70</a>       retry if retry_on_except</pre></td>
 
475
          </tr>
 
476
        
 
477
          
 
478
          
 
479
          <tr class="uncovered">
 
480
            <td><pre><a name="line71">71</a>     end</pre></td>
 
481
          </tr>
 
482
        
 
483
          
 
484
          
 
485
          <tr class="uncovered">
 
486
            <td><pre><a name="line72">72</a>   end</pre></td>
 
487
          </tr>
 
488
        
 
489
          
 
490
          
 
491
          <tr class="inferred">
 
492
            <td><pre><a name="line73">73</a>   </pre></td>
 
493
          </tr>
 
494
        
 
495
          
 
496
          
 
497
          <tr class="marked">
 
498
            <td><pre><a name="line74">74</a>   def commit_new_user(user, encrypted_password, user_type, retry_on_except=true)</pre></td>
 
499
          </tr>
 
500
        
 
501
          
 
502
          
 
503
          <tr class="uncovered">
 
504
            <td><pre><a name="line75">75</a>     result = &quot;&quot;</pre></td>
 
505
          </tr>
 
506
        
 
507
          
 
508
          
 
509
          <tr class="uncovered">
 
510
            <td><pre><a name="line76">76</a>     make_call(10, retry_on_except) { </pre></td>
 
511
          </tr>
 
512
        
 
513
          
 
514
          
 
515
          <tr class="uncovered">
 
516
            <td><pre><a name="line77">77</a>       result = @conn.commit_new_user(user, encrypted_password, user_type, @secret)</pre></td>
 
517
          </tr>
 
518
        
 
519
          
 
520
          
 
521
          <tr class="uncovered">
 
522
            <td><pre><a name="line78">78</a>     }</pre></td>
 
523
          </tr>
 
524
        
 
525
          
 
526
          
 
527
          <tr class="uncovered">
 
528
            <td><pre><a name="line79">79</a> </pre></td>
 
529
          </tr>
 
530
        
 
531
          
 
532
          
 
533
          <tr class="uncovered">
 
534
            <td><pre><a name="line80">80</a>     if result == &quot;true&quot;</pre></td>
 
535
          </tr>
 
536
        
 
537
          
 
538
          
 
539
          <tr class="uncovered">
 
540
            <td><pre><a name="line81">81</a>       puts &quot;\nYour user account has been created successfully.&quot;</pre></td>
 
541
          </tr>
 
542
        
 
543
          
 
544
          
 
545
          <tr class="uncovered">
 
546
            <td><pre><a name="line82">82</a>     elsif result == &quot;false&quot;</pre></td>
 
547
          </tr>
 
548
        
 
549
          
 
550
          
 
551
          <tr class="uncovered">
 
552
            <td><pre><a name="line83">83</a>       abort(&quot;\nWe were unable to create your user account. Please contact your cloud administrator for further details.&quot;)</pre></td>
 
553
          </tr>
 
554
        
 
555
          
 
556
          
 
557
          <tr class="uncovered">
 
558
            <td><pre><a name="line84">84</a>     else</pre></td>
 
559
          </tr>
 
560
        
 
561
          
 
562
          
 
563
          <tr class="uncovered">
 
564
            <td><pre><a name="line85">85</a>       puts &quot;\n[unexpected] Commit new user returned: [#{result}]&quot;</pre></td>
 
565
          </tr>
 
566
        
 
567
          
 
568
          
 
569
          <tr class="uncovered">
 
570
            <td><pre><a name="line86">86</a>     end</pre></td>
 
571
          </tr>
 
572
        
 
573
          
 
574
          
 
575
          <tr class="uncovered">
 
576
            <td><pre><a name="line87">87</a>   end</pre></td>
 
577
          </tr>
 
578
        
 
579
          
 
580
          
 
581
          <tr class="inferred">
 
582
            <td><pre><a name="line88">88</a>   </pre></td>
 
583
          </tr>
 
584
        
 
585
          
 
586
          
 
587
          <tr class="marked">
 
588
            <td><pre><a name="line89">89</a>   def commit_new_app(user, app_name, language, file_location)</pre></td>
 
589
          </tr>
 
590
        
 
591
          
 
592
          
 
593
          <tr class="uncovered">
 
594
            <td><pre><a name="line90">90</a>     commit_new_app_name(user, app_name, language)</pre></td>
 
595
          </tr>
 
596
        
 
597
          
 
598
          
 
599
          <tr class="uncovered">
 
600
            <td><pre><a name="line91">91</a>     commit_tar(app_name, file_location)</pre></td>
 
601
          </tr>
 
602
        
 
603
          
 
604
          
 
605
          <tr class="uncovered">
 
606
            <td><pre><a name="line92">92</a>   end</pre></td>
 
607
          </tr>
 
608
        
 
609
          
 
610
          
 
611
          <tr class="inferred">
 
612
            <td><pre><a name="line93">93</a>   </pre></td>
 
613
          </tr>
 
614
        
 
615
          
 
616
          
 
617
          <tr class="marked">
 
618
            <td><pre><a name="line94">94</a>   def commit_new_app_name(user, app_name, language, retry_on_except=true)</pre></td>
 
619
          </tr>
 
620
        
 
621
          
 
622
          
 
623
          <tr class="uncovered">
 
624
            <td><pre><a name="line95">95</a>     result = &quot;&quot;</pre></td>
 
625
          </tr>
 
626
        
 
627
          
 
628
          
 
629
          <tr class="uncovered">
 
630
            <td><pre><a name="line96">96</a>     make_call(10, retry_on_except) {</pre></td>
 
631
          </tr>
 
632
        
 
633
          
 
634
          
 
635
          <tr class="uncovered">
 
636
            <td><pre><a name="line97">97</a>       result = @conn.commit_new_app(user, app_name, language, @secret)</pre></td>
 
637
          </tr>
 
638
        
 
639
          
 
640
          
 
641
          <tr class="uncovered">
 
642
            <td><pre><a name="line98">98</a>     }</pre></td>
 
643
          </tr>
 
644
        
 
645
          
 
646
          
 
647
          <tr class="uncovered">
 
648
            <td><pre><a name="line99">99</a> </pre></td>
 
649
          </tr>
 
650
        
 
651
          
 
652
          
 
653
          <tr class="uncovered">
 
654
            <td><pre><a name="line100">100</a>     if result == &quot;true&quot;</pre></td>
 
655
          </tr>
 
656
        
 
657
          
 
658
          
 
659
          <tr class="uncovered">
 
660
            <td><pre><a name="line101">101</a>       puts &quot;We have reserved the name #{app_name} for your application.&quot;</pre></td>
 
661
          </tr>
 
662
        
 
663
          
 
664
          
 
665
          <tr class="uncovered">
 
666
            <td><pre><a name="line102">102</a>     elsif result == &quot;Error: appname already exist&quot;</pre></td>
 
667
          </tr>
 
668
        
 
669
          
 
670
          
 
671
          <tr class="uncovered">
 
672
            <td><pre><a name="line103">103</a>       puts &quot;We are uploading a new version of the application #{app_name}.&quot;</pre></td>
 
673
          </tr>
 
674
        
 
675
          
 
676
          
 
677
          <tr class="uncovered">
 
678
            <td><pre><a name="line104">104</a>     elsif result == &quot;Error: User not found&quot;</pre></td>
 
679
          </tr>
 
680
        
 
681
          
 
682
          
 
683
          <tr class="uncovered">
 
684
            <td><pre><a name="line105">105</a>       abort(&quot;We were unable to reserve the name of your application. Please contact your cloud administrator for more information.&quot;)</pre></td>
 
685
          </tr>
 
686
        
 
687
          
 
688
          
 
689
          <tr class="uncovered">
 
690
            <td><pre><a name="line106">106</a>     else</pre></td>
 
691
          </tr>
 
692
        
 
693
          
 
694
          
 
695
          <tr class="uncovered">
 
696
            <td><pre><a name="line107">107</a>       puts &quot;[unexpected] Commit new app says: [#{result}]&quot;</pre></td>
 
697
          </tr>
 
698
        
 
699
          
 
700
          
 
701
          <tr class="uncovered">
 
702
            <td><pre><a name="line108">108</a>     end</pre></td>
 
703
          </tr>
 
704
        
 
705
          
 
706
          
 
707
          <tr class="uncovered">
 
708
            <td><pre><a name="line109">109</a>   end</pre></td>
 
709
          </tr>
 
710
        
 
711
          
 
712
          
 
713
          <tr class="inferred">
 
714
            <td><pre><a name="line110">110</a>   </pre></td>
 
715
          </tr>
 
716
        
 
717
          
 
718
          
 
719
          <tr class="marked">
 
720
            <td><pre><a name="line111">111</a>   def commit_tar(app_name, file_location, retry_on_except=true)</pre></td>
 
721
          </tr>
 
722
        
 
723
          
 
724
          
 
725
          <tr class="uncovered">
 
726
            <td><pre><a name="line112">112</a>     file = File.open(file_location, &quot;rb&quot;)</pre></td>
 
727
          </tr>
 
728
        
 
729
          
 
730
          
 
731
          <tr class="uncovered">
 
732
            <td><pre><a name="line113">113</a>     tar_contents = Base64.encode64(file.read)</pre></td>
 
733
          </tr>
 
734
        
 
735
          
 
736
          
 
737
          <tr class="uncovered">
 
738
            <td><pre><a name="line114">114</a>     </pre></td>
 
739
          </tr>
 
740
        
 
741
          
 
742
          
 
743
          <tr class="uncovered">
 
744
            <td><pre><a name="line115">115</a>     result = &quot;&quot;</pre></td>
 
745
          </tr>
 
746
        
 
747
          
 
748
          
 
749
          <tr class="uncovered">
 
750
            <td><pre><a name="line116">116</a>     make_call(300, retry_on_except) {</pre></td>
 
751
          </tr>
 
752
        
 
753
          
 
754
          
 
755
          <tr class="uncovered">
 
756
            <td><pre><a name="line117">117</a>       result = @conn.commit_tar(app_name, tar_contents, @secret)</pre></td>
 
757
          </tr>
 
758
        
 
759
          
 
760
          
 
761
          <tr class="uncovered">
 
762
            <td><pre><a name="line118">118</a>     }</pre></td>
 
763
          </tr>
 
764
        
 
765
          
 
766
          
 
767
          <tr class="uncovered">
 
768
            <td><pre><a name="line119">119</a>  </pre></td>
 
769
          </tr>
 
770
        
 
771
          
 
772
          
 
773
          <tr class="uncovered">
 
774
            <td><pre><a name="line120">120</a>     if result == &quot;true&quot;</pre></td>
 
775
          </tr>
 
776
        
 
777
          
 
778
          
 
779
          <tr class="uncovered">
 
780
            <td><pre><a name="line121">121</a>       puts &quot;#{app_name} was uploaded successfully.&quot;</pre></td>
 
781
          </tr>
 
782
        
 
783
          
 
784
          
 
785
          <tr class="uncovered">
 
786
            <td><pre><a name="line122">122</a>     elsif result == &quot;Error: app does not exist&quot;</pre></td>
 
787
          </tr>
 
788
        
 
789
          
 
790
          
 
791
          <tr class="uncovered">
 
792
            <td><pre><a name="line123">123</a>       abort(&quot;We were unable to upload your application. Please contact your cloud administrator for more information.&quot;)</pre></td>
 
793
          </tr>
 
794
        
 
795
          
 
796
          
 
797
          <tr class="uncovered">
 
798
            <td><pre><a name="line124">124</a>     else</pre></td>
 
799
          </tr>
 
800
        
 
801
          
 
802
          
 
803
          <tr class="uncovered">
 
804
            <td><pre><a name="line125">125</a>       puts &quot;[unexpected] Commit new tar says: [#{result}]&quot;</pre></td>
 
805
          </tr>
 
806
        
 
807
          
 
808
          
 
809
          <tr class="uncovered">
 
810
            <td><pre><a name="line126">126</a>     end</pre></td>
 
811
          </tr>
 
812
        
 
813
          
 
814
          
 
815
          <tr class="uncovered">
 
816
            <td><pre><a name="line127">127</a>   end</pre></td>
 
817
          </tr>
 
818
        
 
819
          
 
820
          
 
821
          <tr class="inferred">
 
822
            <td><pre><a name="line128">128</a>   </pre></td>
 
823
          </tr>
 
824
        
 
825
          
 
826
          
 
827
          <tr class="marked">
 
828
            <td><pre><a name="line129">129</a>   def change_password(user, new_password, retry_on_except=true)</pre></td>
 
829
          </tr>
 
830
        
 
831
          
 
832
          
 
833
          <tr class="uncovered">
 
834
            <td><pre><a name="line130">130</a>     result = &quot;&quot;</pre></td>
 
835
          </tr>
 
836
        
 
837
          
 
838
          
 
839
          <tr class="uncovered">
 
840
            <td><pre><a name="line131">131</a>     make_call(10, retry_on_except) {</pre></td>
 
841
          </tr>
 
842
        
 
843
          
 
844
          
 
845
          <tr class="uncovered">
 
846
            <td><pre><a name="line132">132</a>       result = @conn.change_password(user, new_password, @secret)</pre></td>
 
847
          </tr>
 
848
        
 
849
          
 
850
          
 
851
          <tr class="uncovered">
 
852
            <td><pre><a name="line133">133</a>     }</pre></td>
 
853
          </tr>
 
854
        
 
855
          
 
856
          
 
857
          <tr class="uncovered">
 
858
            <td><pre><a name="line134">134</a>         </pre></td>
 
859
          </tr>
 
860
        
 
861
          
 
862
          
 
863
          <tr class="uncovered">
 
864
            <td><pre><a name="line135">135</a>     if result == &quot;true&quot;</pre></td>
 
865
          </tr>
 
866
        
 
867
          
 
868
          
 
869
          <tr class="uncovered">
 
870
            <td><pre><a name="line136">136</a>       puts &quot;We successfully changed the password for the given user.&quot;</pre></td>
 
871
          </tr>
 
872
        
 
873
          
 
874
          
 
875
          <tr class="uncovered">
 
876
            <td><pre><a name="line137">137</a>     elsif result == &quot;Error: user not found&quot;</pre></td>
 
877
          </tr>
 
878
        
 
879
          
 
880
          
 
881
          <tr class="uncovered">
 
882
            <td><pre><a name="line138">138</a>       puts &quot;We were unable to locate a user with the given username.&quot;</pre></td>
 
883
          </tr>
 
884
        
 
885
          
 
886
          
 
887
          <tr class="uncovered">
 
888
            <td><pre><a name="line139">139</a>     else</pre></td>
 
889
          </tr>
 
890
        
 
891
          
 
892
          
 
893
          <tr class="uncovered">
 
894
            <td><pre><a name="line140">140</a>       puts &quot;[unexpected] Got this message back: [#{result}]&quot;</pre></td>
 
895
          </tr>
 
896
        
 
897
          
 
898
          
 
899
          <tr class="uncovered">
 
900
            <td><pre><a name="line141">141</a>     end</pre></td>
 
901
          </tr>
 
902
        
 
903
          
 
904
          
 
905
          <tr class="uncovered">
 
906
            <td><pre><a name="line142">142</a>   end</pre></td>
 
907
          </tr>
 
908
        
 
909
          
 
910
          
 
911
          <tr class="inferred">
 
912
            <td><pre><a name="line143">143</a> </pre></td>
 
913
          </tr>
 
914
        
 
915
          
 
916
          
 
917
          <tr class="marked">
 
918
            <td><pre><a name="line144">144</a>   def delete_app(app, retry_on_except=true)</pre></td>
 
919
          </tr>
 
920
        
 
921
          
 
922
          
 
923
          <tr class="uncovered">
 
924
            <td><pre><a name="line145">145</a>     result = &quot;&quot;</pre></td>
 
925
          </tr>
 
926
        
 
927
          
 
928
          
 
929
          <tr class="uncovered">
 
930
            <td><pre><a name="line146">146</a>     make_call(10, retry_on_except) {</pre></td>
 
931
          </tr>
 
932
        
 
933
          
 
934
          
 
935
          <tr class="uncovered">
 
936
            <td><pre><a name="line147">147</a>       result = @conn.delete_app(app, @secret)</pre></td>
 
937
          </tr>
 
938
        
 
939
          
 
940
          
 
941
          <tr class="uncovered">
 
942
            <td><pre><a name="line148">148</a>     }</pre></td>
 
943
          </tr>
 
944
        
 
945
          
 
946
          
 
947
          <tr class="uncovered">
 
948
            <td><pre><a name="line149">149</a>     </pre></td>
 
949
          </tr>
 
950
        
 
951
          
 
952
          
 
953
          <tr class="uncovered">
 
954
            <td><pre><a name="line150">150</a>     if result == &quot;true&quot;</pre></td>
 
955
          </tr>
 
956
        
 
957
          
 
958
          
 
959
          <tr class="uncovered">
 
960
            <td><pre><a name="line151">151</a>       return true</pre></td>
 
961
          </tr>
 
962
        
 
963
          
 
964
          
 
965
          <tr class="uncovered">
 
966
            <td><pre><a name="line152">152</a>     else</pre></td>
 
967
          </tr>
 
968
        
 
969
          
 
970
          
 
971
          <tr class="uncovered">
 
972
            <td><pre><a name="line153">153</a>       return result</pre></td>
 
973
          </tr>
 
974
        
 
975
          
 
976
          
 
977
          <tr class="uncovered">
 
978
            <td><pre><a name="line154">154</a>     end  </pre></td>
 
979
          </tr>
 
980
        
 
981
          
 
982
          
 
983
          <tr class="uncovered">
 
984
            <td><pre><a name="line155">155</a>   end</pre></td>
 
985
          </tr>
 
986
        
 
987
          
 
988
          
 
989
          <tr class="inferred">
 
990
            <td><pre><a name="line156">156</a> </pre></td>
 
991
          </tr>
 
992
        
 
993
          
 
994
          
 
995
          <tr class="marked">
 
996
            <td><pre><a name="line157">157</a>   def does_app_exist?(app, retry_on_except=true)</pre></td>
 
997
          </tr>
 
998
        
 
999
          
 
1000
          
 
1001
          <tr class="uncovered">
 
1002
            <td><pre><a name="line158">158</a>     result = &quot;&quot;</pre></td>
 
1003
          </tr>
 
1004
        
 
1005
          
 
1006
          
 
1007
          <tr class="uncovered">
 
1008
            <td><pre><a name="line159">159</a>     make_call(10, retry_on_except) {</pre></td>
 
1009
          </tr>
 
1010
        
 
1011
          
 
1012
          
 
1013
          <tr class="uncovered">
 
1014
            <td><pre><a name="line160">160</a>       result = @conn.is_app_enabled(app, @secret)</pre></td>
 
1015
          </tr>
 
1016
        
 
1017
          
 
1018
          
 
1019
          <tr class="uncovered">
 
1020
            <td><pre><a name="line161">161</a>     }</pre></td>
 
1021
          </tr>
 
1022
        
 
1023
          
 
1024
          
 
1025
          <tr class="uncovered">
 
1026
            <td><pre><a name="line162">162</a>     </pre></td>
 
1027
          </tr>
 
1028
        
 
1029
          
 
1030
          
 
1031
          <tr class="uncovered">
 
1032
            <td><pre><a name="line163">163</a>     if result == &quot;true&quot;</pre></td>
 
1033
          </tr>
 
1034
        
 
1035
          
 
1036
          
 
1037
          <tr class="uncovered">
 
1038
            <td><pre><a name="line164">164</a>       return true</pre></td>
 
1039
          </tr>
 
1040
        
 
1041
          
 
1042
          
 
1043
          <tr class="uncovered">
 
1044
            <td><pre><a name="line165">165</a>     else</pre></td>
 
1045
          </tr>
 
1046
        
 
1047
          
 
1048
          
 
1049
          <tr class="uncovered">
 
1050
            <td><pre><a name="line166">166</a>       return false</pre></td>
 
1051
          </tr>
 
1052
        
 
1053
          
 
1054
          
 
1055
          <tr class="uncovered">
 
1056
            <td><pre><a name="line167">167</a>     end</pre></td>
 
1057
          </tr>
 
1058
        
 
1059
          
 
1060
          
 
1061
          <tr class="uncovered">
 
1062
            <td><pre><a name="line168">168</a>   end</pre></td>
 
1063
          </tr>
 
1064
        
 
1065
          
 
1066
          
 
1067
          <tr class="inferred">
 
1068
            <td><pre><a name="line169">169</a>   </pre></td>
 
1069
          </tr>
 
1070
        
 
1071
          
 
1072
          
 
1073
          <tr class="marked">
 
1074
            <td><pre><a name="line170">170</a>   def does_user_exist?(user, retry_on_except=true)</pre></td>
 
1075
          </tr>
 
1076
        
 
1077
          
 
1078
          
 
1079
          <tr class="uncovered">
 
1080
            <td><pre><a name="line171">171</a>     result = &quot;&quot;</pre></td>
 
1081
          </tr>
 
1082
        
 
1083
          
 
1084
          
 
1085
          <tr class="uncovered">
 
1086
            <td><pre><a name="line172">172</a>     make_call(10, retry_on_except) {</pre></td>
 
1087
          </tr>
 
1088
        
 
1089
          
 
1090
          
 
1091
          <tr class="uncovered">
 
1092
            <td><pre><a name="line173">173</a>       result = @conn.does_user_exist(user, @secret)</pre></td>
 
1093
          </tr>
 
1094
        
 
1095
          
 
1096
          
 
1097
          <tr class="uncovered">
 
1098
            <td><pre><a name="line174">174</a>     }</pre></td>
 
1099
          </tr>
 
1100
        
 
1101
          
 
1102
          
 
1103
          <tr class="uncovered">
 
1104
            <td><pre><a name="line175">175</a>     </pre></td>
 
1105
          </tr>
 
1106
        
 
1107
          
 
1108
          
 
1109
          <tr class="uncovered">
 
1110
            <td><pre><a name="line176">176</a>     return result</pre></td>
 
1111
          </tr>
 
1112
        
 
1113
          
 
1114
          
 
1115
          <tr class="uncovered">
 
1116
            <td><pre><a name="line177">177</a>   end</pre></td>
 
1117
          </tr>
 
1118
        
 
1119
          
 
1120
          
 
1121
          <tr class="inferred">
 
1122
            <td><pre><a name="line178">178</a> </pre></td>
 
1123
          </tr>
 
1124
        
 
1125
          
 
1126
          
 
1127
          <tr class="marked">
 
1128
            <td><pre><a name="line179">179</a>   def get_user_data(username, retry_on_except=true)</pre></td>
 
1129
          </tr>
 
1130
        
 
1131
          
 
1132
          
 
1133
          <tr class="uncovered">
 
1134
            <td><pre><a name="line180">180</a>     result = &quot;&quot;</pre></td>
 
1135
          </tr>
 
1136
        
 
1137
          
 
1138
          
 
1139
          <tr class="uncovered">
 
1140
            <td><pre><a name="line181">181</a>     make_call(10, retry_on_except) {</pre></td>
 
1141
          </tr>
 
1142
        
 
1143
          
 
1144
          
 
1145
          <tr class="uncovered">
 
1146
            <td><pre><a name="line182">182</a>       result = @conn.get_user_data(username, @secret)</pre></td>
 
1147
          </tr>
 
1148
        
 
1149
          
 
1150
          
 
1151
          <tr class="uncovered">
 
1152
            <td><pre><a name="line183">183</a>     }</pre></td>
 
1153
          </tr>
 
1154
        
 
1155
          
 
1156
          
 
1157
          <tr class="uncovered">
 
1158
            <td><pre><a name="line184">184</a> </pre></td>
 
1159
          </tr>
 
1160
        
 
1161
          
 
1162
          
 
1163
          <tr class="uncovered">
 
1164
            <td><pre><a name="line185">185</a>     return result</pre></td>
 
1165
          </tr>
 
1166
        
 
1167
          
 
1168
          
 
1169
          <tr class="uncovered">
 
1170
            <td><pre><a name="line186">186</a>   end</pre></td>
 
1171
          </tr>
 
1172
        
 
1173
          
 
1174
          
 
1175
          <tr class="inferred">
 
1176
            <td><pre><a name="line187">187</a> </pre></td>
 
1177
          </tr>
 
1178
        
 
1179
          
 
1180
          
 
1181
          <tr class="marked">
 
1182
            <td><pre><a name="line188">188</a>   def get_app_data(appname, retry_on_except=true)</pre></td>
 
1183
          </tr>
 
1184
        
 
1185
          
 
1186
          
 
1187
          <tr class="uncovered">
 
1188
            <td><pre><a name="line189">189</a>     result = &quot;&quot;</pre></td>
 
1189
          </tr>
 
1190
        
 
1191
          
 
1192
          
 
1193
          <tr class="uncovered">
 
1194
            <td><pre><a name="line190">190</a>     make_call(10, retry_on_except) {</pre></td>
 
1195
          </tr>
 
1196
        
 
1197
          
 
1198
          
 
1199
          <tr class="uncovered">
 
1200
            <td><pre><a name="line191">191</a>       result = @conn.get_app_data(appname, @secret)</pre></td>
 
1201
          </tr>
 
1202
        
 
1203
          
 
1204
          
 
1205
          <tr class="uncovered">
 
1206
            <td><pre><a name="line192">192</a>     }</pre></td>
 
1207
          </tr>
 
1208
        
 
1209
          
 
1210
          
 
1211
          <tr class="uncovered">
 
1212
            <td><pre><a name="line193">193</a> </pre></td>
 
1213
          </tr>
 
1214
        
 
1215
          
 
1216
          
 
1217
          <tr class="uncovered">
 
1218
            <td><pre><a name="line194">194</a>     return result</pre></td>
 
1219
          </tr>
 
1220
        
 
1221
          
 
1222
          
 
1223
          <tr class="uncovered">
 
1224
            <td><pre><a name="line195">195</a>   end</pre></td>
 
1225
          </tr>
 
1226
        
 
1227
          
 
1228
          
 
1229
          <tr class="inferred">
 
1230
            <td><pre><a name="line196">196</a> </pre></td>
 
1231
          </tr>
 
1232
        
 
1233
          
 
1234
          
 
1235
          <tr class="marked">
 
1236
            <td><pre><a name="line197">197</a>   def delete_instance(appname, host, port, retry_on_except=true)</pre></td>
 
1237
          </tr>
 
1238
        
 
1239
          
 
1240
          
 
1241
          <tr class="uncovered">
 
1242
            <td><pre><a name="line198">198</a>     result = &quot;&quot;</pre></td>
 
1243
          </tr>
 
1244
        
 
1245
          
 
1246
          
 
1247
          <tr class="uncovered">
 
1248
            <td><pre><a name="line199">199</a>     make_call(10, retry_on_except) {</pre></td>
 
1249
          </tr>
 
1250
        
 
1251
          
 
1252
          
 
1253
          <tr class="uncovered">
 
1254
            <td><pre><a name="line200">200</a>       result = @conn.delete_instance(appname, host, port, @secret)</pre></td>
 
1255
          </tr>
 
1256
        
 
1257
          
 
1258
          
 
1259
          <tr class="uncovered">
 
1260
            <td><pre><a name="line201">201</a>     }</pre></td>
 
1261
          </tr>
 
1262
        
 
1263
          
 
1264
          
 
1265
          <tr class="uncovered">
 
1266
            <td><pre><a name="line202">202</a> </pre></td>
 
1267
          </tr>
 
1268
        
 
1269
          
 
1270
          
 
1271
          <tr class="uncovered">
 
1272
            <td><pre><a name="line203">203</a>     return result</pre></td>
 
1273
          </tr>
 
1274
        
 
1275
          
 
1276
          
 
1277
          <tr class="uncovered">
 
1278
            <td><pre><a name="line204">204</a>   end</pre></td>
 
1279
          </tr>
 
1280
        
 
1281
          
 
1282
          
 
1283
          <tr class="inferred">
 
1284
            <td><pre><a name="line205">205</a> </pre></td>
 
1285
          </tr>
 
1286
        
 
1287
          
 
1288
          
 
1289
          <tr class="marked">
 
1290
            <td><pre><a name="line206">206</a>   def get_all_apps(retry_on_except=true)</pre></td>
 
1291
          </tr>
 
1292
        
 
1293
          
 
1294
          
 
1295
          <tr class="uncovered">
 
1296
            <td><pre><a name="line207">207</a>     all_apps = &quot;&quot;</pre></td>
 
1297
          </tr>
 
1298
        
 
1299
          
 
1300
          
 
1301
          <tr class="uncovered">
 
1302
            <td><pre><a name="line208">208</a>     make_call(10, retry_on_except) {</pre></td>
 
1303
          </tr>
 
1304
        
 
1305
          
 
1306
          
 
1307
          <tr class="uncovered">
 
1308
            <td><pre><a name="line209">209</a>       all_apps = @conn.get_all_apps(@secret)</pre></td>
 
1309
          </tr>
 
1310
        
 
1311
          
 
1312
          
 
1313
          <tr class="uncovered">
 
1314
            <td><pre><a name="line210">210</a>     }</pre></td>
 
1315
          </tr>
 
1316
        
 
1317
          
 
1318
          
 
1319
          <tr class="uncovered">
 
1320
            <td><pre><a name="line211">211</a> </pre></td>
 
1321
          </tr>
 
1322
        
 
1323
          
 
1324
          
 
1325
          <tr class="uncovered">
 
1326
            <td><pre><a name="line212">212</a>     app_list = all_apps.split(&quot;:&quot;)</pre></td>
 
1327
          </tr>
 
1328
        
 
1329
          
 
1330
          
 
1331
          <tr class="uncovered">
 
1332
            <td><pre><a name="line213">213</a>     app_list = app_list - [app_list[0]] # first item is a dummy value</pre></td>
 
1333
          </tr>
 
1334
        
 
1335
          
 
1336
          
 
1337
          <tr class="uncovered">
 
1338
            <td><pre><a name="line214">214</a>     return app_list</pre></td>
 
1339
          </tr>
 
1340
        
 
1341
          
 
1342
          
 
1343
          <tr class="uncovered">
 
1344
            <td><pre><a name="line215">215</a>   end</pre></td>
 
1345
          </tr>
 
1346
        
 
1347
          
 
1348
          
 
1349
          <tr class="inferred">
 
1350
            <td><pre><a name="line216">216</a> </pre></td>
 
1351
          </tr>
 
1352
        
 
1353
          
 
1354
          
 
1355
          <tr class="marked">
 
1356
            <td><pre><a name="line217">217</a>   def get_all_users(retry_on_except=true)</pre></td>
 
1357
          </tr>
 
1358
        
 
1359
          
 
1360
          
 
1361
          <tr class="uncovered">
 
1362
            <td><pre><a name="line218">218</a>     all_users = &quot;&quot;</pre></td>
 
1363
          </tr>
 
1364
        
 
1365
          
 
1366
          
 
1367
          <tr class="uncovered">
 
1368
            <td><pre><a name="line219">219</a>     make_call(10, retry_on_except) {</pre></td>
 
1369
          </tr>
 
1370
        
 
1371
          
 
1372
          
 
1373
          <tr class="uncovered">
 
1374
            <td><pre><a name="line220">220</a>       all_users = @conn.get_all_users(@secret)</pre></td>
 
1375
          </tr>
 
1376
        
 
1377
          
 
1378
          
 
1379
          <tr class="uncovered">
 
1380
            <td><pre><a name="line221">221</a>     }</pre></td>
 
1381
          </tr>
 
1382
        
 
1383
          
 
1384
          
 
1385
          <tr class="uncovered">
 
1386
            <td><pre><a name="line222">222</a> </pre></td>
 
1387
          </tr>
 
1388
        
 
1389
          
 
1390
          
 
1391
          <tr class="uncovered">
 
1392
            <td><pre><a name="line223">223</a>     user_list = all_users.split(&quot;:&quot;)</pre></td>
 
1393
          </tr>
 
1394
        
 
1395
          
 
1396
          
 
1397
          <tr class="uncovered">
 
1398
            <td><pre><a name="line224">224</a>     user_list = user_list - [user_list[0]]  # first item is a dummy value</pre></td>
 
1399
          </tr>
 
1400
        
 
1401
          
 
1402
          
 
1403
          <tr class="uncovered">
 
1404
            <td><pre><a name="line225">225</a>     return user_list</pre></td>
 
1405
          </tr>
 
1406
        
 
1407
          
 
1408
          
 
1409
          <tr class="uncovered">
 
1410
            <td><pre><a name="line226">226</a>   end</pre></td>
 
1411
          </tr>
 
1412
        
 
1413
          
 
1414
          
 
1415
          <tr class="inferred">
 
1416
            <td><pre><a name="line227">227</a> </pre></td>
 
1417
          </tr>
 
1418
        
 
1419
          
 
1420
          
 
1421
          <tr class="marked">
 
1422
            <td><pre><a name="line228">228</a>   def get_tar(appname, retry_on_except=true)</pre></td>
 
1423
          </tr>
 
1424
        
 
1425
          
 
1426
          
 
1427
          <tr class="uncovered">
 
1428
            <td><pre><a name="line229">229</a>     result = &quot;&quot;</pre></td>
 
1429
          </tr>
 
1430
        
 
1431
          
 
1432
          
 
1433
          <tr class="uncovered">
 
1434
            <td><pre><a name="line230">230</a>     make_call(300, retry_on_except) {</pre></td>
 
1435
          </tr>
 
1436
        
 
1437
          
 
1438
          
 
1439
          <tr class="uncovered">
 
1440
            <td><pre><a name="line231">231</a>       result = @conn.get_tar(appname, @secret)</pre></td>
 
1441
          </tr>
 
1442
        
 
1443
          
 
1444
          
 
1445
          <tr class="uncovered">
 
1446
            <td><pre><a name="line232">232</a>     }</pre></td>
 
1447
          </tr>
 
1448
        
 
1449
          
 
1450
          
 
1451
          <tr class="uncovered">
 
1452
            <td><pre><a name="line233">233</a> </pre></td>
 
1453
          </tr>
 
1454
        
 
1455
          
 
1456
          
 
1457
          <tr class="uncovered">
 
1458
            <td><pre><a name="line234">234</a>     return result</pre></td>
 
1459
          </tr>
 
1460
        
 
1461
          
 
1462
          
 
1463
          <tr class="uncovered">
 
1464
            <td><pre><a name="line235">235</a>   end</pre></td>
 
1465
          </tr>
 
1466
        
 
1467
          
 
1468
          
 
1469
          <tr class="inferred">
 
1470
            <td><pre><a name="line236">236</a> </pre></td>
 
1471
          </tr>
 
1472
        
 
1473
          
 
1474
          
 
1475
          <tr class="marked">
 
1476
            <td><pre><a name="line237">237</a>   def add_instance(appname, host, port, retry_on_except=true)</pre></td>
 
1477
          </tr>
 
1478
        
 
1479
          
 
1480
          
 
1481
          <tr class="uncovered">
 
1482
            <td><pre><a name="line238">238</a>     result = &quot;&quot;</pre></td>
 
1483
          </tr>
 
1484
        
 
1485
          
 
1486
          
 
1487
          <tr class="uncovered">
 
1488
            <td><pre><a name="line239">239</a>     make_call(10, retry_on_except) {</pre></td>
 
1489
          </tr>
 
1490
        
 
1491
          
 
1492
          
 
1493
          <tr class="uncovered">
 
1494
            <td><pre><a name="line240">240</a>       result = @conn.add_instance(appname, host, port, @secret)</pre></td>
 
1495
          </tr>
 
1496
        
 
1497
          
 
1498
          
 
1499
          <tr class="uncovered">
 
1500
            <td><pre><a name="line241">241</a>     }</pre></td>
 
1501
          </tr>
 
1502
        
 
1503
          
 
1504
          
 
1505
          <tr class="uncovered">
 
1506
            <td><pre><a name="line242">242</a> </pre></td>
 
1507
          </tr>
 
1508
        
 
1509
          
 
1510
          
 
1511
          <tr class="uncovered">
 
1512
            <td><pre><a name="line243">243</a>     if result == &quot;true&quot;</pre></td>
 
1513
          </tr>
 
1514
        
 
1515
          
 
1516
          
 
1517
          <tr class="uncovered">
 
1518
            <td><pre><a name="line244">244</a>       return true</pre></td>
 
1519
          </tr>
 
1520
        
 
1521
          
 
1522
          
 
1523
          <tr class="uncovered">
 
1524
            <td><pre><a name="line245">245</a>     else</pre></td>
 
1525
          </tr>
 
1526
        
 
1527
          
 
1528
          
 
1529
          <tr class="uncovered">
 
1530
            <td><pre><a name="line246">246</a>       return false</pre></td>
 
1531
          </tr>
 
1532
        
 
1533
          
 
1534
          
 
1535
          <tr class="uncovered">
 
1536
            <td><pre><a name="line247">247</a>     end</pre></td>
 
1537
          </tr>
 
1538
        
 
1539
          
 
1540
          
 
1541
          <tr class="uncovered">
 
1542
            <td><pre><a name="line248">248</a>   end</pre></td>
 
1543
          </tr>
 
1544
        
 
1545
          
 
1546
          
 
1547
          <tr class="inferred">
 
1548
            <td><pre><a name="line249">249</a> </pre></td>
 
1549
          </tr>
 
1550
        
 
1551
          
 
1552
          
 
1553
          <tr class="inferred">
 
1554
            <td><pre><a name="line250">250</a>   # This method sees if the given app is already uploaded in the system.</pre></td>
 
1555
          </tr>
 
1556
        
 
1557
          
 
1558
          
 
1559
          <tr class="inferred">
 
1560
            <td><pre><a name="line251">251</a>   # TODO(cgb): compare this with is_app_enabled? above</pre></td>
 
1561
          </tr>
 
1562
        
 
1563
          
 
1564
          
 
1565
          <tr class="marked">
 
1566
            <td><pre><a name="line252">252</a>   def is_app_uploaded?(appname)</pre></td>
 
1567
          </tr>
 
1568
        
 
1569
          
 
1570
          
 
1571
          <tr class="uncovered">
 
1572
            <td><pre><a name="line253">253</a>     all_apps = get_all_apps()</pre></td>
 
1573
          </tr>
 
1574
        
 
1575
          
 
1576
          
 
1577
          <tr class="uncovered">
 
1578
            <td><pre><a name="line254">254</a>     return app_list.include?(appname)</pre></td>
 
1579
          </tr>
 
1580
        
 
1581
          
 
1582
          
 
1583
          <tr class="uncovered">
 
1584
            <td><pre><a name="line255">255</a>   end</pre></td>
 
1585
          </tr>
 
1586
        
 
1587
          
 
1588
          
 
1589
          <tr class="inferred">
 
1590
            <td><pre><a name="line256">256</a> </pre></td>
 
1591
          </tr>
 
1592
        
 
1593
          
 
1594
          
 
1595
          <tr class="marked">
 
1596
            <td><pre><a name="line257">257</a>   def is_user_cloud_admin?(user, retry_on_except=true)</pre></td>
 
1597
          </tr>
 
1598
        
 
1599
          
 
1600
          
 
1601
          <tr class="uncovered">
 
1602
            <td><pre><a name="line258">258</a>     result = &quot;&quot;</pre></td>
 
1603
          </tr>
 
1604
        
 
1605
          
 
1606
          
 
1607
          <tr class="uncovered">
 
1608
            <td><pre><a name="line259">259</a>     make_call(10, retry_on_except) {</pre></td>
 
1609
          </tr>
 
1610
        
 
1611
          
 
1612
          
 
1613
          <tr class="uncovered">
 
1614
            <td><pre><a name="line260">260</a>       result = @conn.is_user_cloud_admin(user, @secret)</pre></td>
 
1615
          </tr>
 
1616
        
 
1617
          
 
1618
          
 
1619
          <tr class="uncovered">
 
1620
            <td><pre><a name="line261">261</a>     }</pre></td>
 
1621
          </tr>
 
1622
        
 
1623
          
 
1624
          
 
1625
          <tr class="uncovered">
 
1626
            <td><pre><a name="line262">262</a>    </pre></td>
 
1627
          </tr>
 
1628
        
 
1629
          
 
1630
          
 
1631
          <tr class="uncovered">
 
1632
            <td><pre><a name="line263">263</a>     if result == &quot;true&quot;</pre></td>
 
1633
          </tr>
 
1634
        
 
1635
          
 
1636
          
 
1637
          <tr class="uncovered">
 
1638
            <td><pre><a name="line264">264</a>       return true</pre></td>
 
1639
          </tr>
 
1640
        
 
1641
          
 
1642
          
 
1643
          <tr class="uncovered">
 
1644
            <td><pre><a name="line265">265</a>     else</pre></td>
 
1645
          </tr>
 
1646
        
 
1647
          
 
1648
          
 
1649
          <tr class="uncovered">
 
1650
            <td><pre><a name="line266">266</a>       return false</pre></td>
 
1651
          </tr>
 
1652
        
 
1653
          
 
1654
          
 
1655
          <tr class="uncovered">
 
1656
            <td><pre><a name="line267">267</a>     end</pre></td>
 
1657
          </tr>
 
1658
        
 
1659
          
 
1660
          
 
1661
          <tr class="uncovered">
 
1662
            <td><pre><a name="line268">268</a>   end</pre></td>
 
1663
          </tr>
 
1664
        
 
1665
          
 
1666
          
 
1667
          <tr class="inferred">
 
1668
            <td><pre><a name="line269">269</a>  </pre></td>
 
1669
          </tr>
 
1670
        
 
1671
          
 
1672
          
 
1673
          <tr class="inferred">
 
1674
            <td><pre><a name="line270">270</a>   # This method returns an array of strings, each corresponding to a</pre></td>
 
1675
          </tr>
 
1676
        
 
1677
          
 
1678
          
 
1679
          <tr class="inferred">
 
1680
            <td><pre><a name="line271">271</a>   # ip:port that the given app is hosted at.</pre></td>
 
1681
          </tr>
 
1682
        
 
1683
          
 
1684
          
 
1685
          <tr class="marked">
 
1686
            <td><pre><a name="line272">272</a>   def get_hosts_for_app(appname)</pre></td>
 
1687
          </tr>
 
1688
        
 
1689
          
 
1690
          
 
1691
          <tr class="uncovered">
 
1692
            <td><pre><a name="line273">273</a>     app_data = get_app_data(appname)</pre></td>
 
1693
          </tr>
 
1694
        
 
1695
          
 
1696
          
 
1697
          <tr class="uncovered">
 
1698
            <td><pre><a name="line274">274</a>     hosts = app_data.scan(/\nhosts:([\d\.|:]+)\n/).flatten.to_s.split(&quot;:&quot;)</pre></td>
 
1699
          </tr>
 
1700
        
 
1701
          
 
1702
          
 
1703
          <tr class="uncovered">
 
1704
            <td><pre><a name="line275">275</a>     ports = app_data.scan(/\nports: ([\d|:]+)\n/).flatten.to_s.split(&quot;:&quot;)</pre></td>
 
1705
          </tr>
 
1706
        
 
1707
          
 
1708
          
 
1709
          <tr class="uncovered">
 
1710
            <td><pre><a name="line276">276</a> </pre></td>
 
1711
          </tr>
 
1712
        
 
1713
          
 
1714
          
 
1715
          <tr class="uncovered">
 
1716
            <td><pre><a name="line277">277</a>     host_list = []</pre></td>
 
1717
          </tr>
 
1718
        
 
1719
          
 
1720
          
 
1721
          <tr class="uncovered">
 
1722
            <td><pre><a name="line278">278</a> </pre></td>
 
1723
          </tr>
 
1724
        
 
1725
          
 
1726
          
 
1727
          <tr class="uncovered">
 
1728
            <td><pre><a name="line279">279</a>     hosts.each_index { |i|</pre></td>
 
1729
          </tr>
 
1730
        
 
1731
          
 
1732
          
 
1733
          <tr class="uncovered">
 
1734
            <td><pre><a name="line280">280</a>       host_list &lt;&lt; &quot;#{hosts[i]}:#{ports[i]}&quot;</pre></td>
 
1735
          </tr>
 
1736
        
 
1737
          
 
1738
          
 
1739
          <tr class="uncovered">
 
1740
            <td><pre><a name="line281">281</a>     }</pre></td>
 
1741
          </tr>
 
1742
        
 
1743
          
 
1744
          
 
1745
          <tr class="uncovered">
 
1746
            <td><pre><a name="line282">282</a> </pre></td>
 
1747
          </tr>
 
1748
        
 
1749
          
 
1750
          
 
1751
          <tr class="uncovered">
 
1752
            <td><pre><a name="line283">283</a>     return host_list</pre></td>
 
1753
          </tr>
 
1754
        
 
1755
          
 
1756
          
 
1757
          <tr class="uncovered">
 
1758
            <td><pre><a name="line284">284</a>   end</pre></td>
 
1759
          </tr>
 
1760
        
 
1761
          
 
1762
          
 
1763
          <tr class="inferred">
 
1764
            <td><pre><a name="line285">285</a> </pre></td>
 
1765
          </tr>
 
1766
        
 
1767
          
 
1768
          
 
1769
          <tr class="inferred">
 
1770
            <td><pre><a name="line286">286</a>   # This method finds the first user who is a cloud administrator. Since the</pre></td>
 
1771
          </tr>
 
1772
        
 
1773
          
 
1774
          
 
1775
          <tr class="inferred">
 
1776
            <td><pre><a name="line287">287</a>   # UserAppServer doesn't provide a function that does this for us, we have</pre></td>
 
1777
          </tr>
 
1778
        
 
1779
          
 
1780
          
 
1781
          <tr class="inferred">
 
1782
            <td><pre><a name="line288">288</a>   # to get a list of all the users that exist and individually query the</pre></td>
 
1783
          </tr>
 
1784
        
 
1785
          
 
1786
          
 
1787
          <tr class="inferred">
 
1788
            <td><pre><a name="line289">289</a>   # UAServer to find out who the cloud admin is.</pre></td>
 
1789
          </tr>
 
1790
        
 
1791
          
 
1792
          
 
1793
          <tr class="inferred">
 
1794
            <td><pre><a name="line290">290</a>   # TODO(cgb): Maybe cache who the cloud admin is to speed up future queries?</pre></td>
 
1795
          </tr>
 
1796
        
 
1797
          
 
1798
          
 
1799
          <tr class="marked">
 
1800
            <td><pre><a name="line291">291</a>   def get_cloud_admin()</pre></td>
 
1801
          </tr>
 
1802
        
 
1803
          
 
1804
          
 
1805
          <tr class="uncovered">
 
1806
            <td><pre><a name="line292">292</a>     user_list = get_all_users()</pre></td>
 
1807
          </tr>
 
1808
        
 
1809
          
 
1810
          
 
1811
          <tr class="uncovered">
 
1812
            <td><pre><a name="line293">293</a> </pre></td>
 
1813
          </tr>
 
1814
        
 
1815
          
 
1816
          
 
1817
          <tr class="uncovered">
 
1818
            <td><pre><a name="line294">294</a>     user_list.each { |user|</pre></td>
 
1819
          </tr>
 
1820
        
 
1821
          
 
1822
          
 
1823
          <tr class="uncovered">
 
1824
            <td><pre><a name="line295">295</a>       return user if is_user_cloud_admin?(user)</pre></td>
 
1825
          </tr>
 
1826
        
 
1827
          
 
1828
          
 
1829
          <tr class="uncovered">
 
1830
            <td><pre><a name="line296">296</a>     }</pre></td>
 
1831
          </tr>
 
1832
        
 
1833
          
 
1834
          
 
1835
          <tr class="uncovered">
 
1836
            <td><pre><a name="line297">297</a> </pre></td>
 
1837
          </tr>
 
1838
        
 
1839
          
 
1840
          
 
1841
          <tr class="uncovered">
 
1842
            <td><pre><a name="line298">298</a>     raise Exception.new(&quot;Couldn't find a cloud administrator&quot;)</pre></td>
 
1843
          </tr>
 
1844
        
 
1845
          
 
1846
          
 
1847
          <tr class="uncovered">
 
1848
            <td><pre><a name="line299">299</a>   end</pre></td>
 
1849
          </tr>
 
1850
        
 
1851
          
 
1852
          
 
1853
          <tr class="uncovered">
 
1854
            <td><pre><a name="line300">300</a> end</pre></td>
 
1855
          </tr>
 
1856
        
 
1857
      </tbody>
 
1858
    </table>
 
1859
 
 
1860
    <p>Generated on Fri Feb 17 23:21:44 -0800 2012 with <a href="http://github.com/relevance/rcov">rcov 0.9.8</a></p>
 
1861
 
 
1862
  </body>
 
1863
</html>