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
|
@@ -25,25 +25,23 @@ The sshkey resource specifies an ssh key that should be distributed on all the n
|
|
|
25
25
|
|
|
26
26
|
class Sshkey < Resource
|
|
27
27
|
|
|
28
|
+
dsl_methods(:key,
|
|
29
|
+
:keypath,
|
|
30
|
+
:name)
|
|
31
|
+
|
|
32
|
+
default_options(:type => 'rsa')
|
|
33
|
+
|
|
28
34
|
def initialize(opts={}, extra_opts={}, &block)
|
|
29
35
|
super(opts, extra_opts, &block)
|
|
30
|
-
@key = Key.new(keypath
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def name(i=nil)
|
|
35
|
-
if i
|
|
36
|
-
options[:name] = i
|
|
37
|
-
else
|
|
38
|
-
options[:name] ? options[:name] : ::File.basename(@key.full_filepath)
|
|
39
|
-
end
|
|
36
|
+
@key = Key.new(keypath ? keypath : nil)
|
|
37
|
+
self.key = @key.content
|
|
40
38
|
end
|
|
41
39
|
|
|
42
40
|
def enctype(i=nil)
|
|
43
|
-
i ?
|
|
41
|
+
i ? self.type = i : type
|
|
44
42
|
end
|
|
45
43
|
|
|
46
44
|
end
|
|
47
45
|
|
|
48
46
|
end
|
|
49
|
-
end
|
|
47
|
+
end
|
|
@@ -16,8 +16,8 @@ The symlink resource sets a symlink
|
|
|
16
16
|
|
|
17
17
|
== Options
|
|
18
18
|
|
|
19
|
-
* <tt>name</tt> The location of the symlink
|
|
20
|
-
* <tt>
|
|
19
|
+
* <tt>name</tt> The location of the symlink (target)
|
|
20
|
+
* <tt>source</tt> The source of the symlink, the existing file or directory
|
|
21
21
|
|
|
22
22
|
== Examples
|
|
23
23
|
|
|
@@ -25,9 +25,7 @@ The symlink resource sets a symlink
|
|
|
25
25
|
=end
|
|
26
26
|
class Symlink < Resource
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
super
|
|
30
|
-
end
|
|
28
|
+
dsl_methods :source
|
|
31
29
|
|
|
32
30
|
def present
|
|
33
31
|
:create
|
|
@@ -29,7 +29,7 @@ defaults
|
|
|
29
29
|
stats uri /poolparty
|
|
30
30
|
stats realm Statistics\ for\ PoolParty
|
|
31
31
|
|
|
32
|
-
listen
|
|
32
|
+
listen PoolParty-site-<%= @node[:poolparty][:haproxy_name] %>
|
|
33
33
|
mode <%= @node[:poolparty][:proxy_mode] %>
|
|
34
34
|
bind 0.0.0.0:<%= @node[:poolparty][:ports_haproxy].join(",0.0.0.0:") %>
|
|
35
35
|
cookie POOLPARTY
|
|
@@ -16,6 +16,9 @@ module PoolParty
|
|
|
16
16
|
end
|
|
17
17
|
def verify(&block)
|
|
18
18
|
v = Verify.new(&block)
|
|
19
|
+
# ugly, todo fix
|
|
20
|
+
ip = nodes(:status => "running").first.ip rescue "127.0.0.1"
|
|
21
|
+
v.host = ip
|
|
19
22
|
v.verifiers.each {|v| verifiers << v}
|
|
20
23
|
end
|
|
21
24
|
def passing?
|
|
@@ -41,6 +44,7 @@ module PoolParty
|
|
|
41
44
|
Dir[::File.dirname(__FILE__)+"/verifiers/*"].each {|m| require m }
|
|
42
45
|
|
|
43
46
|
class Verify
|
|
47
|
+
attr_accessor :host
|
|
44
48
|
def initialize(&block)
|
|
45
49
|
::PoolParty.require_user_directory "verifiers"
|
|
46
50
|
|
data/lib/poolparty.rb
CHANGED
|
@@ -32,10 +32,14 @@ unless @required_software.empty?
|
|
|
32
32
|
exit(0)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib
|
|
36
|
-
|
|
35
|
+
Dir.glob(File.join(File.dirname(__FILE__),'..', 'vendor/gems/*/lib')).each do |d|
|
|
36
|
+
$LOAD_PATH.unshift(d)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
+
require "dslify"
|
|
40
|
+
require "parenting"
|
|
41
|
+
require "suitcase"
|
|
42
|
+
|
|
39
43
|
t=Time.now
|
|
40
44
|
## Load PoolParty
|
|
41
45
|
module PoolParty
|
|
@@ -43,11 +47,9 @@ end
|
|
|
43
47
|
|
|
44
48
|
def PoolParty.require_directory(dir)
|
|
45
49
|
if ::File.file?(dir)
|
|
46
|
-
puts "#{::File.expand_path(dir)}" if $DEBUGGING || $GENERATING_MANIFEST
|
|
47
50
|
require dir
|
|
48
51
|
else
|
|
49
52
|
Dir["#{dir}/*.rb"].sort.each do |file|
|
|
50
|
-
puts "#{::File.expand_path(file)}" if $DEBUGGING || $GENERATING_MANIFEST
|
|
51
53
|
require "#{file}" if ::File.file?(file)
|
|
52
54
|
end
|
|
53
55
|
Dir["#{dir}/*"].sort.each do |dir|
|
|
@@ -60,6 +62,9 @@ end
|
|
|
60
62
|
$_poolparty_load_directories = [
|
|
61
63
|
"core",
|
|
62
64
|
"dependencies.rb",
|
|
65
|
+
"modules/searchable_paths.rb",
|
|
66
|
+
"modules/pinger.rb",
|
|
67
|
+
"poolparty/key.rb",
|
|
63
68
|
"dependency_resolver/dependency_resolver_cloud_extensions.rb",
|
|
64
69
|
"dependency_resolver/dependency_resolver.rb",
|
|
65
70
|
"poolparty/poolparty_base_class.rb",
|
data/lib/poolpartycl.rb
CHANGED
|
@@ -6,60 +6,9 @@ def help_array
|
|
|
6
6
|
["-h", "--help", "-V", "--version", "--debug", "-d"]
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
def ask_with_help(opts={}, &block)
|
|
10
|
-
help_str = opts[:help]
|
|
11
|
-
message = opts[:message]
|
|
12
|
-
|
|
13
|
-
o = ask("#{message} (h for help)") do |q|
|
|
14
|
-
q.validate = opts[:validate] if opts.has_key?(:validate)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
if %w(h H).include?(o)
|
|
18
|
-
colored_say help_str, :help
|
|
19
|
-
ask_with_help(opts, &block)
|
|
20
|
-
else
|
|
21
|
-
block.call(o)
|
|
22
|
-
end
|
|
23
|
-
o
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def rescued_ask(m, r)
|
|
27
|
-
begin
|
|
28
|
-
t = colored_ask m
|
|
29
|
-
rescue Exception => e
|
|
30
|
-
say r
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def colored_ask(str, color = :notice)
|
|
35
|
-
setup_colors
|
|
36
|
-
ask("<%= color(\"#{str}\", :#{color}) %>")
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def colored_say(str, color = :headline)
|
|
40
|
-
setup_colors
|
|
41
|
-
say("<%= color(\"#{str}\", :#{color}) %>")
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def setup_colors
|
|
45
|
-
unless @setup_colors
|
|
46
|
-
ft = HighLine::ColorScheme.new do |cs|
|
|
47
|
-
cs[:headline] = [ :bold, :yellow, :on_black ]
|
|
48
|
-
cs[:horizontal_line] = [ :bold, :white, :on_blue]
|
|
49
|
-
cs[:critical] = [ :yellow, :on_red ]
|
|
50
|
-
cs[:error] = [ :bold, :red ]
|
|
51
|
-
cs[:help] = [ :bold, :white, :on_blue]
|
|
52
|
-
cs[:notice] = [ :blue, :on_white]
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
HighLine.color_scheme = ft
|
|
56
|
-
@setup_colors = true
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
9
|
def are_you_sure?(msg)
|
|
61
10
|
puts msg
|
|
62
|
-
resp = gets.
|
|
11
|
+
resp = STDIN.gets.chomp
|
|
63
12
|
|
|
64
13
|
case resp
|
|
65
14
|
when "Y"
|
data/spec/bin/bin_spec_helper.rb
CHANGED
|
@@ -15,10 +15,10 @@ describe "Server list active binary" do
|
|
|
15
15
|
@pool_hash = @p.to_properties_hash
|
|
16
16
|
end
|
|
17
17
|
it "should have the name on the schema" do
|
|
18
|
-
@pool_hash
|
|
18
|
+
@pool_hash[:options][:name].should == :binary_testing_cloud
|
|
19
19
|
end
|
|
20
20
|
it "should have the remoter base available" do
|
|
21
|
-
@pool_hash
|
|
21
|
+
@pool_hash[:options][:remoter_base].should_not be_nil
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
-
end
|
|
24
|
+
end
|
|
@@ -4,57 +4,20 @@ describe "Object" do
|
|
|
4
4
|
it "should respond to to_os" do
|
|
5
5
|
Object.new.respond_to?(:to_os).should == true
|
|
6
6
|
end
|
|
7
|
-
|
|
8
|
-
before(:each) do
|
|
9
|
-
@obj.stub!(:run).and_return "true"
|
|
10
|
-
end
|
|
11
|
-
it "should run the method :run because it exists" do
|
|
12
|
-
@obj.send_if_method(:run).should == "true"
|
|
13
|
-
end
|
|
14
|
-
it "should not run the method :bah because it doesn't exist" do
|
|
15
|
-
@obj.send_if_method("bah").should == "bah"
|
|
16
|
-
end
|
|
17
|
-
it "should not run the method if it is sent nil" do
|
|
18
|
-
@obj.send_if_method(nil).should == nil
|
|
19
|
-
end
|
|
20
|
-
it "should not run an empty string method" do
|
|
21
|
-
@obj.send_if_method("").should == ""
|
|
22
|
-
end
|
|
23
|
-
it "should not run a method that is an integer" do
|
|
24
|
-
@obj.send_if_method(2).should == 2
|
|
25
|
-
end
|
|
26
|
-
end
|
|
7
|
+
|
|
27
8
|
describe "with_options" do
|
|
28
9
|
before(:each) do
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
@obj.respond_to?(:with_options).should == true
|
|
33
|
-
end
|
|
34
|
-
it "should set the options on the parent" do
|
|
35
|
-
allow_message_expectations_on_nil
|
|
36
|
-
@a.should_receive(:clone).and_return @a
|
|
37
|
-
@a.stub!(:options).and_return({})
|
|
38
|
-
with_options({:nick => "name"}, @a) do
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
describe "running" do
|
|
43
|
-
before(:each) do
|
|
44
|
-
Class.stub!(:default_options).and_return({})
|
|
45
|
-
Class.send :include, Dslify
|
|
46
|
-
@a = Class.new
|
|
47
|
-
@b = Class.new
|
|
10
|
+
class TestObjClass
|
|
11
|
+
include Dslify
|
|
12
|
+
dsl_methods :b
|
|
48
13
|
|
|
49
|
-
|
|
50
|
-
|
|
14
|
+
def initialize(o={})
|
|
15
|
+
set_vars_from_options o
|
|
51
16
|
end
|
|
52
|
-
|
|
53
|
-
end
|
|
54
|
-
it "should set the options on the child in the instance eval" do
|
|
55
|
-
@b.dude.should == "totally"
|
|
56
17
|
end
|
|
18
|
+
@obj = TestObjClass.new
|
|
57
19
|
end
|
|
20
|
+
|
|
58
21
|
describe "contextual running" do
|
|
59
22
|
before(:each) do
|
|
60
23
|
@obj.stub!(:default_options).and_return {}
|
|
@@ -65,4 +28,4 @@ describe "Object" do
|
|
|
65
28
|
end
|
|
66
29
|
end
|
|
67
30
|
end
|
|
68
|
-
end
|
|
31
|
+
end
|
|
@@ -8,19 +8,25 @@ end
|
|
|
8
8
|
class DependencyResolverSpecTestResource
|
|
9
9
|
include Dslify
|
|
10
10
|
include PoolParty::DependencyResolverResourceExtensions
|
|
11
|
+
|
|
12
|
+
dsl_methods :name, :template, :content
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
# plugins, base_packages
|
|
14
16
|
class DependencyResolverSpecTestService < DependencyResolverCloudExtensionsSpecBase
|
|
15
|
-
|
|
17
|
+
dsl_methods :listen
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
# clouds, duh
|
|
19
21
|
class DependencyResolverSpecTestCloud < DependencyResolverCloudExtensionsSpecBase
|
|
22
|
+
dsl_methods :keypair, :name
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
class JunkClassForDefiningPlugin
|
|
23
26
|
plugin :apache_plugin do
|
|
27
|
+
default_options(
|
|
28
|
+
:listen => 80
|
|
29
|
+
)
|
|
24
30
|
def loaded(o={},&block)
|
|
25
31
|
end
|
|
26
32
|
end
|
|
@@ -29,35 +35,35 @@ end
|
|
|
29
35
|
describe "Resolution spec" do
|
|
30
36
|
before(:each) do
|
|
31
37
|
@apache_file = DependencyResolverSpecTestResource.new
|
|
32
|
-
@apache_file.name "/etc/apache2/apache2.conf"
|
|
33
|
-
@apache_file.template "/absolute/path/to/template"
|
|
34
|
-
@apache_file.content "rendered template string"
|
|
38
|
+
@apache_file.name = "/etc/apache2/apache2.conf"
|
|
39
|
+
@apache_file.template = "/absolute/path/to/template"
|
|
40
|
+
@apache_file.content = "rendered template string"
|
|
35
41
|
|
|
36
42
|
@apache = DependencyResolverSpecTestService.new :apache_file
|
|
37
|
-
@apache.listen "8080"
|
|
43
|
+
@apache.listen = "8080"
|
|
38
44
|
@apache.resources[:file] = []
|
|
39
45
|
@apache.resources[:file] << @apache_file
|
|
40
46
|
|
|
41
47
|
@cloud = DependencyResolverSpecTestCloud.new :cloud
|
|
42
|
-
@cloud.keypair "bob"
|
|
43
|
-
@cloud.name "dog"
|
|
48
|
+
@cloud.keypair = "bob"
|
|
49
|
+
@cloud.name = "dog"
|
|
44
50
|
|
|
45
51
|
(@cloud.resources[:apache] ||= []) << @apache
|
|
46
52
|
|
|
47
53
|
@cloud_file_motd = DependencyResolverSpecTestResource.new
|
|
48
|
-
@cloud_file_motd.name "/etc/motd"
|
|
49
|
-
@cloud_file_motd.content "Welcome to the cloud"
|
|
54
|
+
@cloud_file_motd.name = "/etc/motd"
|
|
55
|
+
@cloud_file_motd.content = "Welcome to the cloud"
|
|
50
56
|
|
|
51
57
|
@cloud_file_profile = DependencyResolverSpecTestResource.new
|
|
52
|
-
@cloud_file_profile.name "/etc/profile"
|
|
53
|
-
@cloud_file_profile.content "profile info"
|
|
58
|
+
@cloud_file_profile.name = "/etc/profile"
|
|
59
|
+
@cloud_file_profile.content = "profile info"
|
|
54
60
|
|
|
55
61
|
@cloud.resources[:file] = []
|
|
56
62
|
@cloud.resources[:file] << @cloud_file_motd
|
|
57
63
|
@cloud.resources[:file] << @cloud_file_profile
|
|
58
64
|
|
|
59
65
|
@cloud_directory_var_www = DependencyResolverSpecTestResource.new
|
|
60
|
-
@cloud_directory_var_www.name "/var/www"
|
|
66
|
+
@cloud_directory_var_www.name = "/var/www"
|
|
61
67
|
|
|
62
68
|
@cloud.resources[:directory] = []
|
|
63
69
|
@cloud.resources[:directory] << @cloud_directory_var_www
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"default_properties_hash_filename": "cloud.json",
|
|
35
35
|
"poolparty_home_path": "/Users/mfairchild/.poolparty",
|
|
36
36
|
"keypairs": ["/Users/mfairchild/.ec2oncourse/r_and_d.pem", "/Users/mfairchild/.ssh/id_rsa"],
|
|
37
|
-
"
|
|
37
|
+
"availability_zone": "us-east-1a",
|
|
38
38
|
"fileserver_base": "puppet://master/files",
|
|
39
39
|
"debugging": false,
|
|
40
40
|
"minimum_instances": 1,
|
|
@@ -7,11 +7,11 @@ describe "Option Parser" do
|
|
|
7
7
|
@op = PoolParty::Optioner.new([], {:abstract => true})
|
|
8
8
|
@op.parse_options
|
|
9
9
|
end
|
|
10
|
-
it "should set the
|
|
11
|
-
@op.
|
|
10
|
+
it "should set the dsl_options as an Hash" do
|
|
11
|
+
@op.dsl_options.class.should == Hash
|
|
12
12
|
end
|
|
13
13
|
it "should have the verbose option set to false by default" do
|
|
14
|
-
@op.verbose
|
|
14
|
+
@op.verbose?.should == false
|
|
15
15
|
end
|
|
16
16
|
it "should call a method called on it that is not defined on the options if they exist" do
|
|
17
17
|
@op.dsl_options.should_receive(:[]).with(:verbose).at_least(1).and_return true
|
|
@@ -40,11 +40,4 @@ describe "Option Parser" do
|
|
|
40
40
|
@op.flagged_args.should == ["-v", "-i", "1", "-x"]
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
|
-
|
|
44
|
-
it "should be able to take a block and set some options on the block" do
|
|
45
|
-
PoolParty::Optioner.new(["-w"], {:abstract => false, :load_pools => false}) do |opts, optioner|
|
|
46
|
-
opts.on('-w', '--wee') { optioner.wee "wee" }
|
|
47
|
-
opts.on('-t t', '--teatime tea') { optioner.tea "time" }
|
|
48
|
-
end.wee.should == "wee"
|
|
49
|
-
end
|
|
50
|
-
end
|
|
43
|
+
end
|
|
@@ -7,14 +7,10 @@ end
|
|
|
7
7
|
|
|
8
8
|
describe "RemoterBase" do
|
|
9
9
|
before(:each) do
|
|
10
|
-
|
|
10
|
+
@tr = TestRemoteClass.new
|
|
11
11
|
end
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@tr = TestRemoteClass.new
|
|
15
|
-
end
|
|
16
|
-
%w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
|
|
17
|
-
eval <<-EOE
|
|
12
|
+
%w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
|
|
13
|
+
eval <<-EOE
|
|
18
14
|
it "should raise an exception if #{method} is not defined as a method" do
|
|
19
15
|
# pending # Weird .should raise_error
|
|
20
16
|
lambda { @tr.class.#{method} }.should raise_error
|
|
@@ -28,8 +24,8 @@ describe "RemoterBase" do
|
|
|
28
24
|
@tr.#{method}
|
|
29
25
|
}.should_not raise_error
|
|
30
26
|
end
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
EOE
|
|
28
|
+
|
|
34
29
|
end
|
|
35
|
-
end
|
|
30
|
+
end
|
|
31
|
+
|
|
@@ -3,22 +3,20 @@ class TestEC2Class < Ec2
|
|
|
3
3
|
include CloudDsl
|
|
4
4
|
include Dslify
|
|
5
5
|
|
|
6
|
-
default_options
|
|
7
|
-
|
|
6
|
+
default_options :access_key => "Not an access key",
|
|
7
|
+
:secret_access_key => "not a secret access key",
|
|
8
|
+
:keypair => 'id_rsa'
|
|
8
9
|
|
|
9
|
-
def ami;"ami-abc123";end
|
|
10
|
-
def size; "small";end
|
|
11
|
-
def security_group; "default";end
|
|
12
|
-
def ebs_volume_id; "ebs_volume_id";end
|
|
13
|
-
def
|
|
14
|
-
def verbose; false; end
|
|
10
|
+
# def ami;"ami-abc123";end
|
|
11
|
+
# def size; "small";end
|
|
12
|
+
# def security_group; "default";end
|
|
13
|
+
# def ebs_volume_id; "ebs_volume_id";end
|
|
14
|
+
# def availability_zone; "us-east-1a";end
|
|
15
|
+
# def verbose; false; end
|
|
15
16
|
def describe_instances(o={})
|
|
16
17
|
response_list_of_instances
|
|
17
18
|
end
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
class TestEc2RemoteInstance < PoolParty::Remote::Ec2RemoteInstance
|
|
21
|
-
def initialize(opts, p=nil)
|
|
22
|
-
super
|
|
23
|
-
end
|
|
24
22
|
end
|
|
@@ -2,30 +2,21 @@ require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
|
2
2
|
require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
3
3
|
|
|
4
4
|
include PoolParty::Remote
|
|
5
|
-
# include Aska
|
|
6
|
-
|
|
7
|
-
# require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
8
5
|
|
|
9
6
|
|
|
10
7
|
describe "Ec2RemoteInstance" do
|
|
11
8
|
before(:each) do
|
|
12
9
|
@cloud = TestCloud.new :test_remoter_base_cloud
|
|
13
|
-
@
|
|
14
|
-
|
|
15
|
-
@ec2.my_cloud.stub!(:describe_instances).and_return response_list_of_instances
|
|
16
|
-
end
|
|
17
|
-
it "should require options" do
|
|
18
|
-
lambda {TestEc2RemoteInstance.new()}.should raise_error
|
|
10
|
+
@tec2 = TestEC2Class.new(@cloud.dsl_options)
|
|
11
|
+
@ec2 = TestEc2RemoteInstance.new( @tec2.dsl_options.merge(:name => "node3", :status => "pending", :ip => "192.168.0.3"))
|
|
19
12
|
end
|
|
20
13
|
it "should have the name set in the options" do
|
|
21
|
-
@ec2.respond_to?(:name).should ==
|
|
22
|
-
@ec2.
|
|
14
|
+
@ec2.respond_to?(:name).should == true
|
|
15
|
+
@ec2.dsl_options.keys.include?(:name).should == true
|
|
23
16
|
@ec2.name.should == 'node3'
|
|
24
17
|
end
|
|
25
18
|
it "should have access to parent cloud options" do
|
|
26
|
-
@ec2.
|
|
27
|
-
@ec2.my_cloud.should respond_to(:describe_instances)
|
|
28
|
-
@ec2.my_cloud.size.should == 'small'
|
|
19
|
+
@ec2.instance_type.should == 'm1.small'
|
|
29
20
|
end
|
|
30
21
|
it "should have instance description hash mapped to methods" do
|
|
31
22
|
# puts "<ol>"
|
|
@@ -34,43 +25,14 @@ describe "Ec2RemoteInstance" do
|
|
|
34
25
|
@ec2.status.should == 'pending'
|
|
35
26
|
@ec2.name.should == 'node3'
|
|
36
27
|
@ec2.ip.should == '192.168.0.3'
|
|
37
|
-
@ec2.launching_time.should_not be_nil
|
|
38
|
-
@ec2.valid?.should be_true
|
|
39
|
-
end
|
|
40
|
-
it "should not be the master" do
|
|
41
|
-
@ec2.master?.should_not be_true
|
|
42
28
|
end
|
|
43
29
|
end
|
|
44
30
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
31
|
describe "Remote Instance" do
|
|
51
32
|
before(:each) do
|
|
52
|
-
setup
|
|
53
33
|
@valid_hash = {:ip => "127.0.0.1", :name => "master"}
|
|
54
34
|
end
|
|
55
35
|
|
|
56
|
-
describe "configurable" do
|
|
57
|
-
it "should set the options sent in the options, overiding passed option with found instance values" do
|
|
58
|
-
@ec2 = TestEc2RemoteInstance.new(@valid_hash)
|
|
59
|
-
@ec2.ip.should == "127.0.0.1"
|
|
60
|
-
end
|
|
61
|
-
it "should set the options sent by the parent" do
|
|
62
|
-
@obj = Object.new
|
|
63
|
-
@obj.stub!(:options).and_return({:dude => "tte"})
|
|
64
|
-
@ec2 = @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
|
|
65
|
-
@ec2.dude.should == "tte"
|
|
66
|
-
end
|
|
67
|
-
it "should not overwrite the options that are already set" do
|
|
68
|
-
@obj = Object.new
|
|
69
|
-
@obj.stub!(:options).and_return({:ip => "172.176.0.1"})
|
|
70
|
-
@ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
|
|
71
|
-
@ec2.ip.should == "127.0.0.1"
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
36
|
it "should create a remote instance with a Hash" do
|
|
75
37
|
@ec2 = TestEc2RemoteInstance.new(@valid_hash)
|
|
76
38
|
@ec2.valid?.should == true
|
|
@@ -111,4 +73,4 @@ describe "Remote Instance" do
|
|
|
111
73
|
# @ec2.responding.should_not be_nil
|
|
112
74
|
end
|
|
113
75
|
end
|
|
114
|
-
end
|
|
76
|
+
end
|
|
@@ -5,7 +5,7 @@ require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
|
|
|
5
5
|
describe "ec2 remote base" do
|
|
6
6
|
before(:each) do
|
|
7
7
|
@cloud = TestCloud.new :test_remoter_base_cloud
|
|
8
|
-
@tr = TestEC2Class.new(@cloud)
|
|
8
|
+
@tr = TestEC2Class.new(@cloud.dsl_options)
|
|
9
9
|
stub_remoter_for(@tr)
|
|
10
10
|
# @tr.stub!(:get_instances_description).and_return response_list_of_instances
|
|
11
11
|
end
|
|
@@ -91,8 +91,7 @@ describe "ec2 remote base" do
|
|
|
91
91
|
@tr.next_unused_elastic_ip.should == "174.129.212.93"
|
|
92
92
|
end
|
|
93
93
|
it "should use only the elastic ips set on the cloud" do
|
|
94
|
-
@
|
|
95
|
-
@cloud.stub!(:elastic_ips).and_return ["182.199.200.201"]
|
|
94
|
+
@tr.stub!(:elastic_ips).and_return ["182.199.200.201"]
|
|
96
95
|
@tr.stub!(:cloud).and_return @cloud
|
|
97
96
|
@tr.next_unused_elastic_ip.should == "182.199.200.201"
|
|
98
97
|
end
|
|
@@ -2,10 +2,9 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
|
2
2
|
|
|
3
3
|
describe "Remoter" do
|
|
4
4
|
before(:each) do
|
|
5
|
-
setup
|
|
6
5
|
@cloud = cloud :app do;end
|
|
7
6
|
@tc = TestClass.new
|
|
8
|
-
@tc.parent = @cloud
|
|
7
|
+
# @tc.parent = @cloud
|
|
9
8
|
@sample_instances_list = [{:ip => "192.168.0.1", :name => "master"}, {:ip => "192.168.0.2", :name => "node1"}]
|
|
10
9
|
end
|
|
11
10
|
describe "ssh_string" do
|
|
@@ -130,4 +129,4 @@ describe "Remoter" do
|
|
|
130
129
|
# end
|
|
131
130
|
# end
|
|
132
131
|
|
|
133
|
-
end
|
|
132
|
+
end
|
|
@@ -9,7 +9,7 @@ describe "Remote Instance" do
|
|
|
9
9
|
reset!
|
|
10
10
|
@tc = cloud :test_git_class_cloud do
|
|
11
11
|
has_file "/var/www/bino"
|
|
12
|
-
|
|
12
|
+
has_git_repo "git://git/repos/source.git", :to => "/var/www/source", :requires_user => "finger"
|
|
13
13
|
end
|
|
14
14
|
@compiled = ChefResolver.new(@tc.to_properties_hash).compile
|
|
15
15
|
end
|
|
@@ -25,17 +25,14 @@ describe "Remote Instance" do
|
|
|
25
25
|
describe "in resource" do
|
|
26
26
|
before(:each) do
|
|
27
27
|
@tc = cloud :test_git_class_cloud_two do
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
source "git://source.git"
|
|
31
|
-
path "/var/www/xnot.org"
|
|
32
|
-
at "/var/www"
|
|
28
|
+
has_git_repo("git://source.git") do
|
|
29
|
+
to "/var/www/xnot.org"
|
|
33
30
|
end
|
|
34
31
|
end
|
|
35
32
|
end
|
|
36
33
|
it "should have the path set within the resource" do
|
|
37
|
-
ChefResolver.new(@tc.to_properties_hash).compile.should =~ /execute \"git-
|
|
34
|
+
ChefResolver.new(@tc.to_properties_hash).compile.should =~ /execute \"git-git:\/\/source\.git/
|
|
38
35
|
end
|
|
39
36
|
end
|
|
40
37
|
end
|
|
41
|
-
end
|
|
38
|
+
end
|