fairchild-poolparty 1.1.5 → 1.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (385) hide show
  1. data/History.txt +3 -0
  2. data/README.txt +13 -9
  3. data/Rakefile +0 -1
  4. data/VERSION.yml +2 -2
  5. data/bin/cloud +43 -46
  6. data/bin/cloud-bootstrap +33 -23
  7. data/bin/cloud-configure +33 -34
  8. data/bin/cloud-console +31 -9
  9. data/bin/cloud-contract +27 -11
  10. data/bin/cloud-expand +32 -19
  11. data/bin/cloud-list +43 -15
  12. data/bin/cloud-osxcopy +22 -12
  13. data/bin/cloud-provision +39 -24
  14. data/bin/cloud-run +37 -0
  15. data/bin/cloud-setup-dev +31 -20
  16. data/bin/cloud-show +40 -21
  17. data/bin/cloud-ssh +24 -15
  18. data/bin/cloud-start +33 -19
  19. data/bin/cloud-terminate +34 -15
  20. data/bin/cloud-verify +41 -0
  21. data/bin/install-poolparty +22 -0
  22. data/bin/server-cloud-elections +17 -23
  23. data/bin/server-list-active +23 -22
  24. data/bin/server-manage-election +14 -23
  25. data/bin/server-show-stats +1 -1
  26. data/config/jeweler.rb +6 -6
  27. data/examples/basic.rb +13 -14
  28. data/examples/fairchild.rb +25 -20
  29. data/examples/maize.rb +37 -0
  30. data/examples/metavirt_cloud.rb +33 -0
  31. data/examples/simple.rb +13 -0
  32. data/examples/vmrun_cloud.rb +17 -0
  33. data/lib/poolparty/{aska/aska.rb → aska.rb} +3 -0
  34. data/lib/poolparty/core/array.rb +13 -1
  35. data/lib/poolparty/core/exception.rb +1 -1
  36. data/lib/poolparty/core/hash.rb +63 -2
  37. data/lib/poolparty/core/integer.rb +11 -0
  38. data/lib/poolparty/core/object.rb +41 -19
  39. data/lib/poolparty/core/proc.rb +0 -7
  40. data/lib/poolparty/core/string.rb +35 -2
  41. data/lib/poolparty/core/symbol.rb +10 -0
  42. data/lib/poolparty/core/time.rb +6 -0
  43. data/lib/poolparty/dependency_resolver/chef_resolver.rb +40 -41
  44. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
  45. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +6 -6
  46. data/lib/poolparty/dependency_resolver/puppet.rb +0 -1
  47. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +14 -48
  48. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  49. data/lib/poolparty/extra/duration.rb +96 -0
  50. data/lib/poolparty/helpers/binary.rb +1 -1
  51. data/lib/poolparty/helpers/console.rb +0 -5
  52. data/lib/poolparty/helpers/optioner.rb +18 -13
  53. data/lib/poolparty/installers/base_installer.rb +113 -0
  54. data/lib/poolparty/installers/ec2.rb +141 -0
  55. data/lib/poolparty/installers/vmrun.rb +144 -0
  56. data/lib/poolparty/lite.rb +5 -2
  57. data/lib/poolparty/modules/callbacks.rb +15 -2
  58. data/lib/poolparty/modules/cloud_dsl.rb +10 -8
  59. data/lib/poolparty/modules/cloud_resourcer.rb +39 -59
  60. data/lib/poolparty/modules/daemonizable.rb +4 -5
  61. data/lib/poolparty/modules/definable_resource.rb +6 -7
  62. data/lib/poolparty/modules/file_writer.rb +2 -2
  63. data/lib/poolparty/modules/output.rb +2 -2
  64. data/lib/poolparty/modules/pinger.rb +9 -2
  65. data/lib/poolparty/modules/pretty_printer.rb +1 -1
  66. data/lib/poolparty/modules/resourcing_dsl.rb +1 -29
  67. data/lib/poolparty/modules/searchable_paths.rb +100 -0
  68. data/lib/poolparty/modules/user_helpers.rb +1 -1
  69. data/lib/poolparty/monitors/base_monitor.rb +65 -0
  70. data/lib/poolparty/monitors/monitor_daemon.rb +168 -0
  71. data/lib/poolparty/monitors/monitor_rack.rb +29 -15
  72. data/lib/poolparty/monitors/monitors/{time_monitor.rb → clock_monitor.rb} +7 -2
  73. data/lib/poolparty/monitors/monitors/cloud_monitor.rb +36 -0
  74. data/lib/poolparty/monitors/monitors/elections_monitor.rb +76 -0
  75. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +15 -12
  76. data/lib/poolparty/monitors/monitors/stats_monitor.rb +68 -49
  77. data/lib/poolparty/net/init.rb +12 -7
  78. data/lib/poolparty/net/remote_instance.rb +48 -64
  79. data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
  80. data/lib/poolparty/net/remoter/connections.rb +19 -14
  81. data/lib/poolparty/net/remoter/interactive.rb +30 -24
  82. data/lib/poolparty/net/remoter_base.rb +140 -48
  83. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +119 -71
  84. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +42 -31
  85. data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +75 -10
  86. data/lib/poolparty/net/remoter_bases/libvirt/libvirt.rb +73 -0
  87. data/lib/poolparty/net/remoter_bases/libvirt/libvirt_instance.rb +64 -0
  88. data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +110 -0
  89. data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +37 -0
  90. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +1 -1
  91. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +1 -1
  92. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -117
  93. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +59 -43
  94. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +37 -21
  95. data/lib/poolparty/plugins/apache2/apache.rb +266 -0
  96. data/lib/poolparty/plugins/apache2/passenger_site.rb +86 -0
  97. data/lib/poolparty/plugins/apache2/php5.rb +40 -0
  98. data/lib/poolparty/plugins/apache2/virtual_host.rb +53 -0
  99. data/lib/poolparty/plugins/authorized_key.rb +29 -0
  100. data/lib/poolparty/plugins/bind.rb +5 -6
  101. data/lib/poolparty/plugins/{chef.rb → chef/chef.rb} +32 -44
  102. data/lib/poolparty/plugins/chef/chef_deploy.rb +55 -0
  103. data/lib/poolparty/plugins/chef/chef_deploy_definition.rb +32 -0
  104. data/lib/poolparty/plugins/chef/chef_library.rb +7 -0
  105. data/lib/poolparty/plugins/chef/chef_recipe.rb +7 -0
  106. data/lib/poolparty/plugins/chef/include_chef_recipe.rb +14 -0
  107. data/lib/poolparty/plugins/deploy_directory.rb +41 -26
  108. data/lib/poolparty/plugins/gem_package.rb +42 -14
  109. data/lib/poolparty/plugins/git.rb +62 -33
  110. data/lib/poolparty/{base_packages → plugins}/haproxy.rb +21 -20
  111. data/lib/poolparty/plugins/heartbeat.rb +16 -0
  112. data/lib/poolparty/plugins/host.rb +39 -0
  113. data/lib/poolparty/plugins/line_in_file.rb +24 -2
  114. data/lib/poolparty/plugins/plugin_template.rb +13 -0
  115. data/lib/poolparty/{base_packages/poolparty.rb → plugins/poolparty_base_packages.rb} +4 -6
  116. data/lib/poolparty/plugins/rails_deploy.rb +128 -0
  117. data/lib/poolparty/{base_packages → plugins}/ruby.rb +3 -3
  118. data/lib/poolparty/plugins/runit.rb +17 -92
  119. data/lib/poolparty/plugins/sshkey.rb +50 -0
  120. data/lib/poolparty/plugins/svn.rb +10 -8
  121. data/lib/poolparty/poolparty/cloud.rb +224 -61
  122. data/lib/poolparty/poolparty/default.rb +22 -15
  123. data/lib/poolparty/poolparty/key.rb +19 -28
  124. data/lib/poolparty/poolparty/neighborhoods.rb +16 -5
  125. data/lib/poolparty/poolparty/plugin.rb +49 -13
  126. data/lib/poolparty/poolparty/pool.rb +32 -9
  127. data/lib/poolparty/poolparty/poolparty_base_class.rb +65 -45
  128. data/lib/poolparty/poolparty/resource.rb +24 -49
  129. data/lib/poolparty/poolparty/service.rb +11 -9
  130. data/lib/poolparty/provision/boot_strapper.rb +48 -37
  131. data/lib/poolparty/provision/configurations/chef.rb +6 -5
  132. data/lib/poolparty/provision/dr_configure.rb +25 -19
  133. data/lib/poolparty/resources/cron.rb +37 -4
  134. data/lib/poolparty/resources/directory.rb +30 -0
  135. data/lib/poolparty/resources/exec.rb +31 -1
  136. data/lib/poolparty/resources/file.rb +54 -12
  137. data/lib/poolparty/resources/group.rb +21 -0
  138. data/lib/poolparty/resources/mount.rb +24 -4
  139. data/lib/poolparty/resources/package.rb +30 -6
  140. data/lib/poolparty/resources/remote_file.rb +33 -1
  141. data/lib/poolparty/resources/service.rb +22 -1
  142. data/lib/poolparty/resources/symlink.rb +37 -2
  143. data/lib/poolparty/resources/user.rb +25 -0
  144. data/lib/poolparty/resources/variable.rb +26 -1
  145. data/lib/poolparty/resources.rb +42 -0
  146. data/lib/poolparty/schema.rb +6 -8
  147. data/lib/poolparty/templates/apache2/apache2.conf +14 -0
  148. data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
  149. data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
  150. data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
  151. data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
  152. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
  153. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
  154. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
  155. data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
  156. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
  157. data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
  158. data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
  159. data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
  160. data/lib/poolparty/templates/apache2/server-status.erb +19 -0
  161. data/lib/poolparty/templates/{gemrc → gemrc_template} +0 -0
  162. data/lib/poolparty/templates/haproxy.conf +2 -2
  163. data/lib/poolparty/templates/monitor.ru +13 -0
  164. data/lib/poolparty/templates/php.ini.erb +1253 -0
  165. data/lib/poolparty/verification/verifier_base.rb +10 -0
  166. data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
  167. data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
  168. data/lib/poolparty/verification/verifiers/ping.rb +18 -1
  169. data/lib/poolparty/verification/verify.rb +6 -0
  170. data/lib/poolparty.rb +14 -15
  171. data/lib/poolpartycl.rb +1 -1
  172. data/spec/bin/bin_spec_helper.rb +1 -0
  173. data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
  174. data/spec/bin/server-list-active_spec.rb +4 -6
  175. data/spec/poolparty/core/object_spec.rb +1 -62
  176. data/spec/poolparty/core/ordered_hash_spec.rb +7 -7
  177. data/spec/poolparty/core/string_spec.rb +1 -1
  178. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -8
  179. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +35 -32
  180. data/spec/poolparty/extra/deployments_spec.rb +68 -68
  181. data/spec/poolparty/fixtures/clouds.json +1 -1
  182. data/spec/poolparty/fixtures/fake_key.pub +1 -0
  183. data/spec/poolparty/helpers/optioner_spec.rb +4 -11
  184. data/spec/poolparty/modules/cloud_resourcer_spec.rb +1 -1
  185. data/spec/poolparty/modules/searchable_paths_spec.rb +83 -0
  186. data/spec/poolparty/net/remote_instance_spec.rb +1 -2
  187. data/spec/poolparty/net/remoter_base_spec.rb +7 -11
  188. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +9 -11
  189. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +6 -56
  190. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +10 -7
  191. data/spec/poolparty/net/remoter_spec.rb +2 -3
  192. data/spec/poolparty/plugins/authorized_key_spec.rb +23 -0
  193. data/spec/poolparty/plugins/deploydirectory_spec.rb +64 -51
  194. data/spec/poolparty/plugins/git_spec.rb +8 -10
  195. data/spec/poolparty/poolparty/cloud_spec.rb +61 -64
  196. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +2 -4
  197. data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +1 -1
  198. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +1 -6
  199. data/spec/poolparty/poolparty/default_spec.rb +23 -22
  200. data/spec/poolparty/poolparty/example_spec.rb +47 -26
  201. data/spec/poolparty/{base_packages → poolparty}/haproxy_spec.rb +1 -1
  202. data/spec/poolparty/{base_packages → poolparty}/heartbeat_spec.rb +1 -1
  203. data/spec/poolparty/poolparty/key_spec.rb +2 -2
  204. data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -1
  205. data/spec/poolparty/poolparty/plugin_model_spec.rb +13 -17
  206. data/spec/poolparty/poolparty/plugin_spec.rb +7 -7
  207. data/spec/poolparty/poolparty/pool_spec.rb +4 -10
  208. data/spec/poolparty/poolparty/resource_spec.rb +25 -29
  209. data/spec/poolparty/poolparty/script_spec.rb +1 -4
  210. data/spec/poolparty/poolparty/test_plugins/webserver.rb +27 -25
  211. data/spec/poolparty/resources/file_spec.rb +5 -4
  212. data/spec/poolparty/resources/sshkey_spec.rb +39 -40
  213. data/spec/poolparty/spec_helper.rb +9 -39
  214. data/tasks/poolparty.rake +29 -1
  215. data/tasks/spec.rake +39 -1
  216. data/test/fixtures/fake_clouds.rb +11 -0
  217. data/test/fixtures/metavirt_cloud.json +1 -0
  218. data/test/fixtures/test_key +1 -0
  219. data/test/poolparty/core/array_test.rb +11 -0
  220. data/test/poolparty/core/hash_test.rb +5 -7
  221. data/test/poolparty/core/object_test.rb +29 -0
  222. data/test/poolparty/dependency_resolver/chef_resolver_test.rb +82 -0
  223. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +5 -26
  224. data/test/poolparty/modules/callbacks_test.rb +1 -1
  225. data/test/poolparty/modules/cloud_dsl_test.rb +10 -8
  226. data/test/poolparty/monitors/test_base_monitor.rb +17 -0
  227. data/test/poolparty/monitors/test_monitor_rack.rb +26 -0
  228. data/test/poolparty/net/remoter_base_test.rb +17 -0
  229. data/test/poolparty/net/remoter_bases/libvirt/libvirt_test.rb +70 -0
  230. data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +81 -0
  231. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +58 -27
  232. data/test/poolparty/plugins/chef_deploy_test.rb +37 -0
  233. data/test/poolparty/plugins/chef_plugin_test.rb +23 -0
  234. data/test/poolparty/plugins/rails_deploy_test.rb +50 -0
  235. data/test/poolparty/poolparty/cloud_test.rb +65 -0
  236. data/test/poolparty/poolparty/isolated_cloud_test.rb +25 -0
  237. data/test/poolparty/poolparty/neighborhood_test.rb +1 -1
  238. data/test/poolparty/poolparty/plugin_test.rb +19 -0
  239. data/test/poolparty/poolparty/pool_test.rb +22 -0
  240. data/test/poolparty/poolparty/poolparty_base_class_test.rb +53 -15
  241. data/test/poolparty/poolparty/schema_test.rb +13 -0
  242. data/test/poolparty/poolparty/template_test.rb +6 -6
  243. data/test/poolparty/verification/verify_test.rb +7 -3
  244. data/test/test_helper.rb +15 -4
  245. data/test/test_methods.rb +11 -0
  246. data/vendor/chef/apache2/attributes/apache.rb +1 -1
  247. data/vendor/gems/dslify/LICENSE +20 -0
  248. data/vendor/gems/dslify/README.rdoc +33 -0
  249. data/vendor/gems/dslify/Rakefile +56 -0
  250. data/vendor/gems/dslify/VERSION.yml +4 -0
  251. data/vendor/gems/dslify/dslify.gemspec +29 -0
  252. data/vendor/gems/dslify/lib/dslify.rb +81 -0
  253. data/vendor/gems/dslify/test/dslify_test.rb +283 -0
  254. data/vendor/gems/dslify/test/test_helper.rb +7 -0
  255. data/vendor/gems/git-style-binaries/README.markdown +280 -0
  256. data/vendor/gems/git-style-binaries/Rakefile +64 -0
  257. data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
  258. data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
  259. data/vendor/gems/git-style-binaries/doc/gsb-screencast.png +0 -0
  260. data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +412 -0
  261. data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +78 -0
  262. data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
  263. data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
  264. data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
  265. data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
  266. data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
  267. data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
  268. data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
  269. data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
  270. data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +88 -0
  271. data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
  272. data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
  273. data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
  274. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
  275. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
  276. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
  277. data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
  278. data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
  279. data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
  280. data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
  281. data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
  282. data/vendor/gems/parenting/History.txt +4 -0
  283. data/vendor/gems/parenting/Manifest.txt +14 -0
  284. data/vendor/gems/parenting/PostInstall.txt +2 -0
  285. data/vendor/gems/parenting/README.rdoc +47 -0
  286. data/vendor/gems/parenting/Rakefile +28 -0
  287. data/vendor/gems/parenting/lib/parenting/parenting.rb +70 -0
  288. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  289. data/vendor/gems/parenting/parenting.gemspec +39 -0
  290. data/vendor/gems/parenting/script/console +10 -0
  291. data/vendor/gems/parenting/script/destroy +14 -0
  292. data/vendor/gems/parenting/script/generate +14 -0
  293. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  294. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  295. data/vendor/gems/parenting/test/test_parenting.rb +117 -0
  296. data/vendor/gems/suitcase/LICENSE +20 -0
  297. data/vendor/gems/suitcase/README.rdoc +31 -0
  298. data/vendor/gems/suitcase/Rakefile +57 -0
  299. data/vendor/gems/suitcase/VERSION.yml +4 -0
  300. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  301. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +167 -0
  302. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  303. data/vendor/gems/suitcase/suitcase.gemspec +32 -0
  304. data/vendor/gems/suitcase/test/suitcase_test.rb +108 -0
  305. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  306. data/vendor/gems/suitcase/test/test_dir/gems/famoseagle-carrot-0.6.0.gem +0 -0
  307. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  308. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  309. data/vendor/gems/trollop/FAQ.txt +35 -0
  310. data/vendor/gems/trollop/History.txt +97 -0
  311. data/vendor/gems/trollop/Manifest.txt +7 -0
  312. data/vendor/gems/trollop/README.txt +40 -0
  313. data/vendor/gems/trollop/Rakefile +36 -0
  314. data/vendor/gems/trollop/lib/trollop.rb +735 -0
  315. data/vendor/gems/trollop/release-script.txt +13 -0
  316. data/vendor/gems/trollop/test/test_trollop.rb +1042 -0
  317. data/vendor/gems/trollop/www/index.html +167 -0
  318. metadata +205 -150
  319. data/bin/cloud-describe +0 -28
  320. data/bin/cloud-handle-load +0 -27
  321. data/bin/cloud-rsync +0 -28
  322. data/bin/cloud-spec +0 -41
  323. data/bin/messenger-get-current-nodes +0 -14
  324. data/bin/server-become-master +0 -24
  325. data/bin/server-build-messenger +0 -28
  326. data/bin/server-clean-cert-for +0 -15
  327. data/bin/server-provision +0 -32
  328. data/bin/server-start-agent +0 -15
  329. data/bin/server-start-client +0 -29
  330. data/bin/server-start-master +0 -26
  331. data/bin/server-start-node +0 -32
  332. data/bin/server-stop-client +0 -3
  333. data/bin/server-stop-master +0 -3
  334. data/bin/server-stop-node +0 -3
  335. data/bin/server-update-hosts +0 -49
  336. data/examples/poolparty.rb +0 -12
  337. data/lib/poolparty/base_packages/heartbeat.rb +0 -58
  338. data/lib/poolparty/base_packages/runit.rb +0 -21
  339. data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
  340. data/lib/poolparty/capistrano.rb +0 -54
  341. data/lib/poolparty/config/postlaunchmessage.txt +0 -5
  342. data/lib/poolparty/core/metaid.rb +0 -15
  343. data/lib/poolparty/core/module.rb +0 -40
  344. data/lib/poolparty/extra/deployments.rb +0 -31
  345. data/lib/poolparty/helpers/display.rb +0 -30
  346. data/lib/poolparty/net/messenger.rb +0 -57
  347. data/lib/poolparty/net/remote_bases.rb +0 -21
  348. data/lib/poolparty/plugins/chef_deploy.rb +0 -58
  349. data/lib/poolparty/plugins/dynomite.rb +0 -14
  350. data/lib/poolparty/plugins/nanite.rb +0 -41
  351. data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
  352. data/lib/poolparty/plugins/tokyo_tyrant.rb +0 -23
  353. data/lib/poolparty/poolparty/plugin_model.rb +0 -45
  354. data/lib/poolparty/resources/host.rb +0 -16
  355. data/lib/poolparty/resources/sshkey.rb +0 -27
  356. data/lib/poolparty/services/conditional.rb +0 -46
  357. data/lib/poolparty/spec/core/string.rb +0 -18
  358. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
  359. data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
  360. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
  361. data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
  362. data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
  363. data/lib/poolparty/spec/matchers/have_file.rb +0 -28
  364. data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
  365. data/lib/poolparty/spec/matchers/have_git.rb +0 -28
  366. data/lib/poolparty/spec/matchers/have_host.rb +0 -28
  367. data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
  368. data/lib/poolparty/spec/matchers/have_package.rb +0 -28
  369. data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
  370. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
  371. data/lib/poolparty/spec/matchers/have_service.rb +0 -28
  372. data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
  373. data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
  374. data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
  375. data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
  376. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
  377. data/lib/poolparty/spec/templates/have_base.rb +0 -28
  378. data/lib/poolparty/spec.rb +0 -31
  379. data/spec/poolparty/core/module_spec.rb +0 -15
  380. data/spec/poolparty/helpers/display_spec.rb +0 -13
  381. data/spec/poolparty/id_rsa +0 -27
  382. data/spec/poolparty/net/messenger_spec.rb +0 -16
  383. data/spec/poolparty/resources/host_spec.rb +0 -35
  384. data/spec/poolparty/services/conditional_spec.rb +0 -52
  385. data/spec/poolparty/spec/core/string_spec.rb +0 -57
