capistrano-elb 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,17 +6,20 @@ gem install capistrano-elb
6
6
 
7
7
  ## Usage
8
8
  You should have ec2credentials.yaml in the same directory as your cap files
9
+
9
10
  #ec2credentials.yaml
10
11
  ---
11
12
  :aws_access_key_id: YOUR_KEY_ID_
12
13
  :aws_secret_access_key: YOUR_KEY
13
14
 
14
15
  then just
16
+
15
17
  require "capistrano-elb/tasks"
16
18
 
17
19
  This will instantiate an instance of the CapELB class and add hooks to remove/readd before/after deploys
18
20
 
19
21
  (Equivalent to having the following in your deploy.rb)
22
+
20
23
  require "capistrano-elb"
21
24
 
22
25
  namespace :elb do
@@ -6,13 +6,11 @@ Capistrano::Configuration.instance(:must_exist).load do
6
6
 
7
7
  task :remove do
8
8
  servers = roles[:web].servers.map {|server| server.host}
9
- puts "Removing #{servers} from ELB"
10
9
  capELB.remove servers
11
10
  end
12
11
 
13
12
  task :add do
14
13
  servers = roles[:web].servers.map {|server| server.host}
15
- puts "Adding #{servers} to ELB"
16
14
  capELB.add servers
17
15
  end
18
16
 
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Elb
3
- VERSION = "0.3.3"
3
+ VERSION = "0.3.4"
4
4
  end
5
5
  end
@@ -64,22 +64,27 @@ class CapELB
64
64
  end
65
65
 
66
66
  def add(serverlist)
67
- each_server_by_lbs(serverlist) do |region, lbname, servers|
68
- region.register_instances_with_load_balancer(servers, lbname)
67
+ @lbs.each_pair do |region, lbs|
68
+ lbs.each_pair do |lbname, target_instances|
69
+ server_ids = @compute[region].servers.select{|server| serverlist.include? server.dns_name}.map{|server| server.id}
70
+ to_change = server_ids.select{|server_id| target_instances.include? server_id}
71
+ unless to_change.empty?
72
+ puts "Adding #{to_change} to LB #{lbname} in #{region}"
73
+ @elb[region].register_instances_with_load_balancer(to_change, lbname)
74
+ end
75
+ end
69
76
  end
70
77
  end
71
78
 
72
79
  def remove(serverlist)
73
- each_server_by_lbs(serverlist) do |region, lbname, servers|
74
- region.deregister_instances_from_load_balancer(servers, lbname)
75
- end
76
- end
77
-
78
- def each_server_by_lbs(serverlist)
79
80
  @lbs.each_pair do |region, lbs|
80
81
  lbs.each_pair do |lbname, target_instances|
81
- to_change = @compute[region].servers.select{|server| serverlist.include? server.dns_name}.map{|server| server.id}
82
- yield(@elb[region], lbname, to_change) unless to_change.empty?
82
+ server_ids = @compute[region].servers.select{|server| serverlist.include? server.dns_name}.map{|server| server.id}
83
+ to_change = server_ids.select{|server_id| target_instances.include? server_id}
84
+ unless to_change.empty?
85
+ puts "Removing #{to_change} from LB #{lbname} in #{region}"
86
+ @elb[region].deregister_instances_from_load_balancer(to_change, lbname)
87
+ end
83
88
  end
84
89
  end
85
90
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-elb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fog
17
- requirement: &2157705880 !ruby/object:Gem::Requirement
17
+ requirement: &2161737060 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2157705880
25
+ version_requirements: *2161737060
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: excon
28
- requirement: &2157705460 !ruby/object:Gem::Requirement
28
+ requirement: &2161736640 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2157705460
36
+ version_requirements: *2161736640
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: capistrano
39
- requirement: &2157705040 !ruby/object:Gem::Requirement
39
+ requirement: &2161736220 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2157705040
47
+ version_requirements: *2161736220
48
48
  description: Capistrano plugin for removing/readd servers to EC2 load balancers
49
49
  email:
50
50
  - tom.hall@forward.co.uk