poolparty 0.2.6 → 0.2.18

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 (208) hide show
  1. data/Manifest.txt +123 -4
  2. data/PostInstall.txt +2 -1
  3. data/bin/cloud +16 -7
  4. data/bin/cloud-provision +9 -5
  5. data/bin/cloud-run +19 -0
  6. data/bin/cloud-ssh +2 -7
  7. data/bin/cloud-start +2 -1
  8. data/bin/pool +3 -3
  9. data/bin/server-build-messenger +20 -0
  10. data/bin/server-fire-cmd +14 -0
  11. data/bin/server-get-load +29 -0
  12. data/bin/server-list-active +25 -0
  13. data/bin/server-list-responding +24 -0
  14. data/bin/server-rerun +24 -0
  15. data/bin/server-start-master +27 -0
  16. data/bin/server-start-node +33 -0
  17. data/config/requirements.rb +1 -1
  18. data/erl_crash.dump +8409 -0
  19. data/lib/erlang/messenger/Emakefile +1 -0
  20. data/lib/erlang/messenger/Makefile +15 -0
  21. data/lib/erlang/messenger/README +5 -0
  22. data/lib/erlang/messenger/Rakefile +60 -0
  23. data/lib/erlang/messenger/control +11 -0
  24. data/lib/erlang/messenger/ebin/master.app +19 -0
  25. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  26. data/lib/erlang/messenger/ebin/node.app +19 -0
  27. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  28. data/lib/erlang/messenger/ebin/packager.app +19 -0
  29. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  30. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  31. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  32. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  33. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
  34. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  35. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  36. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
  37. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  38. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  39. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  40. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  41. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  42. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  43. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  44. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  45. data/lib/erlang/messenger/lib/eunit/README +3 -0
  46. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  47. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  48. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  49. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  50. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  51. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  52. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  53. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  54. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  58. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  59. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  60. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  61. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  62. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  63. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  64. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  65. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  66. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  67. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  68. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  69. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  70. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  71. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  72. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  73. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  74. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  75. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  76. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  77. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  78. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  79. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  80. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  81. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  82. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  83. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  84. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  85. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  86. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  87. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  88. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  89. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  90. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  91. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  92. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  93. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  94. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  95. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  96. data/lib/erlang/messenger/pm_master_rel-0.1.script +242 -0
  97. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  98. data/lib/erlang/messenger/pm_node_rel-0.1.script +242 -0
  99. data/lib/erlang/messenger/src/master_app.erl +39 -0
  100. data/lib/erlang/messenger/src/node_app.erl +39 -0
  101. data/lib/erlang/messenger/src/pm_client.erl +19 -0
  102. data/lib/erlang/messenger/src/pm_cluster.erl +57 -0
  103. data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
  104. data/lib/erlang/messenger/src/pm_master.erl +118 -0
  105. data/lib/erlang/messenger/src/pm_master_supervisor.erl +40 -0
  106. data/lib/erlang/messenger/src/pm_node.erl +124 -0
  107. data/lib/erlang/messenger/src/pm_node_supervisor.erl +40 -0
  108. data/lib/erlang/messenger/src/pm_packager.erl +73 -0
  109. data/lib/erlang/messenger/src/utils.erl +38 -0
  110. data/lib/poolparty/base_packages/haproxy.rb +9 -2
  111. data/lib/poolparty/base_packages/heartbeat.rb +40 -28
  112. data/lib/poolparty/base_packages/poolparty.rb +39 -16
  113. data/lib/poolparty/base_packages/ruby.rb +2 -3
  114. data/lib/poolparty/config/allowed_commands.yml +1 -0
  115. data/lib/poolparty/core/array.rb +5 -2
  116. data/lib/poolparty/core/hash.rb +16 -2
  117. data/lib/poolparty/core/string.rb +9 -2
  118. data/lib/poolparty/core/symbol.rb +2 -2
  119. data/lib/poolparty/dependency_resolutions/base.rb +12 -0
  120. data/lib/poolparty/dependency_resolutions/puppet.rb +49 -0
  121. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  122. data/lib/poolparty/helpers/console.rb +3 -2
  123. data/lib/poolparty/helpers/display.rb +3 -3
  124. data/lib/poolparty/helpers/messenger.rb +29 -0
  125. data/lib/poolparty/helpers/optioner.rb +6 -2
  126. data/lib/poolparty/helpers/provisioner_base.rb +18 -11
  127. data/lib/poolparty/helpers/provisioners/master.rb +24 -22
  128. data/lib/poolparty/helpers/provisioners/slave.rb +8 -4
  129. data/lib/poolparty/modules/definable_resource.rb +1 -0
  130. data/lib/poolparty/modules/file_writer.rb +11 -10
  131. data/lib/poolparty/modules/method_missing_sugar.rb +1 -1
  132. data/lib/poolparty/modules/pretty_printer.rb +11 -11
  133. data/lib/poolparty/modules/resourcing_dsl.rb +61 -0
  134. data/lib/poolparty/monitors/base_monitor.rb +17 -3
  135. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +15 -0
  136. data/lib/poolparty/monitors/monitors/memory_monitor.rb +23 -0
  137. data/lib/poolparty/net/remote_instance.rb +6 -1
  138. data/lib/poolparty/net/remoter.rb +23 -5
  139. data/lib/poolparty/net/remoter_base.rb +5 -1
  140. data/lib/poolparty/plugins/git.rb +22 -24
  141. data/lib/poolparty/pool/base.rb +22 -6
  142. data/lib/poolparty/pool/cloud.rb +28 -4
  143. data/lib/poolparty/pool/custom_resource.rb +6 -6
  144. data/lib/poolparty/pool/loggable.rb +3 -0
  145. data/lib/poolparty/pool/pool.rb +1 -1
  146. data/lib/poolparty/pool/resource.rb +58 -94
  147. data/lib/poolparty/pool/resources/class_package.rb +6 -6
  148. data/lib/poolparty/pool/resources/conditional.rb +5 -1
  149. data/lib/poolparty/pool/resources/exec.rb +6 -2
  150. data/lib/poolparty/pool/resources/gem.rb +22 -8
  151. data/lib/poolparty/pool/resources/remote_file.rb +5 -1
  152. data/lib/poolparty/pool/resources/symlink.rb +25 -0
  153. data/lib/poolparty/pool/resources/variable.rb +8 -7
  154. data/lib/poolparty/pool/tmp/.ppkeys +3 -0
  155. data/lib/poolparty/pool/tmp/happydayz +1 -0
  156. data/lib/poolparty/pool/tmp/install_master.sh +33 -0
  157. data/lib/poolparty/pool/tmp/pool.spec +11 -0
  158. data/lib/poolparty/pool/tmp/poolparty.pp +600 -0
  159. data/lib/poolparty/pool/tmp/tc-instances.list +1 -0
  160. data/lib/poolparty/templates/cib.xml +54 -0
  161. data/lib/poolparty/templates/ha.cf +12 -3
  162. data/lib/poolparty/templates/haproxy.conf +3 -3
  163. data/lib/poolparty/templates/haresources +3 -0
  164. data/lib/poolparty/templates/poolparty.monitor +14 -0
  165. data/lib/poolparty/templates/puppet.conf +3 -4
  166. data/lib/poolparty/version.rb +1 -1
  167. data/lib/poolparty.rb +9 -6
  168. data/poolparty.gemspec +7 -6
  169. data/setup.rb +3 -3
  170. data/spec/poolparty/bin/console_spec.rb +1 -1
  171. data/spec/poolparty/core/array_spec.rb +5 -0
  172. data/spec/poolparty/core/hash_spec.rb +19 -1
  173. data/spec/poolparty/core/string_spec.rb +13 -0
  174. data/spec/poolparty/dependency_resolutions/base_spec.rb +11 -0
  175. data/spec/poolparty/helpers/messenger_spec.rb +14 -0
  176. data/spec/poolparty/helpers/optioner_spec.rb +2 -1
  177. data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
  178. data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
  179. data/spec/poolparty/helpers/provisioners/slave_spec.rb +3 -3
  180. data/spec/poolparty/modules/file_writer_spec.rb +9 -0
  181. data/spec/poolparty/monitors/base_monitor_spec.rb +19 -0
  182. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +17 -0
  183. data/spec/poolparty/net/remote_instance_spec.rb +6 -1
  184. data/spec/poolparty/net/remote_spec.rb +51 -42
  185. data/spec/poolparty/net/remoter_spec.rb +2 -1
  186. data/spec/poolparty/plugins/git_spec.rb +2 -2
  187. data/spec/poolparty/pool/base_spec.rb +20 -2
  188. data/spec/poolparty/pool/cloud_spec.rb +30 -1
  189. data/spec/poolparty/pool/custom_resource_spec.rb +2 -2
  190. data/spec/poolparty/pool/plugin_spec.rb +4 -4
  191. data/spec/poolparty/pool/pool_spec.rb +1 -1
  192. data/spec/poolparty/pool/resource_spec.rb +66 -0
  193. data/spec/poolparty/pool/resources/gem_spec.rb +29 -3
  194. data/spec/poolparty/pool/resources/symlink_spec.rb +22 -0
  195. data/spec/poolparty/pool/resources/variable_spec.rb +4 -0
  196. data/spec/poolparty/spec_helper.rb +5 -0
  197. data/tasks/cloud.rake +0 -54
  198. data/tasks/development.rake +0 -12
  199. data/tasks/ec2.rake +1 -16
  200. data/tasks/instance.rake +0 -61
  201. data/test_manifest.pp +286 -166
  202. data/website/index.html +5 -5
  203. data/website/index.txt +3 -3
  204. metadata +137 -8
  205. data/bin/pool-start-monitor +0 -1
  206. data/lib/erlang/eb_server.erl +0 -27
  207. data/lib/poolparty/plugins/gem_package.rb +0 -17
  208. data/spec/poolparty/modules/tmp/willy/nilly.rb +0 -1