@@ -1,68 +1,68 @@
1
- #TODO: Reimplement
2
- require File.dirname(__FILE__) + '/../spec_helper'
3
-
4
- describe "deployments" do
5
- describe "class" do
6
- before(:each) do
7
- @klass = PoolParty::Extra::Deployments
8
- @file = "hanky_danky_ranky.pool"
9
- ::File.stub!(:file?).with(@file).and_return false
10
- end
11
- it "should have the singleton method include_deployment" do
12
- @klass.respond_to?(:include_deployment).should == true
13
- end
14
- it "should return nil if the file doesn't exist" do
15
- @klass.include_deployment(@file).should == nil
16
- end
17
- describe "existing file" do
18
- before(:each) do
19
- ::File.stub!(:file?).and_return true
20
- @contents = "'hello goober'"
21
- @klass.stub!(:open).with(@file).and_return @file
22
- @file.stub!(:read).and_return @contents
23
- @klass.include_deployment(@file).should_not == nil
24
- end
25
- it "should not be nil if the file does exist" do
26
- @klass.include_deployment(@file).should_not == nil
27
- end
28
- it "should create a class called PoolPartyHankyDankyRankyClass" do
29
- @klass.include_deployment(@file).nil?.should == false
30
- Object.const_defined?(:HankyDankyRankyClass).should == true
31
- end
32
- it "should create a method on the class called enable" do
33
- HankyDankyRankyClass.new.respond_to?(:enable).should == true
34
- end
35
- it "should add the contents of the file to be eval'd on the method" do
36
- # puts HankyDankyRankyClass.new.enable
37
- # HankyDankyRankyClass.new.enable.should == "hello goober"
38
- pending
39
- end
40
- end
41
- describe "include_deployments" do
42
- before(:each) do
43
- ::File.stub!(:directory?).and_return false
44
- @dir = "/deployments"
45
- end
46
- it "should have the method include_deployments" do
47
- @klass.respond_to?(:include_deployments).should == true
48
- end
49
- it "should return nil if the directory does not exist" do
50
- @klass.include_deployments(@dir).should == nil
51
- end
52
- describe "existing directory" do
53
- before(:each) do
54
- ::File.stub!(:directory?).and_return true
55
- @contents = []
56
- Dir.stub!(:[]).and_return @contents
57
- end
58
- it "should not be nil if the directory exists" do
59
- @klass.include_deployments(@dir).nil?.should == false
60
- end
61
- it "should call Dir.[] on the directory" do
62
- Dir.should_receive(:[]).with("#{@dir}/*").and_return []
63
- @klass.include_deployments(@dir)
64
- end
65
- end
66
- end
67
- end
68
- end
1
+ # #TODO: Reimplement
2
+ # require File.dirname(__FILE__) + '/../spec_helper'
3
+ #
4
+ # describe "deployments" do
5
+ # describe "class" do
6
+ # before(:each) do
7
+ # @klass = PoolParty::Extra::Deployments
8
+ # @file = "hanky_danky_ranky.pool"
9
+ # ::File.stub!(:file?).with(@file).and_return false
10
+ # end
11
+ # it "should have the singleton method include_deployment" do
12
+ # @klass.respond_to?(:include_deployment).should == true
13
+ # end
14
+ # it "should return nil if the file doesn't exist" do
15
+ # @klass.include_deployment(@file).should == nil
16
+ # end
17
+ # describe "existing file" do
18
+ # before(:each) do
19
+ # ::File.stub!(:file?).and_return true
20
+ # @contents = "'hello goober'"
21
+ # @klass.stub!(:open).with(@file).and_return @file
22
+ # @file.stub!(:read).and_return @contents
23
+ # @klass.include_deployment(@file).should_not == nil
24
+ # end
25
+ # it "should not be nil if the file does exist" do
26
+ # @klass.include_deployment(@file).should_not == nil
27
+ # end
28
+ # it "should create a class called PoolPartyHankyDankyRankyClass" do
29
+ # @klass.include_deployment(@file).nil?.should == false
30
+ # Object.const_defined?(Plugin::HankyDankyRanky).should == true
31
+ # end
32
+ # it "should create a method on the class called enable" do
33
+ # HankyDankyRanky.new.respond_to?(:enable).should == true
34
+ # end
35
+ # it "should add the contents of the file to be eval'd on the method" do
36
+ # # puts HankyDankyRankyClass.new.enable
37
+ # # HankyDankyRankyClass.new.enable.should == "hello goober"
38
+ # pending
39
+ # end
40
+ # end
41
+ # describe "include_deployments" do
42
+ # before(:each) do
43
+ # ::File.stub!(:directory?).and_return false
44
+ # @dir = "/deployments"
45
+ # end
46
+ # it "should have the method include_deployments" do
47
+ # @klass.respond_to?(:include_deployments).should == true
48
+ # end
49
+ # it "should return nil if the directory does not exist" do
50
+ # @klass.include_deployments(@dir).should == nil
51
+ # end
52
+ # describe "existing directory" do
53
+ # before(:each) do
54
+ # ::File.stub!(:directory?).and_return true
55
+ # @contents = []
56
+ # Dir.stub!(:[]).and_return @contents
57
+ # end
58
+ # it "should not be nil if the directory exists" do
59
+ # @klass.include_deployments(@dir).nil?.should == false
60
+ # end
61
+ # it "should call Dir.[] on the directory" do
62
+ # Dir.should_receive(:[]).with("#{@dir}/*").and_return []
63
+ # @klass.include_deployments(@dir)
64
+ # end
65
+ # end
66
+ # end
67
+ # end
68
+ # end
@@ -34,7 +34,7 @@
34
34
  "default_properties_hash_filename": "cloud.json",
