~cgb-cs/appscale/appscale-main

« back to all changes in this revision

Viewing changes to AppController/doc/PbServer.html

  • Committer: Chris Bunch
  • Date: 2012-02-18 06:15:47 UTC
  • Revision ID: cgb@cs.ucsb.edu-20120218061547-8dg3gyqkiwzorqwh
adding rdoc generation and initial docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="UTF-8"?>
 
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 
3
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
4
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
5
<head>
 
6
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
 
7
 
 
8
  <title>Class: PbServer</title>
 
9
 
 
10
  <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
 
11
 
 
12
  <script src="./js/jquery.js" type="text/javascript"
 
13
    charset="utf-8"></script>
 
14
  <script src="./js/thickbox-compressed.js" type="text/javascript"
 
15
    charset="utf-8"></script>
 
16
  <script src="./js/quicksearch.js" type="text/javascript"
 
17
    charset="utf-8"></script>
 
18
  <script src="./js/darkfish.js" type="text/javascript"
 
19
    charset="utf-8"></script>
 
20
 
 
21
</head>
 
22
<body class="class">
 
23
 
 
24
  <div id="metadata">
 
25
    <div id="home-metadata">
 
26
      <div id="home-section" class="section">
 
27
        <h3 class="section-header">
 
28
          <a href="./index.html">Home</a>
 
29
          <a href="./index.html#classes">Classes</a>
 
30
          <a href="./index.html#methods">Methods</a>
 
31
        </h3>
 
32
      </div>
 
33
    </div>
 
34
 
 
35
    <div id="file-metadata">
 
36
      <div id="file-list-section" class="section">
 
37
        <h3 class="section-header">In Files</h3>
 
38
        <div class="section-body">
 
39
          <ul>
 
40
          
 
41
            <li><a href="./lib/pbserver_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
 
42
              class="thickbox" title="lib/pbserver.rb">lib/pbserver.rb</a></li>
 
43
          
 
44
          </ul>
 
45
        </div>
 
46
      </div>
 
47
 
 
48
      
 
49
    </div>
 
50
 
 
51
    <div id="class-metadata">
 
52
 
 
53
      <!-- Parent Class -->
 
54
      
 
55
      <div id="parent-class-section" class="section">
 
56
        <h3 class="section-header">Parent</h3>
 
57
        
 
58
        <p class="link"><a href="Object.html">Object</a></p>
 
59
        
 
60
      </div>
 
61
      
 
62
 
 
63
      <!-- Namespace Contents -->
 
64
      
 
65
 
 
66
      <!-- Method Quickref -->
 
67
      
 
68
      <div id="method-list-section" class="section">
 
69
        <h3 class="section-header">Methods</h3>
 
70
        <ul class="link-list">
 
71
          
 
72
          <li><a href="#method-c-is_running">::is_running</a></li>
 
73
          
 
74
          <li><a href="#method-c-listen_port">::listen_port</a></li>
 
75
          
 
76
          <li><a href="#method-c-listen_ssl_port">::listen_ssl_port</a></li>
 
77
          
 
78
          <li><a href="#method-c-name">::name</a></li>
 
79
          
 
80
          <li><a href="#method-c-pb_script">::pb_script</a></li>
 
81
          
 
82
          <li><a href="#method-c-proxy_port">::proxy_port</a></li>
 
83
          
 
84
          <li><a href="#method-c-public_directory">::public_directory</a></li>
 
85
          
 
86
          <li><a href="#method-c-restart">::restart</a></li>
 
87
          
 
88
          <li><a href="#method-c-server_ports">::server_ports</a></li>
 
89
          
 
90
          <li><a href="#method-c-start">::start</a></li>
 
91
          
 
92
          <li><a href="#method-c-stop">::stop</a></li>
 
93
          
 
94
        </ul>
 
95
      </div>
 
96
      
 
97
 
 
98
      <!-- Included Modules -->
 
99
      
 
100
    </div>
 
101
 
 
102
    <div id="project-metadata">
 
103
      
 
104
      
 
105
 
 
106
      <div id="classindex-section" class="section project-section">
 
107
        <h3 class="section-header">Class/Module Index
 
108
          <span class="search-toggle"><img src="./images/find.png"
 
109
            height="16" width="16" alt="[+]"
 
110
            title="show/hide quicksearch" /></span></h3>
 
111
        <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
 
112
        <fieldset>
 
113
          <legend>Quicksearch</legend>
 
114
          <input type="text" name="quicksearch" value=""
 
115
            class="quicksearch-field" />
 
116
        </fieldset>
 
117
        </form>
 
118
 
 
119
        <ul class="link-list">
 