data/Manifest.txt CHANGED
@@ -14,6 +14,7 @@ bin/cloud-maintain
14
14
  bin/cloud-osxcopy
15
15
  bin/cloud-provision
16
16
  bin/cloud-refresh
17
+ bin/cloud-run
17
18
  bin/cloud-ssh
18
19
  bin/cloud-start
19
20
  bin/cloud-terminate
@@ -24,9 +25,17 @@ bin/pool-list
24
25
  bin/pool-provision
25
26
  bin/pool-spec
26
27
  bin/pool-start
27
- bin/pool-start-monitor
28
+ bin/server-build-messenger
29
+ bin/server-fire-cmd
30
+ bin/server-get-load
31
+ bin/server-list-active
32
+ bin/server-list-responding
33
+ bin/server-rerun
34
+ bin/server-start-master
35
+ bin/server-start-node
28
36
  config/hoe.rb
29
37
  config/requirements.rb
38
+ erl_crash.dump
30
39
  examples/basic.rb
31
40
  examples/plugin_without_plugin_directory.rb
32
41
  examples/poolparty.rb
@@ -34,12 +43,103 @@ examples/with_apache_plugin.rb
34
43
  generators/poolspec/USAGE
35
44
  generators/poolspec/poolspec_generator.rb
36
45
  generators/poolspec/templates/pool_spec_template.erb
