auser-poolparty 1.2.8 → 1.2.9
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-list +4 -4
- data/bin/cloud-provision +2 -0
- data/bin/cloud-ssh +1 -1
- data/bin/install-poolparty +1 -1
- data/examples/fairchild.rb +26 -17
- data/examples/metavirt_cloud.rb +2 -4
- data/lib/poolparty.rb +2 -7
- data/lib/poolparty/core/array.rb +1 -1
- data/lib/poolparty/core/exception.rb +1 -1
- data/lib/poolparty/core/hash.rb +12 -5
- data/lib/poolparty/core/integer.rb +11 -0
- data/lib/poolparty/core/object.rb +14 -0
- data/lib/poolparty/core/string.rb +6 -1
- data/lib/poolparty/core/time.rb +6 -0
- data/lib/poolparty/extra/duration.rb +96 -0
- data/lib/poolparty/helpers/binary.rb +1 -1
- data/lib/poolparty/modules/cloud_resourcer.rb +1 -1
- data/lib/poolparty/modules/definable_resource.rb +5 -7
- data/lib/poolparty/modules/output.rb +2 -2
- data/lib/poolparty/monitors/base_monitor.rb +17 -0
- data/lib/poolparty/net/init.rb +4 -11
- data/lib/poolparty/net/remote_instance.rb +5 -0
- data/lib/poolparty/net/remoter/connections.rb +14 -11
- data/lib/poolparty/net/remoter/interactive.rb +13 -2
- data/lib/poolparty/net/remoter_base.rb +9 -4
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +50 -35
- data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +46 -5
- data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +57 -1
- data/lib/poolparty/plugins/apache2/apache.rb +13 -160
- data/lib/poolparty/plugins/apache2/passenger_site.rb +86 -0
- data/lib/poolparty/plugins/apache2/php5.rb +40 -0
- data/lib/poolparty/plugins/apache2/virtual_host.rb +53 -0
- data/lib/poolparty/plugins/authorized_key.rb +2 -2
- data/lib/poolparty/plugins/bind.rb +5 -6
- data/lib/poolparty/plugins/{chef.rb → chef/chef.rb} +22 -18
- data/lib/poolparty/plugins/{chef_deploy.rb → chef/chef_deploy.rb} +20 -19
- data/lib/poolparty/plugins/deploy_directory.rb +2 -3
- data/lib/poolparty/plugins/gem_package.rb +6 -12
- data/lib/poolparty/plugins/git.rb +22 -7
- data/lib/poolparty/{base_packages → plugins}/haproxy.rb +2 -2
- data/lib/poolparty/{base_packages → plugins}/heartbeat.rb +7 -7
- data/lib/poolparty/plugins/line_in_file.rb +4 -2
- data/lib/poolparty/plugins/plugin_template.rb +13 -0
- data/lib/poolparty/{base_packages/poolparty.rb → plugins/poolparty_base_packages.rb} +2 -2
- data/lib/poolparty/plugins/rails_deploy.rb +2 -3
- data/lib/poolparty/{base_packages → plugins}/ruby.rb +3 -3
- data/lib/poolparty/{base_packages → plugins}/runit.rb +3 -3
- data/lib/poolparty/plugins/svn.rb +8 -6
- data/lib/poolparty/poolparty/cloud.rb +5 -8
- data/lib/poolparty/poolparty/default.rb +1 -1
- data/lib/poolparty/poolparty/plugin.rb +36 -15
- data/lib/poolparty/poolparty/pool.rb +6 -2
- data/lib/poolparty/poolparty/poolparty_base_class.rb +5 -11
- data/lib/poolparty/poolparty/resource.rb +2 -1
- data/lib/poolparty/poolparty/service.rb +6 -8
- data/lib/poolparty/provision/dr_configure.rb +3 -3
- data/lib/poolparty/verification/verifier_base.rb +10 -0
- data/spec/bin/server-list-active_spec.rb +1 -3
- data/spec/poolparty/core/string_spec.rb +1 -1
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -2
- data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +16 -13
- data/spec/poolparty/extra/deployments_spec.rb +68 -68
- data/spec/poolparty/net/remoter_bases/ec2_spec.rb +1 -0
- data/spec/poolparty/plugins/deploydirectory_spec.rb +64 -51
- data/spec/poolparty/poolparty/cloud_spec.rb +21 -19
- data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +1 -1
- data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +1 -1
- data/spec/poolparty/{base_packages → poolparty}/haproxy_spec.rb +1 -1
- data/spec/poolparty/{base_packages → poolparty}/heartbeat_spec.rb +1 -1
- data/spec/poolparty/poolparty/plugin_model_spec.rb +6 -13
- data/spec/poolparty/poolparty/plugin_spec.rb +7 -7
- data/spec/poolparty/poolparty/resource_spec.rb +15 -5
- data/spec/poolparty/poolparty/test_plugins/webserver.rb +27 -23
- data/test/fixtures/metavirt_cloud.json +1 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +0 -5
- data/test/poolparty/modules/cloud_dsl_test.rb +1 -1
- data/test/poolparty/monitors/test_base_monitor.rb +17 -0
- data/test/poolparty/monitors/test_monitor_rack.rb +39 -0
- data/test/poolparty/net/remoter_base_test.rb +18 -0
- data/test/poolparty/plugins/chef_deploy_test.rb +1 -1
- data/test/poolparty/plugins/rails_deploy_test.rb +3 -3
- data/test/poolparty/poolparty/cloud_test.rb +27 -2
- data/test/poolparty/poolparty/isolated_cloud_test.rb +25 -0
- data/test/poolparty/poolparty/plugin_test.rb +9 -8
- data/test/poolparty/poolparty/schema_test.rb +13 -0
- data/test/poolparty/verification/verify_test.rb +4 -0
- data/test/test_helper.rb +10 -3
- data/test/test_methods.rb +11 -0
- data/vendor/gems/dslify/test/dslify_test.rb +28 -0
- metadata +29 -15
- data/lib/poolparty/extra/deployments.rb +0 -31
- data/lib/poolparty/poolparty/plugin_model.rb +0 -46
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
module PoolParty
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
module Plugin
|
|
3
|
+
class Heartbeat < Plugin
|
|
4
4
|
|
|
5
|
-
def enable
|
|
6
|
-
|
|
5
|
+
def enable
|
|
6
|
+
|
|
7
7
|
has_package({:name => "heartbeat-2"})
|
|
8
8
|
has_package({:name => "heartbeat-2-dev"})
|
|
9
9
|
|
|
10
10
|
has_service("heartbeat")
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
end
|
|
13
|
-
|
|
14
|
-
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
15
|
end
|
|
16
16
|
end
|
|
@@ -15,19 +15,21 @@ Ensures that the line given is in the file
|
|
|
15
15
|
has_line_in_file("ENABLED=1", "/etc/default/haproxy")
|
|
16
16
|
=end
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
module Plugin
|
|
19
|
+
class LineInFile < Plugin
|
|
19
20
|
|
|
20
|
-
plugin :line_in_file do
|
|
21
21
|
dsl_methods :file, :line
|
|
22
22
|
default_options(
|
|
23
23
|
:line => ""
|
|
24
24
|
)
|
|
25
|
+
|
|
25
26
|
def loaded(opts={}, &block)
|
|
26
27
|
has_exec "line_in_#{file}" do
|
|
27
28
|
command "grep -q \'#{line.safe_quote}\' #{file} || echo \'#{line.safe_quote}\' >> #{file}"
|
|
28
29
|
not_if "grep -q \'#{line.safe_quote}\' #{file}"
|
|
29
30
|
end
|
|
30
31
|
end
|
|
32
|
+
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module PoolParty
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
module Plugin
|
|
3
|
+
class Ruby < Plugin
|
|
4
4
|
|
|
5
5
|
def enable
|
|
6
6
|
install_base_packages
|
|
@@ -8,7 +8,7 @@ module PoolParty
|
|
|
8
8
|
|
|
9
9
|
def install_base_packages
|
|
10
10
|
has_package(:name => "libreadline-ruby1.8")
|
|
11
|
-
has_package(:name => "libruby1.8")
|
|
11
|
+
has_package(:name => "libruby1.8")
|
|
12
12
|
has_package(:name => "ruby1.8-dev")
|
|
13
13
|
has_package(:name => "ruby1.8")
|
|
14
14
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
NOT IMPLEMENTED YET
|
|
4
4
|
=end
|
|
5
5
|
module PoolParty
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
module Plugin
|
|
7
|
+
class PoolPartyBaseRunit < Plugin
|
|
8
8
|
|
|
9
9
|
def enable
|
|
10
10
|
unless enabled
|
|
@@ -13,7 +13,7 @@ module PoolParty
|
|
|
13
13
|
has_exec(:name => "/sbin/start runsvdir", :cwd => "/var/service")
|
|
14
14
|
# has_remotefile(:name => "/etc/event.d/runsvdir", :notify => get_exec("/sbin/start runsvdir"))
|
|
15
15
|
enabled true
|
|
16
|
-
end
|
|
16
|
+
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
end
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
module PoolParty
|
|
2
|
+
module Plugin
|
|
3
|
+
|
|
4
|
+
class Svn < Plugin
|
|
5
|
+
|
|
5
6
|
def loaded(*args)
|
|
6
7
|
has_package :name => "subversion"
|
|
7
8
|
end
|
|
9
|
+
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
class SvnRepos < Plugin
|
|
11
13
|
|
|
12
14
|
dsl_methods :creates, :command, :cwd, :source, :working_dir, :at
|
|
13
15
|
|
|
@@ -15,7 +17,7 @@ module PoolParty
|
|
|
15
17
|
has_package("subversion")
|
|
16
18
|
has_svn_repository
|
|
17
19
|
end
|
|
18
|
-
|
|
20
|
+
|
|
19
21
|
def has_svn_repository
|
|
20
22
|
has_directory(::File.dirname(working_dir))
|
|
21
23
|
has_directory(:name => "#{working_dir}", :requires => get_directory("#{::File.dirname(working_dir)}"))
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + "/plugin_model"
|
|
2
1
|
require File.dirname(__FILE__) + "/resource"
|
|
3
2
|
|
|
4
3
|
module PoolParty
|
|
@@ -42,14 +41,13 @@ module PoolParty
|
|
|
42
41
|
)
|
|
43
42
|
|
|
44
43
|
include CloudResourcer
|
|
45
|
-
include PoolParty::PluginModel
|
|
46
44
|
include PoolParty::Resources
|
|
47
45
|
include PoolParty::Callbacks
|
|
48
46
|
include PoolParty::DependencyResolverCloudExtensions
|
|
49
47
|
include PrettyPrinter
|
|
50
48
|
|
|
51
49
|
# Net methods
|
|
52
|
-
include
|
|
50
|
+
include PoolParty::Remote
|
|
53
51
|
include PoolParty::CloudDsl
|
|
54
52
|
include PoolParty::Verification
|
|
55
53
|
# include PoolParty::Monitors
|
|
@@ -95,7 +93,7 @@ module PoolParty
|
|
|
95
93
|
|
|
96
94
|
setup_callbacks
|
|
97
95
|
|
|
98
|
-
plugin_directory "#{pool_specfile ? ::File.dirname(pool_specfile) : Dir.pwd}/plugins"
|
|
96
|
+
plugin_directory "#{pool_specfile ? ::File.dirname(pool_specfile) : Dir.pwd}/plugins"
|
|
99
97
|
before_create
|
|
100
98
|
super
|
|
101
99
|
after_create
|
|
@@ -277,7 +275,6 @@ module PoolParty
|
|
|
277
275
|
def to_hash
|
|
278
276
|
hsh = to_properties_hash
|
|
279
277
|
hsh[:options].merge!({:remote_base => remote_base.to_hash})
|
|
280
|
-
# hsh.reject{|k,v| k == :remote_base || k == :cloud}
|
|
281
278
|
hsh
|
|
282
279
|
end
|
|
283
280
|
|
|
@@ -378,15 +375,15 @@ module PoolParty
|
|
|
378
375
|
end
|
|
379
376
|
|
|
380
377
|
# Add all the poolparty requirements here
|
|
381
|
-
# NOTE: These are written as plugins in the lib/poolparty/
|
|
378
|
+
# NOTE: These are written as plugins in the lib/poolparty/plugins directory
|
|
382
379
|
# for examples.
|
|
383
380
|
# Also note that there is no block associated. This is because we have written
|
|
384
381
|
# all that is necessary in a method called enable
|
|
385
382
|
# which is called when there is no block
|
|
386
383
|
def add_poolparty_base_requirements
|
|
387
384
|
# poolparty_base_heartbeat
|
|
388
|
-
|
|
389
|
-
|
|
385
|
+
ruby
|
|
386
|
+
pool_party_base_packages
|
|
390
387
|
end
|
|
391
388
|
|
|
392
389
|
end
|
|
@@ -3,36 +3,34 @@ require "#{::File.dirname(__FILE__)}/../provision/boot_strapper.rb"
|
|
|
3
3
|
|
|
4
4
|
module PoolParty
|
|
5
5
|
module Plugin
|
|
6
|
+
|
|
7
|
+
def self.available
|
|
8
|
+
@available_plugins ||= []
|
|
9
|
+
end
|
|
6
10
|
|
|
7
11
|
class Plugin < PoolParty::Service
|
|
8
12
|
include CloudResourcer
|
|
9
13
|
include PoolParty::DependencyResolverCloudExtensions
|
|
10
14
|
include PoolParty::Callbacks
|
|
11
15
|
|
|
12
|
-
|
|
13
|
-
:name => nil
|
|
14
|
-
)
|
|
16
|
+
dsl_methods :name
|
|
15
17
|
|
|
16
|
-
def initialize(opts={}, extra_opts={}, prnt=nil, &block)
|
|
18
|
+
def initialize(opts={}, extra_opts={}, prnt=nil, &block)
|
|
17
19
|
setup_callbacks
|
|
18
20
|
|
|
19
|
-
run_in_context
|
|
20
|
-
before_load(opts, &block)
|
|
21
|
-
end
|
|
21
|
+
run_in_context { before_load(opts, &block) }
|
|
22
22
|
|
|
23
|
-
block = Proc.new {enable} unless block
|
|
23
|
+
block = Proc.new {enable} unless block
|
|
24
24
|
|
|
25
25
|
super(opts, &block)
|
|
26
26
|
|
|
27
|
-
run_in_context
|
|
28
|
-
loaded opts, &block
|
|
29
|
-
end
|
|
27
|
+
run_in_context { loaded opts, &block }
|
|
30
28
|
|
|
31
29
|
after_create
|
|
32
30
|
end
|
|
33
31
|
|
|
34
32
|
# Overwrite this method
|
|
35
|
-
def before_load(o={}, &block)
|
|
33
|
+
def before_load(o={}, &block)
|
|
36
34
|
end
|
|
37
35
|
def loaded(o={}, &block)
|
|
38
36
|
end
|
|
@@ -70,9 +68,32 @@ module PoolParty
|
|
|
70
68
|
end
|
|
71
69
|
|
|
72
70
|
def self.inherited(subclass)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
|
|
72
|
+
klass = subclass.to_s.split('::').pop.to_s
|
|
73
|
+
add_has_and_does_not_have_methods_for(klass.snake_case)
|
|
74
|
+
add_resource_lookup_method(klass.snake_case)
|
|
75
|
+
|
|
76
|
+
# Add the plugin definition to the cloud as an instance method
|
|
77
|
+
# For example apache do; apache option and method; end
|
|
78
|
+
meth = <<-EOM
|
|
79
|
+
def #{klass.snake_case}(opts={}, &block)
|
|
80
|
+
i = plugin_store.select {|i| i if i.class.to_s =~ /#{klass}/ }.first if plugin_store
|
|
81
|
+
if i
|
|
82
|
+
i
|
|
83
|
+
else
|
|
84
|
+
inst = ::PoolParty::Plugin::#{klass}.new(opts, parent, &block)
|
|
85
|
+
plugin_store << inst if plugin_store
|
|
86
|
+
inst
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
EOM
|
|
90
|
+
|
|
91
|
+
::PoolParty::PoolPartyBaseClass.module_eval meth
|
|
92
|
+
|
|
93
|
+
# Store the plugins so they will be availble in an array at Plugin.available
|
|
94
|
+
::PoolParty::Plugin.available << subclass
|
|
95
|
+
super
|
|
96
|
+
|
|
76
97
|
end
|
|
77
98
|
|
|
78
99
|
end
|
|
@@ -44,8 +44,13 @@ module PoolParty
|
|
|
44
44
|
super(&block)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
+
|
|
47
48
|
def self.load_from_file(filename=nil)
|
|
48
49
|
# a = new ::File.basename(filename, ::File.extname(filename))
|
|
50
|
+
#TODO: load any user defined monitors plugins verifiers before the cloud spec is evaled
|
|
51
|
+
#%w(monitors plugins verifiers).each do |lib|
|
|
52
|
+
# Dir[File.join(::File.dirname(::File.basename(filename)), lib, '*')].each{|f| require f }
|
|
53
|
+
# end
|
|
49
54
|
File.open(filename, 'r') do |f|
|
|
50
55
|
instance_eval f.read, pool_specfile
|
|
51
56
|
end
|
|
@@ -58,8 +63,7 @@ module PoolParty
|
|
|
58
63
|
|
|
59
64
|
def parent;nil;end
|
|
60
65
|
|
|
61
|
-
def setup_defaults
|
|
62
|
-
PoolParty::Extra::Deployments.include_deployments "#{Dir.pwd}/deployments"
|
|
66
|
+
def setup_defaults
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
def pool_clouds
|
|
@@ -13,7 +13,7 @@ module PoolParty
|
|
|
13
13
|
$context_stack ||= []
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
class PoolPartyBaseClass
|
|
16
|
+
class PoolPartyBaseClass
|
|
17
17
|
attr_reader :init_opts
|
|
18
18
|
|
|
19
19
|
include Parenting, Dslify
|
|
@@ -72,16 +72,10 @@ module PoolParty
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# Add to the services pool for the manifest listing
|
|
75
|
-
def add_service(serv
|
|
76
|
-
subclass = "#{serv.class.to_s.top_level_class.underscore.downcase}#{extra_name}"
|
|
77
|
-
lowercase_class_name = subclass.to_s.underscore.downcase || subclass.downcase
|
|
78
|
-
|
|
79
|
-
# (services[lowercase_class_name.to_sym] ||= []) << serv if serv && !serv.empty?
|
|
75
|
+
def add_service(serv)
|
|
80
76
|
ordered_resources << serv
|
|
81
|
-
# services.merge!({lowercase_class_name.to_sym => serv})
|
|
82
77
|
end
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
|
|
85
79
|
def inspect
|
|
86
80
|
to_properties_hash.inspect
|
|
87
81
|
end
|
|
@@ -92,7 +86,6 @@ module PoolParty
|
|
|
92
86
|
|
|
93
87
|
def to_json
|
|
94
88
|
to_hash.to_json
|
|
95
|
-
# JSON.generate(to_hash)
|
|
96
89
|
end
|
|
97
90
|
|
|
98
91
|
def resources
|
|
@@ -120,7 +113,8 @@ module PoolParty
|
|
|
120
113
|
opts = (opts.is_a?(Hash) ? extra_opts.merge(opts) : extra_opts).merge(:name => temp_name)
|
|
121
114
|
|
|
122
115
|
# opts.merge!(:name => temp_name) unless opts.has_key?(:name)
|
|
123
|
-
res = if PoolParty::Resources::Resource.available_resources.include?(ty.to_s.camelize)
|
|
116
|
+
res = if (PoolParty::Resources::Resource.available_resources.include?(ty.to_s.camelize) ||
|
|
117
|
+
PoolParty::Resources::Resource.available_resources.include?("PoolParty::Resources::#{ty.to_s.camelize}".camelize.constantize))
|
|
124
118
|
"PoolParty::Resources::#{ty.to_s.camelize}".camelize.constantize.new(opts, &block)
|
|
125
119
|
else
|
|
126
120
|
"#{ty.to_s.camelize}".camelize.constantize.new(opts.merge(:name), &block)
|
|
@@ -37,6 +37,7 @@ module PoolParty
|
|
|
37
37
|
# those methods. Then we make sure we add these resources as available_resources
|
|
38
38
|
# onto the class so we know it's available as a resource
|
|
39
39
|
def self.inherited(subclass)
|
|
40
|
+
original_subclass = subclass
|
|
40
41
|
subclass = subclass.to_s.split("::")[-1] if subclass.to_s.index("::")
|
|
41
42
|
lowercase_class_name = subclass.to_s.underscore.downcase || subclass.downcase
|
|
42
43
|
method_name = "__#{lowercase_class_name}".to_sym
|
|
@@ -59,7 +60,7 @@ module PoolParty
|
|
|
59
60
|
PoolParty::PoolPartyBaseClass.add_has_and_does_not_have_methods_for(lowercase_class_name.to_sym)
|
|
60
61
|
PoolParty::PoolPartyBaseClass.add_resource_lookup_method(lowercase_class_name)
|
|
61
62
|
|
|
62
|
-
available_resources <<
|
|
63
|
+
available_resources << original_subclass
|
|
63
64
|
end
|
|
64
65
|
end
|
|
65
66
|
|
|
@@ -6,7 +6,7 @@ module PoolParty
|
|
|
6
6
|
|
|
7
7
|
def to_properties_hash
|
|
8
8
|
{ :pp_type => "plugin", :options => dsl_options,
|
|
9
|
-
:name => self.class.to_s.
|
|
9
|
+
:name => (dsl_options[:name] ? dsl_options[:name] : self.class.to_s.split('::').pop.snake_case),
|
|
10
10
|
:resources => ordered_resources.map {|a| a.to_properties_hash }}
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -17,20 +17,18 @@ module PoolParty
|
|
|
17
17
|
nil
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def self.add_has_and_does_not_have_methods_for(typ=:file)
|
|
21
|
-
lowercase_class_name = typ.to_s.top_level_class.downcase
|
|
22
|
-
|
|
20
|
+
def self.add_has_and_does_not_have_methods_for(typ=:file)
|
|
23
21
|
meth = <<-EOM
|
|
24
|
-
def __#{
|
|
25
|
-
i = PoolParty::#{
|
|
22
|
+
def __#{typ}(opts={}, &block)
|
|
23
|
+
i = ::PoolParty::Plugin::#{typ.camelcase}.new(opts, &block)
|
|
26
24
|
plugin_store << i if respond_to?(:plugin_store)
|
|
27
25
|
i
|
|
28
26
|
end
|
|
29
|
-
alias :#{
|
|
27
|
+
alias :#{typ} :__#{typ}
|
|
30
28
|
EOM
|
|
31
29
|
|
|
32
30
|
PoolParty::PoolPartyBaseClass.module_eval meth
|
|
33
|
-
PoolParty::PoolPartyBaseClass.add_has_and_does_not_have_methods_for(
|
|
31
|
+
PoolParty::PoolPartyBaseClass.add_has_and_does_not_have_methods_for(typ.to_sym)
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
end
|
|
@@ -52,7 +52,7 @@ module PoolParty
|
|
|
52
52
|
|
|
53
53
|
def prescribe_configuration
|
|
54
54
|
::FileUtils.mkdir_p "#{cloud.tmp_path}/dr_configure" unless ::File.directory?("#{cloud.tmp_path}/dr_configure")
|
|
55
|
-
::
|
|
55
|
+
::FileUtils.cp $pool_specfile, "#{cloud.tmp_path}/dr_configure/clouds.rb"
|
|
56
56
|
::File.open "#{cloud.tmp_path}/dr_configure/clouds.json", "w" do |f|
|
|
57
57
|
f << cloud.to_json
|
|
58
58
|
end
|
|
@@ -99,7 +99,7 @@ module PoolParty
|
|
|
99
99
|
'chmod 644 /var/poolparty/dr_configure/clouds.rb',
|
|
100
100
|
'cp /var/poolparty/dr_configure/clouds.json /etc/poolparty',
|
|
101
101
|
'cp /var/poolparty/dr_configure/clouds.rb /etc/poolparty',
|
|
102
|
-
'server-manage-election', #ensures that the monitor gets some data
|
|
102
|
+
# 'server-manage-election', #ensures that the monitor gets some data
|
|
103
103
|
'echo "configure" >> /var/poolparty/POOLPARTY.PROGRESS'
|
|
104
104
|
]
|
|
105
105
|
commands << self.class.class_commands unless self.class.class_commands.empty?
|
|
@@ -131,7 +131,7 @@ module PoolParty
|
|
|
131
131
|
# cookie = (1..16).collect { chars[rand(chars.size)] }.pack("C*")
|
|
132
132
|
cookie = (1..65).collect {rand(9)}.join()
|
|
133
133
|
cookie_file = ::File.open("#{cloud.tmp_path}/dr_configure/erlang.cookie", 'w+'){|f| f << cookie }
|
|
134
|
-
::
|
|
134
|
+
::FileUtils.cp "#{::File.dirname(__FILE__)}/../templates/erlang_cookie_maker", "#{cloud.tmp_path}/dr_configure/"
|
|
135
135
|
end
|
|
136
136
|
|
|
137
137
|
def self.class_commands
|