auser-poolparty 0.2.79 → 0.2.80

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/Manifest.txt +38 -33
  2. data/PostInstall.txt +1 -1
  3. data/bin/cloud-provision +1 -1
  4. data/bin/cloud-spec +40 -0
  5. data/lib/poolparty.rb +2 -2
  6. data/lib/poolparty/base_packages/poolparty.rb +1 -1
  7. data/lib/poolparty/extra/deployments.rb +31 -0
  8. data/lib/poolparty/helpers/binary.rb +9 -0
  9. data/lib/poolparty/modules/cloud_dsl.rb +1 -1
  10. data/lib/poolparty/modules/cloud_resourcer.rb +2 -0
  11. data/lib/poolparty/modules/file_writer.rb +2 -2
  12. data/lib/poolparty/net/messenger.rb +1 -1
  13. data/lib/poolparty/net/remote_bases/ec2.rb +5 -2
  14. data/lib/poolparty/net/remoter.rb +2 -4
  15. data/lib/poolparty/net/remoter_base.rb +7 -0
  16. data/lib/poolparty/poolparty/cloud.rb +22 -7
  17. data/lib/poolparty/poolparty/plugin_model.rb +4 -4
  18. data/lib/poolparty/poolparty/pool.rb +1 -0
  19. data/lib/poolparty/poolparty/resource.rb +1 -1
  20. data/lib/poolparty/poolparty/resources/directory.rb +2 -2
  21. data/lib/poolparty/poolparty/resources/file.rb +2 -2
  22. data/lib/poolparty/poolparty/resources/remote_file.rb +1 -1
  23. data/lib/poolparty/poolparty/resources/remote_user.rb +17 -0
  24. data/lib/poolparty/{helpers → provisioners}/provisioner_base.rb +10 -4
  25. data/lib/poolparty/{helpers → provisioners}/provisioners/master.rb +11 -7
  26. data/lib/poolparty/{helpers → provisioners}/provisioners/slave.rb +0 -0
  27. data/lib/poolparty/templates/puppetrerun +2 -1
  28. data/lib/poolparty/version.rb +1 -1
  29. data/poolparty.gemspec +42 -36
  30. data/spec/poolparty/extra/deployments_spec.rb +64 -0
  31. data/spec/poolparty/helpers/provisioner_base_spec.rb +0 -1
  32. data/spec/poolparty/helpers/provisioners/master_spec.rb +0 -1
  33. data/spec/poolparty/helpers/provisioners/slave_spec.rb +0 -1
  34. data/spec/poolparty/{pool → poolparty}/base_spec.rb +0 -0
  35. data/spec/poolparty/{pool → poolparty}/cloud_spec.rb +37 -0
  36. data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_basic.rb +0 -0
  37. data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_plugins.rb +0 -0
  38. data/spec/poolparty/{pool → poolparty}/configurers/ruby_spec.rb +0 -0
  39. data/spec/poolparty/{pool → poolparty}/custom_resource_spec.rb +0 -0
  40. data/spec/poolparty/{pool → poolparty}/example_spec.rb +0 -0
  41. data/spec/poolparty/{pool → poolparty}/plugin_model_spec.rb +0 -0
  42. data/spec/poolparty/{pool → poolparty}/plugin_spec.rb +0 -0
  43. data/spec/poolparty/{pool → poolparty}/pool_spec.rb +0 -0
  44. data/spec/poolparty/{pool → poolparty}/resource_spec.rb +0 -0
  45. data/spec/poolparty/{pool → poolparty}/resources/class_package_spec.rb +0 -0
  46. data/spec/poolparty/{pool → poolparty}/resources/conditional_spec.rb +0 -0
  47. data/spec/poolparty/{pool → poolparty}/resources/cron_spec.rb +0 -0
  48. data/spec/poolparty/{pool → poolparty}/resources/directory_spec.rb +0 -0
  49. data/spec/poolparty/{pool → poolparty}/resources/exec_spec.rb +0 -0
  50. data/spec/poolparty/{pool → poolparty}/resources/file_spec.rb +0 -0
  51. data/spec/poolparty/{pool → poolparty}/resources/gem_spec.rb +0 -0
  52. data/spec/poolparty/{pool → poolparty}/resources/host_spec.rb +0 -0
  53. data/spec/poolparty/{pool → poolparty}/resources/package_spec.rb +0 -0
  54. data/spec/poolparty/{pool → poolparty}/resources/remote_file_spec.rb +0 -0
  55. data/spec/poolparty/{pool → poolparty}/resources/service_spec.rb +0 -0
  56. data/spec/poolparty/{pool → poolparty}/resources/sshkey_spec.rb +0 -0
  57. data/spec/poolparty/{pool → poolparty}/resources/symlink_spec.rb +0 -0
  58. data/spec/poolparty/poolparty/resources/user_spec.rb +38 -0
  59. data/spec/poolparty/{pool → poolparty}/resources/variable_spec.rb +0 -0
  60. data/spec/poolparty/{pool → poolparty}/script_spec.rb +0 -0
  61. data/spec/poolparty/{pool → poolparty}/test_plugins/sshkey_test +0 -0
  62. data/spec/poolparty/{pool → poolparty}/test_plugins/virtual_host_template.erb +0 -0
  63. data/spec/poolparty/{pool → poolparty}/test_plugins/webserver.rb +0 -0
  64. data/website/index.html +107 -0
  65. metadata +42 -36
  66. data/lib/erlang/messenger/src/pm_client_old.erl +0 -52
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ include PoolParty::Resources
4
+
5
+ describe "User" do
6
+ describe "instances" do
7
+ before(:each) do
8
+ @user = remote_user({:name => "fred"})
9
+ end
10
+ it "should turn the one hash instance into a string" do
11
+ @user.to_string.should =~ /"fred":/
12
+ end
13
+ it "should turn the two hash instance into a string" do
14
+ @user = remote_user do
15
+ name "bob"
16
+ home "/home/bob"
17
+ end
18
+ @user.to_string.should =~ /"bob":/
19
+ @user.to_string.should =~ /home => '\/home\/bob'/
20
+ end
21
+ describe "as included" do
22
+ before(:each) do
23
+ @user = remote_user({:rent => "low"}) do
24
+ name "/www/conf/httpd.conf"
25
+ end
26
+ end
27
+ it "should use default values" do
28
+ @user.name.should == "/www/conf/httpd.conf"
29
+ end
30
+ it "should keep the default values for the user" do
31
+ @user.shell.should == "/bin/sh"
32
+ end
33
+ it "should also set options through a hash" do
34
+ @user.rent.should == "low"
35
+ end
36
+ end
37
+ end
38
+ end
File without changes
@@ -0,0 +1,107 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ PoolParty
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <link href="stylesheets/code.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <style>
13
+
14
+ </style>
15
+ <script type="text/javascript">
16
+ window.onload = function() {
17
+ settings = {
18
+ tl: { radius: 10 },
19
+ tr: { radius: 10 },
20
+ bl: { radius: 10 },
21
+ br: { radius: 10 },
22
+ antiAlias: true,
23
+ autoPad: true,
24
+ validTags: ["div"]
25
+ }
26
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
27
+ versionBox.applyCornersToAll();
28
+ }
29
+ </script>
30
+ </head>
31
+ <body>
32
+ <div id="main">
33
+
34
+ <h1>PoolParty</h1>
35
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
36
+ <p>Get Version</p>
37
+ <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.80</a>
38
+ </div>
39
+ <h1>&#8216;Easy cloud computing&#8217;</h1>
40
+ <h2>What</h2>
41
+ <p>A self-healing, load-balanced cloud computing solution. Combined with the power of <a href="http://reductivelabs.com/trac/puppet/">Puppet</a>, the <a href="http://www.linux-ha.org/">High Availability</a> project, ruby and erlang, PoolParty makes it easy and fun to set up your cloud! Currently, you can use it with ec2, but it&#8217;s not tied to any particular service. You can use PoolParty to manage and monitor your home network!</p>
42
+ <h2>Installing</h2>
43
+ <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="punct">--</span><span class="ident">source</span> <span class="ident">http</span><span class="punct">:/</span><span class="regex"></span><span class="punct">/</span><span class="ident">gems</span><span class="punct">.</span><span class="ident">github</span><span class="punct">.</span><span class="ident">com</span> <span class="ident">auser</span><span class="punct">-</span><span class="ident">poolparty</span></pre></p>
44
+ <h2>The basics</h2>
45
+ <h2>Demonstration of usage</h2>
46
+ <pre>
47
+ cloud spec [name]
48
+ </pre>
49
+ <p>This will create a basic spec for you in the spec directory. Then, write your spec file. There are examples in the repos as well as the one below:</p>
50
+ <p><pre class='syntax'>
51
+ <span class="comment"># Basic poolparty template with apache plugin</span>
52
+ <span class="ident">require</span> <span class="punct">&quot;</span><span class="string">poolparty-apache2-plugin</span><span class="punct">&quot;</span>
53
+
54
+ <span class="ident">pool</span> <span class="symbol">:app</span> <span class="keyword">do</span>
55
+
56
+ <span class="ident">instances</span> <span class="number">2</span><span class="punct">..</span><span class="number">5</span>
57
+ <span class="ident">port</span> <span class="number">80</span>
58
+ <span class="ident">ami</span> <span class="punct">&quot;</span><span class="string">ami-1cd73375</span><span class="punct">&quot;</span> <span class="comment"># Alestic Ubuntu AMI</span>
59
+
60
+ <span class="ident">cloud</span> <span class="symbol">:app</span> <span class="keyword">do</span>
61
+
62
+ <span class="ident">apache</span> <span class="keyword">do</span>
63
+ <span class="ident">installed_as_worker</span>
64
+
65
+ <span class="ident">has_virtualhost</span> <span class="keyword">do</span>
66
+
67
+ <span class="ident">name</span> <span class="punct">&quot;</span><span class="string">poolpartyrb.com</span><span class="punct">&quot;</span>
68
+ <span class="ident">listen</span><span class="punct">(&quot;</span><span class="string">8080</span><span class="punct">&quot;)</span>
69
+ <span class="ident">virtual_host_entry</span> <span class="punct">::</span><span class="constant">File</span><span class="punct">.</span><span class="ident">join</span><span class="punct">(</span><span class="constant">File</span><span class="punct">.</span><span class="ident">dirname</span><span class="punct">(</span><span class="constant">__FILE__</span><span class="punct">),</span> <span class="punct">&quot;</span><span class="string">templates</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">virtual_host.conf.erb</span><span class="punct">&quot;)</span>
70
+
71
+ <span class="ident">has_git</span><span class="punct">(</span><span class="symbol">:name</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string">poolpartyrepos</span><span class="punct">&quot;,</span> <span class="symbol">:source</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string">git://github.com/auser/xnot.org.git</span><span class="punct">&quot;,</span> <span class="symbol">:path</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string">/var/www/xnot.org/public</span><span class="punct">&quot;)</span>
72
+
73
+ <span class="keyword">end</span>
74
+ <span class="keyword">end</span>
75
+
76
+ <span class="keyword">end</span>
77
+
78
+ <span class="keyword">end</span>
79
+ </pre></p>
80
+ <h2>Forum</h2>
81
+ <p><a href="http://groups.google.com/group/poolpartyrb">http://groups.google.com/group/PoolPartyRb</a></p>
82
+ <h2>How to submit patches</h2>
83
+ <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
84
+ <p>The trunk repository is <code>http://github.com/auser/poolparty</code> for anonymous access.</p>
85
+ <p>You can fetch the source from either:</p>
86
+ <ul>
87
+ <li>github: <a href="http://github.com/auser/PoolParty/tree/master">http://github.com/auser/PoolParty/tree/master</a></li>
88
+ </ul>
89
+ <pre>git clone git://github.com/auser/poolparty.git</pre>
90
+ <h3>Build and test instructions</h3>
91
+ <p><pre class='syntax'>cd PoolParty
92
+ rake spec
93
+ rake install_gem</pre></p>
94
+ <h2>License</h2>
95
+ <p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
96
+ <h2>Contact</h2>
97
+ <p>Comments are welcome. Send an email to <a href="mailto:ari.lerner@citrusbyte.com">Ari Lerner</a> email via the <a href="http://groups.google.com/group/PoolParty">forum</a></p>
98
+ <p class="coda">
99
+ <a href="http://blog.citrusbyte.com">Ari Lerner</a> at <a href="http://citrusbyte.com">CitrusByte</a>, 15th October 2008<br>
100
+ Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
101
+ </p>
102
+ </div>
103
+
104
+ <!-- insert site tracking codes here, like Google Urchin -->
105
+
106
+ </body>
107
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auser-poolparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.79
4
+ version: 0.2.80
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Lerner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-06 00:00:00 -08:00
12
+ date: 2008-12-09 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -70,6 +70,7 @@ executables:
70
70
  - cloud-refresh
71
71
  - cloud-rsync
72
72
  - cloud-run
73
+ - cloud-spec
73
74
  - cloud-ssh
74
75
  - cloud-start
75
76
  - cloud-stats
@@ -130,6 +131,7 @@ files:
130
131
  - bin/cloud-refresh
131
132
  - bin/cloud-rsync
132
133
  - bin/cloud-run
134
+ - bin/cloud-spec
133
135
  - bin/cloud-ssh
134
136
  - bin/cloud-start
135
137
  - bin/cloud-stats
@@ -264,7 +266,6 @@ files:
264
266
  - lib/erlang/messenger/src/master_app.erl
265
267
  - lib/erlang/messenger/src/node_app.erl
266
268
  - lib/erlang/messenger/src/pm_client.erl
267
- - lib/erlang/messenger/src/pm_client_old.erl
268
269
  - lib/erlang/messenger/src/pm_client_supervisor.erl
269
270
  - lib/erlang/messenger/src/pm_cluster.erl
270
271
  - lib/erlang/messenger/src/pm_event_manager.erl
@@ -311,14 +312,12 @@ files:
311
312
  - lib/poolparty/exceptions/SpecException.rb
312
313
  - lib/poolparty/exceptions/TemplateNotFound.rb
313
314
  - lib/poolparty/exceptions/UnacceptableCommand.rb
315
+ - lib/poolparty/extra/deployments.rb
314
316
  - lib/poolparty/helpers/binary.rb
315
317
  - lib/poolparty/helpers/console.rb
316
318
  - lib/poolparty/helpers/display.rb
317
319
  - lib/poolparty/helpers/nice_printer.rb
318
320
  - lib/poolparty/helpers/optioner.rb
319
- - lib/poolparty/helpers/provisioner_base.rb
320
- - lib/poolparty/helpers/provisioners/master.rb
321
- - lib/poolparty/helpers/provisioners/slave.rb
322
321
  - lib/poolparty/helpers/ruberl.rb
323
322
  - lib/poolparty/modules/cloud_dsl.rb
324
323
  - lib/poolparty/modules/cloud_resourcer.rb
@@ -369,11 +368,15 @@ files:
369
368
  - lib/poolparty/poolparty/resources/mount.rb
370
369
  - lib/poolparty/poolparty/resources/package.rb
371
370
  - lib/poolparty/poolparty/resources/remote_file.rb
371
+ - lib/poolparty/poolparty/resources/remote_user.rb
372
372
  - lib/poolparty/poolparty/resources/service.rb
373
373
  - lib/poolparty/poolparty/resources/sshkey.rb
374
374
  - lib/poolparty/poolparty/resources/symlink.rb
375
375
  - lib/poolparty/poolparty/resources/variable.rb
376
376
  - lib/poolparty/poolparty/script.rb
377
+ - lib/poolparty/provisioners/provisioner_base.rb
378
+ - lib/poolparty/provisioners/provisioners/master.rb
379
+ - lib/poolparty/provisioners/provisioners/slave.rb
377
380
  - lib/poolparty/spec/core/string.rb
378
381
  - lib/poolparty/spec/matchers/a_spec_extensions_base.rb
379
382
  - lib/poolparty/spec/matchers/have_cron.rb
@@ -437,6 +440,7 @@ files:
437
440
  - spec/poolparty/core/string_spec.rb
438
441
  - spec/poolparty/core/time_spec.rb
439
442
  - spec/poolparty/dependency_resolutions/base_spec.rb
443
+ - spec/poolparty/extra/deployments_spec.rb
440
444
  - spec/poolparty/helpers/binary_spec.rb
441
445
  - spec/poolparty/helpers/display_spec.rb
442
446
  - spec/poolparty/helpers/optioner_spec.rb
@@ -461,35 +465,36 @@ files:
461
465
  - spec/poolparty/plugins/git_spec.rb
462
466
  - spec/poolparty/plugins/line_spec.rb
463
467
  - spec/poolparty/plugins/svn_spec.rb
464
- - spec/poolparty/pool/base_spec.rb
465
- - spec/poolparty/pool/cloud_spec.rb
466
- - spec/poolparty/pool/configurers/files/ruby_basic.rb
467
- - spec/poolparty/pool/configurers/files/ruby_plugins.rb
468
- - spec/poolparty/pool/configurers/ruby_spec.rb
469
- - spec/poolparty/pool/custom_resource_spec.rb
470
- - spec/poolparty/pool/example_spec.rb
471
- - spec/poolparty/pool/plugin_model_spec.rb
472
- - spec/poolparty/pool/plugin_spec.rb
473
- - spec/poolparty/pool/pool_spec.rb
474
- - spec/poolparty/pool/resource_spec.rb
475
- - spec/poolparty/pool/resources/class_package_spec.rb
476
- - spec/poolparty/pool/resources/conditional_spec.rb
477
- - spec/poolparty/pool/resources/cron_spec.rb
478
- - spec/poolparty/pool/resources/directory_spec.rb
479
- - spec/poolparty/pool/resources/exec_spec.rb
480
- - spec/poolparty/pool/resources/file_spec.rb
481
- - spec/poolparty/pool/resources/gem_spec.rb
482
- - spec/poolparty/pool/resources/host_spec.rb
483
- - spec/poolparty/pool/resources/package_spec.rb
484
- - spec/poolparty/pool/resources/remote_file_spec.rb
485
- - spec/poolparty/pool/resources/service_spec.rb
486
- - spec/poolparty/pool/resources/sshkey_spec.rb
487
- - spec/poolparty/pool/resources/symlink_spec.rb
488
- - spec/poolparty/pool/resources/variable_spec.rb
489
- - spec/poolparty/pool/script_spec.rb
490
- - spec/poolparty/pool/test_plugins/sshkey_test
491
- - spec/poolparty/pool/test_plugins/virtual_host_template.erb
492
- - spec/poolparty/pool/test_plugins/webserver.rb
468
+ - spec/poolparty/poolparty/base_spec.rb
469
+ - spec/poolparty/poolparty/cloud_spec.rb
470
+ - spec/poolparty/poolparty/configurers/files/ruby_basic.rb
471
+ - spec/poolparty/poolparty/configurers/files/ruby_plugins.rb
472
+ - spec/poolparty/poolparty/configurers/ruby_spec.rb
473
+ - spec/poolparty/poolparty/custom_resource_spec.rb
474
+ - spec/poolparty/poolparty/example_spec.rb
475
+ - spec/poolparty/poolparty/plugin_model_spec.rb
476
+ - spec/poolparty/poolparty/plugin_spec.rb
477
+ - spec/poolparty/poolparty/pool_spec.rb
478
+ - spec/poolparty/poolparty/resource_spec.rb
479
+ - spec/poolparty/poolparty/resources/class_package_spec.rb
480
+ - spec/poolparty/poolparty/resources/conditional_spec.rb
481
+ - spec/poolparty/poolparty/resources/cron_spec.rb
482
+ - spec/poolparty/poolparty/resources/directory_spec.rb
483
+ - spec/poolparty/poolparty/resources/exec_spec.rb
484
+ - spec/poolparty/poolparty/resources/file_spec.rb
485
+ - spec/poolparty/poolparty/resources/gem_spec.rb
486
+ - spec/poolparty/poolparty/resources/host_spec.rb
487
+ - spec/poolparty/poolparty/resources/package_spec.rb
488
+ - spec/poolparty/poolparty/resources/remote_file_spec.rb
489
+ - spec/poolparty/poolparty/resources/service_spec.rb
490
+ - spec/poolparty/poolparty/resources/sshkey_spec.rb
491
+ - spec/poolparty/poolparty/resources/symlink_spec.rb
492
+ - spec/poolparty/poolparty/resources/user_spec.rb
493
+ - spec/poolparty/poolparty/resources/variable_spec.rb
494
+ - spec/poolparty/poolparty/script_spec.rb
495
+ - spec/poolparty/poolparty/test_plugins/sshkey_test
496
+ - spec/poolparty/poolparty/test_plugins/virtual_host_template.erb
497
+ - spec/poolparty/poolparty/test_plugins/webserver.rb
493
498
  - spec/poolparty/poolparty_spec.rb
494
499
  - spec/poolparty/spec/core/string_spec.rb
495
500
  - spec/poolparty/spec_helper.rb
@@ -506,6 +511,7 @@ files:
506
511
  - test/test_helper.rb
507
512
  - test/test_pool_spec_generator.rb
508
513
  - test/test_poolparty.rb
514
+ - website/index.html
509
515
  - website/index.txt
510
516
  - website/javascripts/rounded_corners_lite.inc.js
511
517
  - website/stylesheets/code.css
@@ -514,7 +520,7 @@ files:
514
520
  has_rdoc: true
515
521
  homepage: http://poolparty.rubyforge.org
516
522
  post_install_message: |-
517
- Get ready to jump in the pool, you just installed PoolParty! (Updated at 13:46 12/06/08)
523
+ Get ready to jump in the pool, you just installed PoolParty! (Updated at 15:39 12/09/08)
518
524
 
519
525
  To get started, run the generator:
520
526
 
@@ -1,52 +0,0 @@
1
- -module (pm_client_old).
2
- -include_lib("../include/defines.hrl").
3
-
4
- -export ([reconfigure_cloud/0, get_load/1, get_live_nodes/0, start/0]).
5
- -export ([run_cmd/1, fire_cmd/1]).
6
- -export ([provision_orphan_running_servers/0]).
7
- -export ([shutdown/0]).
8
- % Run commands on the running master process
9
- % erl -pa ./ebin/ -run pm_client get_load cpu -run init stop -noshell
10
-
11
- % Connect to the master
12
- start() ->
13
- pong = net_adm:ping(?MASTER_LOCATION),
14
- global:sync().
15
- % Send the command Cmd to the pm_master process
16
- run_cmd(Cmd) ->
17
- Out = pm_master:run_cmd(Cmd),
18
- io:format("~p", [Out]),
19
- Out.
20
- fire_cmd(Cmd) ->
21
- Out = pm_master:fire_cmd(Cmd),
22
- io:format("~p", [Out]),
23
- Out.
24
- % Reconfigure the cloud
25
- reconfigure_cloud() -> pm_master:reconfigure_cloud().
26
- % Get the load on the cloud of type Type
27
- get_load(Type) ->
28
- start(),
29
- Load = pm_master:get_load(Type),
30
- io:format("~p", [Load]),
31
- Load.
32
-
33
- % Check to see if there are servers that are unprovisioned
34
- % And if there are, log in to them and start their messenger
35
- % sending the live code on the master to them
36
- provision_orphan_running_servers() ->
37
- Instances = pm_cluster:any_new_servers(),
38
- case lists:flatlength(Instances) of
39
- 0 ->
40
- ok;
41
- _ ->
42
- utils:distribute_modules_to([pm_node, pm_node_supervisor, pm_event_manager, node_app], Instances),
43
- pm_cluster:slaves(Instances),
44
- Instances
45
- end.
46
-
47
- % Get a list of the live nodes
48
- get_live_nodes() -> pm_master:get_current_nodes().
49
- % Terminate the cloud messenger
50
- % This sends a shutdown to the whole cloud
51
- shutdown() ->
52
- pm_master:shutdown_cloud().