37
- lib/erlang/eb_server.erl
46
+ lib/erlang/messenger/Emakefile
47
+ lib/erlang/messenger/Makefile
48
+ lib/erlang/messenger/README
49
+ lib/erlang/messenger/Rakefile
50
+ lib/erlang/messenger/control
51
+ lib/erlang/messenger/ebin/master.app
52
+ lib/erlang/messenger/ebin/master_app.beam
53
+ lib/erlang/messenger/ebin/node.app
54
+ lib/erlang/messenger/ebin/node_app.beam
55
+ lib/erlang/messenger/ebin/packager.app
56
+ lib/erlang/messenger/ebin/pm_client.beam
57
+ lib/erlang/messenger/ebin/pm_cluster.beam
58
+ lib/erlang/messenger/ebin/pm_event_handler.beam
59
+ lib/erlang/messenger/ebin/pm_master.beam
60
+ lib/erlang/messenger/ebin/pm_master_rel-0.1.rel
61
+ lib/erlang/messenger/ebin/pm_master_supervisor.beam
62
+ lib/erlang/messenger/ebin/pm_node.beam
63
+ lib/erlang/messenger/ebin/pm_node_rel-0.1.rel
64
+ lib/erlang/messenger/ebin/pm_node_supervisor.beam
65
+ lib/erlang/messenger/ebin/pm_packager.beam
66
+ lib/erlang/messenger/ebin/utils.beam
67
+ lib/erlang/messenger/lib/eunit/AUTHORS
68
+ lib/erlang/messenger/lib/eunit/CHANGELOG
69
+ lib/erlang/messenger/lib/eunit/COPYING
70
+ lib/erlang/messenger/lib/eunit/Makefile
71
+ lib/erlang/messenger/lib/eunit/NOTES
72
+ lib/erlang/messenger/lib/eunit/README
73
+ lib/erlang/messenger/lib/eunit/doc/edoc-info
74
+ lib/erlang/messenger/lib/eunit/doc/erlang.png
75
+ lib/erlang/messenger/lib/eunit/doc/eunit.html
76
+ lib/erlang/messenger/lib/eunit/doc/index.html
77
+ lib/erlang/messenger/lib/eunit/doc/modules-frame.html
78
+ lib/erlang/messenger/lib/eunit/doc/overview-summary.html
79
+ lib/erlang/messenger/lib/eunit/doc/overview.edoc
80
+ lib/erlang/messenger/lib/eunit/doc/packages-frame.html
81
+ lib/erlang/messenger/lib/eunit/doc/stylesheet.css
82
+ lib/erlang/messenger/lib/eunit/ebin/autoload.beam
83
+ lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam
84
+ lib/erlang/messenger/lib/eunit/ebin/eunit.app
85
+ lib/erlang/messenger/lib/eunit/ebin/eunit.appup
86
+ lib/erlang/messenger/lib/eunit/ebin/eunit.beam
87
+ lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam
88
+ lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam
89
+ lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam
90
+ lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam
91
+ lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam
92
+ lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam
93
+ lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam
94
+ lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam
95
+ lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam
96
+ lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam
97
+ lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam
98
+ lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl
99
+ lib/erlang/messenger/lib/eunit/examples/fib.erl
100
+ lib/erlang/messenger/lib/eunit/examples/tests.txt
101
+ lib/erlang/messenger/lib/eunit/include/eunit.hrl
102
+ lib/erlang/messenger/lib/eunit/src/Makefile
103
+ lib/erlang/messenger/lib/eunit/src/autoload.erl
104
+ lib/erlang/messenger/lib/eunit/src/code_monitor.erl
105
+ lib/erlang/messenger/lib/eunit/src/eunit.app.src
106
+ lib/erlang/messenger/lib/eunit/src/eunit.appup.src
107
+ lib/erlang/messenger/lib/eunit/src/eunit.erl
108
+ lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl
109
+ lib/erlang/messenger/lib/eunit/src/eunit_data.erl
110
+ lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl
111
+ lib/erlang/messenger/lib/eunit/src/eunit_lib.erl
112
+ lib/erlang/messenger/lib/eunit/src/eunit_proc.erl
113
+ lib/erlang/messenger/lib/eunit/src/eunit_serial.erl
114
+ lib/erlang/messenger/lib/eunit/src/eunit_server.erl
115
+ lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl
116
+ lib/erlang/messenger/lib/eunit/src/eunit_test.erl
117
+ lib/erlang/messenger/lib/eunit/src/eunit_tests.erl
118
+ lib/erlang/messenger/lib/eunit/src/eunit_tty.erl
119
+ lib/erlang/messenger/lib/eunit/src/file_monitor.erl
120
+ lib/erlang/messenger/lib/eunit/sys.config
121
+ lib/erlang/messenger/lib/eunit/vsn.mk
122
+ lib/erlang/messenger/pm_master_rel-0.1.boot
123
+ lib/erlang/messenger/pm_master_rel-0.1.script
124
+ lib/erlang/messenger/pm_node_rel-0.1.boot
125
+ lib/erlang/messenger/pm_node_rel-0.1.script
126
+ lib/erlang/messenger/src/master_app.erl
127
+ lib/erlang/messenger/src/node_app.erl
128
+ lib/erlang/messenger/src/pm_client.erl
129
+ lib/erlang/messenger/src/pm_cluster.erl
130
+ lib/erlang/messenger/src/pm_event_handler.erl
131
+ lib/erlang/messenger/src/pm_master.erl
132
+ lib/erlang/messenger/src/pm_master_supervisor.erl
133
+ lib/erlang/messenger/src/pm_node.erl
134
+ lib/erlang/messenger/src/pm_node_supervisor.erl
135
+ lib/erlang/messenger/src/pm_packager.erl
136
+ lib/erlang/messenger/src/utils.erl
38
137
  lib/poolparty.rb
