capify-ec2 1.1.12.pre → 1.1.12.pre.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/capify-ec2.rb CHANGED
@@ -53,21 +53,31 @@ class CapifyEc2
53
53
  elb.describe_instance_health(load_balancer.id, instance.id).body['DescribeInstanceHealthResult']['InstanceStates'][0]['State']
54
54
  end
55
55
 
56
- def self.get_instances_by_role(role, server_type, region = nil)
57
- selected_instances = running_instances(region).select do |instance|
56
+ def self.get_instances_by_role(role, server_type)
57
+ filter_instances_by_role(running_instances, role, server_type)
58
+ end
59
+
60
+ def self.get_instances_by_region(role, region)
61
+ return unless region
62
+ region_instances = running_instances(region)
63
+ filter_instances_by_role(region_instances,role)
64
+ end
65
+
66
+ def self.filter_instances_by_role(instances, role, server_type = nil)
67
+ selected_instances = instances.select do |instance|
58
68
  server_roles = [instance.case_insensitive_tag("Role")] || []
59
69
  if (roles_tag = instance.case_insensitive_tag("Roles"))
60
70
  server_roles += roles_tag.split(/\s*,\s*/)
61
71
  end
62
72
  server_type.nil? ? server_roles.member?(role.to_s) : (server_roles.member?(role.to_s) && server_type == role.to_s)
63
73
  end
64
- end
74
+ end
65
75
 
66
76
  def self.get_instance_by_name(name)
67
77
  selected_instances = running_instances.select do |instance|
68
78
  value = instance.case_insensitive_tag("Name")
69
79
  value == name.to_s
70
- end
80
+ end.first
71
81
  end
72
82
 
73
83
  def self.server_names
@@ -6,7 +6,6 @@ Capistrano::Configuration.instance(:must_exist).load do
6
6
  role = role_name_or_hash.is_a?(Hash) ? role_name_or_hash : {:name => role_name_or_hash,:options => {}}
7
7
  server_type = variables[:logger].instance_variable_get("@options")[:actions].first unless variables[:logger].instance_variable_get("@options")[:actions][1].nil?
8
8
  instances = CapifyEc2.get_instances_by_role(role[:name], server_type)
9
-
10
9
  if role[:options].delete(:default)
11
10
  instances.each do |instance|
12
11
  define_role(role, instance)
@@ -15,15 +14,18 @@ Capistrano::Configuration.instance(:must_exist).load do
15
14
 
16
15
  regions = CapifyEc2.ec2_config[:aws_params][:regions] || [CapifyEc2.ec2_config[:aws_params][:region]]
17
16
  regions.each do |region|
18
- define_regions(region, role, server_type)
17
+ define_regions(region, role)
19
18
  end unless regions.nil?
20
19
 
21
20
  define_instance_roles(role, instances)
22
21
  define_role_roles(role, instances)
22
+
23
+ named_instance = CapifyEc2.get_instance_by_name(server_type)
24
+ define_instance_roles(role, [named_instance]) unless named_instance.nil?
23
25
  end
24
26
 
25
- def define_regions(region, role, server_type)
26
- instances = CapifyEc2.get_instances_by_role(role[:name], server_type, region)
27
+ def define_regions(region, role)
28
+ instances = CapifyEc2.get_instances_by_region(role[:name], region)
27
29
  task region.to_sym do
28
30
  instances.each do |instance|
29
31
  define_role(role, instance)
@@ -1,5 +1,5 @@
1
1
  module Capify
2
2
  module Ec2
3
- VERSION = "1.1.12.pre"
3
+ VERSION = "1.1.12.pre.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capify-ec2
3
3
  version: !ruby/object:Gem::Version
4
- hash: 961916012
4
+ hash: 1923832059
5
5
  prerelease: true
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
9
  - 12
10
10
  - pre
11
- version: 1.1.12.pre
11
+ - 1
12
+ version: 1.1.12.pre.1
12
13
  platform: ruby
13
14
  authors:
14
15
  - Noah Cantor