35
35
  "poolparty_home_path": "/Users/mfairchild/.poolparty",
36
36
  "keypairs": ["/Users/mfairchild/.ec2oncourse/r_and_d.pem", "/Users/mfairchild/.ssh/id_rsa"],
37
- "availabilty_zone": "us-east-1a",
37
+ "availability_zone": "us-east-1a",
38
38
  "fileserver_base": "puppet://master/files",
39
39
  "debugging": false,
40
40
  "minimum_instances": 1,
@@ -0,0 +1 @@
1
+ ssh-rsa totally_aPublicKey auser@my.laptop.local
@@ -7,11 +7,11 @@ describe "Option Parser" do
7
7
  @op = PoolParty::Optioner.new([], {:abstract => true})
8
8
  @op.parse_options
9
9
  end
10
- it "should set the options as an Hash" do
11
- @op.options.class.should == Hash
10
+ it "should set the dsl_options as an Hash" do
11
+ @op.dsl_options.class.should == Hash
12
12
  end
13
13
  it "should have the verbose option set to false by default" do
14
- @op.verbose.should == false
14
+ @op.verbose?.should == false
15
15
  end
16
16
  it "should call a method called on it that is not defined on the options if they exist" do
17
17
  @op.dsl_options.should_receive(:[]).with(:verbose).at_least(1).and_return true