39
138
  lib/poolparty/base_packages/haproxy.rb
40
139
  lib/poolparty/base_packages/heartbeat.rb
41
140
  lib/poolparty/base_packages/poolparty.rb
42
141
  lib/poolparty/base_packages/ruby.rb
142
+ lib/poolparty/config/allowed_commands.yml
43
143
  lib/poolparty/core/array.rb
44
144
  lib/poolparty/core/exception.rb
45
145
  lib/poolparty/core/float.rb
@@ -52,14 +152,18 @@ lib/poolparty/core/proc.rb
52
152
  lib/poolparty/core/string.rb
53
153
  lib/poolparty/core/symbol.rb
54
154
  lib/poolparty/core/time.rb
155
+ lib/poolparty/dependency_resolutions/base.rb
156
+ lib/poolparty/dependency_resolutions/puppet.rb
55
157
  lib/poolparty/exceptions/RemoteException.rb
56
158
  lib/poolparty/exceptions/ResourceException.rb
57
159
  lib/poolparty/exceptions/RuntimeException.rb
58
160
  lib/poolparty/exceptions/SpecException.rb
59
161
  lib/poolparty/exceptions/TemplateNotFound.rb
162
+ lib/poolparty/exceptions/UnacceptableCommand.rb
60
163
  lib/poolparty/helpers/binary.rb
