cap-ec2 0.0.16 → 0.0.17

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.
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: []