cap-ec2 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDJiNjNjMDA5NzMyNmQ2NDE2N2RhMzViMDhiYjE1ZjU1ZWQ2MzUyNQ==
5
+ data.tar.gz: !binary |-
6
+ YTFkZDFkYjc0OGMwNTU1MmNkNzVkZGU4ODNlZWY3NGQ3NWVhZmZjNA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZTAxMjZmMjgxZDBlYmUzYWY4N2RmMTNjYjMwZmMxZDc2NDU3ZjJhY2U1OTlj
10
+ NmNmYmY0MGM4ZGMyZGI0NWY3M2Q4YWQ4NmVhZjE4MGMwMzA5ZTUwY2RhOTk3
11
+ MjcyZDg4YjNiOWZhNDk1NTBiNzAxZWEzOTA3ODdlODk0ZWYwMGQ=
12
+ data.tar.gz: !binary |-
13
+ NDVlNDFiNmJhZWI1MWNjM2Q1ZGE3N2UzOThmZDA4YTc5ZDY4NjVhMjI4Y2Ri
14
+ ZGEzMzAxZWY0NGU4OTE5ODg3MTc1MDUwZTAwNjUyN2NiZTY5MDIzM2U4ODZj
15
+ YTNkOWU2NTJlZWVjMDQxMGQ3NDUxOTFmMDMxYzI2MjJlYWE3NzE=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Cap-EC2 changelog
2
2
 
3
+ ## 0.0.17
4
+
5
+ * Provide access to EC2 server tags within Capistrano recipes [@eightbitraptor](https://github.com/eightbitraptor)
6
+ * Fix sorting of servers when there is no Name tag [@johnf](https://github.com/johnf)
7
+
3
8
  ## 0.0.16
4
9
 
5
10
  * Don't colorize status table output if STDOUT is not a TTY. [@jcoglan](https://github.com/jcoglan)
@@ -21,7 +21,8 @@ module Capistrano
21
21
 
22
22
  def ec2_role(name, options={})
23
23
  ec2_handler.get_servers_for_role(name).each do |server|
24
- env.role(name, CapEC2::Utils.contact_point(server), options)
24
+ env.role(name, CapEC2::Utils.contact_point(server),
25
+ options_with_instance_id(options, server))
25
26
  end
26
27
  end
27
28
 
@@ -29,9 +30,16 @@ module Capistrano
29
30
  Configuration.env
30
31
  end
31
32
 
33
+ private
34
+
35
+ def options_with_instance_id(options, server)
36
+ options.merge({aws_instance_id: server.instance_id})
37
+ end
38
+
32
39
  end
33
40
  end
34
41
  end
35
42
 
36
43
  self.extend Capistrano::DSL::Ec2
37
44
 
45
+ Capistrano::Configuration::Server.send(:include, CapEC2::Utils::Server)
@@ -71,7 +71,13 @@ module CapEC2
71
71
  (fetch(:ec2_filter_by_status_ok?) ? instance_status_ok?(i) : true)
72
72
  end
73
73
  end
74
- servers.flatten.sort_by {|s| s.tags["Name"]}
74
+ servers.flatten.sort_by {|s| s.tags["Name"] || ''}
75
+ end
76
+
77
+ def get_server(instance_id)
78
+ @ec2.reduce([]) do |acc, (_, ec2)|
79
+ acc << ec2.instances[instance_id]
80
+ end.flatten.first
75
81
  end
76
82
 
77
83
  private
data/lib/cap-ec2/utils.rb CHANGED
@@ -1,6 +1,13 @@
1
1
  module CapEC2
2
2
  module Utils
3
3
 
4
+ module Server
5
+ def ec2_tags
6
+ id = self.properties.fetch(:aws_instance_id)
7
+ ec2_handler.get_server(id).tags
8
+ end
9
+ end
10
+
4
11
  def project_tag
5
12
  fetch(:ec2_project_tag)
6
13
  end
@@ -1,3 +1,3 @@
1
1
  module CapEC2
2
- VERSION = '0.0.16'
2
+ VERSION = '0.0.17'
3
3
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cap-ec2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
5
- prerelease:
4
+ version: 0.0.17
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andy Sykes
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-07-25 00:00:00.000000000 Z
12
+ date: 2014-09-22 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bundler
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rake
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ! '>='
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ! '>='
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: aws-sdk
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ! '>='
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ! '>='
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: capistrano
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ! '>='
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :runtime
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ! '>='
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: terminal-table
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ! '>='
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :runtime
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ! '>='
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: colored
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ! '>='
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :runtime
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ! '>='
109
96
  - !ruby/object:Gem::Version
@@ -133,33 +120,26 @@ files:
133
120
  homepage: https://github.com/forward3d/cap-ec2
134
121
  licenses:
135
122
  - MIT
123
+ metadata: {}
136
124
  post_install_message:
137
125
  rdoc_options: []
138
126
  require_paths:
139
127
  - lib
140
128
  required_ruby_version: !ruby/object:Gem::Requirement
141
- none: false
142
129
  requirements:
143
130
  - - ! '>='
144
131
  - !ruby/object:Gem::Version
145
132
  version: '0'
146
- segments:
147
- - 0
148
- hash: 2024231783545522986
149
133
  required_rubygems_version: !ruby/object:Gem::Requirement
150
- none: false
151
134
  requirements:
152
135
  - - ! '>='
153
136
  - !ruby/object:Gem::Version
154
137
  version: '0'
155
- segments:
156
- - 0
157
- hash: 2024231783545522986
158
138
  requirements: []
159
139
  rubyforge_project:
160
- rubygems_version: 1.8.23
140
+ rubygems_version: 2.0.7
161
141
  signing_key:
162
- specification_version: 3
142
+ specification_version: 4
163
143
  summary: Cap-EC2 is used to generate Capistrano namespaces and tasks from Amazon EC2
164
144
  instance tags, dynamically building the list of servers to be deployed to.
165
145
  test_files: []