120
        
 
121
          <li><a href="./AppControllerClient.html">AppControllerClient</a></li>
 
122
        
 
123
          <li><a href="./BlobServer.html">BlobServer</a></li>
 
124
        
 
125
          <li><a href="./Collectd.html">Collectd</a></li>
 
126
        
 
127
          <li><a href="./CronHelper.html">CronHelper</a></li>
 
128
        
 
129
          <li><a href="./Djinn.html">Djinn</a></li>
 
130
        
 
131
          <li><a href="./DjinnJobData.html">DjinnJobData</a></li>
 
132
        
 
133
          <li><a href="./DjinnServer.html">DjinnServer</a></li>
 
134
        
 
135
          <li><a href="./Ejabberd.html">Ejabberd</a></li>
 
136
        
 
137
          <li><a href="./GodInterface.html">GodInterface</a></li>
 
138
        
 
139
          <li><a href="./HAProxy.html">HAProxy</a></li>
 
140
        
 
141
          <li><a href="./HelperFunctions.html">HelperFunctions</a></li>
 
142
        
 
143
          <li><a href="./JSONClient.html">JSONClient</a></li>
 
144
        
 
145
          <li><a href="./LoadBalancer.html">LoadBalancer</a></li>
 
146
        
 
147
          <li><a href="./Monitoring.html">Monitoring</a></li>
 
148
        
 
149
          <li><a href="./Nginx.html">Nginx</a></li>
 
150
        
 
151
          <li><a href="./Object.html">Object</a></li>
 
152
        
 
153
          <li><a href="./PbServer.html">PbServer</a></li>
 
154
        
 
155
          <li><a href="./RabbitMQ.html">RabbitMQ</a></li>
 
156
        
 
157
          <li><a href="./Repo.html">Repo</a></li>
 
158
        
 
159
          <li><a href="./UserAppClient.html">UserAppClient</a></li>
 
160
        
 
161
          <li><a href="./ZKInterface.html">ZKInterface</a></li>
 
162
        
 
163
        </ul>
 
164
        <div id="no-class-search-results" style="display: none;">No matching classes.</div>
 
165
      </div>
 
166
 
 
167
      
 
168
    </div>
 
169
  </div>
 
170
 
 
171
  <div id="documentation">
 
172
    <h1 class="class">PbServer</h1>
 
173
 
 
174
    <div id="description">
 
175
      
 
176
<p>A class to wrap all the interactions with the <a
 
177
href="PbServer.html">PbServer</a></p>
 
178
 
 
179
    </div>
 
180
 
 
181
    <!-- Constants -->
 
182
    
 
183
    <div id="constants-list" class="section">
 
184
      <h3 class="section-header">Constants</h3>
 
185
      <dl>
 
186
      
 
187
        <dt><a name="NUM_PBSERVERS">NUM_PBSERVERS</a></dt>
 
188
        
 
189
        <dd class="description"></dd>
 
190
        
 
191
      
 
192
        <dt><a name="SERVER_PORTS">SERVER_PORTS</a></dt>
 
193
        
 
194
        <dd class="description"></dd>
 
195
        
 
196
      
 
197
        <dt><a name="PROXY_PORT">PROXY_PORT</a></dt>
 
198
        
 
199
        <dd class="description"></dd>
 
200
        
 
201
      
 
202
        <dt><a name="LISTEN_PORT_NO_SSL">LISTEN_PORT_NO_SSL</a></dt>
 
203
        
 
204
        <dd class="description"></dd>
 
205
        
 
206
      
 
207
        <dt><a name="LISTEN_PORT_WITH_SSL">LISTEN_PORT_WITH_SSL</a></dt>
 
208
        
 
209
        <dd class="description"></dd>
 
210
        
 
211
      
 
212
        <dt><a name="DBS_NEEDING_ONE_PBSERVER">DBS_NEEDING_ONE_PBSERVER</a></dt>
 
213
        
 
214
        <dd class="description"></dd>
 
215
        
 
216
      
 
217
        <dt><a name="DBS_WITH_NATIVE_PBSERVER">DBS_WITH_NATIVE_PBSERVER</a></dt>
 
218
        
 
219
        <dd class="description"></dd>
 
220
        
 
221
      
 
222
      </dl>
 
223
    </div>
 
224
    
 
225
 
 
226
    <!-- Attributes -->
 
227
    
 
228
 
 
229
    <!-- Methods -->
 
230
    
 
231
    <div id="public-class-method-details" class="method-section section">
 
232
      <h3 class="section-header">Public Class Methods</h3>
 
233
 
 
234
    
 
235
      <div id="is_running-method" class="method-detail ">
 