61
164
  lib/poolparty/helpers/console.rb
62
165
  lib/poolparty/helpers/display.rb
166
+ lib/poolparty/helpers/messenger.rb
63
167
  lib/poolparty/helpers/optioner.rb
64
168
  lib/poolparty/helpers/provisioner_base.rb
65
169
  lib/poolparty/helpers/provisioners/master.rb
@@ -71,15 +175,17 @@ lib/poolparty/modules/file_writer.rb
71
175
  lib/poolparty/modules/method_missing_sugar.rb
72
176
  lib/poolparty/modules/output.rb
73
177
  lib/poolparty/modules/pretty_printer.rb
178
+ lib/poolparty/modules/resourcing_dsl.rb
74
179
  lib/poolparty/modules/s3_string.rb
75
180
  lib/poolparty/modules/safe_instance.rb
76
181
  lib/poolparty/monitors/base_monitor.rb
182
+ lib/poolparty/monitors/monitors/cpu_monitor.rb
183
+ lib/poolparty/monitors/monitors/memory_monitor.rb
77
184
  lib/poolparty/net/remote.rb
78
185
  lib/poolparty/net/remote_bases/ec2.rb
79
186
  lib/poolparty/net/remote_instance.rb
80
187
  lib/poolparty/net/remoter.rb
81
188
  lib/poolparty/net/remoter_base.rb
82
- lib/poolparty/plugins/gem_package.rb
83
189
  lib/poolparty/plugins/git.rb
84
190
  lib/poolparty/plugins/line.rb
85
191
  lib/poolparty/plugins/svn.rb
@@ -103,15 +209,24 @@ lib/poolparty/pool/resources/package.rb
103
209
  lib/poolparty/pool/resources/remote_file.rb
104
210
  lib/poolparty/pool/resources/service.rb
105
211
  lib/poolparty/pool/resources/sshkey.rb
212
+ lib/poolparty/pool/resources/symlink.rb
106
213
  lib/poolparty/pool/resources/variable.rb
107
214
  lib/poolparty/pool/script.rb
215
+ lib/poolparty/pool/tmp/.ppkeys
216
+ lib/poolparty/pool/tmp/happydayz
217
+ lib/poolparty/pool/tmp/install_master.sh
218
+ lib/poolparty/pool/tmp/pool.spec
219
+ lib/poolparty/pool/tmp/poolparty.pp
220
+ lib/poolparty/pool/tmp/tc-instances.list
108
221
  lib/poolparty/templates/authkeys
109
222
  lib/poolparty/templates/cib.xml
110
223
  lib/poolparty/templates/fileserver.conf
111
224
  lib/poolparty/templates/gem
112
225
  lib/poolparty/templates/ha.cf
113
226
  lib/poolparty/templates/haproxy.conf
227
+ lib/poolparty/templates/haresources
114
228
  lib/poolparty/templates/namespaceauth.conf
229
+ lib/poolparty/templates/poolparty.monitor
115
230
  lib/poolparty/templates/puppet.conf
116
231
  lib/poolparty/version.rb
117
232
  lib/poolpartycl.rb
@@ -131,8 +246,10 @@ spec/poolparty/core/module_spec.rb
131
246
  spec/poolparty/core/object_spec.rb
132
247
  spec/poolparty/core/string_spec.rb
133
248
  spec/poolparty/core/time_spec.rb
249
+ spec/poolparty/dependency_resolutions/base_spec.rb
134
250
  spec/poolparty/helpers/binary_spec.rb
135
251
  spec/poolparty/helpers/display_spec.rb
252
+ spec/poolparty/helpers/messenger_spec.rb
136
253
  spec/poolparty/helpers/optioner_spec.rb
137
254
  spec/poolparty/helpers/provisioner_base_spec.rb
138
255
  spec/poolparty/helpers/provisioners/master_spec.rb
@@ -142,7 +259,8 @@ spec/poolparty/modules/configurable_spec.rb
142
259
  spec/poolparty/modules/definable_resource.rb
