cap-elb 0.0.8 → 0.0.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/lib/cap-elb/version.rb +1 -1
- data/lib/cap-elb.rb +8 -34
- metadata +55 -90
data/lib/cap-elb/version.rb
CHANGED
data/lib/cap-elb.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'right_aws'
|
2
|
-
require 'aws-sdk' # need for ELB instance getter
|
3
2
|
require 'cap-elb/version'
|
4
3
|
|
5
4
|
unless Capistrano::Configuration.respond_to?(:instance)
|
@@ -90,8 +89,6 @@ module Capistrano
|
|
90
89
|
|
91
90
|
def loadbalancer (named_load_balancer, *args)
|
92
91
|
|
93
|
-
aws_config_setup
|
94
|
-
|
95
92
|
require_arglist = args[1][:require] rescue {}
|
96
93
|
exclude_arglist = args[1][:exclude] rescue {}
|
97
94
|
named_region = fetch(:aws_params)[:region] rescue 'us-east-1'
|
@@ -99,21 +96,19 @@ module Capistrano
|
|
99
96
|
# list of all the instances assoc'ed with this account
|
100
97
|
@ec2_api ||= RightAws::Ec2.new(fetch(:aws_access_key_id), fetch(:aws_secret_access_key), fetch(:aws_params, {}))
|
101
98
|
|
102
|
-
# fetch a raw list all the load balancers
|
103
|
-
|
104
|
-
|
105
|
-
@elb_api = AWS::ELB.new
|
106
|
-
|
99
|
+
# fetch a raw list all the load balancers
|
100
|
+
@elb_api ||= RightAws::ElbInterface.new(fetch(:aws_access_key_id), fetch(:aws_secret_access_key), :region => named_region)
|
101
|
+
|
107
102
|
# only get the named load balancer
|
108
|
-
named_elb = @elb_api.
|
103
|
+
named_elb = @elb_api.describe_load_balancers.delete_if{ |instance| instance[:load_balancer_name] != named_load_balancer.to_s }
|
109
104
|
|
110
105
|
# must exit if no load balancer on record for this account by given name in cap config file
|
111
106
|
raise Exception, "No load balancer found named: #{named_load_balancer.to_s} for aws account with this access key: #{fetch(:aws_access_key_id)} in this region: #{named_region}" if named_elb.nil?
|
112
|
-
# probe for
|
113
|
-
named_elb
|
114
|
-
raise Exception, "No instances within this load balancer: #{named_load_balancer.to_s} for aws account with this access key: #{fetch(:aws_access_key_id)} in this region: #{named_region}" if named_elb
|
107
|
+
# probe for the load balancer ec2 instance set, if this raises Exception, load balancer can't be found
|
108
|
+
named_elb[0] rescue raise Exception, "No load balancer found named: #{named_load_balancer.to_s} for aws account with this access key: #{fetch(:aws_access_key_id)} in this region: #{named_region}"
|
109
|
+
raise Exception, "No instances within this load balancer: #{named_load_balancer.to_s} for aws account with this access key: #{fetch(:aws_access_key_id)} in this region: #{named_region}" if named_elb[0][:instances].count == 0
|
115
110
|
|
116
|
-
elb_ec2_instances = named_elb
|
111
|
+
elb_ec2_instances = named_elb[0][:instances] rescue {}
|
117
112
|
|
118
113
|
# get the full instance list for account, this is necessary to subsquently fish out the :dns_name for the instances that survive our reduction steps
|
119
114
|
account_instance_list = @ec2_api.describe_instances
|
@@ -135,27 +130,6 @@ module Capistrano
|
|
135
130
|
|
136
131
|
private
|
137
132
|
|
138
|
-
# AWS SDK setup
|
139
|
-
def aws_config_setup()
|
140
|
-
|
141
|
-
# derive AWS canonical endpoints from given region
|
142
|
-
# set :ec2_endpoint , 'ec2.us-west-1.amazonaws.com'
|
143
|
-
# set :elb_endpoint ,'us-west-1.elasticloadbalancing.amazonaws.com'
|
144
|
-
|
145
|
-
named_region = fetch(:aws_params)[:region] rescue 'us-east-1'
|
146
|
-
|
147
|
-
ec2_endpoint = "ec2.#{named_region}.amazonaws.com"
|
148
|
-
elb_endpoint = "#{named_region}.elasticloadbalancing.amazonaws.com"
|
149
|
-
|
150
|
-
# aws configuration, required separately
|
151
|
-
AWS.config({
|
152
|
-
:access_key_id => fetch(:aws_access_key_id),
|
153
|
-
:secret_access_key => fetch(:aws_secret_access_key),
|
154
|
-
:ec2_endpoint => ec2_endpoint,
|
155
|
-
:elb_endpoint => elb_endpoint,
|
156
|
-
})
|
157
|
-
end
|
158
|
-
|
159
133
|
def any_args_within_instance(instance, exclude_arglist)
|
160
134
|
exargs = exclude_arglist.clone # must copy since delete transcends scope; if we don't copy, subsequent 'map'ped enum arglists would be side-effected
|
161
135
|
tag_exclude_state = nil # default assumption
|
metadata
CHANGED
@@ -1,95 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: cap-elb
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 8
|
10
|
-
version: 0.0.8
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Dan Miley
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: right_aws
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2153101920 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 11
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 1
|
33
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - =
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 2.1.0
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: aws-sdk
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *2153101920
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: aws-sdk
|
27
|
+
requirement: &2153101220 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 27
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 2
|
49
|
-
- 2
|
29
|
+
requirements:
|
30
|
+
- - =
|
31
|
+
- !ruby/object:Gem::Version
|
50
32
|
version: 1.2.2
|
51
33
|
type: :runtime
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: rspec
|
55
34
|
prerelease: false
|
56
|
-
|
35
|
+
version_requirements: *2153101220
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &2153100660 !ruby/object:Gem::Requirement
|
57
39
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
65
44
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: rake
|
69
45
|
prerelease: false
|
70
|
-
|
46
|
+
version_requirements: *2153100660
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake
|
49
|
+
requirement: &2153099800 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
hash: 49
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
- 8
|
79
|
-
- 7
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
80
54
|
version: 0.8.7
|
81
55
|
type: :development
|
82
|
-
|
83
|
-
|
84
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2153099800
|
58
|
+
description: Capistrano can perform tasks on the EC2 instances managed by named Amazon
|
59
|
+
ELB instances. Various filters are qvailable to allow EC2 instance top level metadata
|
60
|
+
and tags to determine whether the task should be applied on the given instance.
|
61
|
+
email:
|
85
62
|
- dan.miley@gmail.com
|
86
63
|
executables: []
|
87
|
-
|
88
64
|
extensions: []
|
89
|
-
|
90
65
|
extra_rdoc_files: []
|
91
|
-
|
92
|
-
files:
|
66
|
+
files:
|
93
67
|
- .gitignore
|
94
68
|
- Gemfile
|
95
69
|
- MIT-LICENSE
|
@@ -101,40 +75,31 @@ files:
|
|
101
75
|
- test/.gemtest
|
102
76
|
- test/elb_test.rb
|
103
77
|
- test/health/test_elb.rb
|
104
|
-
has_rdoc: true
|
105
78
|
homepage: http://github.com/danmiley/cap-elb
|
106
79
|
licenses: []
|
107
|
-
|
108
80
|
post_install_message:
|
109
81
|
rdoc_options: []
|
110
|
-
|
111
|
-
require_paths:
|
82
|
+
require_paths:
|
112
83
|
- lib
|
113
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
85
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
|
120
|
-
- 0
|
121
|
-
version: "0"
|
122
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
91
|
none: false
|
124
|
-
requirements:
|
125
|
-
- -
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
segments:
|
129
|
-
- 0
|
130
|
-
version: "0"
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
131
96
|
requirements: []
|
132
|
-
|
133
97
|
rubyforge_project: cap-elb
|
134
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.8.11
|
135
99
|
signing_key:
|
136
100
|
specification_version: 3
|
137
|
-
summary: Capistrano can perform tasks on EC2 intstance managed by individual Amazon
|
138
|
-
|
101
|
+
summary: Capistrano can perform tasks on EC2 intstance managed by individual Amazon
|
102
|
+
ELB instances.
|
103
|
+
test_files:
|
139
104
|
- test/elb_test.rb
|
140
105
|
- test/health/test_elb.rb
|