236
        <a name="method-c-is_running"></a>
 
237
 
 
238
        
 
239
        <div class="method-heading">
 
240
          <span class="method-name">is_running</span><span
 
241
            class="method-args">(my_ip)</span>
 
242
          <span class="method-click-advice">click to toggle source</span>
 
243
        </div>
 
244
        
 
245
 
 
246
        <div class="method-description">
 
247
          
 
248
          
 
249
          
 
250
 
 
251
          
 
252
          <div class="method-source-code"
 
253
            id="is_running-source">
 
254
<pre>
 
255
<span class="ruby-comment"># File lib/pbserver.rb, line 85</span>
 
256
def self.is_running(my_ip)
 
257
  `curl http://#{my_ip}:#{PROXY_PORT}` 
 
258
end</pre>
 
259
          </div>
 
260
          
 
261
        </div>
 
262
 
 
263
        
 
264
 
 
265
        
 
266
      </div>
 
267
 
 
268
    
 
269
      <div id="listen_port-method" class="method-detail ">
 
270
        <a name="method-c-listen_port"></a>
 
271
 
 
272
        
 
273
        <div class="method-heading">
 
274
          <span class="method-name">listen_port</span><span
 
275
            class="method-args">()</span>
 
276
          <span class="method-click-advice">click to toggle source</span>
 
277
        </div>
 
278
        
 
279
 
 
280
        <div class="method-description">
 
281
          
 
282
          
 
283
          
 
284
 
 
285
          
 
286
          <div class="method-source-code"
 
287
            id="listen_port-source">
 
288
<pre>
 
289
<span class="ruby-comment"># File lib/pbserver.rb, line 65</span>
 
290
def self.listen_port
 
291
  <span class="ruby-constant">LISTEN_PORT_NO_SSL</span>
 
292
end</pre>
 
293
          </div>
 
294
          
 
295
        </div>
 
296
 
 
297
        
 
298
 
 
299
        
 
300
      </div>
 
301
 
 
302
    
 
303
      <div id="listen_ssl_port-method" class="method-detail ">
 
304
        <a name="method-c-listen_ssl_port"></a>
 
305
 
 
306
        
 
307
        <div class="method-heading">
 
308
          <span class="method-name">listen_ssl_port</span><span
 
309
            class="method-args">()</span>
 
310
          <span class="method-click-advice">click to toggle source</span>
 
311
        </div>
 
312
        
 
313
 
 
314
        <div class="method-description">
 
315
          
 
316
          
 
317
          
 
318
 
 
319
          
 
320
          <div class="method-source-code"
 
321
            id="listen_ssl_port-source">
 
322
<pre>
 
323
<span class="ruby-comment"># File lib/pbserver.rb, line 69</span>
 
324
def self.listen_ssl_port
 
325
  <span class="ruby-constant">LISTEN_PORT_WITH_SSL</span>
 
326
end</pre>
 
327
          </div>
 
328
          
 
329
        </div>
 
330
 
 
331
        
 
332
 
 
333
        
 
334
      </div>
 
335
 
 
336
    
 
337
      <div id="name-method" class="method-detail ">
 
338
        <a name="method-c-name"></a>
 
339
 
 
340
        
 
341
        <div class="method-heading">
 
342
          <span class="method-name">name</span><span
 
343
            class="method-args">()</span>
 
344
          <span class="method-click-advice">click to toggle source</span>
 
345
        </div>
 
346
        
 
347
 
 
348
        <div class="method-description">
 
349
          
 
350
          
 
351
          
 
352
 
 
353
          
 
354
          <div class="method-source-code"
 
355
            id="name-source">
 
356
<pre>
 
357
<span class="ruby-comment"># File lib/pbserver.rb, line 57</span>
 
358
def self.name
 
359
  <span class="ruby-string">&quot;as_pbserver&quot;</span>
 
360
end</pre>
 
361
          </div>
 
362
          
 
363
        </div>
 
364
 
 
365
        
 
366
 
 
367
        
 
368
      </div>
 
369
 
 
370
    
 
371
      <div id="pb_script-method" class="method-detail ">
 
372
        <a name="method-c-pb_script"></a>
 
373
 
 
374
        
 
375
        <div class="method-heading">
 
376
          <span class="method-name">pb_script</span><span
 
377
            class="method-args">(table)</span>
 
378
          <span class="method-click-advice">click to toggle source</span>
 
379
        </div>
 
380
        
 
381
 
 
382
        <div class="method-description">
 
383
          
 
384
          
 
385
          
 
386
 
 
387
          
 
388
          <div class="method-source-code"
 