143
260
  spec/poolparty/modules/file_writer_spec.rb
144
261
  spec/poolparty/modules/s3_string_spec.rb
145
- spec/poolparty/modules/tmp/willy/nilly.rb
262
+ spec/poolparty/monitors/base_monitor_spec.rb
263
+ spec/poolparty/monitors/monitors/cpu_monitor_spec.rb
146
264
  spec/poolparty/net/remote_bases/ec2_spec.rb
147
265
  spec/poolparty/net/remote_instance_spec.rb
148
266
  spec/poolparty/net/remote_spec.rb
@@ -174,6 +292,7 @@ spec/poolparty/pool/resources/package_spec.rb
174
292
  spec/poolparty/pool/resources/remote_file_spec.rb
175
293
  spec/poolparty/pool/resources/service_spec.rb
176
294
  spec/poolparty/pool/resources/sshkey_spec.rb
295
+ spec/poolparty/pool/resources/symlink_spec.rb
177
296
  spec/poolparty/pool/resources/variable_spec.rb
178
297
  spec/poolparty/pool/script_spec.rb
179
298
  spec/poolparty/pool/test_plugins/sshkey_test
data/PostInstall.txt CHANGED
@@ -7,8 +7,9 @@ To get started, run the generator:
7
7
  Please check out the documentation for any questions or check out the google groups at
8
8
  http://groups.google.com/group/poolpartyrb
9
9
 
10
+ Tutorials are at http://poolpartyrb.com
10
11
 
11
- Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty!
12
+ Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
12
13
 
13
14
  For more information, check http://PoolPartyrb.com
14
15
  On IRC:
data/bin/cloud CHANGED
@@ -1,31 +1,40 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
4
  require "poolpartycl"
5
5
 
6
- # Get the git-style program action
6
+ # # Get the git-style program action
7
7
  # o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
8
  # opts.on('-n [name]','--name [name]', 'Binary to run') { |o| optioner.name o }
9
+ #
10
+ # opts.banner = <<-EOB
11
+ # Usage: cloud <specfile> <action> <options>
12
+ # Cloud actions:
13
+ # #{Binary.list_binaries_for("cloud")}
14
+ # EOB
9
15
  # end
10
16
 
11
17
  name = ARGV.shift
12
18
 
13
19
  # If there was no program action given
14
20
  if !name || name == "-h" || name == "--help"
15
- puts "Usage: cloud <specfile> <action> <options>"
16
- puts "Cloud actions:"
17
- puts Binary.list_binaries_for("cloud")
21
+ puts "Binary required"
22
+ puts <<-EOB
23
+ Usage: cloud <specfile> <action> <options>
24
+ Cloud actions:
25
+ #{Binary.list_binaries_for("cloud")}
26
+ EOB
18
27
  exit
19
28
  end
20
29
 
21
30
  program_name = "#{File.basename($0)}-#{name}"
22
31
  program_location = File.join(Binary.binary_directory, program_name)
23
32
 
24
- command_line = "#{program_location} #{ARGV.join(" ")}"
33
+ command_line = "#{program_location}"
25
34
 
26
35
  # Run it from the command-line first
27
36
  if Binary.available_binaries_for("cloud").include?(name)
28
- exec "#{command_line}"
37
+ system command_line, *ARGV
29
38
  else
30
39
  puts "Unknown poolparty binary: #{program_name}"
31
40
  end
data/bin/cloud-provision CHANGED
@@ -3,7 +3,7 @@ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
4
  require "poolpartycl"
5
5
  o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
6
- opts.on('-c [master|slaves|all]', '--class [master|slaves|all]', 'Provision class (default: all)') { |c| optioner.provision_class c }
6
+ opts.on('-c [master|slaves|all]', '--class [master|slave|all]', 'Provision class (default: all)') { |c| optioner.provision_class c }
7
7
  opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
8
8
  end
9
9
 
@@ -18,13 +18,17 @@ include Remote
18
18
  @clouds.each do |name, cloud|
19
19
 
20
20
  with_cloud(cloud, {:testing => o.testing, :location => @location, :provision_class => @provision_class}) do
21
-
22
- if provision_class == "master" || provision_class == "all"
23
- Provisioner.provision_master(self, testing)
24
- end
21
+
22
+ provisioning_in_progress
23
+
25
24
  if provision_class == "slave" || provision_class == "all"
26
25
  Provisioner.provision_slaves(self, testing)
27
26
  end
27
+ if provision_class == "master" || provision_class == "all"
28
+ Provisioner.provision_master(self, testing)
29
+ end
30
+
31
+ provisioning_complete
28
32
 