@@ -40,11 +40,4 @@ describe "Option Parser" do
40
40
  @op.flagged_args.should == ["-v", "-i", "1", "-x"]
41
41
  end
42
42
  end
43
-
44
- it "should be able to take a block and set some options on the block" do
45
- PoolParty::Optioner.new(["-w"], {:abstract => false, :load_pools => false}) do |opts, optioner|
46
- opts.on('-w', '--wee') { optioner.wee "wee" }
47
- opts.on('-t t', '--teatime tea') { optioner.tea "time" }
48
- end.wee.should == "wee"
49
- end
50
- end
43
+ end
@@ -15,7 +15,7 @@ class TestParentClass < PoolParty::Cloud::Cloud
15
15
  end
16
16
  describe "CloudResourcer" do
17
17
  before(:each) do
18
- @tc = ResourcerTestClass.new :bank do
18
+ @tc = Cloud.new :bank do
19
19
  end
20
20
  end
21
21
  it "should have the method instances" do
@@ -0,0 +1,83 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ PATH_TEST_ROOT = Default.storage_directory / "path_test"
4
+ PATH_ONE = PATH_TEST_ROOT / "one"
5
+ PATH_TWO = PATH_TEST_ROOT / "two"
6
+
7
+ class TestFile
8
+ include SearchablePaths
9
+ has_searchable_paths(:dir => "templates", :paths => [PATH_ONE, PATH_TWO])
10
+ end
11
+
12
+ class TestFile2
13
+ include SearchablePaths
14
+ has_searchable_paths(:dirs => ["clouds", "/"], :prepend_paths => [PATH_ONE, PATH_TWO])
15
+ end
16
+
17
+ def File.write_to_file(name, content="")
18
+ open(name, "w") {|f| f.print content}
19
+ end
20
+
21
+ describe "FileWriter" do
22
+ before(:each) do
23
+ # create path one
24
+ [PATH_ONE/:clouds, PATH_ONE/:templates, PATH_ONE/:foo].each {|dir| FileUtils.mkdir_p(dir) }
25
+ [PATH_ONE/'clouds.rb', PATH_ONE/:clouds/'special.rb', PATH_ONE/:templates/'apache.conf'].each do |f|
26
+ File.write_to_file(f)
27
+ end
28
+
29
+ # create path two
30
+ [PATH_TWO/:clouds, PATH_TWO/:templates, PATH_TWO/:foo].each {|dir| FileUtils.mkdir_p(dir) }
31
+ [PATH_TWO/'swing.rb', PATH_TWO/'clouds.rb', PATH_TWO/:clouds/'common.rb', PATH_TWO/:templates/'mysql.conf'].each do |f|
32
+ File.write_to_file(f)
33
+ end
34
+
35
+ @template = TestFile.new
36
+ @cloud = TestFile2.new
37
+ end
38
+
39
+ describe "class methods" do
40
+ it "should have class options set" do
41
+ TestFile.searchable_paths_dir.should == "templates"
42
+ TestFile.searchable_paths_dirs.should == ["templates"]
43
+ TestFile2.searchable_paths_dirs.should == ["clouds", "/"]
44
+ end
45
+ end
46
+
47
+ describe "#find_file" do
48
+ it "should be able to find a template" do
49
+ @template.find_file("apache.conf").should_not be_nil
50
+ @template.find_file("apache.conf").should == PATH_ONE/:templates/'apache.conf'
51
+ @template.find_file("mysql.conf").should == PATH_TWO/:templates/'mysql.conf'
52
+ end
53
+
54
+ it "shouldn't find a template that doesn't exist" do
55
+ @template.find_file("post-office.conf").should be_nil
56
+ end
57
+
58
+ it "should find something with prepended paths" do
59
+ @cloud.find_file("clouds.rb").should == PATH_ONE/'clouds.rb'
60
+ @cloud.find_file("swing.rb").should == PATH_TWO/'swing.rb'
61
+ end
62
+
63
+ it "should find things in the right order" do
64
+ @cloud.find_file("clouds.rb").should == PATH_ONE/'clouds.rb'
65
+ end
66
+ end
67
+
68
+ describe "#search_in_known_locations" do
69
+ before(:each) do
70
+ # create path one
71
+ FileUtils.mkdir_p(PATH_ONE/'extra')
72
+ File.write_to_file(PATH_ONE/'extra'/'clouds.rb')
73
+ end
74
+
75
+ it "should look in the additional search paths first" do
76
+ @cloud.find_file("clouds.rb", [PATH_ONE/'extra']).should == PATH_ONE/'extra'/'clouds.rb'
77
+ end
78
+ end
79
+
80
+ after(:each) do
81
+ FileUtils.rm_rf(PATH_TEST_ROOT)
82
+ end
83
+ end
@@ -5,8 +5,7 @@ include PoolParty::Remote
5
5
 
