auser-poolparty 1.2.2 → 1.2.3
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/VERSION.yml +1 -1
- data/bin/cloud +37 -48
- data/bin/cloud-bootstrap +33 -23
- data/bin/cloud-configure +33 -34
- data/bin/cloud-console +31 -9
- data/bin/cloud-contract +27 -11
- data/bin/cloud-expand +32 -19
- data/bin/cloud-list +31 -15
- data/bin/cloud-osxcopy +22 -12
- data/bin/cloud-provision +35 -24
- data/bin/cloud-setup-dev +31 -20
- data/bin/cloud-show +40 -21
- data/bin/cloud-ssh +24 -15
- data/bin/cloud-start +33 -19
- data/bin/cloud-terminate +33 -20
- data/bin/cloud-verify +38 -29
- data/bin/install-poolparty +4 -198
- data/bin/server-cloud-elections +1 -1
- data/examples/basic.rb +9 -9
- data/examples/fairchild.rb +1 -1
- data/examples/metavirt_cloud.rb +21 -0
- data/lib/poolparty/aska.rb +3 -0
- data/lib/poolparty/base_packages/haproxy.rb +19 -18
- data/lib/poolparty/base_packages/poolparty.rb +1 -1
- data/lib/poolparty/core/hash.rb +46 -0
- data/lib/poolparty/core/object.rb +21 -15
- data/lib/poolparty/core/string.rb +16 -0
- data/lib/poolparty/dependency_resolver/chef_resolver.rb +23 -6
- data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
- data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +2 -2
- data/lib/poolparty/dependency_resolver/puppet_resolver.rb +10 -32
- data/lib/poolparty/helpers/optioner.rb +19 -14
- data/lib/poolparty/installers/base_installer.rb +113 -0
- data/lib/poolparty/installers/ec2.rb +141 -0
- data/lib/poolparty/installers/vmrun.rb +144 -0
- data/lib/poolparty/modules/callbacks.rb +6 -2
- data/lib/poolparty/modules/cloud_dsl.rb +2 -2
- data/lib/poolparty/modules/cloud_resourcer.rb +10 -50
- data/lib/poolparty/modules/file_writer.rb +2 -2
- data/lib/poolparty/modules/pinger.rb +4 -1
- data/lib/poolparty/modules/resourcing_dsl.rb +1 -29
- data/lib/poolparty/modules/searchable_paths.rb +3 -3
- data/lib/poolparty/monitors/monitor_rack.rb +1 -1
- data/lib/poolparty/net/remote_bases.rb +2 -0
- data/lib/poolparty/net/remote_instance.rb +6 -4
- data/lib/poolparty/net/remoter/interactive.rb +2 -3
- data/lib/poolparty/net/remoter_base.rb +54 -31
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +49 -26
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +6 -19
- data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +4 -3
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +99 -0
- data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +52 -0
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +1 -1
- data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -117
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +36 -31
- data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +9 -5
- data/lib/poolparty/plugins/apache2/apache.rb +118 -73
- data/lib/poolparty/plugins/chef.rb +15 -17
- data/lib/poolparty/plugins/chef_deploy.rb +18 -4
- data/lib/poolparty/plugins/deploy_directory.rb +25 -16
- data/lib/poolparty/plugins/gem_package.rb +15 -5
- data/lib/poolparty/plugins/git.rb +44 -30
- data/lib/poolparty/plugins/line_in_file.rb +5 -1
- data/lib/poolparty/plugins/rails_deploy.rb +79 -26
- data/lib/poolparty/plugins/svn.rb +2 -2
- data/lib/poolparty/poolparty/cloud.rb +101 -47
- data/lib/poolparty/poolparty/default.rb +25 -23
- data/lib/poolparty/poolparty/key.rb +18 -27
- data/lib/poolparty/poolparty/neighborhoods.rb +1 -1
- data/lib/poolparty/poolparty/plugin.rb +17 -7
- data/lib/poolparty/poolparty/pool.rb +3 -3
- data/lib/poolparty/poolparty/poolparty_base_class.rb +41 -35
- data/lib/poolparty/poolparty/resource.rb +18 -44
- data/lib/poolparty/poolparty/service.rb +1 -5
- data/lib/poolparty/provision/boot_strapper.rb +24 -19
- data/lib/poolparty/provision/configurations/chef.rb +4 -4
- data/lib/poolparty/provision/dr_configure.rb +11 -10
- data/lib/poolparty/resources/cron.rb +7 -3
- data/lib/poolparty/resources/directory.rb +7 -0
- data/lib/poolparty/resources/exec.rb +2 -1
- data/lib/poolparty/resources/file.rb +23 -9
- data/lib/poolparty/resources/group.rb +21 -0
- data/lib/poolparty/resources/host.rb +2 -1
- data/lib/poolparty/resources/mount.rb +0 -4
- data/lib/poolparty/resources/remote_file.rb +1 -1
- data/lib/poolparty/resources/service.rb +2 -1
- data/lib/poolparty/resources/sshkey.rb +10 -12
- data/lib/poolparty/resources/symlink.rb +3 -5
- data/lib/poolparty/resources/user.rb +5 -0
- data/lib/poolparty/resources/variable.rb +1 -1
- data/lib/poolparty/templates/haproxy.conf +1 -1
- data/lib/poolparty/verification/verify.rb +4 -0
- data/lib/poolparty.rb +9 -4
- data/lib/poolpartycl.rb +1 -52
- data/spec/bin/bin_spec_helper.rb +1 -0
- data/spec/bin/server-list-active_spec.rb +3 -3
- data/spec/poolparty/core/object_spec.rb +9 -46
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +18 -12
- data/spec/poolparty/fixtures/clouds.json +1 -1
- data/spec/poolparty/helpers/optioner_spec.rb +4 -11
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +1 -1
- data/spec/poolparty/net/remote_instance_spec.rb +0 -1
- data/spec/poolparty/net/remoter_base_spec.rb +7 -11
- data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +9 -11
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +6 -44
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +2 -3
- data/spec/poolparty/net/remoter_spec.rb +2 -3
- data/spec/poolparty/plugins/git_spec.rb +5 -8
- data/spec/poolparty/poolparty/cloud_spec.rb +17 -24
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +1 -3
- data/spec/poolparty/poolparty/configurers/ruby_spec.rb +1 -6
- data/spec/poolparty/poolparty/default_spec.rb +23 -22
- data/spec/poolparty/poolparty/example_spec.rb +6 -5
- data/spec/poolparty/poolparty/plugin_model_spec.rb +7 -4
- data/spec/poolparty/poolparty/pool_spec.rb +2 -9
- data/spec/poolparty/poolparty/resource_spec.rb +10 -24
- data/spec/poolparty/poolparty/script_spec.rb +1 -4
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +0 -2
- data/spec/poolparty/resources/file_spec.rb +4 -4
- data/spec/poolparty/resources/service_spec.rb +1 -1
- data/spec/poolparty/spec_helper.rb +9 -38
- data/tasks/spec.rake +6 -2
- data/test/fixtures/test_key +1 -0
- data/test/poolparty/core/object_test.rb +29 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +1 -1
- data/test/poolparty/modules/cloud_dsl_test.rb +4 -4
- data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +55 -0
- data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +41 -14
- data/test/poolparty/plugins/chef_deploy_test.rb +37 -0
- data/test/poolparty/plugins/rails_deploy_test.rb +50 -0
- data/test/poolparty/poolparty/plugin_test.rb +18 -0
- data/test/poolparty/poolparty/poolparty_base_class_test.rb +41 -3
- data/test/test_helper.rb +5 -1
- data/vendor/gems/dslify/LICENSE +20 -0
- data/vendor/gems/dslify/README.rdoc +33 -0
- data/vendor/gems/dslify/Rakefile +56 -56
- data/vendor/gems/dslify/lib/dslify.rb +76 -5
- data/vendor/gems/dslify/test/dslify_test.rb +197 -0
- data/vendor/gems/dslify/test/test_helper.rb +7 -0
- data/vendor/gems/git-style-binaries/README.markdown +274 -0
- data/vendor/gems/{butterfly → git-style-binaries}/Rakefile +64 -62
- data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
- data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
- data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +45 -0
- data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +69 -0
- data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
- data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
- data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +74 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
- data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
- data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
- data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
- data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
- data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
- data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
- data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
- data/vendor/gems/parenting/lib/parenting/parenting.rb +13 -4
- data/vendor/gems/rest-client/README.rdoc +151 -0
- data/vendor/gems/rest-client/Rakefile +85 -0
- data/vendor/gems/rest-client/bin/restclient +87 -0
- data/vendor/gems/rest-client/lib/rest_client.rb +2 -0
- data/vendor/gems/rest-client/lib/restclient/exceptions.rb +84 -0
- data/vendor/gems/rest-client/lib/restclient/mixin/response.rb +43 -0
- data/vendor/gems/rest-client/lib/restclient/raw_response.rb +30 -0
- data/vendor/gems/rest-client/lib/restclient/request.rb +232 -0
- data/vendor/gems/rest-client/lib/restclient/resource.rb +146 -0
- data/vendor/gems/rest-client/lib/restclient/response.rb +20 -0
- data/vendor/gems/rest-client/lib/restclient.rb +93 -0
- data/vendor/gems/rest-client/rest-client.gemspec +21 -0
- data/vendor/gems/rest-client/spec/base.rb +4 -0
- data/vendor/gems/rest-client/spec/exceptions_spec.rb +54 -0
- data/vendor/gems/rest-client/spec/mixin/response_spec.rb +46 -0
- data/vendor/gems/rest-client/spec/raw_response_spec.rb +17 -0
- data/vendor/gems/rest-client/spec/request_spec.rb +442 -0
- data/vendor/gems/rest-client/spec/resource_spec.rb +75 -0
- data/vendor/gems/rest-client/spec/response_spec.rb +16 -0
- data/vendor/gems/rest-client/spec/restclient_spec.rb +53 -0
- data/vendor/gems/trollop/FAQ.txt +35 -0
- data/vendor/gems/trollop/History.txt +97 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +735 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1042 -0
- data/vendor/gems/trollop/www/index.html +167 -0
- metadata +100 -70
- data/bin/cloud-describe +0 -28
- data/bin/cloud-handle-load +0 -27
- data/bin/cloud-rsync +0 -28
- data/bin/cloud-spec +0 -40
- data/lib/poolparty/plugins/nanite.rb +0 -41
- data/lib/poolparty/plugins/runit.rb +0 -96
- 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/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/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 -76
- 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 -138
- 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/VERSION.yml
CHANGED
data/bin/cloud
CHANGED
|
@@ -1,52 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
cloud list show a list of the current instances on the cloud
|
|
30
|
-
cloud show shows output about the clouds.rb
|
|
31
|
-
cloud ssh ssh into an instance of the cloud
|
|
32
|
-
cloud terminate terminate the cloud
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
6
|
+
|
|
7
|
+
GitStyleBinary.primary do
|
|
8
|
+
@theme = :short
|
|
9
|
+
|
|
10
|
+
version "PoolParty cloud command"
|
|
11
|
+
banner <<-EOS
|
|
12
|
+
Usage: #{$0} #{all_options_string} COMMAND [ARGS]
|
|
13
|
+
|
|
14
|
+
The cloud subcommands commands are:
|
|
15
|
+
\#{GitStyleBinary.pretty_known_subcommands(:short).join(" ")}
|
|
16
|
+
|
|
17
|
+
See 'cloud help COMMAND' for more information on a specific command.
|
|
18
|
+
EOS
|
|
19
|
+
|
|
20
|
+
opt :debug, "Debug the output", :type => :boolean, :default => false
|
|
21
|
+
opt :spec, "Set the pool spec file", :type => String
|
|
22
|
+
opt :testing, "Set testing mode on", :type => :boolean, :default => false
|
|
23
|
+
opt :cloud_name, "Name of the working cloud", :type => String, :default => nil
|
|
24
|
+
|
|
25
|
+
before_run do |command|
|
|
26
|
+
# Setup testing/debugging
|
|
27
|
+
$TESTING = true if command[:testing]
|
|
28
|
+
$DEBUGGING = true if command[:debug]
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
command_line = "#{program_location}"
|
|
46
|
-
|
|
47
|
-
# Run it from the command-line first
|
|
48
|
-
if Binary.available_binaries_for("cloud").include?(name)
|
|
49
|
-
system command_line, *new_args
|
|
50
|
-
else
|
|
51
|
-
puts "Unknown poolparty binary: #{name}"
|
|
30
|
+
@loaded_pool = load_pool( command[:spec] ? command[:spec] : Binary.get_existing_spec_location)
|
|
31
|
+
@loaded_clouds = command[:cloud_name] ? [clouds[command[:cloud_name].to_sym]] : clouds.map {|k,c| c }
|
|
32
|
+
@loaded_clouds.each do |cld|
|
|
33
|
+
cld.verbose command[:verbose]
|
|
34
|
+
cld.debug command[:debug]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
run do |command|
|
|
39
|
+
puts "Primary Options: #{command.opts.inspect}"
|
|
40
|
+
end
|
|
52
41
|
end
|
data/bin/cloud-bootstrap
CHANGED
|
@@ -1,31 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
6
11
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
10
|
-
end
|
|
12
|
+
Bootstrap a cloud instance
|
|
13
|
+
EOS
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
14
|
-
# ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
|
|
15
|
+
short_desc "Bootstrap a cloud instance"
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
opt :inst_num, "The number of the instance to run bootstrap on", :type => :int
|
|
18
|
+
|
|
19
|
+
run do |command|
|
|
20
|
+
|
|
21
|
+
@loaded_clouds.each do |cld|
|
|
22
|
+
|
|
23
|
+
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
24
|
+
if cld.nodes(:status => "running").empty?
|
|
25
|
+
puts "No nodes to bootstrap"
|
|
26
|
+
else
|
|
27
|
+
if command[:inst_num]
|
|
28
|
+
vputs "\nBootStrapping: #{nodes[o.inst_num]}\n--------------------"
|
|
29
|
+
::PoolParty::Provision::BootStrapper.new cld.nodes(:status => "running")[ command[:inst_num] ], :cloud => cld
|
|
30
|
+
else
|
|
31
|
+
cld.nodes(:status => "running").each do |address|
|
|
32
|
+
cld.vputs "\nBootStrapping: #{address[:ip]}\n--------------------"
|
|
33
|
+
::PoolParty::Provision::BootStrapper.new address[:ip], :cloud => cld
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
28
38
|
end
|
|
39
|
+
|
|
29
40
|
end
|
|
30
|
-
end
|
|
31
|
-
|
|
41
|
+
end
|
data/bin/cloud-configure
CHANGED
|
@@ -1,43 +1,42 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
6
11
|
|
|
7
|
-
|
|
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
|
|
12
|
+
Configure a cloud instance
|
|
13
|
+
EOS
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
17
|
-
opts.on('-i num', '--num i', 'Instance number') { |i| optioner.inst_num i.to_i }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
o.loaded_clouds.each do |cld|
|
|
21
|
-
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
22
|
-
# ::FileUtils.rm_rf "#{Default.tmp_path}/" unless o.testing?
|
|
15
|
+
short_desc "Configure a cloud instance"
|
|
23
16
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
17
|
+
opt :inst_num, "The number of the instance to run bootstrap on", :type => :int
|
|
18
|
+
|
|
19
|
+
run do |command|
|
|
20
|
+
|
|
21
|
+
@loaded_clouds.each do |cld|
|
|
22
|
+
|
|
23
|
+
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
24
|
+
if cld.nodes(:status => "running").empty?
|
|
25
|
+
puts "No nodes to bootstrap"
|
|
26
|
+
else
|
|
27
|
+
if command[:inst_num]
|
|
28
|
+
vputs "\nConfiguring: #{nodes[o.inst_num]}\n--------------------"
|
|
29
|
+
address = cld.nodes(:status => "running")[ command[:inst_num] ]
|
|
30
|
+
::PoolParty::Provision::DrConfigure.new( address[:ip], :cloud => cld )
|
|
31
|
+
else
|
|
32
|
+
cld.nodes(:status => "running").each do |address|
|
|
33
|
+
cld.vputs "\nConfiguring: #{address[:ip]}\n--------------------"
|
|
34
|
+
::PoolParty::Provision::DrConfigure.new address[:ip], :cloud => cld
|
|
35
|
+
end
|
|
36
|
+
end
|
|
38
37
|
end
|
|
39
|
-
|
|
38
|
+
|
|
40
39
|
end
|
|
40
|
+
|
|
41
41
|
end
|
|
42
|
-
end
|
|
43
|
-
|
|
42
|
+
end
|
data/bin/cloud-console
CHANGED
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
|
+
require "poolparty"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
libs << " -r #{File.dirname(__FILE__) + '/../lib/poolpartycl.rb'}"
|
|
10
|
-
puts "Loading PoolParty console..."
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Open an irb session with the clouds.rb loaded
|
|
13
|
+
EOS
|
|
14
|
+
|
|
15
|
+
short_desc "Open an irb session with clouds.rb loaded"
|
|
16
|
+
|
|
17
|
+
opt :inst_num, "The number of the instance to run bootstrap on", :type => :int
|
|
18
|
+
|
|
19
|
+
run do |command|
|
|
20
|
+
|
|
21
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
|
22
|
+
|
|
23
|
+
libs = " -r irb/completion"
|
|
24
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
|
25
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
|
26
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/poolparty.rb'}"
|
|
27
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/poolpartycl.rb'}"
|
|
28
|
+
libs << " -r #{$pool_specfile}" if $pool_specfile
|
|
29
|
+
puts "Loading PoolParty console..."
|
|
30
|
+
|
|
31
|
+
exec "#{irb} #{libs} --simple-prompt"
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
data/bin/cloud-contract
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
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"
|
|
12
|
+
contracts the cloud by a single instance
|
|
13
|
+
EOS
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
short_desc "contracts the cloud by a single instance"
|
|
16
|
+
|
|
17
|
+
run do |command|
|
|
18
|
+
@loaded_clouds.each do |cld|
|
|
19
|
+
|
|
20
|
+
puts header("Contracting cloud #{cld.name}")
|
|
21
|
+
puts "#{cld.nodes(:status => "running").size} running instances (#{cld.minimum_instances} minimum instances)"
|
|
22
|
+
puts testing ? "Not contracting (test mode)" : "Contracting the cloud if possible"
|
|
23
|
+
|
|
24
|
+
if cld.minimum_instances < cld.nodes(:status => "running").size
|
|
25
|
+
last_instance_id = cld.nodes(:status => "running").last[:instance_id]
|
|
26
|
+
cld.remote_base.terminate_instance! cld.options.merge(:instance_id => last_instance_id)
|
|
27
|
+
else
|
|
28
|
+
puts "The cloud #{cld.name} is running minimum instances (#{cld.nodes(:status => "running").size})"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
17
33
|
end
|
data/bin/cloud-expand
CHANGED
|
@@ -1,26 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
expands the cloud by a single instance
|
|
13
|
+
EOS
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
short_desc "expands the cloud by a single instance"
|
|
16
|
+
|
|
17
|
+
run do |command|
|
|
18
|
+
@loaded_clouds.each do |cld|
|
|
19
|
+
|
|
20
|
+
vputs header("Expanding cloud #{cld.name}")
|
|
21
|
+
vputs "#{cld.nodes(:status => "running").size} running instances of #{cld.maximum_instances} possible instances"
|
|
22
|
+
vputs testing ? "Not expanding (test mode)" : "Expanding the cloud"
|
|
23
|
+
|
|
24
|
+
if cld.maximum_instances > cld.nodes(:status => "running").size
|
|
25
|
+
cld.launch_instance!(:cloud_name => cld.name) do |node|
|
|
26
|
+
::PoolParty::Provision::BootStrapper.new(node.ip, :cloud => cld)
|
|
27
|
+
::PoolParty::Provision::DrConfigure.new(node.ip, :cloud => cld)
|
|
28
|
+
|
|
29
|
+
puts <<-EOM
|
|
30
|
+
Your cloud has expanded. The new ip is #{node.ip}
|
|
31
|
+
EOM
|
|
32
|
+
end
|
|
33
|
+
else
|
|
34
|
+
puts "The cloud #{cld.name} has too many instances already (#{cld.nodes(:status => "running").size})"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
23
38
|
end
|
|
24
|
-
|
|
25
|
-
|
|
26
39
|
end
|
data/bin/cloud-list
CHANGED
|
@@ -1,21 +1,37 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
opts.on('-n name', '--name name', 'Listing for cloud name') { |c| optioner.cloudname c }
|
|
10
|
-
end
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
List the clouds and their nodes
|
|
13
|
+
e.g. show a list of the current instances on the cloud
|
|
14
|
+
EOS
|
|
15
|
+
|
|
16
|
+
opt :instance_id, "Describe a specific instance", :type => String, :default => nil
|
|
17
|
+
|
|
18
|
+
short_desc "show a list of the current instances on the clouds"
|
|
19
|
+
|
|
20
|
+
run do |command|
|
|
21
|
+
@loaded_clouds.each do |cld|
|
|
22
|
+
if command[:instance_id]
|
|
23
|
+
require 'pp'
|
|
24
|
+
pp result = cld.describe_instance(:instance_id=>command[:instance_id])
|
|
25
|
+
else
|
|
26
|
+
puts header("Listing cloud #{cld.name}")
|
|
27
|
+
puts subheader("Active instances")
|
|
28
|
+
puts cld.nodes(:status => "running").map{|a| "#{a[:instance_id] || a[:id]}\t#{a[:ip] ||a[:public_ip] }" }.join("\n")
|
|
29
|
+
|
|
30
|
+
if cld.nodes(:status => "pending").size > 0
|
|
31
|
+
puts subheader("Pending instances")
|
|
32
|
+
puts cld.nodes(:status => "pending").map{|a| "#{a[:instance_id] || a[:id]}\t#{a[:ip] ||a[:public_ip] }" }.join("\n")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
20
36
|
end
|
|
21
37
|
end
|
data/bin/cloud-osxcopy
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string} COMMAND [ARGS]
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
Copy the IP address of a node to the Mac OS X clipboard
|
|
13
|
+
EOS
|
|
14
|
+
|
|
15
|
+
short_desc "Copy the IP address of a node to the Mac OS X clipboard"
|
|
16
|
+
|
|
17
|
+
run do |command|
|
|
18
|
+
@loaded_clouds.each do |cld|
|
|
19
|
+
|
|
20
|
+
node = cld.nodes(:status => "running").first
|
|
21
|
+
ip = node.ip
|
|
22
|
+
puts "ip: #{ip}"
|
|
23
|
+
Kernel.system "echo #{ip} | pbcopy"
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
end
|
|
17
27
|
end
|
data/bin/cloud-provision
CHANGED
|
@@ -1,30 +1,41 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string}
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
combines bootstrap and configures an instance or multiple instances
|
|
13
|
+
EOS
|
|
14
|
+
|
|
15
|
+
short_desc "combines bootstrap and configures an instance or multiple instances"
|
|
16
|
+
|
|
17
|
+
run do |command|
|
|
18
|
+
@loaded_clouds.each do |cld|
|
|
19
|
+
|
|
20
|
+
# If an IP or DNS name is given, bootstrap that node, otherwise, bootstrap all running nodes.
|
|
21
|
+
if cld.nodes.empty?
|
|
22
|
+
puts "No nodes to provision"
|
|
23
|
+
else
|
|
24
|
+
if command[:inst_num]
|
|
25
|
+
vputs "\nConfiguring: #{nodes[o.inst_num]}\n--------------------"
|
|
26
|
+
address = cld.nodes[ command[:inst_num] ]
|
|
27
|
+
::PoolParty::Provision::BootStrapper.new( address[:ip], :cloud => cld )
|
|
28
|
+
::PoolParty::Provision::DrConfigure.new( address[:ip], :cloud => cld )
|
|
29
|
+
else
|
|
30
|
+
cld.nodes(:status => "running").each do |address|
|
|
31
|
+
cld.vputs "\nConfiguring: #{address[:ip]}\n--------------------"
|
|
32
|
+
::PoolParty::Provision::BootStrapper.new( address[:ip], :cloud => cld )
|
|
33
|
+
::PoolParty::Provision::DrConfigure.new( address[:ip], :cloud => cld )
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
26
37
|
end
|
|
27
|
-
|
|
38
|
+
|
|
39
|
+
end
|
|
28
40
|
end
|
|
29
|
-
end
|
|
30
|
-
|
|
41
|
+
end
|
data/bin/cloud-setup-dev
CHANGED
|
@@ -1,25 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.
|
|
2
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
|
3
3
|
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
4
|
+
# require "poolpartycl"
|
|
5
|
+
require 'git-style-binary/command'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
7
|
+
GitStyleBinary.command do
|
|
8
|
+
version "PoolParty #{$0} command"
|
|
9
|
+
banner <<-EOS
|
|
10
|
+
Usage: #{$0} #{all_options_string} COMMAND [ARGS]
|
|
11
|
+
|
|
12
|
+
puts a helpful ssh config
|
|
13
|
+
EOS
|
|
14
|
+
|
|
15
|
+
short_desc "puts a helpful ssh config"
|
|
16
|
+
|
|
17
|
+
run do |command|
|
|
18
|
+
@loaded_clouds.each do |cld|
|
|
19
|
+
|
|
20
|
+
if cld.nodes(:status => "running").empty?
|
|
21
|
+
puts "Your cloud is not running"
|
|
22
|
+
else
|
|
23
|
+
str =<<-EOE
|
|
24
|
+
Host #{cld.name}
|
|
25
|
+
User #{cld.user}
|
|
26
|
+
Hostname #{cld.nodes(:status => "running").first.ip}
|
|
27
|
+
IdentityFile #{cld.keypair}
|
|
28
|
+
EOE
|
|
29
|
+
|
|
30
|
+
puts "Enter the following in your .ssh/config file"
|
|
31
|
+
puts str
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
24
35
|
end
|
|
25
36
|
end
|