capify-ec2 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog.md +6 -0
- data/lib/capify-ec2.rb +8 -8
- data/lib/capify-ec2/capistrano.rb +6 -6
- data/lib/capify-ec2/server.rb +4 -12
- data/lib/capify-ec2/version.rb +1 -1
- metadata +4 -4
data/Changelog.md
CHANGED
data/lib/capify-ec2.rb
CHANGED
@@ -31,9 +31,13 @@ class CapifyEc2
|
|
31
31
|
desired_instances.each_with_index do |instance, i|
|
32
32
|
puts sprintf "%-11s: %-40s %-20s %-20s %-62s %-20s (%s)",
|
33
33
|
i.to_s.magenta, instance.name, instance.id.red, instance.flavor_id.cyan,
|
34
|
-
instance.
|
34
|
+
instance.contact_point.blue, instance.availability_zone.green, (instance.tags["Roles"] || "").yellow
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
def server_names
|
39
|
+
desired_instances.map {|instance| instance.name}
|
40
|
+
end
|
37
41
|
|
38
42
|
def project_instances
|
39
43
|
@instances.select {|instance| instance.tags["Project"] == @ec2_config[:project_tag]}
|
@@ -42,9 +46,9 @@ class CapifyEc2
|
|
42
46
|
def desired_instances(region = nil)
|
43
47
|
instances = @ec2_config[:project_tag].nil? ? @instances : project_instances
|
44
48
|
end
|
45
|
-
|
49
|
+
|
46
50
|
def get_instances_by_role(role)
|
47
|
-
desired_instances.select {|instance| instance.
|
51
|
+
desired_instances.select {|instance| instance.tags['Roles'].split(',').include?(role.to_s) rescue false}
|
48
52
|
end
|
49
53
|
|
50
54
|
def get_instances_by_region(roles, region)
|
@@ -59,11 +63,7 @@ class CapifyEc2
|
|
59
63
|
def instance_health(load_balancer, instance)
|
60
64
|
elb.describe_instance_health(load_balancer.id, instance.id).body['DescribeInstanceHealthResult']['InstanceStates'][0]['State']
|
61
65
|
end
|
62
|
-
|
63
|
-
def server_names
|
64
|
-
desired_instances.map {|instance| instance.name}
|
65
|
-
end
|
66
|
-
|
66
|
+
|
67
67
|
def elb
|
68
68
|
Fog::AWS::ELB.new(:aws_access_key_id => @ec2_config[:aws_access_key_id], :aws_secret_access_key => @ec2_config[:aws_secret_access_key], :region => @ec2_config[:aws_params][:region])
|
69
69
|
end
|
@@ -4,7 +4,7 @@ require 'colored'
|
|
4
4
|
Capistrano::Configuration.instance(:must_exist).load do
|
5
5
|
namespace :ec2 do
|
6
6
|
|
7
|
-
desc "Prints out all ec2 instances. index, name, instance_id, size,
|
7
|
+
desc "Prints out all ec2 instances. index, name, instance_id, size, DNS/IP, region, tags"
|
8
8
|
task :status do
|
9
9
|
CapifyEc2.new.display_instances
|
10
10
|
end
|
@@ -36,7 +36,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
36
36
|
server = variables[:logger].instance_variable_get("@options")[:actions][1]
|
37
37
|
instance = numeric?(server) ? CapifyEc2.new.desired_instances[server.to_i] : CapifyEc2.new.get_instance_by_name(server)
|
38
38
|
port = ssh_options[:port] || 22
|
39
|
-
command = "ssh -p #{port} #{user}@#{instance.
|
39
|
+
command = "ssh -p #{port} #{user}@#{instance.contact_point}"
|
40
40
|
puts "Running `#{command}`"
|
41
41
|
exec(command)
|
42
42
|
end
|
@@ -55,7 +55,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
55
55
|
|
56
56
|
task named_instance.name.to_sym do
|
57
57
|
remove_default_roles
|
58
|
-
server_address = named_instance.
|
58
|
+
server_address = named_instance.contact_point
|
59
59
|
named_instance.roles.each do |role|
|
60
60
|
define_role({:name => role, :options => {:on_no_matching_servers => :continue}}, named_instance)
|
61
61
|
end
|
@@ -120,15 +120,15 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
120
120
|
options = role[:options]
|
121
121
|
new_options = {}
|
122
122
|
options.each {|key, value| new_options[key] = true if value.to_s == instance.name}
|
123
|
-
instance.
|
123
|
+
instance.tags["Options"].each do |option|
|
124
124
|
results = option.split(',')
|
125
125
|
results.each {|result| new_options[result.to_sym] = true }
|
126
126
|
end rescue false
|
127
127
|
|
128
128
|
if new_options
|
129
|
-
role role[:name].to_sym, instance.
|
129
|
+
role role[:name].to_sym, instance.contact_point, new_options
|
130
130
|
else
|
131
|
-
role role[:name].to_sym, instance.
|
131
|
+
role role[:name].to_sym, instance.contact_point
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
data/lib/capify-ec2/server.rb
CHANGED
@@ -5,20 +5,12 @@ module Fog
|
|
5
5
|
module Compute
|
6
6
|
class AWS
|
7
7
|
class Server
|
8
|
-
def
|
9
|
-
|
10
|
-
tag = key.downcase.gsub(/\W/, '')
|
11
|
-
return value if method_sym.to_s == tag
|
12
|
-
end if tags
|
13
|
-
super
|
8
|
+
def contact_point
|
9
|
+
dns_name || public_ip_address || private_ip_address
|
14
10
|
end
|
15
11
|
|
16
|
-
def
|
17
|
-
tags
|
18
|
-
tag = key.downcase.gsub(/\W/, '')
|
19
|
-
return true if method_sym.to_s == tag
|
20
|
-
end if tags
|
21
|
-
super
|
12
|
+
def name
|
13
|
+
tags["Name"]
|
22
14
|
end
|
23
15
|
end
|
24
16
|
end
|
data/lib/capify-ec2/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capify-ec2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 5
|
10
|
+
version: 1.2.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Noah Cantor
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-27 00:00:00 +00:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|