6
6
  describe "Remote Instance" do
7
7
  before(:each) do
8
- setup
9
- @valid_hash = {:ip => "127.0.0.1", :name => "master", :responding => "true"}
8
+ @valid_hash = {:public_ip=>'33.44.55.66', :ip => "127.0.0.1", :name => "master", :responding => "true"}
10
9
  end
11
10
 
12
11
  it "should have tests for the abstaract RemoteInstance class" do
@@ -7,14 +7,10 @@ end
7
7
 
8
8
  describe "RemoterBase" do
9
9
  before(:each) do
10
- setup
10
+ @tr = TestRemoteClass.new
11
11
  end
12
- describe "methods" do
13
- before(:each) do
14
- @tr = TestRemoteClass.new
15
- end
16
- %w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
17
- eval <<-EOE
12
+ %w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
13
+ eval <<-EOE
18
14
  it "should raise an exception if #{method} is not defined as a method" do
19
15
  # pending # Weird .should raise_error
20
16
  lambda { @tr.class.#{method} }.should raise_error
@@ -28,8 +24,8 @@ describe "RemoterBase" do
28
24
  @tr.#{method}
29
25
  }.should_not raise_error
30
26
  end
31
- EOE
32
- end
33
-
27
+ EOE
28
+
34
29
  end
