auser-poolparty 1.2.12 → 1.3.0

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 (1097) hide show
  1. data/README.rdoc +202 -0
  2. data/Rakefile +5 -19
  3. data/VERSION.yml +2 -2
  4. data/bin/cloud +20 -14
  5. data/bin/cloud-bootstrap +8 -19
  6. data/bin/cloud-compile +28 -0
  7. data/bin/cloud-configure +13 -20
  8. data/bin/cloud-console +8 -6
  9. data/bin/cloud-contract +17 -13
  10. data/bin/cloud-expand +19 -20
  11. data/bin/cloud-list +19 -21
  12. data/bin/cloud-osxcopy +2 -3
  13. data/bin/cloud-show +11 -20
  14. data/bin/cloud-ssh +7 -11
  15. data/bin/cloud-start +19 -13
  16. data/bin/cloud-terminate +12 -18
  17. data/bin/cloud-thrift +77 -0
  18. data/bin/cloud-verify +2 -3
  19. data/bin/install-poolparty +13 -15
  20. data/config/jeweler.rb +13 -15
  21. data/examples/basic.rb +17 -9
  22. data/examples/custom_bootstrap.sh +7 -0
  23. data/examples/eucalyptus.rb +63 -0
  24. data/examples/eucalyptus_test_run.sh +31 -0
  25. data/examples/knock.sh +27 -0
  26. data/examples/monitored_cloud.rb +22 -0
  27. data/examples/simple.rb +9 -5
  28. data/examples/ssh_garden.rb +21 -0
  29. data/examples/thrift/erlang/Emakefile +5 -0
  30. data/examples/thrift/erlang/Makefile +26 -0
  31. data/examples/thrift/erlang/deps/thrift/COPYING +24 -0
  32. data/examples/thrift/erlang/deps/thrift/LICENSE +24 -0
  33. data/examples/thrift/erlang/deps/thrift/Makefile +18 -0
  34. data/examples/thrift/erlang/deps/thrift/README +31 -0
  35. data/examples/thrift/erlang/deps/thrift/build/beamver +59 -0
  36. data/examples/thrift/erlang/deps/thrift/build/buildtargets.mk +14 -0
  37. data/examples/thrift/erlang/deps/thrift/build/colors.mk +24 -0
  38. data/examples/thrift/erlang/deps/thrift/build/docs.mk +12 -0
  39. data/examples/thrift/erlang/deps/thrift/build/mime.types +98 -0
  40. data/examples/thrift/erlang/deps/thrift/build/otp.mk +146 -0
  41. data/examples/thrift/erlang/deps/thrift/build/otp_subdir.mk +85 -0
  42. data/examples/thrift/erlang/deps/thrift/build/raw_test.mk +29 -0
  43. data/examples/thrift/erlang/deps/thrift/ebin/thrift.app +44 -0
  44. data/examples/thrift/erlang/deps/thrift/ebin/thrift.appup +1 -0
  45. data/examples/thrift/erlang/deps/thrift/include/thrift_constants.hrl +40 -0
  46. data/examples/thrift/erlang/deps/thrift/include/thrift_protocol.hrl +12 -0
  47. data/examples/thrift/erlang/deps/thrift/src/Makefile +116 -0
  48. data/examples/thrift/erlang/deps/thrift/src/test_handler.erl +7 -0
  49. data/examples/thrift/erlang/deps/thrift/src/test_service.erl +10 -0
  50. data/examples/thrift/erlang/deps/thrift/src/thrift.app.src +44 -0
  51. data/examples/thrift/erlang/deps/thrift/src/thrift.appup.src +1 -0
  52. data/examples/thrift/erlang/deps/thrift/src/thrift_app.erl +55 -0
  53. data/examples/thrift/erlang/deps/thrift/src/thrift_base64_transport.erl +45 -0
  54. data/examples/thrift/erlang/deps/thrift/src/thrift_binary_protocol.erl +318 -0
  55. data/examples/thrift/erlang/deps/thrift/src/thrift_buffered_transport.erl +168 -0
  56. data/examples/thrift/erlang/deps/thrift/src/thrift_client.erl +328 -0
  57. data/examples/thrift/erlang/deps/thrift/src/thrift_disk_log_transport.erl +106 -0
  58. data/examples/thrift/erlang/deps/thrift/src/thrift_file_transport.erl +69 -0
  59. data/examples/thrift/erlang/deps/thrift/src/thrift_framed_transport.erl +196 -0
  60. data/examples/thrift/erlang/deps/thrift/src/thrift_http_transport.erl +169 -0
  61. data/examples/thrift/erlang/deps/thrift/src/thrift_processor.erl +174 -0
  62. data/examples/thrift/erlang/deps/thrift/src/thrift_protocol.erl +326 -0
  63. data/examples/thrift/erlang/deps/thrift/src/thrift_server.erl +171 -0
  64. data/examples/thrift/erlang/deps/thrift/src/thrift_service.erl +6 -0
  65. data/examples/thrift/erlang/deps/thrift/src/thrift_socket_server.erl +245 -0
  66. data/examples/thrift/erlang/deps/thrift/src/thrift_socket_transport.erl +100 -0
  67. data/examples/thrift/erlang/deps/thrift/src/thrift_sup.erl +53 -0
  68. data/examples/thrift/erlang/deps/thrift/src/thrift_transport.erl +38 -0
  69. data/examples/thrift/erlang/deps/thrift/vsn.mk +1 -0
  70. data/examples/thrift/erlang/include/commandInterface_thrift.hrl +5 -0
  71. data/examples/thrift/erlang/include/poolparty_constants.hrl +9 -0
  72. data/examples/thrift/erlang/include/poolparty_types.hrl +8 -0
  73. data/examples/thrift/erlang/src/commandInterface_thrift.erl +29 -0
  74. data/examples/thrift/erlang/src/poolparty_types.erl +30 -0
  75. data/examples/thrift/erlang/src/thrift_example.erl +32 -0
  76. data/examples/thrift/thrift_example.py +28 -0
  77. data/examples/thrift/thrift_example.rb +36 -0
  78. data/lib/cloud_providers/cloud_provider.rb +85 -0
  79. data/lib/cloud_providers/cloud_provider_instance.rb +264 -0
  80. data/lib/cloud_providers/connections.rb +99 -0
  81. data/lib/cloud_providers/ec2/ec2.rb +197 -0
  82. data/lib/cloud_providers/ec2/ec2_helpers.rb +45 -0
  83. data/lib/cloud_providers/ec2/ec2_instance.rb +120 -0
  84. data/lib/cloud_providers/ec2/ec2_response.rb +79 -0
  85. data/lib/cloud_providers/ssh/ssh.rb +68 -0
  86. data/lib/cloud_providers/ssh/ssh_instance.rb +41 -0
  87. data/lib/cloud_providers/vmware/vmware.rb +127 -0
  88. data/lib/cloud_providers/vmware/vmware_instance.rb +56 -0
  89. data/lib/cloud_providers.rb +19 -0
  90. data/lib/core/array.rb +54 -0
  91. data/lib/core/hash.rb +80 -0
  92. data/lib/core/integer.rb +11 -0
  93. data/lib/core/module.rb +14 -0
  94. data/lib/core/object.rb +92 -0
  95. data/lib/core/proc.rb +55 -0
  96. data/lib/core/string.rb +150 -0
  97. data/lib/core/symbol.rb +29 -0
  98. data/lib/{poolparty/core → core}/time.rb +0 -0
  99. data/lib/dependency_resolver.rb +11 -0
  100. data/lib/dependency_resolvers/base.rb +122 -0
  101. data/lib/dependency_resolvers/chef/resources/chef_attributes_file.rb +51 -0
  102. data/lib/dependency_resolvers/chef/resources/http_request.rb +39 -0
  103. data/lib/dependency_resolvers/chef/resources/remote_directory.rb +54 -0
  104. data/lib/dependency_resolvers/chef/resources/remote_file.rb +69 -0
  105. data/lib/dependency_resolvers/chef/resources/route.rb +52 -0
  106. data/lib/dependency_resolvers/chef/resources/script.rb +62 -0
  107. data/lib/dependency_resolvers/chef.rb +228 -0
  108. data/lib/dependency_resolvers/proxy_object.rb +90 -0
  109. data/lib/keypair.rb +93 -0
  110. data/lib/mixins/askable.rb +154 -0
  111. data/lib/mixins/callbacks.rb +52 -0
  112. data/lib/mixins/delayed.rb +65 -0
  113. data/lib/mixins/pinger.rb +31 -0
  114. data/lib/mixins/printing.rb +35 -0
  115. data/lib/mixins/searchable_paths.rb +87 -0
  116. data/lib/poolparty/base.rb +232 -0
  117. data/lib/poolparty/cloud.rb +246 -0
  118. data/lib/poolparty/default.rb +32 -0
  119. data/lib/poolparty/dsl_base.rb +36 -0
  120. data/lib/poolparty/installer.rb +107 -0
  121. data/lib/poolparty/installers/ec2.rb +13 -124
  122. data/lib/poolparty/installers/vmware.rb +149 -0
  123. data/lib/poolparty/monitor.rb +61 -0
  124. data/lib/poolparty/plugin.rb +12 -0
  125. data/lib/poolparty/plugins/apache.rb +204 -0
  126. data/lib/poolparty/plugins/apache2/apache2.conf.erb +630 -0
  127. data/lib/poolparty/plugins/apache2/base.conf.erb +171 -0
  128. data/lib/poolparty/{templates → plugins}/apache2/browser_fixes.conf.erb +0 -0
  129. data/lib/poolparty/plugins/apache2/default-site.conf.erb +41 -0
  130. data/lib/poolparty/{templates → plugins}/apache2/mime-minimal.conf.erb +0 -0
  131. data/lib/poolparty/plugins/apache2/passenger_site.rb +11 -14
  132. data/lib/poolparty/plugins/apache2/php5.rb +11 -10
  133. data/lib/poolparty/plugins/apache2/virtual_host.rb +25 -19
  134. data/lib/poolparty/plugins/git/git_repository.rb +83 -0
  135. data/lib/poolparty/plugins/git.rb +8 -85
  136. data/lib/poolparty/plugins/rails/app.rb +29 -0
  137. data/lib/poolparty/plugins/rails.rb +25 -0
  138. data/lib/poolparty/pool.rb +154 -0
  139. data/lib/poolparty/pool_party_error.rb +19 -0
  140. data/lib/poolparty/pool_party_log.rb +47 -0
  141. data/lib/poolparty/resource.rb +279 -0
  142. data/lib/poolparty/resources/conditional.rb +65 -0
  143. data/lib/poolparty/resources/cron.rb +31 -22
  144. data/lib/poolparty/resources/directory.rb +27 -20
  145. data/lib/poolparty/resources/exec.rb +35 -29
  146. data/lib/poolparty/resources/file.rb +37 -43
  147. data/lib/poolparty/resources/gem_package.rb +55 -0
  148. data/lib/poolparty/resources/group.rb +37 -12
  149. data/lib/poolparty/resources/line.rb +50 -0
  150. data/lib/poolparty/resources/link.rb +49 -0
  151. data/lib/poolparty/resources/mount.rb +25 -9
  152. data/lib/poolparty/resources/package.rb +25 -11
  153. data/lib/poolparty/resources/service.rb +29 -13
  154. data/lib/poolparty/resources/user.rb +54 -29
  155. data/lib/poolparty/resources/variable.rb +30 -4
  156. data/lib/poolparty.rb +53 -127
  157. data/lib/proto/command_interface_handler.rb +31 -0
  158. data/lib/proto/gen-erl/commandInterface_thrift.erl +29 -0
  159. data/lib/proto/gen-erl/commandInterface_thrift.hrl +5 -0
  160. data/lib/proto/gen-erl/poolparty_constants.hrl +9 -0
  161. data/lib/proto/gen-erl/poolparty_types.erl +30 -0
  162. data/lib/proto/gen-erl/poolparty_types.hrl +8 -0
  163. data/lib/{poolparty/core/proc.rb → proto/gen-py/__init__.py} +0 -0
  164. data/lib/proto/gen-py/cloudthrift/CommandInterface-remote +79 -0
  165. data/lib/proto/gen-py/cloudthrift/CommandInterface.py +251 -0
  166. data/lib/proto/gen-py/cloudthrift/CommandInterface.pyc +0 -0
  167. data/lib/proto/gen-py/cloudthrift/__init__.py +1 -0
  168. data/lib/proto/gen-py/cloudthrift/__init__.pyc +0 -0
  169. data/lib/proto/gen-py/cloudthrift/constants.py +9 -0
  170. data/lib/proto/gen-py/cloudthrift/constants.pyc +0 -0
  171. data/lib/proto/gen-py/cloudthrift/ttypes.py +160 -0
  172. data/lib/proto/gen-py/cloudthrift/ttypes.pyc +0 -0
  173. data/lib/proto/gen-py/thrift/TSCons.py +33 -0
  174. data/lib/proto/gen-py/thrift/Thrift.py +123 -0
  175. data/lib/proto/gen-py/thrift/Thrift.pyc +0 -0
  176. data/lib/proto/gen-py/thrift/__init__.py +20 -0
  177. data/lib/proto/gen-py/thrift/__init__.pyc +0 -0
  178. data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.py +259 -0
  179. data/lib/proto/gen-py/thrift/protocol/TBinaryProtocol.pyc +0 -0
  180. data/lib/proto/gen-py/thrift/protocol/TProtocol.py +205 -0
  181. data/lib/proto/gen-py/thrift/protocol/TProtocol.pyc +0 -0
  182. data/lib/proto/gen-py/thrift/protocol/__init__.py +20 -0
  183. data/lib/proto/gen-py/thrift/protocol/__init__.pyc +0 -0
  184. data/lib/proto/gen-py/thrift/protocol/fastbinary.c +1203 -0
  185. data/lib/proto/gen-py/thrift/server/THttpServer.py +63 -0
  186. data/lib/proto/gen-py/thrift/server/TNonblockingServer.py +309 -0
  187. data/lib/proto/gen-py/thrift/server/TServer.py +270 -0
  188. data/lib/proto/gen-py/thrift/server/__init__.py +20 -0
  189. data/lib/proto/gen-py/thrift/transport/THttpClient.py +100 -0
  190. data/lib/proto/gen-py/thrift/transport/TSocket.py +149 -0
  191. data/lib/proto/gen-py/thrift/transport/TSocket.pyc +0 -0
  192. data/lib/proto/gen-py/thrift/transport/TTransport.py +326 -0
  193. data/lib/proto/gen-py/thrift/transport/TTransport.pyc +0 -0
  194. data/lib/proto/gen-py/thrift/transport/TTwisted.py +181 -0
  195. data/lib/proto/gen-py/thrift/transport/__init__.py +20 -0
  196. data/lib/proto/gen-py/thrift/transport/__init__.pyc +0 -0
  197. data/lib/proto/gen-rb/command_interface.rb +84 -0
  198. data/lib/proto/gen-rb/poolparty_constants.rb +10 -0
  199. data/lib/proto/gen-rb/poolparty_types.rb +45 -0
  200. data/lib/proto/poolparty.thrift +17 -0
  201. data/lib/provision/bootstrap_scripts/build_centos.sh +70 -0
  202. data/lib/provision/bootstrap_scripts/build_ubuntu.sh +75 -0
  203. data/lib/provision/bootstrap_scripts/determine_os.sh +21 -0
  204. data/lib/provision/bootstrapper.rb +44 -0
  205. data/lib/provision/configure_scripts/configure_centos.erb +7 -0
  206. data/lib/provision/configure_scripts/configure_ubuntu.erb +7 -0
  207. data/tasks/development.rake +6 -6
  208. data/tasks/poolparty.rake +12 -0
  209. data/tasks/test.rake +40 -0
  210. data/test/fixtures/bad_perms_test_key +27 -0
  211. data/test/fixtures/clouds/fake_clouds.rb +9 -0
  212. data/test/fixtures/clouds/simple_cloud.rb +13 -0
  213. data/test/fixtures/clouds/ssh_cloud.rb +11 -0
  214. data/test/fixtures/clouds/vmware_cloud.rb +16 -0
  215. data/test/fixtures/ec2/ec2-describe-instances_response_body.xml +70 -0
  216. data/test/fixtures/ec2/ec2-run-instances_response_body.xml +35 -0
  217. data/test/fixtures/ec2/ec2-terminate-instances_response_body.xml +16 -0
  218. data/test/fixtures/keys/test_key +27 -0
  219. data/test/fixtures/keys/test_pub_key +8 -0
  220. data/test/fixtures/resources/fake_plugin.rb +19 -0
  221. data/test/fixtures/resources/fake_resource.rb +18 -0
  222. data/test/fixtures/resources/random_proc_file.rb +7 -0
  223. data/test/fixtures/templates/apache_conf.erb +2 -0
  224. data/test/lib/cloud_providers/cloud_provider_instance_test.rb +68 -0
  225. data/test/lib/cloud_providers/cloud_provider_test.rb +25 -0
  226. data/test/lib/cloud_providers/connections_test.rb +71 -0
  227. data/test/lib/cloud_providers/ec2/ec2_helpers_test.rb +29 -0
  228. data/test/lib/cloud_providers/ec2/ec2_instance_test.rb +59 -0
  229. data/test/lib/cloud_providers/ec2/ec2_response_test.rb +41 -0
  230. data/test/lib/cloud_providers/ec2/ec2_test.rb +116 -0
  231. data/test/lib/cloud_providers/ssh/ssh_test.rb +61 -0
  232. data/test/lib/cloud_providers/vmware/vmware_test.rb +46 -0
  233. data/test/lib/core/array_test.rb +53 -0
  234. data/test/lib/core/hash_test.rb +41 -0
  235. data/test/lib/core/integer_test.rb +19 -0
  236. data/test/lib/core/module_test.rb +38 -0
  237. data/test/lib/core/object_test.rb +57 -0
  238. data/test/lib/core/proc_test.rb +26 -0
  239. data/test/lib/core/string_test.rb +73 -0
  240. data/test/lib/core/symbol_test.rb +26 -0
  241. data/test/lib/core/time_test.rb +51 -0
  242. data/test/lib/dependency_resolvers/base_test.rb +42 -0
  243. data/test/lib/dependency_resolvers/chef/resources/http_request_test.rb +29 -0
  244. data/test/lib/dependency_resolvers/chef/resources/remote_directory_test.rb +45 -0
  245. data/test/lib/dependency_resolvers/chef/resources/remote_file_test.rb +36 -0
  246. data/test/lib/dependency_resolvers/chef/resources/route_test.rb +37 -0
  247. data/test/lib/dependency_resolvers/chef/resources/script_test.rb +49 -0
  248. data/test/lib/dependency_resolvers/chef_test.rb +137 -0
  249. data/test/lib/dependency_resolvers/proxy_object_test.rb +75 -0
  250. data/test/lib/mixins/callbacks_test.rb +48 -0
  251. data/test/lib/mixins/delayed_test.rb +50 -0
  252. data/test/lib/mixins/searchable_paths_test.rb +83 -0
  253. data/test/lib/poolparty/base_test.rb +34 -0
  254. data/test/lib/poolparty/cloud_test.rb +139 -0
  255. data/test/lib/poolparty/default_test.rb +17 -0
  256. data/test/lib/poolparty/dsl_base_test.rb +30 -0
  257. data/test/lib/poolparty/installers/vmware_installer_test.rb +16 -0
  258. data/test/lib/poolparty/keypair_test.rb +42 -0
  259. data/test/lib/poolparty/monitor_test.rb +30 -0
  260. data/test/lib/poolparty/plugins/apache2/php5_test.rb +26 -0
  261. data/test/lib/poolparty/plugins/apache2/virtual_host_test.rb +28 -0
  262. data/test/lib/poolparty/plugins/apache_test.rb +35 -0
  263. data/test/lib/poolparty/pool_party_error_test.rb +20 -0
  264. data/test/lib/poolparty/pool_party_log_test.rb +17 -0
  265. data/test/lib/poolparty/pool_test.rb +26 -0
  266. data/test/lib/poolparty/resource_test.rb +145 -0
  267. data/test/lib/poolparty/resources/conditional_test.rb +49 -0
  268. data/test/lib/poolparty/resources/cron_test.rb +31 -0
  269. data/test/lib/poolparty/resources/directory_test.rb +21 -0
  270. data/test/lib/poolparty/resources/exec_test.rb +62 -0
  271. data/test/lib/poolparty/resources/file_test.rb +38 -0
  272. data/test/lib/poolparty/resources/group_test.rb +21 -0
  273. data/test/lib/poolparty/resources/line_test.rb +20 -0
  274. data/test/lib/poolparty/resources/link_test.rb +27 -0
  275. data/test/lib/poolparty/resources/mount_test.rb +32 -0
  276. data/test/lib/poolparty/resources/package_test.rb +28 -0
  277. data/test/lib/poolparty/resources/service_test.rb +31 -0
  278. data/test/lib/poolparty/resources/user_test.rb +33 -0
  279. data/test/lib/poolparty/resources/variable_test.rb +20 -0
  280. data/test/lib/provision/base_test.rb +16 -0
  281. data/test/lib/provision/bootstrapper_test.rb +44 -0
  282. data/test/test_helper.rb +21 -10
  283. data/test/test_methods.rb +62 -1
  284. data/vendor/gems/{suitcase → colors}/LICENSE +0 -0
  285. data/vendor/gems/colors/README.rdoc +52 -0
  286. data/vendor/gems/colors/Rakefile +56 -0
  287. data/vendor/gems/colors/VERSION.yml +4 -0
  288. data/vendor/gems/colors/colors.gemspec +29 -0
  289. data/vendor/gems/colors/lib/colors.rb +45 -0
  290. data/vendor/gems/colors/test/colors_test.rb +26 -0
  291. data/vendor/gems/colors/test/test_helper.rb +10 -0
  292. data/vendor/gems/context/History.txt +10 -0
  293. data/vendor/gems/context/License.txt +20 -0
  294. data/vendor/gems/context/Manifest.txt +26 -0
  295. data/{spec/poolparty/poolparty/test_plugins/virtual_host_template.erb → vendor/gems/context/PostInstall.txt} +0 -0
  296. data/vendor/gems/context/README.rdoc +158 -0
  297. data/vendor/gems/context/Rakefile +4 -0
  298. data/vendor/gems/context/config/hoe.rb +73 -0
  299. data/vendor/gems/context/config/requirements.rb +15 -0
  300. data/vendor/gems/context/context.gemspec +44 -0
  301. data/vendor/gems/context/countloc.rb +65 -0
  302. data/vendor/gems/context/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
  303. data/vendor/gems/context/coverage/index.html +441 -0
  304. data/vendor/gems/context/coverage/lib-context-context_rb.html +669 -0
  305. data/vendor/gems/context/coverage/lib-context-core_ext-string_rb.html +627 -0
  306. data/vendor/gems/context/coverage/lib-context-lifecycle_rb.html +683 -0
  307. data/vendor/gems/context/coverage/lib-context-shared_behavior_rb.html +708 -0
  308. data/vendor/gems/context/coverage/lib-context-suite_rb.html +649 -0
  309. data/vendor/gems/context/coverage/lib-context-test_rb.html +637 -0
  310. data/vendor/gems/context/coverage/lib-context-version_rb.html +619 -0
  311. data/vendor/gems/context/coverage/lib-context_rb.html +623 -0
  312. data/vendor/gems/context/lib/context/context.rb +64 -0
  313. data/vendor/gems/context/lib/context/core_ext/rails_hacks.rb +10 -0
  314. data/vendor/gems/context/lib/context/core_ext/string.rb +17 -0
  315. data/vendor/gems/context/lib/context/lifecycle.rb +103 -0
  316. data/vendor/gems/context/lib/context/shared_behavior.rb +98 -0
  317. data/vendor/gems/context/lib/context/suite.rb +39 -0
  318. data/vendor/gems/context/lib/context/test.rb +37 -0
  319. data/vendor/gems/context/lib/context/version.rb +9 -0
  320. data/vendor/gems/context/lib/context.rb +19 -0
  321. data/vendor/gems/context/setup.rb +1585 -0
  322. data/vendor/gems/context/tasks/deployment.rake +34 -0
  323. data/{tasks → vendor/gems/context/tasks}/environment.rake +0 -0
  324. data/vendor/gems/context/test/test_context.rb +57 -0
  325. data/vendor/gems/context/test/test_core_ext.rb +21 -0
  326. data/vendor/gems/context/test/test_helper.rb +2 -0
  327. data/vendor/gems/context/test/test_lifecycle.rb +224 -0
  328. data/vendor/gems/context/test/test_nested_lifecycle.rb +44 -0
  329. data/vendor/gems/context/test/test_shared.rb +116 -0
  330. data/vendor/gems/context/test/test_test.rb +23 -0
  331. data/vendor/gems/daemons/LICENSE +29 -0
  332. data/vendor/gems/daemons/README +223 -0
  333. data/vendor/gems/daemons/Rakefile +84 -0
  334. data/vendor/gems/daemons/Releases +126 -0
  335. data/vendor/gems/daemons/TODO +6 -0
  336. data/vendor/gems/daemons/examples/call/call.rb +56 -0
  337. data/vendor/gems/daemons/examples/call/call_monitor.rb +55 -0
  338. data/vendor/gems/daemons/examples/daemonize/daemonize.rb +20 -0
  339. data/vendor/gems/daemons/examples/run/ctrl_crash.rb +17 -0
  340. data/vendor/gems/daemons/examples/run/ctrl_exec.rb +16 -0
  341. data/vendor/gems/daemons/examples/run/ctrl_exit.rb +15 -0
  342. data/vendor/gems/daemons/examples/run/ctrl_keep_pid_files.rb +17 -0
  343. data/vendor/gems/daemons/examples/run/ctrl_monitor.rb +16 -0
  344. data/vendor/gems/daemons/examples/run/ctrl_multiple.rb +16 -0
  345. data/vendor/gems/daemons/examples/run/ctrl_normal.rb +12 -0
  346. data/vendor/gems/daemons/examples/run/ctrl_ontop.rb +16 -0
  347. data/vendor/gems/daemons/examples/run/ctrl_optionparser.rb +43 -0
  348. data/vendor/gems/daemons/examples/run/ctrl_proc.rb +25 -0
  349. data/vendor/gems/daemons/examples/run/ctrl_proc.rb.output +101 -0
  350. data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb +22 -0
  351. data/vendor/gems/daemons/examples/run/ctrl_proc_multiple.rb.output +2 -0
  352. data/vendor/gems/daemons/examples/run/ctrl_proc_simple.rb +17 -0
  353. data/vendor/gems/daemons/examples/run/myserver.rb +12 -0
  354. data/vendor/gems/daemons/examples/run/myserver_crashing.rb +14 -0
  355. data/vendor/gems/daemons/examples/run/myserver_crashing.rb.output +30 -0
  356. data/vendor/gems/daemons/examples/run/myserver_exiting.rb +8 -0
  357. data/vendor/gems/daemons/lib/daemons/application.rb +372 -0
  358. data/vendor/gems/daemons/lib/daemons/application_group.rb +152 -0
  359. data/vendor/gems/daemons/lib/daemons/cmdline.rb +117 -0
  360. data/vendor/gems/daemons/lib/daemons/controller.rb +134 -0
  361. data/vendor/gems/daemons/lib/daemons/daemonize.rb +263 -0
  362. data/vendor/gems/daemons/lib/daemons/exceptions.rb +28 -0
  363. data/vendor/gems/daemons/lib/daemons/monitor.rb +127 -0
  364. data/vendor/gems/daemons/lib/daemons/pid.rb +101 -0
  365. data/vendor/gems/daemons/lib/daemons/pidfile.rb +111 -0
  366. data/vendor/gems/daemons/lib/daemons/pidmem.rb +10 -0
  367. data/vendor/gems/daemons/lib/daemons.rb +283 -0
  368. data/vendor/gems/daemons/setup.rb +1360 -0
  369. data/vendor/gems/fakeweb/CHANGELOG +163 -0
  370. data/vendor/gems/fakeweb/LICENSE.txt +281 -0
  371. data/vendor/gems/fakeweb/README.rdoc +193 -0
  372. data/vendor/gems/fakeweb/Rakefile +76 -0
  373. data/vendor/gems/fakeweb/fakeweb.gemspec +21 -0
  374. data/vendor/gems/fakeweb/lib/fake_web/ext/net_http.rb +71 -0
  375. data/vendor/gems/fakeweb/lib/fake_web/registry.rb +103 -0
  376. data/vendor/gems/fakeweb/lib/fake_web/responder.rb +113 -0
  377. data/vendor/gems/fakeweb/lib/fake_web/response.rb +10 -0
  378. data/vendor/gems/fakeweb/lib/fake_web/stub_socket.rb +15 -0
  379. data/vendor/gems/fakeweb/lib/fake_web/utility.rb +22 -0
  380. data/vendor/gems/fakeweb/lib/fake_web.rb +172 -0
  381. data/vendor/gems/fakeweb/lib/fakeweb.rb +2 -0
  382. data/vendor/gems/fakeweb/test/fixtures/google_response_from_curl +12 -0
  383. data/vendor/gems/fakeweb/test/fixtures/google_response_with_transfer_encoding +17 -0
  384. data/vendor/gems/fakeweb/test/fixtures/google_response_without_transfer_encoding +11 -0
  385. data/vendor/gems/fakeweb/test/fixtures/test_example.txt +1 -0
  386. data/vendor/gems/fakeweb/test/fixtures/test_txt_file +3 -0
  387. data/vendor/gems/fakeweb/test/test_allow_net_connect.rb +85 -0
  388. data/vendor/gems/fakeweb/test/test_deprecations.rb +54 -0
  389. data/vendor/gems/fakeweb/test/test_fake_authentication.rb +92 -0
  390. data/vendor/gems/fakeweb/test/test_fake_web.rb +518 -0
  391. data/vendor/gems/fakeweb/test/test_fake_web_open_uri.rb +58 -0
  392. data/vendor/gems/fakeweb/test/test_helper.rb +74 -0
  393. data/vendor/gems/fakeweb/test/test_missing_open_uri.rb +25 -0
  394. data/vendor/gems/fakeweb/test/test_precedence.rb +51 -0
  395. data/vendor/gems/fakeweb/test/test_query_string.rb +45 -0
  396. data/vendor/gems/fakeweb/test/test_regexes.rb +103 -0
  397. data/vendor/gems/fakeweb/test/test_response_headers.rb +73 -0
  398. data/vendor/gems/fakeweb/test/test_trailing_slashes.rb +53 -0
  399. data/vendor/gems/fakeweb/test/test_utility.rb +70 -0
  400. data/vendor/gems/gratr/Grater.xcf +0 -0
  401. data/vendor/gems/gratr/README +335 -0
  402. data/vendor/gems/gratr/Rakefile +220 -0
  403. data/vendor/gems/gratr/examples/graph_self.rb +54 -0
  404. data/vendor/gems/gratr/examples/module_graph.jpg +0 -0
  405. data/vendor/gems/gratr/examples/module_graph.rb +12 -0
  406. data/vendor/gems/gratr/examples/self_graph.dot +117 -0
  407. data/vendor/gems/gratr/examples/self_graph.jpg +0 -0
  408. data/vendor/gems/gratr/examples/visualize.dot +58 -0
  409. data/vendor/gems/gratr/examples/visualize.jpg +0 -0
  410. data/vendor/gems/gratr/examples/visualize.rb +11 -0
  411. data/vendor/gems/gratr/install.rb +49 -0
  412. data/vendor/gems/gratr/lib/gratr/adjacency_graph.rb +230 -0
  413. data/vendor/gems/gratr/lib/gratr/base.rb +34 -0
  414. data/vendor/gems/gratr/lib/gratr/biconnected.rb +116 -0
  415. data/vendor/gems/gratr/lib/gratr/chinese_postman.rb +123 -0
  416. data/vendor/gems/gratr/lib/gratr/common.rb +73 -0
  417. data/vendor/gems/gratr/lib/gratr/comparability.rb +92 -0
  418. data/vendor/gems/gratr/lib/gratr/digraph.rb +115 -0
  419. data/vendor/gems/gratr/lib/gratr/digraph_distance.rb +185 -0
  420. data/vendor/gems/gratr/lib/gratr/dot.rb +95 -0
  421. data/vendor/gems/gratr/lib/gratr/edge.rb +145 -0
  422. data/vendor/gems/gratr/lib/gratr/graph.rb +315 -0
  423. data/vendor/gems/gratr/lib/gratr/graph_api.rb +82 -0
  424. data/vendor/gems/gratr/lib/gratr/import.rb +44 -0
  425. data/vendor/gems/gratr/lib/gratr/labels.rb +103 -0
  426. data/vendor/gems/gratr/lib/gratr/maximum_flow.rb +107 -0
  427. data/vendor/gems/gratr/lib/gratr/rdot.rb +332 -0
  428. data/vendor/gems/gratr/lib/gratr/search.rb +422 -0
  429. data/vendor/gems/gratr/lib/gratr/strong_components.rb +127 -0
  430. data/vendor/gems/gratr/lib/gratr/undirected_graph.rb +153 -0
  431. data/vendor/gems/gratr/lib/gratr.rb +42 -0
  432. data/vendor/gems/gratr/lib/priority-queue/benchmark/dijkstra.rb +171 -0
  433. data/vendor/gems/gratr/lib/priority-queue/compare_comments.rb +49 -0
  434. data/vendor/gems/gratr/lib/priority-queue/ext/priority_queue/CPriorityQueue/extconf.rb +2 -0
  435. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/c_priority_queue.rb +1 -0
  436. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/poor_priority_queue.rb +46 -0
  437. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue/ruby_priority_queue.rb +525 -0
  438. data/vendor/gems/gratr/lib/priority-queue/lib/priority_queue.rb +14 -0
  439. data/vendor/gems/gratr/lib/priority-queue/setup.rb +1551 -0
  440. data/vendor/gems/gratr/lib/priority-queue/test/priority_queue_test.rb +371 -0
  441. data/vendor/gems/gratr/tests/TestBiconnected.rb +53 -0
  442. data/vendor/gems/gratr/tests/TestChinesePostman.rb +53 -0
  443. data/vendor/gems/gratr/tests/TestComplement.rb +54 -0
  444. data/vendor/gems/gratr/tests/TestDigraph.rb +333 -0
  445. data/vendor/gems/gratr/tests/TestDigraphDistance.rb +138 -0
  446. data/vendor/gems/gratr/tests/TestDot.rb +75 -0
  447. data/vendor/gems/gratr/tests/TestEdge.rb +171 -0
  448. data/vendor/gems/gratr/tests/TestInspection.rb +57 -0
  449. data/vendor/gems/gratr/tests/TestMultiEdge.rb +57 -0
  450. data/vendor/gems/gratr/tests/TestNeighborhood.rb +64 -0
  451. data/vendor/gems/gratr/tests/TestProperties.rb +160 -0
  452. data/vendor/gems/gratr/tests/TestSearch.rb +277 -0
  453. data/vendor/gems/gratr/tests/TestStrongComponents.rb +85 -0
  454. data/vendor/gems/gratr/tests/TestTriagulated.rb +137 -0
  455. data/vendor/gems/gratr/tests/TestUndirectedGraph.rb +219 -0
  456. data/vendor/gems/json/CHANGES +93 -0
  457. data/vendor/gems/json/GPL +340 -0
  458. data/vendor/gems/json/README +78 -0
  459. data/vendor/gems/json/RUBY +58 -0
  460. data/vendor/gems/json/Rakefile +309 -0
  461. data/vendor/gems/json/TODO +1 -0
  462. data/vendor/gems/json/VERSION +1 -0
  463. data/vendor/gems/json/benchmarks/benchmark.txt +133 -0
  464. data/vendor/gems/json/benchmarks/benchmark_generator.rb +48 -0
  465. data/vendor/gems/json/benchmarks/benchmark_parser.rb +26 -0
  466. data/vendor/gems/json/benchmarks/benchmark_rails.rb +26 -0
  467. data/vendor/gems/json/bin/edit_json.rb +10 -0
  468. data/vendor/gems/json/bin/prettify_json.rb +76 -0
  469. data/vendor/gems/json/data/example.json +1 -0
  470. data/vendor/gems/json/data/index.html +38 -0
  471. data/vendor/gems/json/data/prototype.js +4184 -0
  472. data/vendor/gems/json/ext/json/ext/generator/extconf.rb +9 -0
  473. data/vendor/gems/json/ext/json/ext/generator/generator.c +885 -0
  474. data/vendor/gems/json/ext/json/ext/generator/unicode.c +182 -0
  475. data/vendor/gems/json/ext/json/ext/generator/unicode.h +53 -0
  476. data/vendor/gems/json/ext/json/ext/parser/Makefile +181 -0
  477. data/vendor/gems/json/ext/json/ext/parser/extconf.rb +9 -0
  478. data/vendor/gems/json/ext/json/ext/parser/gem_make.out +14 -0
  479. data/vendor/gems/json/ext/json/ext/parser/parser.c +1769 -0
  480. data/vendor/gems/json/ext/json/ext/parser/parser.rl +637 -0
  481. data/vendor/gems/json/ext/json/ext/parser/unicode.c +154 -0
  482. data/vendor/gems/json/ext/json/ext/parser/unicode.h +58 -0
  483. data/vendor/gems/json/ext/json/ext/parser/unicode.o +0 -0
  484. data/vendor/gems/json/install.rb +26 -0
  485. data/vendor/gems/json/lib/json/Array.xpm +21 -0
  486. data/vendor/gems/json/lib/json/FalseClass.xpm +21 -0
  487. data/vendor/gems/json/lib/json/Hash.xpm +21 -0
  488. data/vendor/gems/json/lib/json/Key.xpm +73 -0
  489. data/vendor/gems/json/lib/json/NilClass.xpm +21 -0
  490. data/vendor/gems/json/lib/json/Numeric.xpm +28 -0
  491. data/vendor/gems/json/lib/json/String.xpm +96 -0
  492. data/vendor/gems/json/lib/json/TrueClass.xpm +21 -0
  493. data/vendor/gems/json/lib/json/add/core.rb +135 -0
  494. data/vendor/gems/json/lib/json/add/rails.rb +58 -0
  495. data/vendor/gems/json/lib/json/common.rb +354 -0
  496. data/vendor/gems/json/lib/json/editor.rb +1362 -0
  497. data/vendor/gems/json/lib/json/ext.rb +13 -0
  498. data/vendor/gems/json/lib/json/json.xpm +1499 -0
  499. data/vendor/gems/json/lib/json/pure/generator.rb +394 -0
  500. data/vendor/gems/json/lib/json/pure/parser.rb +259 -0
  501. data/vendor/gems/json/lib/json/pure.rb +75 -0
  502. data/vendor/gems/json/lib/json/version.rb +9 -0
  503. data/vendor/gems/json/lib/json.rb +235 -0
  504. data/vendor/gems/json/tests/fixtures/fail1.json +1 -0
  505. data/vendor/gems/json/tests/fixtures/fail10.json +1 -0
  506. data/vendor/gems/json/tests/fixtures/fail11.json +1 -0
  507. data/vendor/gems/json/tests/fixtures/fail12.json +1 -0
  508. data/vendor/gems/json/tests/fixtures/fail13.json +1 -0
  509. data/vendor/gems/json/tests/fixtures/fail14.json +1 -0
  510. data/vendor/gems/json/tests/fixtures/fail18.json +1 -0
  511. data/vendor/gems/json/tests/fixtures/fail19.json +1 -0
  512. data/vendor/gems/json/tests/fixtures/fail2.json +1 -0
  513. data/vendor/gems/json/tests/fixtures/fail20.json +1 -0
  514. data/vendor/gems/json/tests/fixtures/fail21.json +1 -0
  515. data/vendor/gems/json/tests/fixtures/fail22.json +1 -0
  516. data/vendor/gems/json/tests/fixtures/fail23.json +1 -0
  517. data/vendor/gems/json/tests/fixtures/fail24.json +1 -0
  518. data/vendor/gems/json/tests/fixtures/fail25.json +1 -0
  519. data/vendor/gems/json/tests/fixtures/fail27.json +2 -0
  520. data/vendor/gems/json/tests/fixtures/fail28.json +2 -0
  521. data/vendor/gems/json/tests/fixtures/fail3.json +1 -0
  522. data/vendor/gems/json/tests/fixtures/fail4.json +1 -0
  523. data/vendor/gems/json/tests/fixtures/fail5.json +1 -0
  524. data/vendor/gems/json/tests/fixtures/fail6.json +1 -0
  525. data/vendor/gems/json/tests/fixtures/fail7.json +1 -0
  526. data/vendor/gems/json/tests/fixtures/fail8.json +1 -0
  527. data/vendor/gems/json/tests/fixtures/fail9.json +1 -0
  528. data/vendor/gems/json/tests/fixtures/pass1.json +56 -0
  529. data/vendor/gems/json/tests/fixtures/pass15.json +1 -0
  530. data/vendor/gems/json/tests/fixtures/pass16.json +1 -0
  531. data/vendor/gems/json/tests/fixtures/pass17.json +1 -0
  532. data/vendor/gems/json/tests/fixtures/pass2.json +1 -0
  533. data/vendor/gems/json/tests/fixtures/pass26.json +1 -0
  534. data/vendor/gems/json/tests/fixtures/pass3.json +6 -0
  535. data/vendor/gems/json/tests/runner.rb +25 -0
  536. data/vendor/gems/json/tests/test_json.rb +293 -0
  537. data/vendor/gems/json/tests/test_json_addition.rb +161 -0
  538. data/vendor/gems/json/tests/test_json_fixtures.rb +30 -0
  539. data/vendor/gems/json/tests/test_json_generate.rb +100 -0
  540. data/vendor/gems/json/tests/test_json_rails.rb +118 -0
  541. data/vendor/gems/json/tests/test_json_unicode.rb +61 -0
  542. data/vendor/gems/json/tools/fuzz.rb +140 -0
  543. data/vendor/gems/json/tools/server.rb +62 -0
  544. data/vendor/gems/parenting/Rakefile +17 -1
  545. data/vendor/gems/parenting/lib/parenting/parenting.rb +13 -6
  546. data/vendor/gems/right_aws/History.txt +246 -0
  547. data/vendor/gems/right_aws/Manifest.txt +34 -0
  548. data/vendor/gems/right_aws/README.txt +166 -0
  549. data/vendor/gems/right_aws/Rakefile +112 -0
  550. data/vendor/gems/right_aws/lib/acf/right_acf_interface.rb +379 -0
  551. data/vendor/gems/right_aws/lib/awsbase/benchmark_fix.rb +39 -0
  552. data/vendor/gems/right_aws/lib/awsbase/right_awsbase.rb +797 -0
  553. data/vendor/gems/right_aws/lib/awsbase/support.rb +111 -0
  554. data/vendor/gems/right_aws/lib/ec2/right_ec2.rb +1737 -0
  555. data/vendor/gems/right_aws/lib/right_aws.rb +69 -0
  556. data/vendor/gems/right_aws/lib/s3/right_s3.rb +1094 -0
  557. data/vendor/gems/right_aws/lib/s3/right_s3_interface.rb +1175 -0
  558. data/vendor/gems/right_aws/lib/sdb/active_sdb.rb +930 -0
  559. data/vendor/gems/right_aws/lib/sdb/right_sdb_interface.rb +698 -0
  560. data/vendor/gems/right_aws/lib/sqs/right_sqs.rb +388 -0
  561. data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2.rb +286 -0
  562. data/vendor/gems/right_aws/lib/sqs/right_sqs_gen2_interface.rb +444 -0
  563. data/vendor/gems/right_aws/lib/sqs/right_sqs_interface.rb +596 -0
  564. data/vendor/gems/right_aws/test/acf/test_helper.rb +2 -0
  565. data/vendor/gems/right_aws/test/acf/test_right_acf.rb +146 -0
  566. data/vendor/gems/right_aws/test/ec2/test_helper.rb +2 -0
  567. data/vendor/gems/right_aws/test/ec2/test_right_ec2.rb +108 -0
  568. data/vendor/gems/right_aws/test/http_connection.rb +87 -0
  569. data/vendor/gems/right_aws/test/s3/test_helper.rb +2 -0
  570. data/vendor/gems/right_aws/test/s3/test_right_s3.rb +419 -0
  571. data/vendor/gems/right_aws/test/s3/test_right_s3_stubbed.rb +95 -0
  572. data/vendor/gems/right_aws/test/sdb/test_active_sdb.rb +299 -0
  573. data/vendor/gems/right_aws/test/sdb/test_helper.rb +3 -0
  574. data/vendor/gems/right_aws/test/sdb/test_right_sdb.rb +247 -0
  575. data/vendor/gems/right_aws/test/sqs/test_helper.rb +2 -0
  576. data/vendor/gems/right_aws/test/sqs/test_right_sqs.rb +291 -0
  577. data/vendor/gems/right_aws/test/sqs/test_right_sqs_gen2.rb +209 -0
  578. data/vendor/gems/right_aws/test/test_credentials.rb +37 -0
  579. data/vendor/gems/right_aws/test/ts_right_aws.rb +14 -0
  580. data/vendor/gems/right_http_connection/History.txt +59 -0
  581. data/vendor/gems/right_http_connection/Manifest.txt +7 -0
  582. data/vendor/gems/right_http_connection/README.txt +54 -0
  583. data/vendor/gems/right_http_connection/Rakefile +103 -0
  584. data/vendor/gems/right_http_connection/lib/net_fix.rb +160 -0
  585. data/vendor/gems/right_http_connection/lib/right_http_connection.rb +442 -0
  586. data/vendor/gems/right_http_connection/right_http_connection.gemspec +31 -0
  587. data/vendor/gems/right_http_connection/setup.rb +1585 -0
  588. data/vendor/gems/shoulda/CONTRIBUTION_GUIDELINES.rdoc +10 -0
  589. data/vendor/gems/shoulda/MIT-LICENSE +22 -0
  590. data/vendor/gems/shoulda/README.rdoc +171 -0
  591. data/vendor/gems/shoulda/Rakefile +72 -0
  592. data/vendor/gems/shoulda/bin/convert_to_should_syntax +42 -0
  593. data/vendor/gems/shoulda/init.rb +1 -0
  594. data/vendor/gems/shoulda/lib/shoulda/action_controller/macros.rb +240 -0
  595. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/assign_to_matcher.rb +109 -0
  596. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/filter_param_matcher.rb +57 -0
  597. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/render_with_layout_matcher.rb +81 -0
  598. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_content_type_matcher.rb +74 -0
  599. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/respond_with_matcher.rb +81 -0
  600. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/route_matcher.rb +93 -0
  601. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_session_matcher.rb +87 -0
  602. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers/set_the_flash_matcher.rb +85 -0
  603. data/vendor/gems/shoulda/lib/shoulda/action_controller/matchers.rb +37 -0
  604. data/vendor/gems/shoulda/lib/shoulda/action_controller.rb +26 -0
  605. data/vendor/gems/shoulda/lib/shoulda/action_mailer/assertions.rb +38 -0
  606. data/vendor/gems/shoulda/lib/shoulda/action_mailer.rb +10 -0
  607. data/vendor/gems/shoulda/lib/shoulda/action_view/macros.rb +61 -0
  608. data/vendor/gems/shoulda/lib/shoulda/action_view.rb +10 -0
  609. data/vendor/gems/shoulda/lib/shoulda/active_record/assertions.rb +69 -0
  610. data/vendor/gems/shoulda/lib/shoulda/active_record/helpers.rb +27 -0
  611. data/vendor/gems/shoulda/lib/shoulda/active_record/macros.rb +512 -0
  612. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_mass_assignment_of_matcher.rb +83 -0
  613. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/allow_value_matcher.rb +102 -0
  614. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/association_matcher.rb +226 -0
  615. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_inclusion_of_matcher.rb +87 -0
  616. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/ensure_length_of_matcher.rb +141 -0
  617. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_column_matcher.rb +169 -0
  618. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_db_index_matcher.rb +112 -0
  619. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_named_scope_matcher.rb +128 -0
  620. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/have_readonly_attribute_matcher.rb +59 -0
  621. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_acceptance_of_matcher.rb +41 -0
  622. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_format_of_matcher.rb +67 -0
  623. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_numericality_of_matcher.rb +39 -0
  624. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_presence_of_matcher.rb +60 -0
  625. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb +148 -0
  626. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers/validation_matcher.rb +57 -0
  627. data/vendor/gems/shoulda/lib/shoulda/active_record/matchers.rb +43 -0
  628. data/vendor/gems/shoulda/lib/shoulda/active_record.rb +16 -0
  629. data/vendor/gems/shoulda/lib/shoulda/assertions.rb +71 -0
  630. data/vendor/gems/shoulda/lib/shoulda/autoload_macros.rb +46 -0
  631. data/vendor/gems/shoulda/lib/shoulda/context.rb +402 -0
  632. data/vendor/gems/shoulda/lib/shoulda/helpers.rb +8 -0
  633. data/vendor/gems/shoulda/lib/shoulda/macros.rb +133 -0
  634. data/vendor/gems/shoulda/lib/shoulda/private_helpers.rb +13 -0
  635. data/vendor/gems/shoulda/lib/shoulda/proc_extensions.rb +14 -0
  636. data/vendor/gems/shoulda/lib/shoulda/rails.rb +13 -0
  637. data/vendor/gems/shoulda/lib/shoulda/rspec.rb +11 -0
  638. data/vendor/gems/shoulda/lib/shoulda/tasks/list_tests.rake +29 -0
  639. data/vendor/gems/shoulda/lib/shoulda/tasks/yaml_to_shoulda.rake +28 -0
  640. data/vendor/gems/shoulda/lib/shoulda/tasks.rb +3 -0
  641. data/vendor/gems/shoulda/lib/shoulda/test_unit.rb +22 -0
  642. data/vendor/gems/shoulda/lib/shoulda.rb +9 -0
  643. data/vendor/gems/shoulda/rails/init.rb +7 -0
  644. data/vendor/gems/shoulda/shoulda.gemspec +31 -0
  645. data/vendor/gems/shoulda/tasks/shoulda.rake +1 -0
  646. data/vendor/gems/shoulda/test/README +36 -0
  647. data/vendor/gems/shoulda/test/fail_macros.rb +39 -0
  648. data/vendor/gems/shoulda/test/fixtures/addresses.yml +3 -0
  649. data/vendor/gems/shoulda/test/fixtures/friendships.yml +0 -0
  650. data/vendor/gems/shoulda/test/fixtures/posts.yml +5 -0
  651. data/vendor/gems/shoulda/test/fixtures/products.yml +0 -0
  652. data/vendor/gems/shoulda/test/fixtures/taggings.yml +0 -0
  653. data/vendor/gems/shoulda/test/fixtures/tags.yml +9 -0
  654. data/vendor/gems/shoulda/test/fixtures/users.yml +6 -0
  655. data/vendor/gems/shoulda/test/functional/posts_controller_test.rb +121 -0
  656. data/vendor/gems/shoulda/test/functional/users_controller_test.rb +19 -0
  657. data/vendor/gems/shoulda/test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb +68 -0
  658. data/vendor/gems/shoulda/test/matchers/active_record/allow_value_matcher_test.rb +64 -0
  659. data/vendor/gems/shoulda/test/matchers/active_record/association_matcher_test.rb +263 -0
  660. data/vendor/gems/shoulda/test/matchers/active_record/ensure_inclusion_of_matcher_test.rb +80 -0
  661. data/vendor/gems/shoulda/test/matchers/active_record/ensure_length_of_matcher_test.rb +158 -0
  662. data/vendor/gems/shoulda/test/matchers/active_record/have_db_column_matcher_test.rb +169 -0
  663. data/vendor/gems/shoulda/test/matchers/active_record/have_db_index_matcher_test.rb +91 -0
  664. data/vendor/gems/shoulda/test/matchers/active_record/have_named_scope_matcher_test.rb +65 -0
  665. data/vendor/gems/shoulda/test/matchers/active_record/have_readonly_attributes_matcher_test.rb +29 -0
  666. data/vendor/gems/shoulda/test/matchers/active_record/validate_acceptance_of_matcher_test.rb +44 -0
  667. data/vendor/gems/shoulda/test/matchers/active_record/validate_format_of_matcher_test.rb +39 -0
  668. data/vendor/gems/shoulda/test/matchers/active_record/validate_numericality_of_matcher_test.rb +52 -0
  669. data/vendor/gems/shoulda/test/matchers/active_record/validate_presence_of_matcher_test.rb +86 -0
  670. data/vendor/gems/shoulda/test/matchers/active_record/validate_uniqueness_of_matcher_test.rb +147 -0
  671. data/vendor/gems/shoulda/test/matchers/controller/assign_to_matcher_test.rb +35 -0
  672. data/vendor/gems/shoulda/test/matchers/controller/filter_param_matcher_test.rb +32 -0
  673. data/vendor/gems/shoulda/test/matchers/controller/render_with_layout_matcher_test.rb +33 -0
  674. data/vendor/gems/shoulda/test/matchers/controller/respond_with_content_type_matcher_test.rb +32 -0
  675. data/vendor/gems/shoulda/test/matchers/controller/respond_with_matcher_test.rb +106 -0
  676. data/vendor/gems/shoulda/test/matchers/controller/route_matcher_test.rb +58 -0
  677. data/vendor/gems/shoulda/test/matchers/controller/set_session_matcher_test.rb +38 -0
  678. data/vendor/gems/shoulda/test/matchers/controller/set_the_flash_matcher.rb +41 -0
  679. data/vendor/gems/shoulda/test/model_builder.rb +106 -0
  680. data/vendor/gems/shoulda/test/other/autoload_macro_test.rb +18 -0
  681. data/vendor/gems/shoulda/test/other/context_test.rb +189 -0
  682. data/vendor/gems/shoulda/test/other/convert_to_should_syntax_test.rb +63 -0
  683. data/vendor/gems/shoulda/test/other/helpers_test.rb +340 -0
  684. data/vendor/gems/shoulda/test/other/private_helpers_test.rb +32 -0
  685. data/vendor/gems/shoulda/test/other/should_test.rb +271 -0
  686. data/vendor/gems/shoulda/test/rails_root/app/controllers/application_controller.rb +25 -0
  687. data/vendor/gems/shoulda/test/rails_root/app/controllers/posts_controller.rb +87 -0
  688. data/vendor/gems/shoulda/test/rails_root/app/controllers/users_controller.rb +84 -0
  689. data/vendor/gems/shoulda/test/rails_root/app/helpers/application_helper.rb +3 -0
  690. data/vendor/gems/shoulda/test/rails_root/app/helpers/posts_helper.rb +2 -0
  691. data/vendor/gems/shoulda/test/rails_root/app/helpers/users_helper.rb +2 -0
  692. data/vendor/gems/shoulda/test/rails_root/app/models/address.rb +7 -0
  693. data/vendor/gems/shoulda/test/rails_root/app/models/flea.rb +3 -0
  694. data/vendor/gems/shoulda/test/rails_root/app/models/friendship.rb +4 -0
  695. data/vendor/gems/shoulda/test/rails_root/app/models/pets/cat.rb +7 -0
  696. data/vendor/gems/shoulda/test/rails_root/app/models/pets/dog.rb +10 -0
  697. data/vendor/gems/shoulda/test/rails_root/app/models/post.rb +12 -0
  698. data/vendor/gems/shoulda/test/rails_root/app/models/product.rb +12 -0
  699. data/vendor/gems/shoulda/test/rails_root/app/models/profile.rb +2 -0
  700. data/vendor/gems/shoulda/test/rails_root/app/models/registration.rb +2 -0
  701. data/vendor/gems/shoulda/test/rails_root/app/models/tag.rb +8 -0
  702. data/vendor/gems/shoulda/test/rails_root/app/models/tagging.rb +4 -0
  703. data/vendor/gems/shoulda/test/rails_root/app/models/treat.rb +3 -0
  704. data/vendor/gems/shoulda/test/rails_root/app/models/user.rb +32 -0
  705. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/posts.rhtml +19 -0
  706. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/users.rhtml +17 -0
  707. data/vendor/gems/shoulda/test/rails_root/app/views/layouts/wide.html.erb +1 -0
  708. data/vendor/gems/shoulda/test/rails_root/app/views/posts/edit.rhtml +27 -0
  709. data/vendor/gems/shoulda/test/rails_root/app/views/posts/index.rhtml +25 -0
  710. data/vendor/gems/shoulda/test/rails_root/app/views/posts/new.rhtml +26 -0
  711. data/vendor/gems/shoulda/test/rails_root/app/views/posts/show.rhtml +18 -0
  712. data/vendor/gems/shoulda/test/rails_root/app/views/users/edit.rhtml +22 -0
  713. data/vendor/gems/shoulda/test/rails_root/app/views/users/index.rhtml +22 -0
  714. data/vendor/gems/shoulda/test/rails_root/app/views/users/new.rhtml +21 -0
  715. data/vendor/gems/shoulda/test/rails_root/app/views/users/show.rhtml +13 -0
  716. data/vendor/gems/shoulda/test/rails_root/config/boot.rb +110 -0
  717. data/vendor/gems/shoulda/test/rails_root/config/database.yml +4 -0
  718. data/vendor/gems/shoulda/test/rails_root/config/environment.rb +18 -0
  719. data/vendor/gems/shoulda/test/rails_root/config/environments/test.rb +0 -0
  720. data/vendor/gems/shoulda/test/rails_root/config/initializers/new_rails_defaults.rb +15 -0
  721. data/vendor/gems/shoulda/test/rails_root/config/initializers/shoulda.rb +8 -0
  722. data/vendor/gems/shoulda/test/rails_root/config/routes.rb +6 -0
  723. data/vendor/gems/shoulda/test/rails_root/db/migrate/001_create_users.rb +19 -0
  724. data/vendor/gems/shoulda/test/rails_root/db/migrate/002_create_posts.rb +13 -0
  725. data/vendor/gems/shoulda/test/rails_root/db/migrate/003_create_taggings.rb +12 -0
  726. data/vendor/gems/shoulda/test/rails_root/db/migrate/004_create_tags.rb +11 -0
  727. data/vendor/gems/shoulda/test/rails_root/db/migrate/005_create_dogs.rb +12 -0
  728. data/vendor/gems/shoulda/test/rails_root/db/migrate/006_create_addresses.rb +14 -0
  729. data/vendor/gems/shoulda/test/rails_root/db/migrate/007_create_fleas.rb +11 -0
  730. data/vendor/gems/shoulda/test/rails_root/db/migrate/008_create_dogs_fleas.rb +12 -0
  731. data/vendor/gems/shoulda/test/rails_root/db/migrate/009_create_products.rb +17 -0
  732. data/vendor/gems/shoulda/test/rails_root/db/migrate/010_create_friendships.rb +14 -0
  733. data/vendor/gems/shoulda/test/rails_root/db/migrate/011_create_treats.rb +12 -0
  734. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203502_create_profiles.rb +12 -0
  735. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090506203536_create_registrations.rb +14 -0
  736. data/vendor/gems/shoulda/test/rails_root/db/migrate/20090513104502_create_cats.rb +12 -0
  737. data/vendor/gems/shoulda/test/rails_root/db/schema.rb +0 -0
  738. data/vendor/gems/shoulda/test/rails_root/public/404.html +30 -0
  739. data/vendor/gems/shoulda/test/rails_root/public/422.html +30 -0
  740. data/vendor/gems/shoulda/test/rails_root/public/500.html +30 -0
  741. data/vendor/gems/shoulda/test/rails_root/script/console +3 -0
  742. data/vendor/gems/shoulda/test/rails_root/script/generate +3 -0
  743. data/vendor/gems/shoulda/test/rails_root/test/shoulda_macros/custom_macro.rb +6 -0
  744. data/vendor/gems/shoulda/test/rails_root/vendor/gems/gem_with_macro-0.0.1/shoulda_macros/gem_macro.rb +6 -0
  745. data/vendor/gems/shoulda/test/rails_root/vendor/plugins/plugin_with_macro/shoulda_macros/plugin_macro.rb +6 -0
  746. data/vendor/gems/shoulda/test/rspec_test.rb +207 -0
  747. data/vendor/gems/shoulda/test/test_helper.rb +28 -0
  748. data/vendor/gems/shoulda/test/unit/address_test.rb +10 -0
  749. data/vendor/gems/shoulda/test/unit/cat_test.rb +7 -0
  750. data/vendor/gems/shoulda/test/unit/dog_test.rb +9 -0
  751. data/vendor/gems/shoulda/test/unit/flea_test.rb +6 -0
  752. data/vendor/gems/shoulda/test/unit/friendship_test.rb +6 -0
  753. data/vendor/gems/shoulda/test/unit/post_test.rb +19 -0
  754. data/vendor/gems/shoulda/test/unit/product_test.rb +23 -0
  755. data/vendor/gems/shoulda/test/unit/tag_test.rb +15 -0
  756. data/vendor/gems/shoulda/test/unit/tagging_test.rb +6 -0
  757. data/vendor/gems/shoulda/test/unit/user_test.rb +80 -0
  758. data/vendor/gems/trollop/History.txt +0 -13
  759. data/vendor/gems/trollop/README.txt +1 -3
  760. data/vendor/gems/trollop/lib/trollop.rb +159 -199
  761. data/vendor/gems/trollop/test/test_trollop.rb +13 -98
  762. metadata +786 -528
  763. data/History.txt +0 -38
  764. data/PostInstall.txt +0 -19
  765. data/README.txt +0 -67
  766. data/bin/cloud-provision +0 -45
  767. data/bin/cloud-run +0 -37
  768. data/bin/cloud-setup-dev +0 -36
  769. data/bin/server-butterfly +0 -25
  770. data/bin/server-cloud-elections +0 -31
  771. data/bin/server-ensure-provisioning +0 -33
  772. data/bin/server-fire-cmd +0 -14
  773. data/bin/server-get-load +0 -15
  774. data/bin/server-list-active +0 -32
  775. data/bin/server-manage-election +0 -58
  776. data/bin/server-monitor.ru +0 -42
  777. data/bin/server-query-agent +0 -15
  778. data/bin/server-rerun +0 -23
  779. data/bin/server-send-command +0 -18
  780. data/bin/server-show-stats +0 -17
  781. data/bin/server-write-new-nodes +0 -26
  782. data/examples/fairchild.rb +0 -37
  783. data/examples/fairchild_chef.rb +0 -19
  784. data/examples/maize.rb +0 -37
  785. data/examples/metavirt_cloud.rb +0 -33
  786. data/examples/paparazzi.conf.erb +0 -21
  787. data/examples/plugin_without_plugin_directory.rb +0 -12
  788. data/examples/vmrun_cloud.rb +0 -17
  789. data/generators/poolspec/USAGE +0 -5
  790. data/generators/poolspec/poolspec_generator.rb +0 -58
  791. data/generators/poolspec/templates/pool_spec_template.erb +0 -9
  792. data/lib/poolparty/aska.rb +0 -144
  793. data/lib/poolparty/core/array.rb +0 -60
  794. data/lib/poolparty/core/class.rb +0 -26
  795. data/lib/poolparty/core/exception.rb +0 -10
  796. data/lib/poolparty/core/float.rb +0 -13
  797. data/lib/poolparty/core/hash.rb +0 -139
  798. data/lib/poolparty/core/integer.rb +0 -11
  799. data/lib/poolparty/core/kernel.rb +0 -66
  800. data/lib/poolparty/core/my_open_struct.rb +0 -18
  801. data/lib/poolparty/core/nil.rb +0 -8
  802. data/lib/poolparty/core/object.rb +0 -125
  803. data/lib/poolparty/core/ordered_hash.rb +0 -99
  804. data/lib/poolparty/core/string.rb +0 -213
  805. data/lib/poolparty/core/symbol.rb +0 -27
  806. data/lib/poolparty/dependencies.rb +0 -49
  807. data/lib/poolparty/dependency_resolver/chef_resolver.rb +0 -254
  808. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +0 -42
  809. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +0 -29
  810. data/lib/poolparty/dependency_resolver/puppet.rb +0 -74
  811. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +0 -166
  812. data/lib/poolparty/exceptions/CloudNotFoundException.rb +0 -7
  813. data/lib/poolparty/exceptions/LoadRulesException.rb +0 -7
  814. data/lib/poolparty/exceptions/MasterException.rb +0 -10
  815. data/lib/poolparty/exceptions/ProvisionerException.rb +0 -5
  816. data/lib/poolparty/exceptions/RemoteException.rb +0 -12
  817. data/lib/poolparty/exceptions/ResourceException.rb +0 -7
  818. data/lib/poolparty/exceptions/RuntimeException.rb +0 -7
  819. data/lib/poolparty/exceptions/SpecException.rb +0 -7
  820. data/lib/poolparty/exceptions/TemplateNotFound.rb +0 -7
  821. data/lib/poolparty/exceptions/UnacceptableCommand.rb +0 -5
  822. data/lib/poolparty/exceptions/dependency_resolver_exception.rb +0 -5
  823. data/lib/poolparty/exceptions/package_exception.rb +0 -7
  824. data/lib/poolparty/extra/duration.rb +0 -96
  825. data/lib/poolparty/helpers/binary.rb +0 -70
  826. data/lib/poolparty/helpers/console.rb +0 -43
  827. data/lib/poolparty/helpers/hash_printer.rb +0 -44
  828. data/lib/poolparty/helpers/loading.rb +0 -4
  829. data/lib/poolparty/helpers/nice_printer.rb +0 -36
  830. data/lib/poolparty/helpers/optioner.rb +0 -161
  831. data/lib/poolparty/helpers/ruberl.rb +0 -33
  832. data/lib/poolparty/installers/base_installer.rb +0 -113
  833. data/lib/poolparty/installers/vmrun.rb +0 -144
  834. data/lib/poolparty/lite.rb +0 -33
  835. data/lib/poolparty/modules/callbacks.rb +0 -57
  836. data/lib/poolparty/modules/cloud_dsl.rb +0 -38
  837. data/lib/poolparty/modules/cloud_resourcer.rb +0 -110
  838. data/lib/poolparty/modules/daemonizable.rb +0 -140
  839. data/lib/poolparty/modules/definable_resource.rb +0 -53
  840. data/lib/poolparty/modules/file_writer.rb +0 -95
  841. data/lib/poolparty/modules/output.rb +0 -13
  842. data/lib/poolparty/modules/pinger.rb +0 -35
  843. data/lib/poolparty/modules/pretty_printer.rb +0 -40
  844. data/lib/poolparty/modules/resourcing_dsl.rb +0 -50
  845. data/lib/poolparty/modules/s3_string.rb +0 -32
  846. data/lib/poolparty/modules/safe_instance.rb +0 -31
  847. data/lib/poolparty/modules/searchable_paths.rb +0 -100
  848. data/lib/poolparty/modules/thread_pool.rb +0 -107
  849. data/lib/poolparty/modules/user_helpers.rb +0 -20
  850. data/lib/poolparty/monitors/base_monitor.rb +0 -97
  851. data/lib/poolparty/monitors/monitor_daemon.rb +0 -168
  852. data/lib/poolparty/monitors/monitor_rack.rb +0 -137
  853. data/lib/poolparty/monitors/monitors/clock_monitor.rb +0 -20
  854. data/lib/poolparty/monitors/monitors/cloud_monitor.rb +0 -34
  855. data/lib/poolparty/monitors/monitors/elections_monitor.rb +0 -76
  856. data/lib/poolparty/monitors/monitors/favicon_monitor.rb +0 -12
  857. data/lib/poolparty/monitors/monitors/load_monitor.rb +0 -9
  858. data/lib/poolparty/monitors/monitors/memory_monitor.rb +0 -50
  859. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +0 -80
  860. data/lib/poolparty/monitors/monitors/stats_monitor.rb +0 -206
  861. data/lib/poolparty/net/init.rb +0 -16
  862. data/lib/poolparty/net/remote_instance.rb +0 -93
  863. data/lib/poolparty/net/remoter/cloud_control.rb +0 -24
  864. data/lib/poolparty/net/remoter/connections.rb +0 -177
  865. data/lib/poolparty/net/remoter/interactive.rb +0 -62
  866. data/lib/poolparty/net/remoter_base.rb +0 -262
  867. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +0 -300
  868. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +0 -64
  869. data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +0 -129
  870. data/lib/poolparty/net/remoter_bases/libvirt/libvirt.rb +0 -73
  871. data/lib/poolparty/net/remoter_bases/libvirt/libvirt_instance.rb +0 -64
  872. data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +0 -110
  873. data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +0 -37
  874. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +0 -12
  875. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +0 -33
  876. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +0 -117
  877. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +0 -181
  878. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +0 -87
  879. data/lib/poolparty/plugins/apache2/apache.rb +0 -266
  880. data/lib/poolparty/plugins/authorized_key.rb +0 -29
  881. data/lib/poolparty/plugins/bind.rb +0 -10
  882. data/lib/poolparty/plugins/chef/chef.rb +0 -161
  883. data/lib/poolparty/plugins/chef/chef_deploy.rb +0 -55
  884. data/lib/poolparty/plugins/chef/chef_deploy_definition.rb +0 -32
  885. data/lib/poolparty/plugins/chef/chef_library.rb +0 -7
  886. data/lib/poolparty/plugins/chef/chef_recipe.rb +0 -7
  887. data/lib/poolparty/plugins/chef/include_chef_recipe.rb +0 -14
  888. data/lib/poolparty/plugins/deploy_directory.rb +0 -62
  889. data/lib/poolparty/plugins/gem_package.rb +0 -65
  890. data/lib/poolparty/plugins/haproxy.rb +0 -60
  891. data/lib/poolparty/plugins/heartbeat.rb +0 -16
  892. data/lib/poolparty/plugins/host.rb +0 -39
  893. data/lib/poolparty/plugins/line_in_file.rb +0 -36
  894. data/lib/poolparty/plugins/plugin_template.rb +0 -13
  895. data/lib/poolparty/plugins/poolparty_base_packages.rb +0 -14
  896. data/lib/poolparty/plugins/rails_deploy.rb +0 -128
  897. data/lib/poolparty/plugins/ruby.rb +0 -42
  898. data/lib/poolparty/plugins/runit.rb +0 -21
  899. data/lib/poolparty/plugins/sshkey.rb +0 -50
  900. data/lib/poolparty/plugins/svn.rb +0 -67
  901. data/lib/poolparty/poolparty/cloud.rb +0 -399
  902. data/lib/poolparty/poolparty/default.rb +0 -165
  903. data/lib/poolparty/poolparty/key.rb +0 -69
  904. data/lib/poolparty/poolparty/loggable.rb +0 -28
  905. data/lib/poolparty/poolparty/neighborhoods.rb +0 -113
  906. data/lib/poolparty/poolparty/plugin.rb +0 -102
  907. data/lib/poolparty/poolparty/pool.rb +0 -103
  908. data/lib/poolparty/poolparty/poolparty_base_class.rb +0 -212
  909. data/lib/poolparty/poolparty/resource.rb +0 -184
  910. data/lib/poolparty/poolparty/script.rb +0 -58
  911. data/lib/poolparty/poolparty/service.rb +0 -38
  912. data/lib/poolparty/poolparty/template.rb +0 -27
  913. data/lib/poolparty/provision/boot_strapper.rb +0 -175
  914. data/lib/poolparty/provision/configurations/chef.rb +0 -26
  915. data/lib/poolparty/provision/configurations/puppet.rb +0 -28
  916. data/lib/poolparty/provision/dr_configure.rb +0 -147
  917. data/lib/poolparty/resources/remote_file.rb +0 -52
  918. data/lib/poolparty/resources/symlink.rb +0 -48
  919. data/lib/poolparty/resources.rb +0 -42
  920. data/lib/poolparty/schema.rb +0 -77
  921. data/lib/poolparty/templates/apache2/apache2.conf +0 -14
  922. data/lib/poolparty/templates/apache2/base.conf.erb +0 -168
  923. data/lib/poolparty/templates/apache2/debian.conf.erb +0 -675
  924. data/lib/poolparty/templates/apache2/default-site.conf.erb +0 -41
  925. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +0 -101
  926. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +0 -42
  927. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +0 -211
  928. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +0 -20
  929. data/lib/poolparty/templates/apache2/mpm-worker.erb +0 -20
  930. data/lib/poolparty/templates/apache2/passenger.conf.erb +0 -20
  931. data/lib/poolparty/templates/apache2/php.ini.erb +0 -1253
  932. data/lib/poolparty/templates/apache2/server-status.erb +0 -19
  933. data/lib/poolparty/templates/authkeys +0 -2
  934. data/lib/poolparty/templates/cib.xml +0 -54
  935. data/lib/poolparty/templates/erlang_cookie_maker +0 -6
  936. data/lib/poolparty/templates/gem +0 -27
  937. data/lib/poolparty/templates/gemrc_template +0 -11
  938. data/lib/poolparty/templates/ha.cf +0 -17
  939. data/lib/poolparty/templates/haproxy.conf +0 -38
  940. data/lib/poolparty/templates/haresources +0 -3
  941. data/lib/poolparty/templates/logd.cf +0 -42
  942. data/lib/poolparty/templates/messenger/client/log-run.erb +0 -2
  943. data/lib/poolparty/templates/messenger/client/run.erb +0 -4
  944. data/lib/poolparty/templates/messenger/master/log-run.erb +0 -2
  945. data/lib/poolparty/templates/messenger/master/run.erb +0 -4
  946. data/lib/poolparty/templates/messenger/node/log-run.erb +0 -2
  947. data/lib/poolparty/templates/messenger/node/run.erb +0 -4
  948. data/lib/poolparty/templates/monitor.ru +0 -29
  949. data/lib/poolparty/templates/namespaceauth.conf +0 -19
  950. data/lib/poolparty/templates/php.ini.erb +0 -1253
  951. data/lib/poolparty/templates/poolparty.monitor +0 -14
  952. data/lib/poolparty/templates/puppet/add_puppet_to_hosts +0 -6
  953. data/lib/poolparty/templates/puppet/puppet.conf +0 -2
  954. data/lib/poolparty/templates/puppet/puppetrunner +0 -14
  955. data/lib/poolparty/templates/puppet/site.pp +0 -4
  956. data/lib/poolparty/templates/puppetrunner +0 -14
  957. data/lib/poolparty/templates/yaws.conf +0 -19
  958. data/lib/poolparty/verification/verifier_base.rb +0 -27
  959. data/lib/poolparty/verification/verifiers/http_match.rb +0 -43
  960. data/lib/poolparty/verification/verifiers/http_status.rb +0 -59
  961. data/lib/poolparty/verification/verifiers/ping.rb +0 -34
  962. data/lib/poolparty/verification/verify.rb +0 -80
  963. data/lib/poolpartycl.rb +0 -21
  964. data/script/destroy +0 -14
  965. data/script/generate +0 -14
  966. data/spec/bin/bin_spec_helper.rb +0 -8
  967. data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -13
  968. data/spec/bin/server-list-active_spec.rb +0 -22
  969. data/spec/poolparty/aska/aska_spec.rb +0 -117
  970. data/spec/poolparty/bin/console_spec.rb +0 -83
  971. data/spec/poolparty/core/array_spec.rb +0 -48
  972. data/spec/poolparty/core/float.rb +0 -13
  973. data/spec/poolparty/core/hash_spec.rb +0 -83
  974. data/spec/poolparty/core/kernel_spec.rb +0 -24
  975. data/spec/poolparty/core/object_spec.rb +0 -7
  976. data/spec/poolparty/core/ordered_hash_spec.rb +0 -48
  977. data/spec/poolparty/core/string_spec.rb +0 -145
  978. data/spec/poolparty/core/time_spec.rb +0 -49
  979. data/spec/poolparty/dependencies_spec.rb +0 -11
  980. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -105
  981. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +0 -131
  982. data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +0 -16
  983. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +0 -121
  984. data/spec/poolparty/extra/deployments_spec.rb +0 -68
  985. data/spec/poolparty/fixtures/clouds.json +0 -128
  986. data/spec/poolparty/fixtures/fake_key.pub +0 -1
  987. data/spec/poolparty/fixtures/test_template.erb +0 -1
  988. data/spec/poolparty/helpers/binary_spec.rb +0 -26
  989. data/spec/poolparty/helpers/hash_printer_spec.rb +0 -34
  990. data/spec/poolparty/helpers/optioner_spec.rb +0 -43
  991. data/spec/poolparty/modules/cloud_resourcer_spec.rb +0 -67
  992. data/spec/poolparty/modules/definable_resource.rb +0 -9
  993. data/spec/poolparty/modules/file_writer_spec.rb +0 -64
  994. data/spec/poolparty/modules/s3_string_spec.rb +0 -15
  995. data/spec/poolparty/modules/searchable_paths_spec.rb +0 -83
  996. data/spec/poolparty/monitors/base_monitor_spec.rb +0 -112
  997. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +0 -18
  998. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +0 -48
  999. data/spec/poolparty/net/remote_instance_spec.rb +0 -16
  1000. data/spec/poolparty/net/remote_spec.rb +0 -287
  1001. data/spec/poolparty/net/remoter_base_spec.rb +0 -31
  1002. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +0 -22
  1003. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +0 -74
  1004. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +0 -137
  1005. data/spec/poolparty/net/remoter_spec.rb +0 -132
  1006. data/spec/poolparty/plugins/authorized_key_spec.rb +0 -23
  1007. data/spec/poolparty/plugins/chef_spec.rb +0 -7
  1008. data/spec/poolparty/plugins/deploydirectory_spec.rb +0 -64
  1009. data/spec/poolparty/plugins/git_spec.rb +0 -38
  1010. data/spec/poolparty/plugins/line_spec.rb +0 -22
  1011. data/spec/poolparty/poolparty/cloud_spec.rb +0 -335
  1012. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +0 -14
  1013. data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +0 -16
  1014. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +0 -37
  1015. data/spec/poolparty/poolparty/default_spec.rb +0 -140
  1016. data/spec/poolparty/poolparty/example_spec.rb +0 -81
  1017. data/spec/poolparty/poolparty/haproxy_spec.rb +0 -7
  1018. data/spec/poolparty/poolparty/heartbeat_spec.rb +0 -7
  1019. data/spec/poolparty/poolparty/key_spec.rb +0 -42
  1020. data/spec/poolparty/poolparty/neighborhoods_spec.rb +0 -65
  1021. data/spec/poolparty/poolparty/plugin_model_spec.rb +0 -50
  1022. data/spec/poolparty/poolparty/plugin_spec.rb +0 -41
  1023. data/spec/poolparty/poolparty/pool_spec.rb +0 -94
  1024. data/spec/poolparty/poolparty/resource_spec.rb +0 -204
  1025. data/spec/poolparty/poolparty/script_spec.rb +0 -46
  1026. data/spec/poolparty/poolparty/service_spec.rb +0 -5
  1027. data/spec/poolparty/poolparty/template_spec.rb +0 -26
  1028. data/spec/poolparty/poolparty/test_plugins/sshkey_test +0 -2
  1029. data/spec/poolparty/poolparty/test_plugins/webserver.rb +0 -32
  1030. data/spec/poolparty/poolparty_base_class_spec.rb +0 -84
  1031. data/spec/poolparty/poolparty_spec.rb +0 -36
  1032. data/spec/poolparty/resources/cron_spec.rb +0 -44
  1033. data/spec/poolparty/resources/directory_spec.rb +0 -40
  1034. data/spec/poolparty/resources/exec_spec.rb +0 -37
  1035. data/spec/poolparty/resources/file_spec.rb +0 -64
  1036. data/spec/poolparty/resources/gem_spec.rb +0 -7
  1037. data/spec/poolparty/resources/package_spec.rb +0 -26
  1038. data/spec/poolparty/resources/service_spec.rb +0 -29
  1039. data/spec/poolparty/resources/sshkey_spec.rb +0 -39
  1040. data/spec/poolparty/resources/symlink_spec.rb +0 -29
  1041. data/spec/poolparty/resources/user_spec.rb +0 -48
  1042. data/spec/poolparty/resources/variable_spec.rb +0 -26
  1043. data/spec/poolparty/schema_spec.rb +0 -53
  1044. data/spec/poolparty/spec_helper.rb +0 -233
  1045. data/spec/poolparty/test_spec_helper.rb +0 -13
  1046. data/tasks/cloud.rake +0 -3
  1047. data/tasks/ec2.rake +0 -13
  1048. data/tasks/instance.rake +0 -2
  1049. data/tasks/server.rake +0 -44
  1050. data/tasks/spec.rake +0 -54
  1051. data/test/fixtures/fake_clouds.rb +0 -11
  1052. data/test/fixtures/metavirt_cloud.json +0 -1
  1053. data/test/fixtures/test_key +0 -1
  1054. data/test/poolparty/core/array_test.rb +0 -32
  1055. data/test/poolparty/core/hash_test.rb +0 -34
  1056. data/test/poolparty/core/object_test.rb +0 -29
  1057. data/test/poolparty/core/string_test.rb +0 -29
  1058. data/test/poolparty/dependency_resolver/chef_resolver_test.rb +0 -82
  1059. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +0 -85
  1060. data/test/poolparty/modules/callbacks_test.rb +0 -40
  1061. data/test/poolparty/modules/cloud_dsl_test.rb +0 -60
  1062. data/test/poolparty/monitors/test_base_monitor.rb +0 -17
  1063. data/test/poolparty/monitors/test_monitor_rack.rb +0 -26
  1064. data/test/poolparty/net/remoter_base_test.rb +0 -17
  1065. data/test/poolparty/net/remoter_bases/libvirt/libvirt_test.rb +0 -70
  1066. data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +0 -81
  1067. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +0 -81
  1068. data/test/poolparty/net/remoter_test.rb +0 -14
  1069. data/test/poolparty/plugins/chef_deploy_test.rb +0 -37
  1070. data/test/poolparty/plugins/chef_plugin_test.rb +0 -23
  1071. data/test/poolparty/plugins/rails_deploy_test.rb +0 -50
  1072. data/test/poolparty/poolparty/cloud_test.rb +0 -65
  1073. data/test/poolparty/poolparty/isolated_cloud_test.rb +0 -25
  1074. data/test/poolparty/poolparty/neighborhood_test.rb +0 -23
  1075. data/test/poolparty/poolparty/plugin_test.rb +0 -19
  1076. data/test/poolparty/poolparty/pool_test.rb +0 -22
  1077. data/test/poolparty/poolparty/poolparty_base_class_test.rb +0 -122
  1078. data/test/poolparty/poolparty/schema_test.rb +0 -13
  1079. data/test/poolparty/poolparty/template_test.rb +0 -31
  1080. data/test/poolparty/provision/boot_strapper_test.rb +0 -6
  1081. data/test/poolparty/provision/dr_configure_test.rb +0 -6
  1082. data/test/poolparty/verification/verify_test.rb +0 -53
  1083. data/test/test_generator_helper.rb +0 -29
  1084. data/test/test_pool_spec_generator.rb +0 -47
  1085. data/test/test_poolparty.rb +0 -12
  1086. data/vendor/gems/suitcase/README.rdoc +0 -31
  1087. data/vendor/gems/suitcase/Rakefile +0 -57
  1088. data/vendor/gems/suitcase/VERSION.yml +0 -4
  1089. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +0 -15
  1090. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +0 -167
  1091. data/vendor/gems/suitcase/lib/suitcase.rb +0 -5
  1092. data/vendor/gems/suitcase/suitcase.gemspec +0 -32
  1093. data/vendor/gems/suitcase/test/suitcase_test.rb +0 -108
  1094. data/vendor/gems/suitcase/test/test_dir/box.rb +0 -1
  1095. data/vendor/gems/suitcase/test/test_dir/gems/famoseagle-carrot-0.6.0.gem +0 -0
  1096. data/vendor/gems/suitcase/test/test_dir/test.txt +0 -1
  1097. data/vendor/gems/suitcase/test/test_helper.rb +0 -12