29
33
  clear_base_directory unless testing
30
34
  end
data/bin/cloud-run ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ @cmd = ARGV[-1]
7
+
8
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
9
+ opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
10
+ opts.on('-i num', '--id num', 'Instance num to ssh (default: 0)') { |i| optioner.num i }
11
+ opts.on('-c command', '--command command', 'Command to run on the instance') { |c| optioner.command c }
12
+ end
13
+
14
+ load_pool(o.spec || Binary.get_existing_spec_location)
15
+
16
+ @cmd = o.command if (o.command)
17
+ @cloud = o.cloudname ? cloud(o.cloudname.downcase.to_sym) : cloud(clouds.keys.first)
18
+
19
+ instance = @cloud.run_command_on_instance_number( @cmd, o.num.to_i || 0 ) if @cloud
data/bin/cloud-ssh CHANGED
@@ -8,11 +8,6 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
8
  end
9
9
  load_pool(o.spec || Binary.get_existing_spec_location)
10
10
 
11
- unless o.cloudname && clouds.keys.size > 1
12
- @cloud = cloud(o.cloudname.downcase.to_sym)
13
- else
14
- puts "Error: You must indicate a cloud from which your instance is from"
15
- exit(0)
16
- end
11
+ @cloud = o.cloudname ? cloud(o.cloudname.downcase.to_sym) : cloud(clouds.keys.first)
17
12
 
18
- instance = @cloud.ssh_into_instance_number( o.num.to_i || 0 )
13
+ instance = @cloud.ssh_into_instance_number( o.num.to_i || 0 ) if @cloud
data/bin/cloud-start CHANGED
@@ -22,8 +22,9 @@ load_pool(o.spec || Binary.get_existing_spec_location)
22
22
  if testing
23
23
  puts("\tNot launching while in testing mode")
24
24
  else
25
+ provisioning_in_progress
25
26
  launch_and_configure_master!
26
- # run_command_on("puppetd --test", master)
27
+ provisioning_complete
27
28
  end
28
29
  end
29
30
  clear_base_directory unless testing
data/bin/pool CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
  require "poolparty"
4
4
  require "poolpartycl"
@@ -21,11 +21,11 @@ end
21
21
  program_name = "#{File.basename($0)}-#{name}"
22
22
  program_location = File.join(Binary.binary_directory, program_name)
23
23
 
24
- command_line = "#{program_location} #{ARGV.join(" ")}"
24
+ command_line = "#{program_location}"
25
25
 
26
26
  # Run it from the command-line first
27
27
  if Binary.available_binaries_for("pool").include?(name)
28
- Kernel.exec "#{command_line}"
28
+ system command_line, *ARGV
29
29
  else
30
30
  puts "Unknown poolparty binary: #{program_name}"
