auser-poolparty 1.1.7 → 1.2.0
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/History.txt +3 -0
- data/README.txt +10 -7
- data/Rakefile +0 -1
- data/VERSION.yml +2 -2
- data/bin/cloud-osxcopy +1 -1
- data/bin/cloud-setup-dev +1 -1
- data/bin/cloud-spec +0 -1
- data/bin/cloud-terminate +7 -1
- data/bin/cloud-verify +30 -0
- data/examples/basic.rb +3 -6
- data/examples/fairchild.rb +17 -21
- data/examples/maize.rb +37 -0
- data/lib/poolparty/base_packages/haproxy.rb +6 -6
- data/lib/poolparty/base_packages/heartbeat.rb +1 -43
- data/lib/poolparty/base_packages/poolparty.rb +1 -3
- data/lib/poolparty/modules/cloud_dsl.rb +10 -2
- data/lib/poolparty/modules/cloud_resourcer.rb +0 -4
- data/lib/poolparty/net/init.rb +1 -1
- data/lib/poolparty/net/remote_instance.rb +0 -27
- data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
- data/lib/poolparty/net/remoter/interactive.rb +5 -16
- data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +1 -10
- data/lib/poolparty/plugins/apache2.rb +53 -0
- data/lib/poolparty/plugins/deploy_directory.rb +16 -14
- data/lib/poolparty/plugins/gem_package.rb +24 -0
- data/lib/poolparty/plugins/line_in_file.rb +16 -0
- data/lib/poolparty/poolparty/plugin.rb +8 -6
- data/lib/poolparty/provision/dr_configure.rb +1 -0
- data/lib/poolparty/resources.rb +42 -0
- data/lib/poolparty/resources/cron.rb +30 -1
- data/lib/poolparty/resources/directory.rb +23 -0
- data/lib/poolparty/resources/exec.rb +22 -0
- data/lib/poolparty/resources/file.rb +28 -0
- data/lib/poolparty/resources/host.rb +22 -1
- data/lib/poolparty/resources/mount.rb +24 -0
- data/lib/poolparty/resources/package.rb +29 -13
- data/lib/poolparty/resources/remote_file.rb +32 -0
- data/lib/poolparty/resources/service.rb +20 -0
- data/lib/poolparty/resources/sshkey.rb +22 -0
- data/lib/poolparty/resources/symlink.rb +30 -0
- data/lib/poolparty/resources/variable.rb +25 -0
- data/lib/poolparty/templates/php.ini.erb +1253 -0
- data/lib/poolparty/verification/verifiers/ping.rb +5 -0
- data/lib/poolparty/verification/verify.rb +2 -0
- data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
- data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -6
- data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +0 -10
- data/spec/poolparty/spec_helper.rb +0 -1
- data/tasks/spec.rake +2 -0
- data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +0 -10
- data/test/poolparty/verification/verify_test.rb +3 -3
- data/vendor/chef/apache2/attributes/apache.rb +1 -1
- data/vendor/gems/parenting/Manifest.txt +2 -1
- data/vendor/gems/parenting/lib/parenting.rb +1 -1
- data/vendor/gems/parenting/parenting.gemspec +2 -2
- metadata +8 -70
- data/bin/messenger-get-current-nodes +0 -14
- data/bin/server-become-master +0 -24
- data/bin/server-build-messenger +0 -28
- data/bin/server-clean-cert-for +0 -15
- data/bin/server-provision +0 -32
- data/bin/server-start-agent +0 -15
- data/bin/server-start-client +0 -29
- data/bin/server-start-master +0 -26
- data/bin/server-start-node +0 -32
- data/bin/server-stop-client +0 -3
- data/bin/server-stop-master +0 -3
- data/bin/server-stop-node +0 -3
- data/bin/server-update-hosts +0 -49
- data/lib/poolparty/capistrano.rb +0 -54
- data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
- data/lib/poolparty/config/postlaunchmessage.txt +0 -5
- data/lib/poolparty/net/messenger.rb +0 -57
- data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
- data/lib/poolparty/services/conditional.rb +0 -46
- data/lib/poolparty/spec.rb +0 -31
- data/lib/poolparty/spec/core/string.rb +0 -18
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
- data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
- data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
- data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
- data/lib/poolparty/spec/matchers/have_file.rb +0 -28
- data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
- data/lib/poolparty/spec/matchers/have_git.rb +0 -28
- data/lib/poolparty/spec/matchers/have_host.rb +0 -28
- data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
- data/lib/poolparty/spec/matchers/have_package.rb +0 -28
- data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
- data/lib/poolparty/spec/matchers/have_service.rb +0 -28
- data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
- data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
- data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
- data/lib/poolparty/spec/templates/have_base.rb +0 -28
- data/spec/poolparty/net/messenger_spec.rb +0 -16
- data/spec/poolparty/services/conditional_spec.rb +0 -52
- data/spec/poolparty/spec/core/string_spec.rb +0 -57
data/bin/server-clean-cert-for
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'For cloud name') { |c| optioner.cloudname c }
|
|
8
|
-
opts.on('-f name', '--for name', 'Clear the cert for') { |f| optioner.for f }
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
o.loaded_clouds.each do |cloud|
|
|
12
|
-
# @nodes = cloud.messenger_send!("get_current_nodes")
|
|
13
|
-
# @nodes = @nodes.split(" ").map {|a| a.split(/@/)[-1] }
|
|
14
|
-
PoolParty::Ruberl::Base.new(cloud.master, Default.messenger_client_port).messenger_send!("clear_cert_for #{cloud.for}")
|
|
15
|
-
end
|
data/bin/server-provision
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n cloudname', '--name name', 'Start cloud by this name') { |c| optioner.cloudname c }
|
|
8
|
-
opts.on('-p', '--slave', 'Provision slave (default: false)') { optioner.provision_slave true }
|
|
9
|
-
opts.on('-i num', '--id num', 'Instance num to provision') { |i| optioner.instance_number i }
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
o.loaded_clouds.each do |cloud|
|
|
13
|
-
|
|
14
|
-
with_cloud(cloud) do
|
|
15
|
-
setup_dev
|
|
16
|
-
instance_num = instance_number.to_i if instance_number
|
|
17
|
-
|
|
18
|
-
if instance_num
|
|
19
|
-
@instance = get_instance_by_number( instance_num )
|
|
20
|
-
instance_num == 0 ? provisioner_for(master).install(testing) : provisioner_for(@instance).install(testing)
|
|
21
|
-
else
|
|
22
|
-
if provision_slave
|
|
23
|
-
vputs "Provisioning slaves"
|
|
24
|
-
verbose ? provisioner_for(nil).install(testing) : hide_output { provisioner_for(nil).install(testing) }
|
|
25
|
-
else
|
|
26
|
-
vputs "Provisioning master"
|
|
27
|
-
verbose ? provisioner_for(master).install(testing) : hide_output { provisioner_for(master).install(testing) }
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
data/bin/server-start-agent
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
|
|
8
|
-
opts.on('-k', '--kill', 'Kill the server') { optioner.kill true }
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
o.loaded_clouds.each do |cloud|
|
|
12
|
-
|
|
13
|
-
PoolParty::Agent.run_for cloud
|
|
14
|
-
|
|
15
|
-
end
|
data/bin/server-start-client
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
o.loaded_clouds.each do |cloud|
|
|
11
|
-
|
|
12
|
-
with_cloud(cloud) do
|
|
13
|
-
|
|
14
|
-
# ruby /var/lib/gems/1.8/bin/server-start-client
|
|
15
|
-
already_running = %x[ps aux | grep beam | grep -v grep | grep client]
|
|
16
|
-
if already_running.chomp.empty?
|
|
17
|
-
|
|
18
|
-
boot_file = "#{Messenger.append_dir}/pm_client_rel-0.1"
|
|
19
|
-
|
|
20
|
-
Kernel.system "cd #{Messenger.append_dir} && rake build_boot_scripts" unless ::File.file?("#{boot_file}.boot") || testing
|
|
21
|
-
command = Messenger.erl_command("client", "-boot #{boot_file} #{noshell ? "" : "-detached -heart -noshell"}", 7049, 7050)
|
|
22
|
-
vputs "Running #{command}"
|
|
23
|
-
|
|
24
|
-
Kernel.system "export HOME=/root && #{command}" unless testing
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
|
data/bin/server-start-master
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
o.loaded_clouds.each do |cloud|
|
|
11
|
-
|
|
12
|
-
with_cloud(cloud) do
|
|
13
|
-
|
|
14
|
-
already_running = %x[ps aux | grep beam | grep -v grep | grep master]
|
|
15
|
-
if already_running.chomp.empty?
|
|
16
|
-
|
|
17
|
-
boot_file = "#{Messenger.append_dir}/pm_master_rel-0.1"
|
|
18
|
-
Kernel.system ". /etc/profile && server-build-messenger" unless ::File.file?("#{boot_file}.boot") || testing
|
|
19
|
-
command = Messenger.erl_command("master", "-boot #{boot_file} #{noshell ? "" : "-noshell -detached -heart"}")
|
|
20
|
-
vputs "Running #{command}"
|
|
21
|
-
|
|
22
|
-
Kernel.system "export HOME=/root && #{command}" unless testing
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
data/bin/server-start-node
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'Host name') { |h| optioner.hostname h }
|
|
8
|
-
opts.on('-l', '--no-shell', 'No shell') {optioner.noshell true}
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
available_monitors = PoolParty::Monitors.available_monitors
|
|
12
|
-
|
|
13
|
-
@hostname = o.hostname ? o.hostname : `hostname`.chomp
|
|
14
|
-
@hostname = "node0" if @hostname == "master" # Quick fix to make sure we have a node running on the master as well
|
|
15
|
-
|
|
16
|
-
o.loaded_clouds.each do |cloud|
|
|
17
|
-
|
|
18
|
-
with_cloud(cloud, {:hostname => @hostname}) do
|
|
19
|
-
# TODO: Change this to be app specfic
|
|
20
|
-
already_running = %x[ps aux | grep beam | grep -v grep | grep node]
|
|
21
|
-
if already_running.chomp.empty?
|
|
22
|
-
boot_file = "#{Messenger.append_dir}/pm_node_rel-0.1"
|
|
23
|
-
|
|
24
|
-
Kernel.system ". /etc/profile && server-build-messenger" unless ::File.file?("#{boot_file}.boot") || testing
|
|
25
|
-
command = Messenger.erl_command(hostname, "-boot #{boot_file} #{noshell ? "" : "-noshell -detached -heart"} -- #{available_monitors.join(" ")}")
|
|
26
|
-
vputs "Running #{command}"
|
|
27
|
-
|
|
28
|
-
Kernel.system "export HOME=/root && #{command}" unless testing
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
data/bin/server-stop-client
DELETED
data/bin/server-stop-master
DELETED
data/bin/server-stop-node
DELETED
data/bin/server-update-hosts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
|
3
|
-
require "poolparty"
|
|
4
|
-
require "poolpartycl"
|
|
5
|
-
|
|
6
|
-
o = PoolParty::Optioner.new(ARGV) do |opts, optioner|
|
|
7
|
-
opts.on('-n name', '--name name', 'Update hosts for local pool named [name]') { |p| optioner.cloudname p }
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
o.loaded_clouds.each do |cloud|
|
|
11
|
-
with_cloud(cloud) do
|
|
12
|
-
vputs "Cloud: #{name}"
|
|
13
|
-
|
|
14
|
-
new_hosts_listing = returning Array.new do |arr|
|
|
15
|
-
|
|
16
|
-
puts nodes(:status => "running")
|
|
17
|
-
|
|
18
|
-
nodes(:status => "running").each do |ri|
|
|
19
|
-
vputs ri.hosts_file_listing_for(self)
|
|
20
|
-
arr << ri.hosts_file_listing_for(self)
|
|
21
|
-
end
|
|
22
|
-
other_clouds.each do |other|
|
|
23
|
-
other.nodes(:status => "running").each do |ri|
|
|
24
|
-
vputs ri.hosts_file_listing_for(self)
|
|
25
|
-
arr << ri.hosts_file_listing_for(self)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end.join("\n")
|
|
29
|
-
|
|
30
|
-
if testing
|
|
31
|
-
puts new_hosts_listing
|
|
32
|
-
else
|
|
33
|
-
new_hosts_file = "#{Default.manifest_path}/classes/hosts.pp"
|
|
34
|
-
|
|
35
|
-
arr = returning Array.new do |arr|
|
|
36
|
-
new_hosts_listing.split(/\n/).each do |line|
|
|
37
|
-
parts = line.split(/\t/).map {|a| a.chomp }
|
|
38
|
-
ip,hostname,aliases = parts[0], parts[1], parts[2..-1]
|
|
39
|
-
vputs "ip: #{ip} for #{hostname} as #{aliases}"
|
|
40
|
-
h = PoolParty::Resources::Host.new(:name => hostname, :ip => Resolv::DNS.new.getaddress(ip).to_s, :alias => aliases)
|
|
41
|
-
arr << h.to_string
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
::File.open(new_hosts_file, "w+") {|f| f << arr.join("\n") }
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
end
|
data/lib/poolparty/capistrano.rb
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
$:.unshift(File.join(File.dirname(__FILE__)))
|
|
2
|
-
require "poolparty"
|
|
3
|
-
require "poolpartycl"
|
|
4
|
-
|
|
5
|
-
module PoolParty
|
|
6
|
-
module Capistrano
|
|
7
|
-
|
|
8
|
-
$cap_clouds = {}
|
|
9
|
-
|
|
10
|
-
def set_poolparty_file(file)
|
|
11
|
-
load_pool file
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def set_cloud(name)
|
|
15
|
-
cld = PoolParty::Cloud.cloud(name)
|
|
16
|
-
if cld && !cloud_retrieved_already?
|
|
17
|
-
$cap_clouds[name] = cld
|
|
18
|
-
@cloud = cld
|
|
19
|
-
instance_eval <<-EOE
|
|
20
|
-
ssh_options[:keys] = [ '#{cld.full_keypair_path}' ]
|
|
21
|
-
set :user, '#{cld.user}'
|
|
22
|
-
set :username, "#{cld.user}"
|
|
23
|
-
ssh_options[:forward_agent] = true
|
|
24
|
-
EOE
|
|
25
|
-
end
|
|
26
|
-
cld
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def cloud_retrieved_already?
|
|
30
|
-
$cap_clouds.key?(name)
|
|
31
|
-
end
|
|
32
|
-
def get_cloud(name)
|
|
33
|
-
set_cloud(name)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# Get the master ip for the cloud to set in the deploy.rb file
|
|
37
|
-
def cloud_master(name)
|
|
38
|
-
get_cloud(name).ip
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def set_role_for_all_instances(role, name)
|
|
42
|
-
ips = get_cloud(name).nodes(:status => "running").map {|ri| ri.ip }
|
|
43
|
-
ips.each {|ip| send :role, role.to_sym, "#{ip}"}
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
module Capistrano
|
|
49
|
-
class Configuration
|
|
50
|
-
include ::PoolParty::Capistrano
|
|
51
|
-
|
|
52
|
-
# Dir["#{::File.dirname(__FILE__)}/capistrano/*.rb"].each {|f| pload f }
|
|
53
|
-
end
|
|
54
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# TODO: Deprecate this file
|
|
2
|
-
|
|
3
|
-
=begin rdoc
|
|
4
|
-
The connection to the messenger from poolparty, the client.
|
|
5
|
-
|
|
6
|
-
This class will setup a socket connection to the master's client
|
|
7
|
-
at the messenger_client_port
|
|
8
|
-
=end
|
|
9
|
-
module PoolParty
|
|
10
|
-
module Messenger
|
|
11
|
-
def with_socket(testing=false, &block)
|
|
12
|
-
host = testing ? "localhost" : (master.ip)
|
|
13
|
-
vputs "Pinging #{host} with the messenger"
|
|
14
|
-
socket = TCPSocket.open(host, Default.messenger_client_port)
|
|
15
|
-
out = yield(socket)
|
|
16
|
-
socket.close
|
|
17
|
-
out
|
|
18
|
-
end
|
|
19
|
-
# TODO: Fix cookie setting
|
|
20
|
-
def self.erl_command(hostname, extra="", min_ports=7000, max_ports=7050)
|
|
21
|
-
command_line_opts = "-cookie -pa #{append_dir}/ebin -kernel inet_dist_listen_min #{min_ports} inet_dist_listen_max #{max_ports} -sname #{hostname}"
|
|
22
|
-
|
|
23
|
-
"erl #{command_line_opts} #{extra}"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def self.append_dir
|
|
27
|
-
::File.expand_path(::File.join( ::File.dirname(__FILE__), "..", "..", "erlang/messenger" ))
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def messenger_send!(msg="get_current_load cpu", testing=false)
|
|
31
|
-
with_socket(testing) do |sock|
|
|
32
|
-
sock.send(msg, 0)
|
|
33
|
-
@str = sock.recv(2000)
|
|
34
|
-
end
|
|
35
|
-
vputs "Received #{@str} from #{msg}"
|
|
36
|
-
@str
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def messenger_cast!(msg="force_reconfig")
|
|
40
|
-
with_socket do |sock|
|
|
41
|
-
sock.send(msg, 0)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def self.messenger_send!(cmd="", testing=false)
|
|
46
|
-
command = Messenger.erl_command("client#{Time.now.to_i}", "-s pm_client -run pm_client #{cmd} -s erlang halt -noshell")
|
|
47
|
-
testing ? command : %x[#{command}]
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Helper methods
|
|
51
|
-
def self.startup_remote_messenger(hostname, testing=false)
|
|
52
|
-
# messenger_send!("")
|
|
53
|
-
# testing ? command : %x[#{command}]
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
class Rsyncmirror
|
|
3
|
-
|
|
4
|
-
virtual_resource(:rsyncmirror) do
|
|
5
|
-
|
|
6
|
-
def loaded(opts={})
|
|
7
|
-
execute_on_node do
|
|
8
|
-
@dir = dir || name
|
|
9
|
-
has_exec(opts.merge({:command => "#{cloud.remote_rsync_command} --no-implied-dirs --delete-excluded #{Default.user}@master:#{@dir}/ #{@dir}/".safe_quote, :name => "rsync-#{name}"}))
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Since git is not a native type, we have to say which core resource
|
|
14
|
-
# it is using to be able to require it
|
|
15
|
-
def class_type_name
|
|
16
|
-
"exec"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Because we are requiring an exec, instead of a built-in package of the git, we have to overload
|
|
20
|
-
# the to_s method and prepend it with the same name as above
|
|
21
|
-
def key
|
|
22
|
-
"rsync-#{name}"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
def working_conditional
|
|
3
|
-
@working_conditional ||= []
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
def case_of o, &block
|
|
7
|
-
c = Conditional.new({:name => "case_of_#{o}", :attribute => o}, &block)
|
|
8
|
-
add_service c
|
|
9
|
-
c
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class Conditional < PoolParty::Service
|
|
13
|
-
default_options({})
|
|
14
|
-
|
|
15
|
-
def initialize(opts={}, &block)
|
|
16
|
-
super(opts, &block)
|
|
17
|
-
dsl_options(opts)
|
|
18
|
-
options.freeze
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def when_is o, &block
|
|
22
|
-
add(o, &block)
|
|
23
|
-
end
|
|
24
|
-
def otherwise &block
|
|
25
|
-
add(nil, &block)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def add(o, &block)
|
|
29
|
-
service = PoolParty::Service.new(&block)
|
|
30
|
-
obj = (o ? o : :default).to_sym
|
|
31
|
-
when_statements.merge!({obj => service})
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def when_statements
|
|
35
|
-
@when_statement ||= {}
|
|
36
|
-
end
|
|
37
|
-
def to_properties_hash
|
|
38
|
-
{
|
|
39
|
-
:options => {:variable => (dsl_options.attribute)},
|
|
40
|
-
:resources => {},
|
|
41
|
-
:services => {:control_statements => when_statements}
|
|
42
|
-
}
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
end
|
data/lib/poolparty/spec.rb
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
["core", "spec"].each do |dir|
|
|
2
|
-
Dir[File.join(File.dirname(__FILE__), "spec", dir, "*.rb")].each {|f| require f}
|
|
3
|
-
end
|
|
4
|
-
|
|
5
|
-
class TestCloudClass < PoolParty::Cloud::Cloud
|
|
6
|
-
def build_test_manifest
|
|
7
|
-
returning Array.new do |arr|
|
|
8
|
-
|
|
9
|
-
services.each do |service|
|
|
10
|
-
service.options.merge!(:name => service.name)
|
|
11
|
-
classpackage_with_self(service)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
global_classpackages.each do |cls|
|
|
15
|
-
arr << cls.to_string
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end.join("\n")
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def new_test_cloud(&block)
|
|
23
|
-
TestCloudClass.new(:test_cloud, &block)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def load_test_cloud(name, poolfile=nil)
|
|
27
|
-
PoolParty::Script.inflate_file poolfile
|
|
28
|
-
blk = cloud(name).stored_block.dup
|
|
29
|
-
PoolParty::Pool.reset!
|
|
30
|
-
new_test_cloud &blk
|
|
31
|
-
end
|