35
- end
30
+ end
31
+
@@ -3,22 +3,20 @@ class TestEC2Class < Ec2
3
3
  include CloudDsl
4
4
  include Dslify
5
5
 
6
- default_options PoolParty::Default.default_options.merge({:access_key => "Not an access key",
7
- :secret_access_key => "not a secret access key", :keypair => 'id_rsa'})
6
+ default_options :access_key => "Not an access key",
7
+ :secret_access_key => "not a secret access key",
8
+ :keypair => 'id_rsa'
8
9
 
9
- def ami;"ami-abc123";end
10
- def size; "small";end
11
- def security_group; "default";end
12
- def ebs_volume_id; "ebs_volume_id";end
13
- def availabilty_zone; "us-east-1a";end
14
- def verbose; false; end
10
+ # def ami;"ami-abc123";end
11
+ # def size; "small";end
12
+ # def security_group; "default";end
13
+ # def ebs_volume_id; "ebs_volume_id";end
14
+ # def availability_zone; "us-east-1a";end
15
+ # def verbose; false; end
15
16
  def describe_instances(o={})
16
17
  response_list_of_instances
17
18
  end
18
19
  end
19
20
 
20
21
  class TestEc2RemoteInstance < PoolParty::Remote::Ec2RemoteInstance
21
- def initialize(opts, p=nil)
22
- super
23
- end
24
22
  end
