capistrano-elb 0.3.3 → 0.3.4

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/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