31
31
  end
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ root_dir = ::File.expand_path( ::File.join(::File.dirname(__FILE__), "..", "lib/erlang/messenger") )
7
+
8
+ INCLUDE = "include"
9
+ ERLC_FLAGS = "-I#{INCLUDE} +warn_unused_vars +warn_unused_import"
10
+ @version = "0.1"
11
+
12
+ cmd =<<-EOE
13
+ cd #{root_dir}
14
+ rm ebin/*
15
+ erlc -pa ./ebin -W #{ERLC_FLAGS} -o ebin ./src/*.erl
16
+ erl -pa ./ebin/ -run pm_packager recompile_scripts #{@version} -run init stop -noshell
17
+ erl -pa ./ebin -s pm_packager start -s init stop
18
+ EOE
19
+
20
+ out = %x[#{cmd.runnable}]
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ @command = ARGV[-1] || ""
7
+
8
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
9
+ opts.on('-c command', '--command command', 'Command to run') { |c| optioner.command c }
10
+ end
11
+
12
+ @command = o.command if o.command
13
+
14
+ puts %x[#{@command}].chomp
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ available_monitors = PoolParty::Monitors.available_monitors
7
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
+ opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
9
+ opts.on('-m name', '--monitor monitor_name', "Monitor name (default: cpu) (Available monitors: #{available_monitors.join(", ")})") {|c| optioner.monitorname c}
10
+ end
11
+
12
+ load_pool(o.spec || Binary.get_existing_spec_location)
13
+
14
+ include Remote
15
+
16
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
17
+ @monitor = o.monitorname ? o.monitorname : "cpu"
18
+
19
+ @clouds.each do |name, cloud|
20
+
21
+ with_cloud(cloud, {:testing => o.testing, :monitorname => @monitor }) do
22
+ if PoolParty::Monitors.available_monitors.include?(monitorname.downcase.to_sym)
23
+ print "PoolParty::Monitors::#{monitorname.capitalize}Monitor".constantize.run
24
+ else
25
+ puts "Unknown monitor"
26
+ end
27
+ end
28
+
29
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
+ opts.on('-c name', '--class name', 'Listing for cloud class (valid args: [name|ip])') { |t| optioner.classname t }
8
+ opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
9
+ end
10
+
11
+ load_pool(o.spec || Binary.get_existing_spec_location)
12
+
13
+ @ctype = (o.classname || "name").downcase.to_sym
14
+
15
+ include Remote
16
+
17
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
18
+
19
+ @clouds.each do |name, cloud|
20
+
21
+ with_cloud(cloud, {:location => @location, :ctype => @ctype}) do
22
+ puts "#{list_of_running_instances.map{|a| "#{a.send ctype}" }.join("\t")}"
23
+ end
24
+
25
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
+ opts.on('-n name', '--name name', 'Cloud name') { |c| optioner.cloudname c }
8
+ end
9
+
10
+ load_pool(o.spec || Binary.get_existing_spec_location)
11
+
12
+ @ctype = (o.classname || "name").downcase.to_sym
13
+
14
+ include Remote
15
+
16
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
17
+
18
+ @clouds.each do |name, cloud|
19
+
20
+ with_cloud(cloud, {:location => @location, :ctype => @ctype}) do
21
+ puts "#{list_of_running_instances.map{|a| "#{a.send ctype}" }.join("\t")}"
22
+ end
23
+
24
+ end
data/bin/server-rerun ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
7
+ opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
8
+ end
9
+
10
+ load_pool(o.spec || Binary.get_existing_spec_location)
11
+
12
+ include Remote
13
+
14
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
15
+
16
+ @clouds.each do |name, cloud|
17
+
18
+ with_cloud(cloud, {:testing => o.testing}) do
19
+ cmd = master.puppet_runner_command
20
+ %x[#{cmd}] unless testing
21
+ puts cmd
22
+ end
23
+
24
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ available_monitors = PoolParty::Monitors.available_monitors
7
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
+ opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
9
+ end
10
+
11
+ load_pool(o.spec || Binary.get_existing_spec_location)
12
+
13
+ include Remote
14
+
15
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
16
+
17
+ @clouds.each do |name, cloud|
18
+
19
+ with_cloud(cloud, {:testing => o.testing }) do
20
+
21
+ boot_file = "#{Messenger.append_dir}/pm_master_rel-0.1"
22
+ command = Messenger.erl_command("pp_master", "-boot #{boot_file} #{noshell ? "" : "-detached -heart"}")
23
+
24
+ Kernel.system command
25
+ end
26
+
27
+ end
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+ require "poolparty"
4
+ require "poolpartycl"
5
+
6
+ available_monitors = PoolParty::Monitors.available_monitors
7
+ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
8
+ opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
9
+ opts.on('-l', '--no-shell', 'No shell') {optioner.noshell true}
10
+ end
11
+
12
+ load_pool(o.spec || Binary.get_existing_spec_location)
13
+
14
+ include Remote
15
+
16
+ @clouds = o.cloudname ? [cloud(o.cloudname.downcase.to_sym)] : clouds
17
+ @hostname = o.hostname ? o.hostname : `hostname`.chomp
18
+
19
+ @hostname = "node0" if @hostname == "master" # Quick fix to make sure we have a node running on the master as well
20
+
21
+ @clouds.each do |name, cloud|
22
+
23
+ with_cloud(cloud, {:testing => o.testing, :hostname => @hostname, :noshell => o.noshell }) do
24
+ # TODO: Change this to be app specfic
25
+ # SECURITY RISK
26
+
27
+ boot_file = "#{Messenger.append_dir}/pm_node_rel-0.1"
28
+ command = Messenger.erl_command(hostname, "-boot #{boot_file} #{noshell ? "" : "-detached -heart"}")
29
+
30
+ Kernel.system command
31
+ end
32
+
33
+ end
@@ -2,7 +2,7 @@ require 'fileutils'
2
2
  include FileUtils
3
3
 
4
4
  require 'rubygems'
5
- %w[rake hoe newgem rubigen ruby2ruby].each do |req_gem|
5
+ %w[rake hoe newgem rubigen].each do |req_gem|
6
6
  begin
7
7
  require req_gem
8
8
  rescue LoadError