auser-poolparty 0.2.88 → 0.2.89
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/PostInstall.txt +1 -1
- data/lib/poolparty/base_packages/haproxy.rb +2 -2
- data/lib/poolparty/helpers/optioner.rb +2 -2
- data/lib/poolparty/modules/cloud_resourcer.rb +8 -3
- data/lib/poolparty/net/remote_bases/ec2.rb +25 -3
- data/lib/poolparty/net/remoter.rb +5 -6
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +7 -4
- data/lib/poolparty/provisioners/capistrano/recipies/base.rb +5 -4
- data/lib/poolparty/provisioners/capistrano/recipies/master.rb +1 -1
- data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +1 -1
- data/lib/poolparty/version.rb +7 -1
- data/poolparty.gemspec +2 -2
- data/spec/poolparty/provisioners/provisioner_base_spec.rb +3 -0
- data/website/index.html +1 -1
- metadata +2 -2
data/PostInstall.txt
CHANGED
@@ -7,9 +7,9 @@ module PoolParty
|
|
7
7
|
has_package({:name => "haproxy"})
|
8
8
|
|
9
9
|
# Service is required
|
10
|
-
has_service(:name => "haproxy", :ensures => "running")
|
10
|
+
has_service(:name => "haproxy", :ensures => "running", :hasrestart => true)
|
11
11
|
# Restart sysklogd after we update the haproxy.log
|
12
|
-
has_service(:name => "sysklogd"
|
12
|
+
has_service(:name => "sysklogd")
|
13
13
|
|
14
14
|
# Template variables
|
15
15
|
has_variable(:name => "name_haproxy", :value => "#{cloud.name}")
|
@@ -90,7 +90,7 @@ module PoolParty
|
|
90
90
|
blk.call(@opts, self) if blk
|
91
91
|
end
|
92
92
|
|
93
|
-
@opts.on('-V', '--version', 'Display the version') {
|
93
|
+
@opts.on('-V', '--version', 'Display the version') { output_version ; exit 0 }
|
94
94
|
@opts.on_tail("-h", "--help", "Show this message") do
|
95
95
|
puts @opts
|
96
96
|
puts @extra_help
|
@@ -127,7 +127,7 @@ module PoolParty
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def output_version
|
130
|
-
puts
|
130
|
+
puts ::PoolParty::Version
|
131
131
|
end
|
132
132
|
|
133
133
|
end
|
@@ -38,10 +38,15 @@ module PoolParty
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def setup_dev
|
41
|
+
return true if ::File.exists?("#{remote_keypair_path}") || master.nil?
|
41
42
|
unless ::File.exists?("#{full_keypair_basename_path}.pub")
|
42
43
|
cmd = "scp #{scp_array.join(" ")} #{Base.user}@#{master.ip}:.ssh/authorized_keys #{full_keypair_basename_path}.pub"
|
43
44
|
vputs "Running #{cmd}"
|
44
|
-
|
45
|
+
if %x[hostname].chomp == "master"
|
46
|
+
Kernel.system("cat ~/.ssh/authorized_keys > #{full_keypair_basename_path}.pub")
|
47
|
+
else
|
48
|
+
Kernel.system(cmd)
|
49
|
+
end
|
45
50
|
end
|
46
51
|
end
|
47
52
|
|
@@ -100,8 +105,8 @@ module PoolParty
|
|
100
105
|
def keypair_paths
|
101
106
|
[
|
102
107
|
Base.base_keypair_path,
|
103
|
-
Base.
|
104
|
-
Base.
|
108
|
+
Base.remote_storage_path,
|
109
|
+
Base.base_config_directory
|
105
110
|
]
|
106
111
|
end
|
107
112
|
|
@@ -91,10 +91,10 @@ end
|
|
91
91
|
begin
|
92
92
|
# when_no_pending_instances do
|
93
93
|
if instance
|
94
|
-
|
94
|
+
attach_volume(instance)
|
95
95
|
# Let's associate the address LAST so that we can still connect to the instance
|
96
|
-
# for the other tasks here
|
97
|
-
|
96
|
+
# for the other tasks here
|
97
|
+
associate_address(instance)
|
98
98
|
reset_remoter_base!
|
99
99
|
end
|
100
100
|
# end
|
@@ -104,6 +104,17 @@ end
|
|
104
104
|
reset_remoter_base!
|
105
105
|
when_all_assigned_ips {wait "5.seconds"}
|
106
106
|
end
|
107
|
+
|
108
|
+
def attach_volume(instance=nil)
|
109
|
+
vputs "Attaching volume #{ebs_volume_id} to the master at #{ebs_volume_device}"
|
110
|
+
instance = master
|
111
|
+
ec2.attach_volume(:volume_id => ebs_volume_id, :instance_id => instance.instance_id, :device => ebs_volume_device) if ebs_volume_id && ebs_volume_mount_point
|
112
|
+
end
|
113
|
+
def associate_address(instance=nil)
|
114
|
+
vputs "Associating master with #{set_master_ip_to}"
|
115
|
+
instance = master
|
116
|
+
ec2.associate_address(:instance_id => instance.instance_id, :public_ip => set_master_ip_to) if set_master_ip_to
|
117
|
+
end
|
107
118
|
|
108
119
|
# Help create a keypair for the cloud
|
109
120
|
# This is a helper to create the keypair and add them to the cloud for you
|
@@ -134,6 +145,17 @@ end
|
|
134
145
|
# copy_file_to_storage_directory(pub_key)
|
135
146
|
# copy_file_to_storage_directory(private_key)
|
136
147
|
end
|
148
|
+
if set_master_ip_to && master.ip.to_s != set_master_ip_to.to_s
|
149
|
+
associate_address(master)
|
150
|
+
reset_remoter_base!
|
151
|
+
|
152
|
+
when_no_pending_instances do
|
153
|
+
when_all_assigned_ips do
|
154
|
+
vputs "Associated master with #{set_master_ip_to}"
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
137
159
|
end
|
138
160
|
def has_cert_and_key?
|
139
161
|
pub_key && private_key
|
@@ -47,12 +47,11 @@ module PoolParty
|
|
47
47
|
def remote_rsync_command
|
48
48
|
"rsync -azP --exclude cache -e '#{remote_ssh_string}'"
|
49
49
|
end
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
# end
|
50
|
+
|
51
|
+
def scp_to_command(source, dest=target, remote_instance=master)
|
52
|
+
#TODO: check if source is Directory and add -r if it is
|
53
|
+
"scp #{source} #{remote_instance.ip}:#{dest} #{scp_array.join(' ')}"
|
54
|
+
end
|
56
55
|
|
57
56
|
# Get the names of the nodes. Mainly used for puppet templating
|
58
57
|
def list_of_node_names(options={})
|
@@ -9,14 +9,14 @@ module PoolParty
|
|
9
9
|
def process_install!(testing=false)
|
10
10
|
unless testing
|
11
11
|
@cloud.rsync_storage_files_to(@instance)
|
12
|
-
roles = provision_master? ? [:master] : [:
|
12
|
+
roles = provision_master? ? [:master] : [:single]
|
13
13
|
run_capistrano(roles,:install)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
def process_configure!(testing=false)
|
17
17
|
unless testing
|
18
18
|
@cloud.rsync_storage_files_to(@instance)
|
19
|
-
roles = provision_master? ? [:master] : [:
|
19
|
+
roles = provision_master? ? [:master] : [:single]
|
20
20
|
run_capistrano(roles, :configure)
|
21
21
|
end
|
22
22
|
end
|
@@ -34,12 +34,14 @@ module PoolParty
|
|
34
34
|
"master_provision_master_task",
|
35
35
|
"after_install_tasks",
|
36
36
|
"custom_configure_tasks",
|
37
|
-
"
|
38
|
-
"master_configure_master_task"
|
37
|
+
"before_configuration_tasks",
|
38
|
+
"master_configure_master_task",
|
39
|
+
"run_provisioner_twice"
|
39
40
|
]#.map {|a| a.to_sym }
|
40
41
|
end
|
41
42
|
def master_configure_tasks
|
42
43
|
[
|
44
|
+
"before_configuration_tasks",
|
43
45
|
"master_configure_master_task"
|
44
46
|
]#.map {|a| a.to_sym }
|
45
47
|
end
|
@@ -69,6 +71,7 @@ module PoolParty
|
|
69
71
|
arr << "role 'master.#{@cloud.name}'.to_sym, '#{@cloud.master.ip}'"
|
70
72
|
arr << "role :master, '#{@cloud.master.ip}'"
|
71
73
|
arr << "role :slaves, '#{@cloud.nonmaster_nonterminated_instances.map{|a| a.ip}.join('", "')}'" if @cloud.nonmaster_nonterminated_instances.size > 0
|
74
|
+
arr << "role :single, '#{@instance.ip}'" if @instance && @instance.ip
|
72
75
|
end.join("\n")
|
73
76
|
end
|
74
77
|
|
@@ -58,16 +58,17 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
58
58
|
end
|
59
59
|
desc "Update rubygems"
|
60
60
|
def update_rubygems
|
61
|
-
run "/usr/bin/gem update --system 2>1 > /dev/null
|
61
|
+
run "/usr/bin/gem update --system 2>1 > /dev/null;/usr/bin/gem update --system;echo 'gems updated'"
|
62
62
|
end
|
63
63
|
desc "Fix rubygems"
|
64
64
|
def fix_rubygems
|
65
65
|
# echo '#{open(::File.join(template_directory, "gem")).read}' > /usr/bin/gem &&
|
66
66
|
# cp #{remote_storage_path}/gem /usr/bin/gem
|
67
67
|
run <<-EOR
|
68
|
-
if gem -v; then echo "gem is working"; else cp #{remote_storage_path}/gem /usr/bin/gem; fi
|
69
|
-
/usr/bin/gem update --system 2>&1 > /dev/null;/usr/bin/gem update --system
|
70
|
-
if gem -v; then echo "gem is working"; else cp #{remote_storage_path}/gem /usr/bin/gem; fi
|
68
|
+
if gem -v; then echo "gem is working"; else cp #{remote_storage_path}/gem /usr/bin/gem; fi;
|
69
|
+
/usr/bin/gem update --system 2>&1 > /dev/null;/usr/bin/gem update --system;
|
70
|
+
if gem -v; then echo "gem is working"; else cp #{remote_storage_path}/gem /usr/bin/gem; fi;
|
71
|
+
echo 'gems updated!'
|
71
72
|
EOR
|
72
73
|
end
|
73
74
|
desc "Upgrade system"
|
@@ -97,7 +97,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
97
97
|
end
|
98
98
|
desc "Move poolparty keys"
|
99
99
|
def move_poolparty_keys
|
100
|
-
run "cp #{remote_storage_path}/#{
|
100
|
+
run "cp #{remote_storage_path}/#{full_keypair_name} #{remote_keypair_path}"
|
101
101
|
end
|
102
102
|
# end
|
103
103
|
end
|
@@ -30,7 +30,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
30
30
|
end
|
31
31
|
desc "Add master ip to hosts file"
|
32
32
|
def add_master_to_hosts_file
|
33
|
-
run "if [ -z \"$(grep -v '#' /etc/hosts | grep 'master')\" ]; then echo '#{cloud.master.ip} puppet master' >> /etc/hosts; else echo 'host already set'; fi"
|
33
|
+
run "if [ -z \"$(grep -v '#' /etc/hosts | grep 'master' | grep '#{cloud.master.ip}' )\" ]; then echo '#{cloud.master.ip} puppet master' >> /etc/hosts; else echo 'host already set'; fi"
|
34
34
|
end
|
35
35
|
desc "Stop provisioner daemon"
|
36
36
|
def stop_provisioner_daemon
|
data/lib/poolparty/version.rb
CHANGED
data/poolparty.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.89
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
@@ -532,7 +532,7 @@ files:
|
|
532
532
|
has_rdoc: true
|
533
533
|
homepage: http://poolparty.rubyforge.org
|
534
534
|
post_install_message: |-
|
535
|
-
Get ready to jump in the pool, you just installed PoolParty! (Updated at
|
535
|
+
Get ready to jump in the pool, you just installed PoolParty! (Updated at 16:58 12/16/08)
|
536
536
|
|
537
537
|
To get started, run the generator:
|
538
538
|
|
@@ -9,6 +9,9 @@ describe "ProvisionerBase" do
|
|
9
9
|
@pb = PoolParty::Provisioner::ProvisionerBase.new(@remote_instance, @cloud)
|
10
10
|
stub_list_from_remote_for(@cloud)
|
11
11
|
stub_remoting_methods_for(@cloud)
|
12
|
+
Kernel.stub!(:sleep).and_return true
|
13
|
+
@cloud.stub!(:when_no_pending_instances).and_return true
|
14
|
+
@cloud.stub!(:when_all_assigned_ips).and_return true
|
12
15
|
end
|
13
16
|
describe "class methods" do
|
14
17
|
it "should have install" do
|
data/website/index.html
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
<h1>PoolParty</h1>
|
35
35
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
|
36
36
|
<p>Get Version</p>
|
37
|
-
<a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.
|
37
|
+
<a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.89</a>
|
38
38
|
</div>
|
39
39
|
<h1>‘Easy cloud computing’</h1>
|
40
40
|
<h2>What</h2>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auser-poolparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.89
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Lerner
|
@@ -532,7 +532,7 @@ files:
|
|
532
532
|
has_rdoc: true
|
533
533
|
homepage: http://poolparty.rubyforge.org
|
534
534
|
post_install_message: |-
|
535
|
-
Get ready to jump in the pool, you just installed PoolParty! (Updated at
|
535
|
+
Get ready to jump in the pool, you just installed PoolParty! (Updated at 16:58 12/16/08)
|
536
536
|
|
537
537
|
To get started, run the generator:
|
538
538
|
|