389
            id="pb_script-source">
 
390
<pre>
 
391
<span class="ruby-comment"># File lib/pbserver.rb, line 89</span>
 
392
def self.pb_script(table)
 
393
  if <span class="ruby-constant">DBS_WITH_NATIVE_PBSERVER</span>.include?(table)
 
394
    return &quot;#{APPSCALE_HOME}/AppDB/appscale_server_#{table}.py&quot;
 
395
  else
 
396
    return &quot;#{APPSCALE_HOME}/AppDB/appscale_server.py&quot;
 
397
  end
 
398
end</pre>
 
399
          </div>
 
400
          
 
401
        </div>
 
402
 
 
403
        
 
404
 
 
405
        
 
406
      </div>
 
407
 
 
408
    
 
409
      <div id="proxy_port-method" class="method-detail ">
 
410
        <a name="method-c-proxy_port"></a>
 
411
 
 
412
        
 
413
        <div class="method-heading">
 
414
          <span class="method-name">proxy_port</span><span
 
415
            class="method-args">()</span>
 
416
          <span class="method-click-advice">click to toggle source</span>
 
417
        </div>
 
418
        
 
419
 
 
420
        <div class="method-description">
 
421
          
 
422
          
 
423
          
 
424
 
 
425
          
 
426
          <div class="method-source-code"
 
427
            id="proxy_port-source">
 
428
<pre>
 
429
<span class="ruby-comment"># File lib/pbserver.rb, line 81</span>
 
430
def self.proxy_port
 
431
  <span class="ruby-constant">PROXY_PORT</span>
 
432
end</pre>
 
433
          </div>
 
434
          
 
435
        </div>
 
436
 
 
437
        
 
438
 
 
439
        
 
440
      </div>
 
441
 
 
442
    
 
443
      <div id="public_directory-method" class="method-detail ">
 
444
        <a name="method-c-public_directory"></a>
 
445
 
 
446
        
 
447
        <div class="method-heading">
 
448
          <span class="method-name">public_directory</span><span
 
449
            class="method-args">()</span>
 
450
          <span class="method-click-advice">click to toggle source</span>
 
451
        </div>
 
452
        
 
453
 
 
454
        <div class="method-description">
 
455
          
 
456
          
 
457
          
 
458
 
 
459
          
 
460
          <div class="method-source-code"
 
461
            id="public_directory-source">
 
462
<pre>
 
463
<span class="ruby-comment"># File lib/pbserver.rb, line 61</span>
 
464
def self.public_directory
 
465
  <span class="ruby-string">&quot;/root/appscale/AppDB/public&quot;</span>
 
466
end</pre>
 
467
          </div>
 
468
          
 
469
        </div>
 
470
 
 
471
        
 
472
 
 
473
        
 
474
      </div>
 
475
 
 
476
    
 
477
      <div id="restart-method" class="method-detail ">
 
478
        <a name="method-c-restart"></a>
 
479
 
 
480
        
 
481
        <div class="method-heading">
 
482
          <span class="method-name">restart</span><span
 
483
            class="method-args">(master_ip, my_ip, table, zklocations)</span>
 
484
          <span class="method-click-advice">click to toggle source</span>
 
485
        </div>
 
486
        
 
487
 
 
488
        <div class="method-description">
 
489
          
 
490
          
 
491
          
 
492
 
 
493
          
 
494
          <div class="method-source-code"
 
495
            id="restart-source">
 
496
<pre>
 
497
<span class="ruby-comment"># File lib/pbserver.rb, line 52</span>
 
498
def self.restart(master_ip, my_ip, table, zklocations)
 
499
  self.stop
 
500
  self.start(master_ip, my_ip, table, zklocations)
 
501
end</pre>
 
502
          </div>
 
503
          
 
504
        </div>
 
505
 
 
506
        
 
507
 
 
508
        
 
509
      </div>
 
510
 
 
511
    
 
512
      <div id="server_ports-method" class="method-detail ">
 
513
        <a name="method-c-server_ports"></a>
 
514
 
 
515
        
 
516
        <div class="method-heading">
 
517
          <span class="method-name">server_ports</span><span
 
518
            class="method-args">(table)</span>
 
519
          <span class="method-click-advice">click to toggle source</span>
 
520
        </div>
 
521
        
 
522
 
 
523
        <div class="method-description">
 
524
          
 
525
          
 
526
          
 
527
 
 
528
          
 
529
          <div class="method-source-code"
 
530
            id="server_ports-source">
 
531
<pre>
 
532
<span class="ruby-comment"># File lib/pbserver.rb, line 73</span>
 
533
def self.server_ports(table)
 
