auser-poolparty 1.1.5 → 1.1.6
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 +2 -2
- data/bin/cloud +20 -1
- data/bin/cloud-bootstrap +14 -4
- data/bin/cloud-configure +24 -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 +6 -4
- data/bin/cloud-terminate +9 -7
- data/bin/server-cloud-elections +4 -1
- data/bin/server-list-active +10 -6
- 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.rb +9 -11
- data/lib/poolparty/aska/aska.rb +1 -12
- data/lib/poolparty/base_packages/haproxy.rb +24 -18
- 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 +82 -80
- 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/exceptions/MasterException.rb +2 -2
- data/lib/poolparty/helpers/console.rb +1 -1
- data/lib/poolparty/helpers/optioner.rb +9 -2
- data/lib/poolparty/lite.rb +9 -1
- data/lib/poolparty/modules/callbacks.rb +44 -0
- data/lib/poolparty/modules/cloud_dsl.rb +17 -11
- data/lib/poolparty/modules/cloud_resourcer.rb +17 -18
- 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 -197
- data/lib/poolparty/net/remoter/connections.rb +7 -16
- data/lib/poolparty/net/remoter/interactive.rb +24 -90
- data/lib/poolparty/net/remoter_base.rb +72 -44
- 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 +158 -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 +26 -10
- data/lib/poolparty/plugins/chef_deploy.rb +58 -0
- data/lib/poolparty/plugins/deploy_directory.rb +7 -5
- data/lib/poolparty/plugins/dynomite.rb +14 -0
- data/lib/poolparty/plugins/gem_package.rb +7 -1
- 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 +5 -5
- data/lib/poolparty/poolparty/neighborhoods.rb +54 -21
- data/lib/poolparty/poolparty/plugin.rb +5 -8
- 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 +31 -22
- data/lib/poolparty/provision/configurations/chef.rb +2 -1
- data/lib/poolparty/provision/dr_configure.rb +63 -22
- 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 +18 -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/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/tasks/spec.rake +33 -1
- data/test/poolparty/core/array_test.rb +21 -0
- data/test/poolparty/core/hash_test.rb +15 -4
- 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 +28 -1
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -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/poolparty/template_test.rb +6 -6
- data/test/poolparty/verification/verify_test.rb +49 -0
- data/test/test_helper.rb +5 -2
- 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.rb +183 -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
- metadata +55 -250
- 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.rb +0 -6
- 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/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/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.rb +0 -7
- data/vendor/gems/dslify/lib/dslify/dslify.rb +0 -69
- data/vendor/gems/dslify/lib/dslify/version.rb +0 -10
- 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.rb +0 -10
- data/vendor/gems/parenting/lib/parenting/base.rb +0 -65
- 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.rb +0 -5
- data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +0 -15
- data/vendor/gems/suitcase/lib/suitcase/zipper.rb +0 -119
- 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,7 +2,17 @@
|
|
|
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
|
|
@@ -11,16 +21,21 @@ 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
22
|
# ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
|
|
13
23
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
puts "No nodes to configure"
|
|
24
|
+
if cld.nodes(:status => "running").size < 1
|
|
25
|
+
puts header("No instances running")
|
|
17
26
|
else
|
|
18
|
-
|
|
19
|
-
|
|
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"
|
|
20
30
|
else
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
::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
|
|
24
39
|
end
|
|
25
40
|
end
|
|
26
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,11 +7,13 @@ 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
|
+
cld.launch_instance!(cld.dsl_options) do |node|
|
|
16
|
+
|
|
15
17
|
::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
|
|
16
18
|
::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
|
|
17
19
|
|
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
|
@@ -19,11 +19,14 @@ o.loaded_clouds.each do |cld|
|
|
|
19
19
|
|
|
20
20
|
case vote_for
|
|
21
21
|
when "expand"
|
|
22
|
-
|
|
22
|
+
vputs "Launching new instance"
|
|
23
23
|
cld.send :launch_instance!, schema.options do |node|
|
|
24
|
+
dputs "Started node at #{node[:ip]}"
|
|
25
|
+
|
|
24
26
|
::PoolParty::Provision::BootStrapper.new( node[:ip], :cloud => cld )
|
|
25
27
|
::PoolParty::Provision::DrConfigure.new( node[:ip], :cloud => cld )
|
|
26
28
|
end
|
|
29
|
+
|
|
27
30
|
when "contract"
|
|
28
31
|
last_instance_id = %x[/usr/bin/server-list-active instance_id].split("\t").last
|
|
29
32
|
remoter_base.terminate_instance! schema.options.merge(:instance_id => last_instance_id)
|
data/bin/server-list-active
CHANGED
|
@@ -8,18 +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
|
-
|
|
15
|
-
|
|
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
|
|
16
20
|
|
|
17
21
|
print_array =
|
|
18
22
|
case list_type
|
|
19
23
|
when "ip"
|
|
20
|
-
inst_array.
|
|
24
|
+
inst_array.compact.map {|i| i.ip }
|
|
21
25
|
when "internal_ip"
|
|
22
|
-
inst_array.compact.map {|
|
|
26
|
+
inst_array.compact.map {|i| i.internal_ip || i.ip }
|
|
23
27
|
else
|
|
24
28
|
inst_array
|
|
25
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
|