fairchild-poolparty 1.1.4 → 1.1.5
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.
- data/README.txt +0 -12
- data/Rakefile +17 -1
- data/VERSION.yml +1 -1
- data/bin/cloud +20 -1
- data/bin/cloud-bootstrap +14 -4
- data/bin/cloud-configure +26 -9
- data/bin/cloud-contract +7 -7
- data/bin/cloud-describe +28 -0
- data/bin/cloud-expand +13 -6
- data/bin/cloud-list +3 -5
- data/bin/cloud-osxcopy +1 -1
- data/bin/cloud-provision +1 -1
- data/bin/cloud-show +6 -5
- data/bin/cloud-ssh +1 -3
- data/bin/cloud-start +8 -6
- data/bin/cloud-terminate +9 -7
- data/bin/server-cloud-elections +29 -18
- data/bin/server-ensure-provisioning +24 -29
- data/bin/server-list-active +10 -5
- data/bin/server-monitor.ru +18 -1
- data/bin/server-update-hosts +3 -3
- data/bin/server-write-new-nodes +1 -1
- data/config/jeweler.rb +12 -3
- data/lib/poolparty/aska/aska.rb +1 -12
- data/lib/poolparty/base_packages/haproxy.rb +26 -18
- data/lib/poolparty/base_packages/poolparty.rb +1 -1
- data/lib/poolparty/capistrano.rb +1 -1
- data/lib/poolparty/core/array.rb +12 -0
- data/lib/poolparty/core/hash.rb +12 -5
- data/lib/poolparty/core/nil.rb +8 -0
- data/lib/poolparty/core/object.rb +15 -5
- data/lib/poolparty/core/string.rb +28 -2
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +106 -79
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +5 -4
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +44 -17
- data/lib/poolparty/helpers/console.rb +1 -1
- data/lib/poolparty/helpers/optioner.rb +9 -2
- data/lib/poolparty/lite.rb +12 -2
- data/lib/poolparty/modules/callbacks.rb +44 -0
- data/lib/poolparty/modules/cloud_dsl.rb +17 -11
- data/lib/poolparty/modules/cloud_resourcer.rb +29 -21
- data/lib/poolparty/modules/definable_resource.rb +1 -1
- data/lib/poolparty/modules/pinger.rb +28 -0
- data/lib/poolparty/modules/resourcing_dsl.rb +7 -3
- data/lib/poolparty/modules/thread_pool.rb +107 -106
- data/lib/poolparty/modules/user_helpers.rb +20 -0
- data/lib/poolparty/monitors/base_monitor.rb +32 -81
- data/lib/poolparty/monitors/monitor_rack.rb +60 -69
- data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
- data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -15
- data/lib/poolparty/monitors/monitors/memory_monitor.rb +48 -48
- data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
- data/lib/poolparty/monitors/{stats_monitor.rb → monitors/stats_monitor.rb} +29 -24
- data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
- data/lib/poolparty/net/messenger.rb +2 -0
- data/lib/poolparty/net/remoter/cloud_control.rb +177 -227
- data/lib/poolparty/net/remoter/connections.rb +10 -18
- data/lib/poolparty/net/remoter/interactive.rb +24 -90
- data/lib/poolparty/net/remoter_base.rb +98 -25
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +83 -66
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +165 -0
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
- data/lib/poolparty/{base_packages → plugins}/bind.rb +1 -1
- data/lib/poolparty/plugins/chef.rb +71 -71
- data/lib/poolparty/plugins/chef_deploy.rb +58 -0
- data/lib/poolparty/plugins/{deploydirectory.rb → deploy_directory.rb} +12 -3
- data/lib/poolparty/plugins/dynomite.rb +14 -0
- data/lib/poolparty/plugins/gem_package.rb +37 -0
- data/lib/poolparty/plugins/line_in_file.rb +1 -0
- data/lib/poolparty/plugins/nanite.rb +41 -0
- data/lib/poolparty/{base_packages → plugins}/tokyo_tyrant.rb +1 -1
- data/lib/poolparty/poolparty/cloud.rb +36 -35
- data/lib/poolparty/poolparty/default.rb +2 -11
- data/lib/poolparty/poolparty/key.rb +15 -12
- data/lib/poolparty/poolparty/neighborhoods.rb +54 -21
- data/lib/poolparty/poolparty/plugin.rb +6 -9
- data/lib/poolparty/poolparty/plugin_model.rb +5 -5
- data/lib/poolparty/poolparty/pool.rb +8 -4
- data/lib/poolparty/poolparty/poolparty_base_class.rb +20 -11
- data/lib/poolparty/poolparty/resource.rb +9 -5
- data/lib/poolparty/poolparty/service.rb +3 -1
- data/lib/poolparty/provision/boot_strapper.rb +47 -24
- data/lib/poolparty/provision/configurations/chef.rb +7 -4
- data/lib/poolparty/provision/dr_configure.rb +80 -25
- data/lib/poolparty/resources/cron.rb +8 -0
- data/lib/poolparty/resources/directory.rb +1 -1
- data/lib/poolparty/resources/file.rb +16 -0
- data/lib/poolparty/resources/package.rb +7 -2
- data/lib/poolparty/resources/service.rb +4 -3
- data/lib/poolparty/resources/symlink.rb +0 -8
- data/lib/poolparty/schema.rb +35 -20
- data/lib/poolparty/templates/haproxy.conf +27 -25
- data/lib/poolparty/templates/monitor.ru +3 -3
- data/lib/poolparty/verification/verifier_base.rb +17 -0
- data/lib/poolparty/verification/verifiers/ping.rb +17 -0
- data/lib/poolparty/verification/verify.rb +74 -0
- data/lib/poolparty.rb +8 -9
- data/lib/poolpartycl.rb +14 -0
- data/spec/bin/server-list-active_spec.rb +2 -0
- data/spec/poolparty/base_packages/haproxy_spec.rb +1 -1
- data/spec/poolparty/core/array_spec.rb +3 -1
- data/spec/poolparty/core/ordered_hash_spec.rb +2 -2
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +9 -15
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +6 -6
- data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -124
- data/spec/poolparty/net/remote_spec.rb +287 -286
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +1 -1
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +7 -8
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +22 -7
- data/spec/poolparty/net/remoter_spec.rb +48 -45
- data/spec/poolparty/poolparty/cloud_spec.rb +15 -22
- data/spec/poolparty/poolparty/key_spec.rb +4 -4
- data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -2
- data/spec/poolparty/poolparty/plugin_spec.rb +2 -2
- data/spec/poolparty/poolparty/resource_spec.rb +4 -5
- data/spec/poolparty/poolparty_base_class_spec.rb +82 -78
- data/spec/poolparty/resources/package_spec.rb +0 -3
- data/spec/poolparty/spec_helper.rb +4 -4
- data/tasks/development.rake +9 -0
- data/test/poolparty/core/array_test.rb +21 -0
- data/test/poolparty/core/hash_test.rb +14 -1
- data/test/poolparty/core/string_test.rb +29 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +106 -0
- data/test/poolparty/modules/callbacks_test.rb +40 -0
- data/test/poolparty/modules/cloud_dsl_test.rb +25 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +50 -0
- data/test/poolparty/net/remoter_test.rb +14 -0
- data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
- data/test/poolparty/verification/verify_test.rb +49 -0
- data/test/test_helper.rb +4 -1
- data/test/test_poolparty.rb +6 -5
- data/vendor/chef/apache2/attributes/apache.rb +1 -1
- data/vendor/chef/apache2/templates/default/default-site.erb +1 -1
- data/vendor/chef/chef-deploy/LICENSE +201 -0
- data/vendor/chef/chef-deploy/README.rdoc +24 -0
- data/vendor/chef/chef-deploy/Rakefile +57 -0
- data/vendor/chef/chef-deploy/TODO +4 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
- data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
- metadata +57 -252
- data/bin/cloud-run +0 -18
- data/bin/cloud-stats +0 -17
- data/bin/ec2-list-active +0 -24
- data/bin/pool +0 -31
- data/bin/pool-describe +0 -8
- data/bin/pool-generate +0 -18
- data/bin/pool-init +0 -28
- data/bin/pool-list +0 -30
- data/bin/pool-start +0 -26
- data/bin/server-list-instances +0 -15
- data/lib/erlang/messenger/Emakefile +0 -1
- data/lib/erlang/messenger/Makefile +0 -15
- data/lib/erlang/messenger/README +0 -5
- data/lib/erlang/messenger/Rakefile +0 -72
- data/lib/erlang/messenger/control +0 -11
- data/lib/erlang/messenger/ebin/client.app +0 -19
- data/lib/erlang/messenger/ebin/master.app +0 -19
- data/lib/erlang/messenger/ebin/node.app +0 -19
- data/lib/erlang/messenger/ebin/packager.app +0 -19
- data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
- data/lib/erlang/messenger/include/defines.hrl +0 -27
- data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
- data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
- data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
- data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
- data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
- data/lib/erlang/messenger/lib/eunit/README +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
- data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
- data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
- data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
- data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
- data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
- data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
- data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
- data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
- data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
- data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
- data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
- data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
- data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
- data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
- data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
- data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
- data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
- data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
- data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
- data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
- data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
- data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
- data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
- data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
- data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
- data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
- data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
- data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
- data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
- data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
- data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
- data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
- data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
- data/lib/erlang/messenger/src/client_app.erl +0 -39
- data/lib/erlang/messenger/src/client_server.erl +0 -60
- data/lib/erlang/messenger/src/master_app.erl +0 -39
- data/lib/erlang/messenger/src/node_app.erl +0 -39
- data/lib/erlang/messenger/src/pm_client.erl +0 -49
- data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
- data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
- data/lib/erlang/messenger/src/pm_master.erl +0 -215
- data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
- data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
- data/lib/erlang/messenger/src/pm_node.erl +0 -200
- data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
- data/lib/erlang/messenger/src/pm_packager.erl +0 -76
- data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
- data/lib/erlang/messenger/src/pm_strings.erl +0 -11
- data/lib/erlang/messenger/src/utils.erl +0 -72
- data/lib/erlang/messenger/useful_snippets +0 -17
- data/lib/poolparty/monitors/monitors/server_monitor.rb +0 -7
- data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
- data/lib/poolparty/monitors/neighborhood_monitor.rb +0 -24
- data/lib/poolparty/monitors.rb +0 -6
- data/lib/poolparty/net/remoter/lists.rb +0 -12
- data/lib/poolparty/poolparty/custom_resource.rb +0 -45
- data/lib/poolparty/resources/custom_service.rb +0 -30
- data/lib/poolparty/services/gem_package.rb +0 -52
- data/lib/poolparty/version.rb +0 -15
- data/spec/poolparty/plugins/svn_spec.rb +0 -16
- data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -79
- data/vendor/gems/butterfly/History.txt +0 -4
- data/vendor/gems/butterfly/PostInstall.txt +0 -2
- data/vendor/gems/butterfly/README.rdoc +0 -48
- data/vendor/gems/butterfly/Rakefile +0 -62
- data/vendor/gems/butterfly/VERSION.yml +0 -4
- data/vendor/gems/butterfly/bin/flutter +0 -4
- data/vendor/gems/butterfly/butterfly.gemspec +0 -37
- data/vendor/gems/butterfly/examples/config.ru +0 -15
- data/vendor/gems/butterfly/examples/my_app.rb +0 -12
- data/vendor/gems/butterfly/lib/butterfly.rb +0 -14
- data/vendor/gems/butterfly/lib/handler.rb +0 -48
- data/vendor/gems/butterfly/lib/request.rb +0 -29
- data/vendor/gems/butterfly/lib/response.rb +0 -49
- data/vendor/gems/butterfly/script/console +0 -10
- data/vendor/gems/butterfly/script/destroy +0 -14
- data/vendor/gems/butterfly/script/generate +0 -14
- data/vendor/gems/butterfly/test/test_adapter_base.rb +0 -23
- data/vendor/gems/butterfly/test/test_butterfly_request.rb +0 -46
- data/vendor/gems/butterfly/test/test_butterfly_response.rb +0 -43
- data/vendor/gems/butterfly/test/test_butterfly_server.rb +0 -16
- data/vendor/gems/butterfly/test/test_default.rb +0 -12
- data/vendor/gems/butterfly/test/test_helper.rb +0 -6
- data/vendor/gems/dslify/History.txt +0 -4
- data/vendor/gems/dslify/Manifest.txt +0 -25
- data/vendor/gems/dslify/PostInstall.txt +0 -5
- data/vendor/gems/dslify/README.txt +0 -60
- data/vendor/gems/dslify/Rakefile +0 -56
- data/vendor/gems/dslify/config/hoe.rb +0 -73
- data/vendor/gems/dslify/config/requirements.rb +0 -15
- data/vendor/gems/dslify/dslify.gemspec +0 -40
- data/vendor/gems/dslify/lib/dslify/dslify.rb +0 -69
- data/vendor/gems/dslify/lib/dslify/version.rb +0 -10
- data/vendor/gems/dslify/lib/dslify.rb +0 -7
- data/vendor/gems/dslify/script/console +0 -10
- data/vendor/gems/dslify/script/destroy +0 -14
- data/vendor/gems/dslify/script/generate +0 -14
- data/vendor/gems/dslify/script/txt2html +0 -82
- data/vendor/gems/dslify/setup.rb +0 -1585
- data/vendor/gems/dslify/tasks/deployment.rake +0 -34
- data/vendor/gems/dslify/tasks/environment.rake +0 -7
- data/vendor/gems/dslify/tasks/website.rake +0 -17
- data/vendor/gems/dslify/test/test_dslify.rb +0 -114
- data/vendor/gems/dslify/website/index.html +0 -86
- data/vendor/gems/dslify/website/index.txt +0 -83
- data/vendor/gems/dslify/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/vendor/gems/dslify/website/stylesheets/screen.css +0 -138
- data/vendor/gems/dslify/website/template.html.erb +0 -48
- data/vendor/gems/parenting/History.txt +0 -4
- data/vendor/gems/parenting/Manifest.txt +0 -13
- data/vendor/gems/parenting/PostInstall.txt +0 -2
- data/vendor/gems/parenting/README.rdoc +0 -47
- data/vendor/gems/parenting/Rakefile +0 -28
- data/vendor/gems/parenting/lib/parenting/base.rb +0 -65
- data/vendor/gems/parenting/lib/parenting.rb +0 -10
- data/vendor/gems/parenting/parenting.gemspec +0 -39
- data/vendor/gems/parenting/script/console +0 -10
- data/vendor/gems/parenting/script/destroy +0 -14
- data/vendor/gems/parenting/script/generate +0 -14
- data/vendor/gems/parenting/test/file_to_eval.rb +0 -9
- data/vendor/gems/parenting/test/test_helper.rb +0 -5
- data/vendor/gems/parenting/test/test_parenting.rb +0 -89
- data/vendor/gems/suitcase/LICENSE +0 -20
- data/vendor/gems/suitcase/README.rdoc +0 -31
- data/vendor/gems/suitcase/Rakefile +0 -57
- data/vendor/gems/suitcase/VERSION.yml +0 -4
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +0 -15
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +0 -119
- data/vendor/gems/suitcase/lib/suitcase.rb +0 -5
- data/vendor/gems/suitcase/suitcase.gemspec +0 -32
- data/vendor/gems/suitcase/test/suitcase_test.rb +0 -102
- data/vendor/gems/suitcase/test/test_dir/box.rb +0 -1
- data/vendor/gems/suitcase/test/test_dir/test.txt +0 -1
- data/vendor/gems/suitcase/test/test_helper.rb +0 -12
data/README.txt
CHANGED
|
@@ -37,18 +37,6 @@ Erlang
|
|
|
37
37
|
|
|
38
38
|
sudo gem install auser-poolparty
|
|
39
39
|
|
|
40
|
-
== TODO:
|
|
41
|
-
* Update hot reloading of puppet (force-reload?)
|
|
42
|
-
* Add pingback for nodes to master when failure occurs
|
|
43
|
-
* Add become master for the nodes
|
|
44
|
-
* Add hot reload to haproxy while reconfiguring
|
|
45
|
-
* Replace services with Runit
|
|
46
|
-
* Refactor provisioning to use erlang
|
|
47
|
-
* Add queuing of tasks on the messenger
|
|
48
|
-
* Add syntax checker on the manifests
|
|
49
|
-
* Move in collectd support
|
|
50
|
-
* Remove master-slave protocol
|
|
51
|
-
|
|
52
40
|
== LICENSE:
|
|
53
41
|
|
|
54
42
|
(The MIT License)
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
require 'config/requirements'
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'hanna/rdoctask'
|
|
5
|
+
rescue Exception => e
|
|
6
|
+
require "rake/rdoctask"
|
|
7
|
+
end
|
|
8
|
+
|
|
2
9
|
require 'config/jeweler' # setup gem configuration
|
|
3
10
|
|
|
4
11
|
Dir['tasks/**/*.rake'].each { |rake| load rake }
|
|
@@ -42,4 +49,13 @@ namespace :gem do
|
|
|
42
49
|
task :test_then_install => [:spec, :install]
|
|
43
50
|
end
|
|
44
51
|
|
|
45
|
-
task :release => [:update_timestamp]
|
|
52
|
+
task :release => [:update_timestamp]
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
# Generate documentation
|
|
56
|
+
Rake::RDocTask.new do |rd|
|
|
57
|
+
rd.main = "Readme.txt"
|
|
58
|
+
rd.rdoc_files.include("Readme.txt", "lib/**/*.rb")
|
|
59
|
+
rd.rdoc_dir = "rdoc"
|
|
60
|
+
# rd.template = "hanaa"
|
|
61
|
+
end
|
data/VERSION.yml
CHANGED
data/bin/cloud
CHANGED
|
@@ -15,7 +15,26 @@ new_args = new_args.reject {|arg| Binary.available_binaries_for("cloud").include
|
|
|
15
15
|
# Let's make sure if no command is passed in that we show the help message
|
|
16
16
|
new_args.push("-h") unless name
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# Binary.list_binaries_for("cloud")
|
|
19
|
+
extra_help_string = <<-EOE
|
|
20
|
+
|
|
21
|
+
Cloud commands
|
|
22
|
+
cloud start starts a single instance in your cloud.
|
|
23
|
+
cloud bootstrap bootstraps an instance or multiple instances
|
|
24
|
+
cloud configure configures an instance or multiple instances
|
|
25
|
+
cloud provision combines bootstrap and configures an instance or multiple instances
|
|
26
|
+
cloud expand expands the cloud by a single instance
|
|
27
|
+
cloud contract contracts the cloud by a single instance
|
|
28
|
+
cloud describe show the configuration of the current clouds.rb configuration file
|
|
29
|
+
cloud list show a list of the current instances on the cloud
|
|
30
|
+
cloud ssh ssh into an instance of the cloud
|
|
31
|
+
cloud terminate terminate the cloud
|
|
32
|
+
|
|
33
|
+
EOE
|
|
34
|
+
|
|
35
|
+
o = PoolParty::Optioner.new(new_args, {
|
|
36
|
+
:extra_help => extra_help_string,
|
|
37
|
+
:abstract => true}) do |opts, optioner|
|
|
19
38
|
opts.on('-n cloudname', '--name name', 'Address this cloud') { |c| optioner.cloudname c }
|
|
20
39
|
end
|
|
21
40
|
|
data/bin/cloud-bootstrap
CHANGED
|
@@ -3,19 +3,29 @@ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
|
3
3
|
require "poolparty"
|
|
4
4
|
require "poolparty/provision/boot_strapper"
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
8
|
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
9
|
+
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
o.loaded_clouds.each do |cld|
|
|
11
13
|
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
12
|
-
|
|
14
|
+
# ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
|
|
15
|
+
|
|
16
|
+
nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i| i.ip }.sort.compact
|
|
13
17
|
if nodes.empty?
|
|
14
18
|
puts "No nodes to bootstrap"
|
|
15
19
|
else
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
::PoolParty::Provision::BootStrapper.new
|
|
20
|
+
if o.inst_num?
|
|
21
|
+
vputs "\nBootStrapping: #{nodes[o.inst_num]}\n--------------------"
|
|
22
|
+
::PoolParty::Provision::BootStrapper.new nodes[o.inst_num], :cloud => cld
|
|
23
|
+
else
|
|
24
|
+
nodes.each do |address|
|
|
25
|
+
vputs "\nBootStrapping: #{address}\n--------------------"
|
|
26
|
+
::PoolParty::Provision::BootStrapper.new address, :cloud => cld
|
|
27
|
+
end
|
|
19
28
|
end
|
|
20
29
|
end
|
|
21
30
|
end
|
|
31
|
+
|
data/bin/cloud-configure
CHANGED
|
@@ -2,23 +2,40 @@
|
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
3
|
require "poolparty"
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
extra_help_string = <<-EOE
|
|
6
|
+
|
|
7
|
+
Cloud configure
|
|
8
|
+
|
|
9
|
+
Cloud configure will repackage the deployment and send it off to a
|
|
10
|
+
remote instance from within the cloud. It then will reconfigure
|
|
11
|
+
itself and alert the rest of the cloud
|
|
12
|
+
|
|
13
|
+
EOE
|
|
14
|
+
|
|
15
|
+
o = PoolParty::Optioner.new(ARGV, {:extra_help => extra_help_string}) do |opts, optioner|
|
|
6
16
|
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
7
17
|
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
8
18
|
end
|
|
9
19
|
|
|
10
20
|
o.loaded_clouds.each do |cld|
|
|
11
21
|
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
# ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
|
|
23
|
+
|
|
24
|
+
if cld.nodes(:status => "running").size < 1
|
|
25
|
+
puts header("No instances running")
|
|
15
26
|
else
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i| i.ip }.sort.compact
|
|
28
|
+
if nodes.empty?
|
|
29
|
+
puts "No nodes to configure"
|
|
18
30
|
else
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
::PoolParty::Provision::DrConfigure.new(
|
|
31
|
+
if o.inst_num?
|
|
32
|
+
vputs "Configuring #{nodes[o.inst_num]}"
|
|
33
|
+
::PoolParty::Provision::DrConfigure.new( nodes[o.inst_num], :cloud => cld )
|
|
34
|
+
else
|
|
35
|
+
nodes.each do |address|
|
|
36
|
+
puts "Configuring: #{address}"
|
|
37
|
+
::PoolParty::Provision::DrConfigure.new( address, :cloud => cld )
|
|
38
|
+
end
|
|
22
39
|
end
|
|
23
40
|
end
|
|
24
41
|
end
|
data/bin/cloud-contract
CHANGED
|
@@ -7,11 +7,11 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
|
7
7
|
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
o.loaded_clouds.each do |
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
o.loaded_clouds.each do |cld|
|
|
11
|
+
puts header("Contracting cloud #{cld.name}")
|
|
12
|
+
puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} minimum instances)"
|
|
13
|
+
puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
|
|
14
|
+
|
|
15
|
+
last_instance_id = cld.nodes(:status => "running").last[:instance_id]
|
|
16
|
+
cld.remote_base.terminate_instance! cld.options.merge(:instance_id => last_instance_id)
|
|
17
17
|
end
|
data/bin/cloud-describe
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
+
require "poolparty"
|
|
4
|
+
|
|
5
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
6
|
+
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
o.loaded_clouds.each do |cld|
|
|
10
|
+
puts "\nFrom #{$pool_specfile}\n"
|
|
11
|
+
print_with_nice_printer "Cloud: #{cld.name}", [
|
|
12
|
+
"instances #{cld.minimum_instances}..#{cld.maximum_instances}",
|
|
13
|
+
"keypair #{cld.keypair}",
|
|
14
|
+
"remoter #{cld.remote_base.class.to_s.top_level_class}"
|
|
15
|
+
] do |printer|
|
|
16
|
+
if cld.nodes(:status => "running").size > 0
|
|
17
|
+
printer.empty
|
|
18
|
+
printer.center("Active instances")
|
|
19
|
+
printer << cld.nodes(:status => "running").map{|a| a.ip.strip }.join("\n")
|
|
20
|
+
end
|
|
21
|
+
if cld.nodes(:status => "pending").size > 0
|
|
22
|
+
printer.empty
|
|
23
|
+
printer.center "Pending instances"
|
|
24
|
+
printer << cld.nodes(:status => "pending").map{|a| a.to_s}.join("\n")
|
|
25
|
+
end
|
|
26
|
+
printer.empty
|
|
27
|
+
end
|
|
28
|
+
end
|
data/bin/cloud-expand
CHANGED
|
@@ -7,13 +7,20 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
|
7
7
|
opts.on('-n name', '--name name', 'Expand the cloud on this name') { |c| optioner.cloudname c }
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
o.loaded_clouds.each do |
|
|
10
|
+
o.loaded_clouds.each do |cld|
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
vputs header("Expanding cloud #{cld.name}")
|
|
13
|
+
vputs "#{cld.nodes(:status => "running").size} running instances of #{cld.maximum_instances} possible instances"
|
|
14
|
+
vputs testing ? "Not expanding (test mode)" : "Expanding the cloud"
|
|
15
|
+
|
|
16
|
+
cld.launch_instance! do |node|
|
|
17
|
+
::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
|
|
18
|
+
::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
|
|
19
|
+
|
|
20
|
+
puts <<-EOM
|
|
21
|
+
Your cloud has expanded. The new ip is #{node.ip}
|
|
22
|
+
EOM
|
|
17
23
|
end
|
|
18
24
|
|
|
25
|
+
|
|
19
26
|
end
|
data/bin/cloud-list
CHANGED
|
@@ -10,14 +10,12 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
o.loaded_clouds.each do |cld|
|
|
13
|
-
|
|
14
13
|
puts header("Listing cloud #{cld.name}")
|
|
15
|
-
|
|
16
14
|
puts subheader("Active instances")
|
|
17
|
-
puts cld.
|
|
15
|
+
puts cld.nodes(:status => "running").map{|a| "#{a[:instance_id]}\t#{a[:ip]}" }.join("\n")
|
|
18
16
|
|
|
19
|
-
if cld.
|
|
17
|
+
if cld.nodes(:status => "pending").size > 0
|
|
20
18
|
puts subheader("Pending instances")
|
|
21
|
-
puts cld.
|
|
19
|
+
puts cld.nodes(:status => "pending").map{|a| "#{a[:instance_id]}\t#{a[:ip]}" }.join("\n")
|
|
22
20
|
end
|
|
23
21
|
end
|
data/bin/cloud-osxcopy
CHANGED
data/bin/cloud-provision
CHANGED
|
@@ -10,7 +10,7 @@ end
|
|
|
10
10
|
|
|
11
11
|
o.loaded_clouds.each do |cld|
|
|
12
12
|
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
13
|
-
nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.
|
|
13
|
+
nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.nodes(:status => "running").collect {|i|i.ip }.compact
|
|
14
14
|
if nodes.empty?
|
|
15
15
|
puts "No nodes to bootstrap"
|
|
16
16
|
else
|
data/bin/cloud-show
CHANGED
|
@@ -10,17 +10,18 @@ o.loaded_clouds.each do |cld|
|
|
|
10
10
|
puts "\nFrom #{$pool_specfile}\n"
|
|
11
11
|
print_with_nice_printer "Cloud: #{cld.name}", [
|
|
12
12
|
"instances #{cld.minimum_instances}..#{cld.maximum_instances}",
|
|
13
|
-
"keypair #{cld.keypair}"
|
|
13
|
+
"keypair #{cld.keypair}",
|
|
14
|
+
"using #{cld.remote_base.class.to_s.top_level_class}"
|
|
14
15
|
] do |printer|
|
|
15
|
-
if cld.
|
|
16
|
+
if cld.nodes(:status => "running").size > 0
|
|
16
17
|
printer.empty
|
|
17
18
|
printer.center("Active instances")
|
|
18
|
-
printer <<
|
|
19
|
+
printer << nodes(:status => "running").map{|a| a.ip.strip }.join("\n")
|
|
19
20
|
end
|
|
20
|
-
if cld.
|
|
21
|
+
if cld.nodes(:status => "pending").size > 0
|
|
21
22
|
printer.empty
|
|
22
23
|
printer.center "Pending instances"
|
|
23
|
-
printer << cld.
|
|
24
|
+
printer << cld.nodes(:status => "pending").map{|a| a.to_s}.join("\n")
|
|
24
25
|
end
|
|
25
26
|
printer.empty
|
|
26
27
|
end
|
data/bin/cloud-ssh
CHANGED
|
@@ -11,9 +11,7 @@ end
|
|
|
11
11
|
load_pool(o.spec? ? o.spec : Binary.get_existing_spec_location)
|
|
12
12
|
|
|
13
13
|
@cloud = o.loaded_clouds.first
|
|
14
|
-
nodes = @cloud.
|
|
15
|
-
|
|
16
|
-
puts nodes.map {|a| a.to_s}.join("\n")
|
|
14
|
+
nodes = @cloud.nodes(:status => "running")
|
|
17
15
|
|
|
18
16
|
if !nodes.empty?
|
|
19
17
|
n = o.inst_num? ? o.inst_num : 0
|
data/bin/cloud-start
CHANGED
|
@@ -7,13 +7,15 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
o.loaded_clouds.each do |cld|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
puts "
|
|
10
|
+
|
|
11
|
+
if cld.nodes(:status => "running").size.zero?
|
|
12
|
+
puts header("Starting cloud #{cld.name} (#{cld.keypair})")
|
|
13
|
+
puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} - #{cld.maximum_instances})"
|
|
13
14
|
|
|
14
|
-
cld.launch_instance! do |node|
|
|
15
|
-
|
|
16
|
-
::PoolParty::Provision::
|
|
15
|
+
cld.launch_instance!(cld.dsl_options) do |node|
|
|
16
|
+
|
|
17
|
+
::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
|
|
18
|
+
::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
|
|
17
19
|
|
|
18
20
|
puts <<-EOM
|
|
19
21
|
Your cloud has started. Your ip is #{node.ip}
|
data/bin/cloud-terminate
CHANGED
|
@@ -7,14 +7,16 @@ o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
|
7
7
|
opts.on('-n name', '--name name', 'Terminate the cloud of this name') { |c| optioner.cloudname c }
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
o.loaded_clouds.each do |
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
o.loaded_clouds.each do |cld|
|
|
11
|
+
cld.nodes(:status => "running").each do |inst|
|
|
12
|
+
msg = <<-EOM
|
|
13
|
+
Shutting down #{inst.instance_id}
|
|
14
|
+
Are you sure? (Y/N)
|
|
15
|
+
EOM
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
if are_you_sure?(msg)
|
|
15
18
|
puts "Shutting down #{inst.instance_id}"
|
|
16
|
-
terminate_instance!(:instance_id => inst.instance_id)
|
|
19
|
+
cld.terminate_instance!(:instance_id => inst.instance_id)
|
|
17
20
|
end
|
|
18
|
-
|
|
19
|
-
end
|
|
21
|
+
end
|
|
20
22
|
end
|
data/bin/server-cloud-elections
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require
|
|
4
|
-
require 'json'
|
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
+
require "poolparty"
|
|
5
4
|
require "poolparty/lite"
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
+
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
8
|
+
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
vote_for = o.unflagged_args.shift || "none"
|
|
12
|
+
|
|
13
|
+
schema = ::PoolParty.load_cloud_from_json(o.unflagged_args.shift) #TODO: smarter option parser
|
|
9
14
|
remote_base_name = schema.options.remote_base.split('::')[-1].camelcase
|
|
10
15
|
remoter_base = PoolParty::Remote.module_eval(remote_base_name)
|
|
11
|
-
require 'rubygems'; require 'ruby-debug'; debugger
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
o.loaded_clouds.each do |cld|
|
|
18
|
+
cld.update_from_schema(schema)
|
|
19
|
+
|
|
20
|
+
case vote_for
|
|
21
|
+
when "expand"
|
|
22
|
+
vputs "Launching new instance"
|
|
23
|
+
cld.send :launch_instance!, schema.options do |node|
|
|
24
|
+
dputs "Started node at #{node[:ip]}"
|
|
25
|
+
|
|
26
|
+
::PoolParty::Provision::BootStrapper.new( node[:ip], :cloud => cld )
|
|
27
|
+
::PoolParty::Provision::DrConfigure.new( node[:ip], :cloud => cld )
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
when "contract"
|
|
31
|
+
last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
|
|
32
|
+
remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
|
|
33
|
+
else
|
|
34
|
+
puts "Unknown action: #{vote_for}"
|
|
19
35
|
end
|
|
20
|
-
|
|
21
|
-
last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
|
|
22
|
-
remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
|
|
23
|
-
else
|
|
24
|
-
puts "Unknown action: #{vote_for}"
|
|
36
|
+
|
|
25
37
|
end
|
|
26
|
-
|
|
@@ -1,38 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "
|
|
4
|
+
require "poolparty/lite"
|
|
5
5
|
|
|
6
|
-
available_monitors = PoolParty::Monitors.available_monitors
|
|
7
6
|
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
8
|
-
opts.on('-n
|
|
9
|
-
opts.on('-
|
|
7
|
+
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
8
|
+
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
10
9
|
end
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
schema = ::PoolParty.load_cloud_from_json
|
|
12
|
+
|
|
13
|
+
o.loaded_clouds.each do |cld|
|
|
14
|
+
cld.update_from_schema(schema)
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
vputs "Executing #{cmd}"
|
|
32
|
-
running = %x[#{running_cmd}]
|
|
33
|
-
`#{cmd}` if running.chomp.empty?
|
|
16
|
+
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
17
|
+
nodes = !o.unflagged_args.empty? ? o.unflagged_args : cld.remote_instances_list.collect {|inst| inst.ip if inst.running? }.compact
|
|
18
|
+
if nodes.empty?
|
|
19
|
+
puts "No nodes to bootstrap"
|
|
20
|
+
else
|
|
21
|
+
if o.inst_num?
|
|
22
|
+
::PoolParty::Provision::BootStrapper.new( nodes[o.inst_num], :cloud => cld )
|
|
23
|
+
::PoolParty::Provision::DrConfigure.new( nodes[o.inst_num], :cloud => cld )
|
|
24
|
+
else
|
|
25
|
+
nodes.each do |address|
|
|
26
|
+
puts "bootstrapping: #{address}"
|
|
27
|
+
::PoolParty::Provision::BootStrapper.new( address, :cloud => cld )
|
|
28
|
+
::PoolParty::Provision::DrConfigure.new( address, :cloud => cld )
|
|
29
|
+
end
|
|
34
30
|
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
data/bin/server-list-active
CHANGED
|
@@ -8,17 +8,22 @@ json_file = ARGV[0] || PoolParty::Default.properties_hash_file
|
|
|
8
8
|
raise "ERROR: no json_file given" if !json_file
|
|
9
9
|
schema = PoolParty::Schema.new( ::File.read(json_file) )
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
inst_array = PoolParty::Neighborhoods.load_default.instances.instances
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if !inst_array || inst_array.empty?
|
|
14
|
+
remoter_base = schema.options.remote_base
|
|
15
|
+
remote_base = remoter_base.top_level_class.constantize(PoolParty::Remote)
|
|
16
|
+
|
|
17
|
+
instances = remote_base.send :describe_instances, schema.options
|
|
18
|
+
inst_array = instances.map {|inst| inst.send list_type.to_sym }
|
|
19
|
+
end
|
|
15
20
|
|
|
16
21
|
print_array =
|
|
17
22
|
case list_type
|
|
18
23
|
when "ip"
|
|
19
|
-
inst_array.
|
|
24
|
+
inst_array.compact.map {|i| i.ip }
|
|
20
25
|
when "internal_ip"
|
|
21
|
-
inst_array.compact.map {|
|
|
26
|
+
inst_array.compact.map {|i| i.internal_ip || i.ip }
|
|
22
27
|
else
|
|
23
28
|
inst_array
|
|
24
29
|
end
|
data/bin/server-monitor.ru
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
require 'rubygems'
|
|
3
3
|
require 'rack'
|
|
4
|
-
require 'rack/contrib'
|
|
4
|
+
# require 'rack/contrib'
|
|
5
5
|
require 'json'
|
|
6
6
|
require 'thin'
|
|
7
7
|
require ::File.join(::File.dirname(__FILE__),'..','lib/poolparty/monitors/', 'monitor_rack.rb')
|
|
8
8
|
|
|
9
|
+
class Baton
|
|
10
|
+
def initialize(app)
|
|
11
|
+
@app = app
|
|
12
|
+
end
|
|
13
|
+
def call(env)
|
|
14
|
+
self.class.call(env)
|
|
15
|
+
end
|
|
16
|
+
def self.call(env)
|
|
17
|
+
puts "received: #{env.to_yaml}\n------\n"
|
|
18
|
+
response = Rack::Response.new
|
|
19
|
+
response.write "requested: #{env["REQUEST_PATH"]}"
|
|
20
|
+
response.finish
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
9
24
|
|
|
10
25
|
app = Rack::Builder.new do
|
|
11
26
|
use Rack::Reloader, 2
|
|
12
27
|
use Rack::ShowExceptions
|
|
13
28
|
use Rack::Lint
|
|
29
|
+
use Baton
|
|
14
30
|
# use Rack::PostBodyContentTypeParser #parses json requests to params hash
|
|
15
31
|
run Monitors::MonitorRack.new()
|
|
32
|
+
run_after
|
|
16
33
|
end
|
|
17
34
|
|
|
18
35
|
if __FILE__ == $0
|
data/bin/server-update-hosts
CHANGED
|
@@ -13,14 +13,14 @@ o.loaded_clouds.each do |cloud|
|
|
|
13
13
|
|
|
14
14
|
new_hosts_listing = returning Array.new do |arr|
|
|
15
15
|
|
|
16
|
-
puts
|
|
16
|
+
puts nodes(:status => "running")
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
nodes(:status => "running").each do |ri|
|
|
19
19
|
vputs ri.hosts_file_listing_for(self)
|
|
20
20
|
arr << ri.hosts_file_listing_for(self)
|
|
21
21
|
end
|
|
22
22
|
other_clouds.each do |other|
|
|
23
|
-
other.
|
|
23
|
+
other.nodes(:status => "running").each do |ri|
|
|
24
24
|
vputs ri.hosts_file_listing_for(self)
|
|
25
25
|
arr << ri.hosts_file_listing_for(self)
|
|
26
26
|
end
|
data/bin/server-write-new-nodes
CHANGED
|
@@ -15,7 +15,7 @@ o.loaded_clouds.each do |cloud|
|
|
|
15
15
|
|
|
16
16
|
str = returning Array.new do |arr|
|
|
17
17
|
arr << "node default { include poolparty }"
|
|
18
|
-
|
|
18
|
+
nodes(:status => "running").each do |ri|
|
|
19
19
|
arr << "node \"#{ri.name}\" inherits default {}"
|
|
20
20
|
end
|
|
21
21
|
end.join("\n")
|
data/config/jeweler.rb
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
# Info at http://github.com/guides/tell-git-your-user-name-and-email-address
|
|
3
3
|
|
|
4
4
|
begin
|
|
5
|
+
class Array
|
|
6
|
+
def one_of_regex
|
|
7
|
+
option_list = join "|"
|
|
8
|
+
Regexp.new "(#{option_list})"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
5
12
|
require 'jeweler'
|
|
6
13
|
Jeweler::Tasks.new do |s|
|
|
7
14
|
s.name = "poolparty"
|
|
@@ -16,8 +23,10 @@ begin
|
|
|
16
23
|
s.authors = ["Ari Lerner"]
|
|
17
24
|
|
|
18
25
|
s.test_files = Dir["test/**/test_*.rb"]
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
excludes_regexp = ["vendor/gems", "lib/erlang"].one_of_regex
|
|
27
|
+
|
|
28
|
+
s.files = (%w(Rakefile History.txt README.txt PostInstall.txt License.txt VERSION.yml) +
|
|
29
|
+
Dir["{config,examples,lib,spec,test,tasks,script,generators,bin,vendor}/**/*"]).delete_if{|f| f =~ excludes_regexp}
|
|
21
30
|
|
|
22
31
|
s.has_rdoc = true
|
|
23
32
|
s.extra_rdoc_files = ["README.txt", "License.txt", 'History.txt']
|
|
@@ -32,7 +41,7 @@ begin
|
|
|
32
41
|
s.add_dependency 'auser-dslify'
|
|
33
42
|
s.add_dependency 'auser-parenting'
|
|
34
43
|
# s.add_dependency 'auser-suitcase'
|
|
35
|
-
s.add_dependency 'ruby2ruby'
|
|
44
|
+
# s.add_dependency 'ruby2ruby' #TODO: remove this after verifying removing doesnt break anything
|
|
36
45
|
s.add_dependency 'grempe-amazon-ec2'
|
|
37
46
|
s.add_dependency 'rubigen', ">=1.5.2"
|
|
38
47
|
# Certainly there should be more here
|
data/lib/poolparty/aska/aska.rb
CHANGED
|
@@ -102,18 +102,7 @@ module Aska
|
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def look_up_rules(r);self.class.look_up_rules(r);end
|
|
105
|
-
def are_rules?(r);self.class.are_rules?(r);end
|
|
106
|
-
|
|
107
|
-
# def method_missing(m, *args, &block)
|
|
108
|
-
# if self.class.defined_rules.has_key?(m.to_sym)
|
|
109
|
-
# self.class.send(:define_method, m) do
|
|
110
|
-
# self.class.look_up_rules(m)
|
|
111
|
-
# end
|
|
112
|
-
# self.send m
|
|
113
|
-
# else
|
|
114
|
-
# super
|
|
115
|
-
# end
|
|
116
|
-
# end
|
|
105
|
+
def are_rules?(r);self.class.are_rules?(r);end
|
|
117
106
|
end
|
|
118
107
|
|
|
119
108
|
def self.included(receiver)
|