534
  if <span class="ruby-constant">DBS_NEEDING_ONE_PBSERVER</span>.include?(table)
 
535
    return <span class="ruby-constant">SERVER_PORTS</span>.first(1)
 
536
  else
 
537
    return <span class="ruby-constant">SERVER_PORTS</span>
 
538
  end
 
539
end</pre>
 
540
          </div>
 
541
          
 
542
        </div>
 
543
 
 
544
        
 
545
 
 
546
        
 
547
      </div>
 
548
 
 
549
    
 
550
      <div id="start-method" class="method-detail ">
 
551
        <a name="method-c-start"></a>
 
552
 
 
553
        
 
554
        <div class="method-heading">
 
555
          <span class="method-name">start</span><span
 
556
            class="method-args">(master_ip, db_local_ip, my_ip, table, zklocations)</span>
 
557
          <span class="method-click-advice">click to toggle source</span>
 
558
        </div>
 
559
        
 
560
 
 
561
        <div class="method-description">
 
562
          
 
563
          
 
564
          
 
565
 
 
566
          
 
567
          <div class="method-source-code"
 
568
            id="start-source">
 
569
<pre>
 
570
<span class="ruby-comment"># File lib/pbserver.rb, line 22</span>
 
571
def self.start(master_ip, db_local_ip, my_ip, table, zklocations)
 
572
  pbserver = self.pb_script(table)
 
573
  ports = self.server_ports(table)
 
574
 
 
575
  env_vars = { 
 
576
    <span class="ruby-string">'APPSCALE_HOME'</span> =&gt; <span class="ruby-constant">ENV</span>[<span class="ruby-string">'APPSCALE_HOME'</span>],
 
577
    <span class="ruby-string">&quot;MASTER_IP&quot;</span> =&gt; master_ip, 
 
578
    <span class="ruby-string">&quot;LOCAL_DB_IP&quot;</span> =&gt; db_local_ip 
 
579
  }
 
580
 
 
581
  ports.each { |port|
 
582
    start_cmd = [&quot;/usr/bin/python2.6 #{pbserver} -p #{port}&quot;,
 
583
        &quot;--no_encryption --type #{table} -z \'#{zklocations}\'&quot;,
 
584
        &quot;-s #{HelperFunctions.get_secret} -a #{my_ip} --key&quot;].join(<span class="ruby-string">&quot; &quot;</span>)
 
585
 
 
586
    stop_cmd = <span class="ruby-string">&quot;pkill -9 appscale_server&quot;</span>
 
587
 
 
588
    <span class="ruby-constant">GodInterface</span>.start(:pbserver, start_cmd, stop_cmd, port, env_vars)
 
589
  }
 
590
end</pre>
 
591
          </div>
 
592
          
 
593
        </div>
 
594
 
 
595
        
 
596
 
 
597
        
 
598
      </div>
 
599
 
 
600
    
 
601
      <div id="stop-method" class="method-detail ">
 
602
        <a name="method-c-stop"></a>
 
603
 
 
604
        
 
605
        <div class="method-heading">
 
606
          <span class="method-name">stop</span><span
 
607
            class="method-args">(table)</span>
 
608
          <span class="method-click-advice">click to toggle source</span>
 
609
        </div>
 
610
        
 
611
 
 
612
        <div class="method-description">
 
613
          
 
614
          
 
615
          
 
616
 
 
617
          
 
618
          <div class="method-source-code"
 
619
            id="stop-source">
 
620
<pre>
 
621
<span class="ruby-comment"># File lib/pbserver.rb, line 43</span>
 
622
def self.stop(table)
 
623
   <span class="ruby-constant">GodInterface</span>.stop(:pbserver)
 
624
 
 
625
   <span class="ruby-comment">#ports = self.server_ports(table)</span>
 
626
   <span class="ruby-comment">#ports.each { |pbserver_port|</span>
 
627
   <span class="ruby-comment">#  Kernel.system &quot;start-stop-daemon --stop --pidfile /var/appscale/appscale-appscaleserver-#{pbserver_port}.pid&quot;</span>
 
628
   <span class="ruby-comment">#}</span>
 
629
end</pre>
 
630
          </div>
 
631
          
 
632
        </div>
 
633
 
 
634
        
 
635
 
 
636
        
 
637
      </div>
 
638
 
 
639
    
 
640
    </div>
 
641
  
 
642
 
 
643
  </div>
 
644
 
 
645
  <div id="validator-badges">
 
646
    <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
 
647
    <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
 
648
      Rdoc Generator</a> 2</small>.</p>
 
649
  </div>
 
650
 
 
651
</body>
 
652
</html>
 
653