auser-poolparty 0.2.79 → 0.2.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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().