@@ -2,30 +2,21 @@ require File.join(File.dirname(__FILE__), '../../spec_helper')
2
2
  require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
3
3
 
4
4
  include PoolParty::Remote
5
- # include Aska
6
-
7
- # require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
8
5
 
9
6
 
10
7
  describe "Ec2RemoteInstance" do
11
8
  before(:each) do
12
9
  @cloud = TestCloud.new :test_remoter_base_cloud
13
- @ec2 = TestEc2RemoteInstance.new( {:name => "node3"}, TestEC2Class.new(@cloud) )
14
- # node3 stubbed as {:ip=>"192.168.0.3", :keypair=>"fake_keypair", :status=>"pending", :name=>"node3", :launching_time=>Time.now
15
- @ec2.my_cloud.stub!(:describe_instances).and_return response_list_of_instances
16
- end
17
- it "should require options" do
18
- lambda {TestEc2RemoteInstance.new()}.should raise_error
10
+ @tec2 = TestEC2Class.new(@cloud.dsl_options)
11
+ @ec2 = TestEc2RemoteInstance.new( @tec2.dsl_options.merge(:name => "node3", :status => "pending", :ip => "192.168.0.3"))
19
12
  end
20
13
  it "should have the name set in the options" do
21
- @ec2.respond_to?(:name).should == false
22
- @ec2.options.keys.include?(:name).should == true
14
+ @ec2.respond_to?(:name).should == true
15
+ @ec2.dsl_options.keys.include?(:name).should == true
23
16
  @ec2.name.should == 'node3'
24
17
  end
25
18
  it "should have access to parent cloud options" do
26
- @ec2.my_cloud.class.should == TestEC2Class
27
- @ec2.my_cloud.should respond_to(:describe_instances)
28
- @ec2.my_cloud.size.should == 'small'
19
+ @ec2.instance_type.should == 'm1.small'
29
20
  end
30
21
  it "should have instance description hash mapped to methods" do
31
22
  # puts "<ol>"
@@ -34,43 +25,14 @@ describe "Ec2RemoteInstance" do
34
25
  @ec2.status.should == 'pending'
35
26
  @ec2.name.should == 'node3'
36
27
  @ec2.ip.should == '192.168.0.3'
37
- @ec2.launching_time.should_not be_nil
38
- @ec2.valid?.should be_true
39
- end
40
- it "should not be the master" do
41
- @ec2.master?.should_not be_true
42
28
  end
43
29
  end
44
30
 
45
-
46
-
47
-
48
-
49
-
50
31
  describe "Remote Instance" do
51
32
  before(:each) do
52
- setup
53
33
  @valid_hash = {:ip => "127.0.0.1", :name => "master"}
54
34
  end
55
35
 
56
- describe "configurable" do
57
- it "should set the options sent in the options, overiding passed option with found instance values" do
58
- @ec2 = TestEc2RemoteInstance.new(@valid_hash)
59
- @ec2.ip.should == "127.0.0.1"
60
- end
61
- it "should set the options sent by the parent" do
62
- @obj = Object.new
63
- @obj.stub!(:options).and_return({:dude => "tte"})
64
- @ec2 = @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
65
- @ec2.dude.should == "tte"
66
- end
67
- it "should not overwrite the options that are already set" do
68
- @obj = Object.new
69
- @obj.stub!(:options).and_return({:ip => "172.176.0.1"})
70
- @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
71
- @ec2.ip.should == "127.0.0.1"
72
- end
73
- end
74
36
  it "should create a remote instance with a Hash" do
