capify-ec2 1.2.9 → 1.3

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.
@@ -15,6 +15,12 @@ class CapifyEc2
15
15
  @ec2_config = ec2_config
16
16
  when String
17
17
  @ec2_config = YAML.load_file ec2_config
18
+
19
+ # Maintain backward compatibility with previous config format
20
+ @ec2_config[:project_tags] ||= []
21
+ # User can change the Roles tag string
22
+ @ec2_config[:aws_roles_tag] ||= "Roles"
23
+ @ec2_config[:project_tags] << @ec2_config[:project_tag] if @ec2_config[:project_tag]
18
24
  else
19
25
  raise ArgumentError, "Invalid ec2_config: #{ec2_config.inspect}"
20
26
  end
@@ -39,7 +45,7 @@ class CapifyEc2
39
45
  desired_instances.each_with_index do |instance, i|
40
46
  puts sprintf "%02d: %-40s %-20s %-20s %-62s %-20s (%s) (%s)",
41
47
  i, (instance.name || "").green, instance.id.red, instance.flavor_id.cyan,
42
- instance.contact_point.blue, instance.availability_zone.magenta, (instance.tags["Roles"] || "").yellow,
48
+ instance.contact_point.blue, instance.availability_zone.magenta, (instance.tags[@ec2_config[:aws_roles_tag]] || "").yellow,
43
49
  (instance.tags["Options"] || "").yellow
44
50
  end
45
51
  end
@@ -49,15 +55,15 @@ class CapifyEc2
49
55
  end
50
56
 
51
57
  def project_instances
52
- @instances.select {|instance| instance.tags["Project"] == @ec2_config[:project_tag]}
58
+ @instances.select {|instance| @ec2_config[:project_tags].include?(instance.tags["Project"])}
53
59
  end
54
60
 
55
61
  def desired_instances(region = nil)
56
- @ec2_config[:project_tag].nil? ? @instances : project_instances
62
+ @ec2_config[:project_tags].empty? ? @instances : project_instances
57
63
  end
58
64
 
59
65
  def get_instances_by_role(role)
60
- desired_instances.select {|instance| instance.tags['Roles'].split(%r{,\s*}).include?(role.to_s) rescue false}
66
+ desired_instances.select {|instance| instance.tags[@ec2_config[:aws_roles_tag]].split(%r{,\s*}).include?(role.to_s) rescue false}
61
67
  end
62
68
 
63
69
  def get_instances_by_region(roles, region)
@@ -61,7 +61,14 @@ Capistrano::Configuration.instance(:must_exist).load do
61
61
  task named_instance.name.to_sym do
62
62
  remove_default_roles
63
63
  server_address = named_instance.contact_point
64
- named_instance.roles.each do |role|
64
+
65
+ if named_instance.respond_to?(:roles)
66
+ roles = named_instance.roles
67
+ else
68
+ roles = [named_instance.tags["Roles"]].flatten
69
+ end
70
+
71
+ roles.each do |role|
65
72
  define_role({:name => role, :options => {:on_no_matching_servers => :continue}}, named_instance)
66
73
  end
67
74
  end unless named_instance.nil?
@@ -142,5 +149,4 @@ Capistrano::Configuration.instance(:must_exist).load do
142
149
  roles.reject! { true }
143
150
  end
144
151
 
145
-
146
- end
152
+ end
@@ -1,5 +1,6 @@
1
1
  module Capify
2
2
  module Ec2
3
- VERSION = "1.2.9"
3
+ VERSION = "1.3"
4
4
  end
5
5
  end
6
+
data/readme.md CHANGED
@@ -1,3 +1,8 @@
1
+ Capify Ec2 is no longer being maintained. It has been superseded by capify-cloud, which adds Brightbox integration.
2
+ You may continue to use this as long as you like, but active development and gems will now be found under the capify-cloud moniker.
3
+ https://github.com/forward/capify-cloud
4
+
5
+
1
6
  Capify Ec2
2
7
  ====================================================
3
8
 
@@ -175,7 +180,13 @@ health.
175
180
 
176
181
  The :project_tag parameter is optional. It will limit any commands to
177
182
  running against those instances with a "Project" tag set to the value
178
- "YOUR APP NAME".
183
+ "YOUR APP NAME". It is also possible to apply commands to multiple projects using the :project_tags parameter, like so:
184
+
185
+ ```ruby
186
+ :project_tags:
187
+ - "YOUR APP NAME"
188
+ - "YOUR OTHER APP NAME"
189
+ ```
179
190
 
180
191
  ## Development
181
192
 
metadata CHANGED
@@ -1,79 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: capify-ec2
3
- version: !ruby/object:Gem::Version
4
- hash: 13
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.3'
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 9
10
- version: 1.2.9
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Noah Cantor
14
9
  - Siddharth Dawara
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-06-29 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2012-10-02 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: fog
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - "="
28
- - !ruby/object:Gem::Version
29
- hash: 25
30
- segments:
31
- - 1
32
- - 3
33
- - 1
19
+ requirements:
20
+ - - '='
21
+ - !ruby/object:Gem::Version
34
22
  version: 1.3.1
35
23
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: colored
39
24
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - '='
29
+ - !ruby/object:Gem::Version
30
+ version: 1.3.1
31
+ - !ruby/object:Gem::Dependency
32
+ name: colored
33
+ requirement: !ruby/object:Gem::Requirement
41
34
  none: false
42
- requirements:
43
- - - "="
44
- - !ruby/object:Gem::Version
45
- hash: 11
46
- segments:
47
- - 1
48
- - 2
49
- version: "1.2"
35
+ requirements:
36
+ - - '='
37
+ - !ruby/object:Gem::Version
38
+ version: '1.2'
50
39
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: capistrano
54
40
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - '='
45
+ - !ruby/object:Gem::Version
46
+ version: '1.2'
47
+ - !ruby/object:Gem::Dependency
48
+ name: capistrano
49
+ requirement: !ruby/object:Gem::Requirement
56
50
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
64
55
  type: :runtime
65
- version_requirements: *id003
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
66
63
  description: Grabs roles from ec2's tags and autogenerates capistrano tasks
67
- email:
64
+ email:
68
65
  - noah.cantor@forward.co.uk
69
66
  - siddharth.dawara@forward.co.uk
70
67
  executables: []
71
-
72
68
  extensions: []
73
-
74
69
  extra_rdoc_files: []
75
-
76
- files:
70
+ files:
77
71
  - .gitignore
78
72
  - Changelog.md
79
73
  - Gemfile
@@ -87,36 +81,26 @@ files:
87
81
  - readme.md
88
82
  homepage: http://github.com/forward/capify-ec2
89
83
  licenses: []
90
-
91
84
  post_install_message:
92
85
  rdoc_options: []
93
-
94
- require_paths:
86
+ require_paths:
95
87
  - lib
96
- required_ruby_version: !ruby/object:Gem::Requirement
88
+ required_ruby_version: !ruby/object:Gem::Requirement
97
89
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
95
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- hash: 3
111
- segments:
112
- - 0
113
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
114
100
  requirements: []
115
-
116
101
  rubyforge_project: capify-ec2
117
102
  rubygems_version: 1.8.24
118
103
  signing_key:
119
104
  specification_version: 3
120
105
  summary: Grabs roles from ec2's tags and autogenerates capistrano tasks
121
106
  test_files: []
122
-