@@ -0,0 +1,52 @@
1
+ =begin rdoc
2
+ == Route
3
+
4
+ Manage the system routing table.
5
+
6
+ == Usage
7
+
8
+ has_route "10.0.0.1" do
9
+ gateway "10.0.0.20"
10
+ metric 5
11
+ route_type :net
12
+ netmask "255.255.0.0"
13
+ end
14
+
15
+ == Options
16
+ * <tt>gateway</tt> The gateway for the route
17
+ * <tt>metric</tt> The route metric as an integer
18
+ * <tt>route_type</tt> The type of route as a symbol, either :host or :net
19
+ * <tt>netmask</tt> The decimal representation of the network mask eg 255.255.255.0
20
+ * <tt>device</tt> Network interface to apply this route to
21
+
22
+ =end
23
+ module PoolParty
24
+ module Resources
25
+
26
+ class Route < Directory
27
+
28
+ default_options(
29
+ :gateway => nil,
30
+ :metric => nil,
31
+ :route_type => :host,
32
+ :netmask => nil,
33
+ :device => nil
34
+ )
35
+
36
+ def print_to_chef
37
+ str = <<-EOE
38
+ route "<%= name %>" do
39
+ gateway <%= print_variable(gateway) %>
40
+ metric <%= print_variable(metric) %>
41
+ route_type <%= print_variable(route_type) %>
42
+ netmask <%= print_variable(netmask) %>
43
+ action :<%= exists? ? :add : :delete %>
44
+ EOE
45
+ str << " device <%= print_variable(device) %>\n" if device
46
+ str << "end"
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,62 @@
1
+ =begin rdoc
2
+ == Script
3
+ Execute a script using the specified interpreter. Includes actions/attributes available to Execute resources. Predefined available script interpreters are bash, csh, perl, python and ruby.
4
+
5
+ == Usage
6
+ has_script "install_something" do
7
+ interpreter "bash"
8
+ user "root"
9
+ cwd "/tmp"
10
+ code <<-EOH
11
+ wget http://www.example.com/tarball.tar.gz
12
+ tar -zxf tarball.tar.gz
13
+ cd tarball
14
+ ./configure
15
+ make
16
+ make install
17
+ EOH
18
+ end
19
+
20
+ == Options
21
+ * <tt>code</tt> Quoted script of code to execute.
22
+ * <tt>interpreter</tt> The interpreter to use to run the script
23
+
24
+ =end
25
+ module PoolParty
26
+ module Resources
27
+
28
+ class Script < Exec
29
+
30
+ default_options(
31
+ :code => nil,
32
+ :interpreter => nil,
33
+ # Exec
34
+ :path => ["/usr/bin:/bin:/usr/local/bin:$PATH"],
35
+ :command => nil,
36
+ :creates => nil,
37
+ :cwd => nil,
38
+ :environment => nil,
39
+ :group => nil,
40
+ :returns => nil,
41
+ :user => nil
42
+ )
43
+
44
+ def print_to_chef
45
+ str = 'script "<%= name %>" do
46
+ code "<%= code %>"
47
+ '
48
+ str << " interpreter <%= print_variable(interpreter) %>\n" if interpreter
49
+ str << " creates <%= print_variable(creates) %>\n" if creates
50
+ str << " cwd <%= print_variable(cwd) %>\n" if cwd
51
+ str << " environment <%= print_variable(environment) %>\n" if environment
52
+ str << " group <%= print_variable(group) %>\n" if group
53
+ str << " returns <%= print_variable(returns) %>\n" if returns
54
+ str << " user <%= print_variable(user) %>\n" if user
55
+
56
+ str << "end"
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,228 @@
1
+ =begin rdoc
2
+ Base dependency_resolver
3
+ =end
4
+ module DependencyResolvers
5
+
6
+ class Chef < Base
7
+
8
+ class << self
9
+ attr_reader :cookbook_directory
10
+
11
+ def before_compile
12
+ @cookbook_directory = compile_directory/"cookbooks"/"poolparty"
13
+ raise PoolParty::PoolPartyError.create("ChefCompileError", "No compile_directory is specified. Please specify one.") unless compile_directory
14
+ FileUtils.mkdir_p cookbook_directory unless ::File.directory?(cookbook_directory)
15
+ end
16
+
17
+ def after_compile(o)
18
+ compile_default_recipe(o)
19
+ compile_variables
20
+ compile_files
21
+ compile_recipes
22
+
23
+ write_dna_json
24
+ write_solo_dot_rb
25
+ end
26
+
27
+ def compile_command
28
+ "/usr/bin/chef-solo -c /etc/chef/solo.rb -j /etc/chef/dna.json"
29
+ end
30
+
31
+ # compile the resources
32
+ # Compiles the resource appropriately against the type
33
+ # If the resource is a variable, then we don't have any output
34
+ # as the output will be handled in after_compile with compile_variables
35
+ # If the resource is a file, then add it to the files array and run the
36
+ # compile_resource command (on super) for the output. The file will later
37
+ # be turned into a .erb template file in the compile_directory
38
+ # Otherwise just run the output to get the default.rb recipe
39
+ def compile_resource(res)
40
+ # Apply meta_functions here
41
+ o = case res
42
+ when PoolParty::Resources::Variable
43
+ # do variable stuff
44
+ variables << res
45
+ ""
46
+ when PoolParty::Resources::FileResource
47
+ files << res
48
+ super
49
+ when PoolParty::Resources::ChefAttributesFile
50
+ attribute_files << res
51
+ ""
52
+ else
53
+ super
54
+ end
55
+
56
+ apply_meta_functions(res, o) if res.is_a?(PoolParty::Resource)
57
+ end
58
+
59
+ default_attr_reader :variables, []
60
+ default_attr_reader :files, []
61
+ default_attr_reader :attribute_files, []
62
+
63
+ def require_chef_only_resources
64
+ # Require the chef-only resources
65
+ $:.unshift("#{File.dirname(__FILE__)}/chef")
66
+
67
+ to_define_resoures = []
68
+ %w( http_request remote_directory remote_file route script chef_attributes_file).each do |res|
69
+ require "resources/#{res}"
70
+ PoolParty::Resource.define_resource("PoolParty::Resources::#{res.classify}".constantize)
71
+ end
72
+ end
73
+
74
+ private
75
+
76
+ # Take the print_to_chef string and apply metafunctions to the string on the resource
77
+ # If there are no meta functions on the resource, do not touch the resulting
78
+ # string
79
+ def apply_meta_functions(resource, str)
80
+ regex = /[(.*)do(\w*)?(.*)]?(\w)*end$/
81
+
82
+ add = []
83
+ apply_meta_notifies(resource, add) if resource.meta_notifies
84
+ apply_meta_subscribes(resource, add) if resource.meta_subscribes
85
+
86
+ if resource.meta_not_if
87
+ tmp = " not_if "
88
+ tmp += resource.meta_not_if[1] == :block ? "do #{resource.meta_not_if[0]} end" : "\"#{resource.meta_not_if[0]}\""
89
+ add << tmp
90
+ end
91
+
92
+ if resource.meta_only_if
93
+ tmp = " only_if "
94
+ tmp += resource.meta_only_if[1] == :block ? "do #{resource.meta_only_if[0]} end" : "\"#{resource.meta_only_if[0]}\""
95
+ add << tmp
96
+ end
97
+
98
+ add << " ignore_failure #{resource.print_variable(resource.ignore_failure)}" if resource.ignore_failure
99
+ add << " provider #{resource.print_variable(resource.provider)}" if resource.provider
100
+
101
+ return str if add.empty?
102
+ newstr = str.chomp.gsub(regex, "")
103
+ "#{newstr}#{add.join("\n")}\nend"
104
+ end
105
+
106
+ def apply_meta_notifies(resource, add)
107
+ # The meta_notifies is a hash that looks like: {:file => [["pool_name", :reload]]}
108
+ resource.meta_notifies.each do |ty, arr|
109
+ arr.each do |nm, action|
110
+ add << " notifies :#{action}, resources(:#{chef_safe_resource(ty)} => \"#{nm}\")"
111
+ end
112
+ end
113
+ end
114
+
115
+ def apply_meta_subscribes(resource, add)
116
+ # The meta_subscribes is a hash that looks like: {:file=>[["pool_name", :reload, :immediately]]
117
+ resource.meta_subscribes.each do |ty, arr|
118
+ arr.each do |nm, action, at_time|
119
+ # subscribes :reload, resources\(:service => "apache"\), :delayed
120
+ add << " subscribes :#{action}, resources(:#{chef_safe_resource(ty)} => \"#{nm}\"), :#{at_time}"
121
+ end
122
+ end
123
+ end
124
+
125
+ # Cleanup for chef resource output
126
+ # Not particularly clean, but a necessary evil because
127
+ # certain resources don't reflect the chef output
128
+ # such as has_exec corresponds to execute
129
+ def chef_safe_resource(name)
130
+ case name
131
+ when :exec
132
+ "execute"
133
+ else
134
+ name
135
+ end
136
+ end
137
+
138
+ # Take the variables and compile them into the file attributes/poolparty.rb
139
+ def compile_variables
140
+ # Make sure the attributes/ directory is there
141
+ FileUtils.mkdir_p cookbook_directory/"attributes" unless ::File.directory?(cookbook_directory/"attributes")
142
+
143
+ f = cookbook_directory/"attributes"/"poolparty.rb"
144
+ # Collect the file pointers that will be using to print out the attributes
145
+ file_pointers = {:poolparty => File.open(f, "w")}
146
+ variables.each do |var|
147
+ if var.parent && !var.parent.is_a?(PoolParty::Cloud)
148
+ f = cookbook_directory/"attributes"/"#{var.parent.has_method_name}.rb"
149
+ File.unlink f if File.file?(f)
150
+ file_pointers[var.parent.has_method_name] = File.open(f, "w+")
151
+ end
152
+ end
153
+ # Make sure the attribute exists in each file
154
+ file_pointers.each do |n,f|
155
+ f << "\n#{n} Mash.new unless attribute?(\"#{n}\")\n"
156
+ end
157
+ variables.each do |var|
158
+
159
+ var_val = handle_print_variable(ProxyObject.new(var, @caller).compile(:value))
160
+ if var.parent && !var.parent.is_a?(PoolParty::Cloud)
161
+ file_pointers[var.parent.has_method_name] << "#{var.parent.has_method_name}[:#{var.name}] = #{var_val}\n"
162
+ else
163
+ file_pointers[:poolparty] << "poolparty[:#{var.name}] = #{var_val}\n"
164
+ end
165
+ end
166
+ # Close the files
167
+ file_pointers.each {|k,v| v.close }
168
+ end
169
+
170
+ # Compile the files
171
+ def compile_files
172
+ FileUtils.mkdir_p cookbook_directory/"files" unless ::File.directory?(cookbook_directory/"files")
173
+ files.each do |fi|
174
+ fpath = cookbook_directory/"templates"/"default"/"#{fi.path}.erb"
175
+ FileUtils.mkdir_p File.dirname(fpath) unless File.directory?(File.dirname(fpath))
176
+ content = fi.template ? open(fi.template).read : fi.content
177
+ File.open(fpath, "w") do |f|
178
+ f << content
179
+ end
180
+ end
181
+
182
+ # Compile the attribute files
183
+ attribute_files.each do |res|
184
+ fpath = cookbook_directory/"attributes"/"#{File.basename(res.path)}"
185
+ FileUtils.mkdir_p File.dirname(fpath) unless File.directory?(File.dirname(fpath))
186
+ File.open(fpath, "a") do |f|
187
+ f << res.content
188
+ end
189
+ end
190
+ end
191
+
192
+ # compile the recipes
193
+ # TODO
194
+ def compile_recipes
195
+ end
196
+
197
+ def write_dna_json
198
+ File.open(compile_directory/"dna.json", "w") do |f|
199
+ f << JSON.generate({:recipes => ["poolparty"]})
200
+ end
201
+ end
202
+
203
+ def compile_default_recipe(content)
204
+ FileUtils.mkdir_p cookbook_directory/"recipes" unless ::File.directory?(cookbook_directory/"recipes")
205
+ File.open(cookbook_directory/"recipes"/"default.rb", "w") do |f|
206
+ f << content
207
+ end
208
+ end
209
+
210
+ def write_solo_dot_rb
211
+ content = <<-EOE
212
+ cookbook_path "/etc/chef/cookbooks"
213
+ node_path "/etc/chef/nodes"
214
+ log_level :info
215
+ file_store_path "/etc/chef"
216
+ file_cache_path "/etc/chef"
217
+ EOE
218
+
219
+ File.open(compile_directory/"solo.rb", "w") do |f|
220
+ f << content
221
+ end
222
+ end
223
+
224
+ end
225
+
226
+ end
227
+
228
+ end
@@ -0,0 +1,90 @@
1
+ =begin rdoc
2
+ Proxy printer object
3
+
4
+ This stands in as the middle between the resource and the
5
+ dependency resolver and provides helper methds to the
6
+ output
7
+ =end
8
+ module DependencyResolvers
9
+
10
+ class ProxyObject
11
+ attr_accessor :proxy
12
+ attr_reader :current_printing_method, :caller
13
+
14
+ def initialize(proxy, caller=nil)
15
+ @proxy = proxy
16
+ @caller = caller
17
+ end
18
+
19
+ # <tt>Compile</tt>
20
+ # Arguments:
21
+ # * String
22
+ # If a string is passed, it is assumed to be an erb template and
23
+ # is rendered in the binding of this object (the proxy is contained)
24
+ # * Symbol
25
+ # If a symbol is passed, it is assumed to be a method, primarily
26
+ # used for <tt>print_to_<resolver_name></tt> methods
27
+ # The output of compile is an erb template that is rendered in the context
28
+ # of this proxy object
29
+ def compile(meth_name)
30
+ str = case meth_name
31
+ when String
32
+ meth_name
33
+ when Symbol
34
+ @current_printing_method = meth_name
35
+ self.send(meth_name).to_s
36
+ else
37
+ raise PoolParty::PoolPartyError.create("ProxyObjectError", "Compilation of #{proxy.inspect} error. Strings and symbols are supported")
38
+ end
39
+ begin
40
+ ERB.new(str).result(self.send(:binding))
41
+ rescue Exception => e
42
+ p [:error, e, str]
43
+ end
44
+ end
45
+
46
+ # Print the dsl options in the Erb string format
47
+ # given by the method print_dsl_options(str)
48
+ # To use print_dsl_options, the format is:
49
+ # print_dsl_options("print :key = ':value'")
50
+ # The string substitution uses the ^ substitution found in string.rb
51
+ # This will substitute the key and the value in the format given by the
52
+ # string passed. For instance
53
+ # dsl_options = {:to => "world", :message => "hello"}
54
+ # print_dsl_options(":key => :value") =
55
+ # message => hello
56
+ # to => world
57
+ # This should be used if all the dsl_options
58
+ # are to printed in the same format
59
+ def print_dsl_options(str)
60
+ dsl_options.map do |k,v|
61
+ v.nil? ? nil : str ^ {:key => k, :value => v}
62
+ end.compact.join("\n")
63
+ end
64
+
65
+ # Take all the ordered_resources of the proxy object
66
+ # and print them with the current_printing_method, aka :chef for print_to_chef
67
+ # This creates a new proxy object with each resource and sends it
68
+ # :compile with the current printing method, collects the output
69
+ # and joins them with a newline
70
+ def print_resources
71
+ resources.map do |res|
72
+ ProxyObject.new(res).compile(current_printing_method)
73
+ end.join("\n")
74
+ end
75
+
76
+ def instance
77
+ @caller
78
+ end
79
+
80
+ # method_missing
81
+ # Because this ProxyObject is responsible for proxying
82
+ # methods to the proxy object, the method_missing method
83
+ # is used to curry methods across
84
+ def method_missing(m,*a,&block)
85
+ proxy.send(m,*a,&block)
86
+ end
87
+
88
+ end
89
+
90
+ end
data/lib/keypair.rb ADDED
@@ -0,0 +1,93 @@
1
+ =begin rdoc
2
+ ssh key used to login to remote instances\
3
+ =end
4
+ class Keypair
5
+
6
+ include SearchablePaths
7
+ has_searchable_paths(:prepend_paths => [Dir.pwd, '/etc/poolparty/keys', "#{ENV["HOME"]}/.ssh/", "#{ENV["HOME"]}/.ec2/", ENV['EC2_CONFIG_DIR']])
8
+
9
+ attr_accessor :filepath
10
+
11
+ # Create a new key that defaults to id_rsa as the name.
12
+ def initialize(fpath)
13
+ @filepath = fpath
14
+ valid?
15
+ end
16
+
17
+ # If the full_filepath is nil, then the key doesn't exist
18
+ def exists?
19
+ full_filepath != nil
20
+ end
21
+
22
+ # Read the content of the key
23
+ def content
24
+ @content ||= exists? ? open(full_filepath).read : nil
25
+ end
26
+
27
+ # Returns the full_filepath of the key. If a full filepath is passed, we just return the expanded filepath
28
+ # for the keypair, otherwise query where it is against known locations
29
+ def full_filepath
30
+ @full_filepath ||= if File.file?(::File.expand_path(filepath))
31
+ ::File.expand_path(filepath)
32
+ else
33
+ search_in_known_locations(filepath)
34
+ end
35
+ end
36
+ alias :to_s :full_filepath
37
+
38
+ #TODO: gracefully handle the case when a passpharase is needed
39
+ # Generate a public key from the private key
40
+ # net/ssh already has this built-in from our extension.
41
+ def public_key
42
+ if !@public_key_string || @public_key_string.empty?
43
+ pkey = Net::SSH::KeyFactory.load_private_key(full_filepath)
44
+ @public_key_string = pkey.public_key
45
+ else
46
+ @public_key_string
47
+ end
48
+ end
49
+
50
+ def public_key=(str)
51
+ @public_key_string = str
52
+ end
53
+
54
+ # Basename of the keypair
55
+ def basename
56
+ @basename ||= ::File.basename(filepath, ::File.extname(filepath))
57
+ end
58
+
59
+ # Just the filename of the keypair
60
+ def filename
61
+ @filename ||= ::File.basename(full_filepath) rescue filepath
62
+ end
63
+
64
+ # Support to add the enumerable each to keys
65
+ def each
66
+ yield full_filepath
67
+ end
68
+
69
+ # Validation checks
70
+ # if all of the validations pass, the object is considered valid
71
+ # the validations are responsible for raising a PoolPartyError (StandardError)
72
+ def valid?
73
+ validations.each {|validation| self.send(validation.to_sym) }
74
+ end
75
+
76
+ private
77
+
78
+ # Validations
79
+ def validations
80
+ [:keypair_found?, :has_proper_permissions?]
81
+ end
82
+
83
+ # Check the proper permissions
84
+ def has_proper_permissions?
85
+ perm_truth = [:readable?, :writable?, :executable?].map {|meth| File.send(meth, full_filepath)} == [true, true, false]
86
+ raise StandardError.new("Your keypair #{full_filepath} has improper file permissions. Keypairs must be 0600 permission. Please chmod your keypair file and try again") unless perm_truth
87
+ end
88
+
89
+ def keypair_found?
90
+ raise StandardError.new("#{filepath} key file cannot be found") unless exists?
91
+ end
92
+
93
+ end
@@ -0,0 +1,154 @@
1
+ require "colors"
2
+ module Askable
3
+ module ClassMethods
4
+ def ask(msg="", opts={}, &block)
5
+ begin
6
+ answer = Question.new(msg, STDIN).answer
7
+
8
+ unless opts[:no_value]
9
+ if answer.nil? || answer == ""
10
+ colored_say("You must enter a value\nTry again\n")
11
+ ask(msg, &block)
12
+ end
13
+ end
14
+ rescue Exception => e
15
+ colored_say e.inspect
16
+ exit 0
17
+ end
18
+ end
19
+
20
+ def ask_with_help(opts={}, &block)
21
+ help_str = opts[:help]
22
+ message = opts[:message]
23
+
24
+ colored_say("#{message} (h for help)")
25
+ o = ask("? ")
26
+
27
+ if %w(h H).include?(o)
28
+ colored_say help_str
29
+ ask_with_help(opts, &block)
30
+ else
31
+ block.call(o) if block
32
+ end
33
+ o
34
+ end
35
+
36
+ def colored_ask(str, o={})
37
+ ask(substitute_color_tags(str), o)
38
+ end
39
+
40
+ def rescued_ask(m, r)
41
+ begin
42
+ t = colored_ask m
43
+ rescue Exception => e
44
+ say r
45
+ end
46
+ end
47
+
48
+ def colored_say(str, o={})
49
+ out = substitute_color_tags(str)
50
+ o[:no_newline] ? print(out) : puts(out)
51
+ end
52
+
53
+ def colored_print(str)
54
+ print substitute_color_tags(str)
55
+ end
56
+
57
+ def choose(str, choices={}, opts={}, &block)
58
+ colored_say(str)
59
+ choices.each do |k,v|
60
+ colored_say("#{k}) #{v}")
61
+ end
62
+ colored_print((opts[:prompt] || "> "))
63
+ pick = gets.chomp.to_i
64
+ yield choices[pick] if block
65
+ choices[pick]
66
+ end
67
+
68
+ def wait
69
+ begin
70
+ STDIN.readline unless auto_install # -y passed
71
+ rescue Interrupt
72
+ exit 2
73
+ end
74
+ end
75
+
76
+ def substitute_color_tags(data)
77
+ Colors.process(data)
78
+ end
79
+
80
+ end
81
+
82
+ module InstanceMethods
83
+ def ask(msg, &block)
84
+ self.class.ask(msg, &block)
85
+ end
86
+
87
+ def ask_with_help(opts={}, &block); self.class.ask_with_help(opts, &block);end
88
+
89
+ def colored_ask(str, o)
90
+ self.class.colored_ask(str, o)
91
+ end
92
+
93
+ def colored_say(str, o={})
94
+ self.class.colored_say(str, o)
95
+ end
96
+
97
+ def colored_print(str)
98
+ self.class.colored_print(str)
99
+ end
100
+
101
+ def choose(str, choices={}, opts={}, &block); self.class.choose(str, choices, opts, &block); end
102
+ end
103
+
104
+ def self.included(receiver)
105
+ receiver.extend ClassMethods
106
+ receiver.send :include, InstanceMethods
107
+ end
108
+
109
+ class Question
110
+ attr_reader :answer
111
+ include Askable
112
+
113
+ def initialize(question, input=STDIN, opts={})
114
+ @question = question
115
+ @input = input
116
+
117
+ defaults = {
118
+ :wrap => 60
119
+ }
120
+
121
+ @opts = defaults.merge(opts)
122
+
123
+ ask
124
+ end
125
+
126
+ private
127
+
128
+ # get the answer, chomp it, etc.
129
+ def ask
130
+ case @question
131
+ when String
132
+ ask_string
133
+ when Array
134
+ ask_array
135
+ end
136
+ end
137
+
138
+ def ask_string
139
+ colored_say @question, :no_newline => true
140
+ @answer = @input.gets
141
+ answer.chomp!
142
+ end
143
+
144
+ def ask_array
145
+ @question.each_with_index do |q, i|
146
+ colored_say "#{i+1}> #{q}"
147
+ end
148
+ colored_say "(number 1-#{@question.size})"
149
+ colored_say "? ", :no_newline => true
150
+ num = (@input.gets).to_i rescue colored_say("<red>Invalid input, must be a number between 1 and #{@question.size + 1}")
151
+ @answer = @question[num-1]
152
+ end
153
+ end
154
+ end