75
37
  @ec2 = TestEc2RemoteInstance.new(@valid_hash)
76
38
  @ec2.valid?.should == true
@@ -105,20 +67,8 @@ describe "Remote Instance" do
105
67
  @ec2.stub!(:launching_time).and_return(30.minutes.ago)
106
68
  @ec2.elapsed_runtime.should be >= 1800
107
69
  end
108
- it "should be say that it is the master if the name is master" do
109
- @ec2.name.should == "master"
110
- @ec2.master?.should == true
111
- end
112
70
  it "should say that it is responding? if responding is not nil" do
113
71
  @ec2.running?.should == true
114
- @ec2.responding?.should == true
115
- # @ec2.responding.should_not be_nil
116
- end
117
- it "should have the puppet_runner_command" do
118
- @ec2.respond_to?(:puppet_runner_command).should == true
119
- end
120
- it "should return the puppet_runner_command with puppetd" do
121
- @ec2.puppet_runner_command.should =~ /puppetrun/
122
72
  end
123
73
  end
124
- end
74
+ end
@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
5
5
  describe "ec2 remote base" do
6
6
  before(:each) do
7
7
  @cloud = TestCloud.new :test_remoter_base_cloud
8
- @tr = TestEC2Class.new(@cloud)
8
+ @tr = TestEC2Class.new( TestCloud.default_options )
9
9
  stub_remoter_for(@tr)
10
10
  # @tr.stub!(:get_instances_description).and_return response_list_of_instances
11
11
  end
@@ -17,9 +17,12 @@ describe "ec2 remote base" do
17
17
  EOE
18
18
  end
19
19
  describe "helpers" do
20
- it "should be able to convert an ec2 ip to a real ip" do
20
+ it "should be able to convert an american ec2 ip to a real ip" do
21
21
  "ec2-72-44-36-12.compute-1.amazonaws.com".convert_from_ec2_to_ip.should == "72.44.36.12"
22
22
  end
23
+ it "should be able to convert an european ec2 ip to a real ip" do
24
+ "ec2-72-44-36-12.eu-west-1.compute.amazonaws.com".convert_from_ec2_to_ip.should == "72.44.36.12"
25
+ end
23
26
  it "should not throw an error if another string is returned" do
24
27
  "72.44.36.12".convert_from_ec2_to_ip.should == "72.44.36.12"
25
28
  end
@@ -49,7 +52,7 @@ describe "ec2 remote base" do
49
52
  # @tr.launch_new_instance!
50
53
  # end
51
54
  it "should get the hash response from EC2ResponseObject" do
52
- EC2ResponseObject.should_receive(:get_hash_from_response).and_return @ret_hash
55
+ EC2ResponseObject.should_receive(:describe_instance).and_return @ret_hash
53
56
  @tr.launch_new_instance! :keypair => "keys"
54
57
  end
55
58
  end
@@ -87,12 +90,11 @@ describe "ec2 remote base" do
87
90
  @resp = {"requestId"=>"be9bd2e9-4f8c-448f-993d-c21fe537e322", "addressesSet"=>{"item"=>[{"instanceId"=>nil, "publicIp"=>"174.129.212.93"}, {"instanceId"=>nil, "publicIp"=>"182.199.200.201"}]}, "xmlns"=>"http://ec2.amazonaws.com/doc/2008-12-01/"}
88
91
  @tr.ec2.stub!(:describe_addresses).and_return @resp
89
92
  end
90
- it "should have the next available elastic_ip" do
91
- @tr.next_unused_elastic_ip.should == "174.129.212.93"
93
+ it "should have the next available elastic_ip as nil if there are no ips set" do
94
+ @tr.next_unused_elastic_ip.should == nil
92
95
  end
93
96
  it "should use only the elastic ips set on the cloud" do
94
- @cloud.stub!(:elastic_ips?).and_return true
95
- @cloud.stub!(:elastic_ips).and_return ["182.199.200.201"]
97
+ @tr.stub!(:elastic_ips).and_return ["182.199.200.201"]
96
98
  @tr.stub!(:cloud).and_return @cloud
97
99
  @tr.next_unused_elastic_ip.should == "182.199.200.201"
98
100
  end
@@ -131,4 +133,5 @@ describe "ec2 remote base" do
131
133
  @tr.create_snapshot.should == nil
132
134
  end
133
135
  end
136
+
134
137
  end
@@ -2,10 +2,9 @@ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe "Remoter" do
4
4
  before(:each) do
5
- setup
6
5
  @cloud = cloud :app do;end
7
6
  @tc = TestClass.new
8
- @tc.parent = @cloud
7
+ # @tc.parent = @cloud
9
8
  @sample_instances_list = [{:ip => "192.168.0.1", :name => "master"}, {:ip => "192.168.0.2", :name => "node1"}]
10
9
  end
11
10
  describe "ssh_string" do
@@ -130,4 +129,4 @@ describe "Remoter" do
130
129
  # end
131
130
  # end
132
131
 
133
- end
132
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Remote Instance" do
4
+ before(:each) do
5
+ @tc = TestBaseClass.new do
6
+ end
7
+ end
8
+ it "should have the method has_line_in_file available on the class" do
9
+ @tc.respond_to?(:has_line_in_file).should == true
10
+ end
11
+ describe "call" do
12
+ before(:each) do
13
+ @tc.run_in_context do
14
+ has_authorized_key({:for_user => 'alerner',
15
+ :public_key_file => "#{::File.dirname(__FILE__)}/../fixtures/fake_key.pub"})
16
+ end
17
+ @compiled = ChefResolver.new(@tc.to_properties_hash).compile
18
+ end
19
+ it "should have the line in the file from ChefResolver" do
20
+ @compiled.should match(/~alerner\/\.ssh/)
21
+ end
22
+ end
23
+ end