capify-ec2 1.3.4 → 1.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog.md +15 -0
- data/lib/capify-ec2.rb +36 -7
- data/lib/capify-ec2/capistrano.rb +1 -1
- data/lib/capify-ec2/version.rb +1 -1
- data/readme.md +0 -5
- metadata +74 -58
data/Changelog.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## 1.3.5 (Jan 11, 2013)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- Updated output from ec2:status, improving readability, and improving handling of instance attributes that vary in size.
|
6
|
+
|
7
|
+
Bugfixes:
|
8
|
+
|
9
|
+
- Region role creation fixed, so that you can deploy just to instances in specific regions again (i.e. cap us-east-1 deploy).
|
10
|
+
- Fixed 'already initialized constant' warning which may be shown to users running some versions of Ruby 1.8.
|
11
|
+
|
12
|
+
## 1.3.0 to 1.3.4
|
13
|
+
|
14
|
+
Sorry, release notes were not added for these versions.
|
15
|
+
|
1
16
|
## 1.2.9 (June 29, 2012)
|
2
17
|
|
3
18
|
Bugfixes:
|
data/lib/capify-ec2.rb
CHANGED
@@ -7,7 +7,10 @@ require File.expand_path(File.dirname(__FILE__) + '/capify-ec2/server')
|
|
7
7
|
class CapifyEc2
|
8
8
|
|
9
9
|
attr_accessor :load_balancer, :instances
|
10
|
-
|
10
|
+
|
11
|
+
unless const_defined? :SLEEP_COUNT
|
12
|
+
SLEEP_COUNT = 5
|
13
|
+
end
|
11
14
|
|
12
15
|
def initialize(ec2_config = "config/ec2.yml")
|
13
16
|
case ec2_config
|
@@ -42,12 +45,38 @@ class CapifyEc2
|
|
42
45
|
end
|
43
46
|
|
44
47
|
def display_instances
|
48
|
+
# Set minimum widths for the variable length instance attributes.
|
49
|
+
column_widths = { :name_min => 4, :type_min => 4, :dns_min => 5, :roles_min => 5, :options_min => 6 }
|
50
|
+
|
51
|
+
# Find the longest attribute across all instances, to format the columns properly.
|
52
|
+
column_widths[:name] = desired_instances.map{|i| i.name || ' ' * column_widths[:name_min] }.max_by(&:length).length
|
53
|
+
column_widths[:type] = desired_instances.map{|i| i.flavor_id || ' ' * column_widths[:type_min] }.max_by(&:length).length
|
54
|
+
column_widths[:dns] = desired_instances.map{|i| i.contact_point || ' ' * column_widths[:dns_min] }.max_by(&:length).length
|
55
|
+
column_widths[:roles] = desired_instances.map{|i| i.tags[@ec2_config[:aws_roles_tag]] || ' ' * column_widths[:roles_min] }.max_by(&:length).length
|
56
|
+
column_widths[:options] = desired_instances.map{|i| i.tags["Options"] || ' ' * column_widths[:options_min] }.max_by(&:length).length
|
57
|
+
|
58
|
+
# Title row.
|
59
|
+
puts sprintf "%-3s %s %s %s %s %s %s %s",
|
60
|
+
'',
|
61
|
+
'Name' .ljust( column_widths[:name] ).bold,
|
62
|
+
'ID' .ljust( 10 ).bold,
|
63
|
+
'Type' .ljust( column_widths[:type] ).bold,
|
64
|
+
'DNS' .ljust( column_widths[:dns] ).bold,
|
65
|
+
'Zone' .ljust( 10 ).bold,
|
66
|
+
'Roles' .ljust( column_widths[:roles] ).bold,
|
67
|
+
'Options'.ljust( column_widths[:options] ).bold
|
68
|
+
|
45
69
|
desired_instances.each_with_index do |instance, i|
|
46
|
-
puts sprintf "%02d:
|
47
|
-
i,
|
48
|
-
instance.
|
49
|
-
|
50
|
-
|
70
|
+
puts sprintf "%02d: %-10s %s %s %s %-10s %s %s",
|
71
|
+
i,
|
72
|
+
(instance.name || '') .ljust( column_widths[:name] ).green,
|
73
|
+
instance.id .ljust( 2 ).red,
|
74
|
+
instance.flavor_id .ljust( column_widths[:type] ).cyan,
|
75
|
+
instance.contact_point .ljust( column_widths[:dns] ).blue.bold,
|
76
|
+
instance.availability_zone .ljust( 10 ).magenta,
|
77
|
+
(instance.tags[@ec2_config[:aws_roles_tag]] || '').ljust( column_widths[:roles] ).yellow,
|
78
|
+
(instance.tags["Options"] || '') .ljust( column_widths[:options] ).yellow
|
79
|
+
end
|
51
80
|
end
|
52
81
|
|
53
82
|
def server_names
|
@@ -68,7 +97,7 @@ class CapifyEc2
|
|
68
97
|
|
69
98
|
def get_instances_by_region(roles, region)
|
70
99
|
return unless region
|
71
|
-
desired_instances.select {|instance| instance.availability_zone.match(region) && instance.roles
|
100
|
+
desired_instances.select {|instance| instance.availability_zone.match(region) && instance.tags['Roles'].split(%r{,\s*}).include?(roles.to_s) rescue false}
|
72
101
|
end
|
73
102
|
|
74
103
|
def get_instance_by_name(name)
|
@@ -128,7 +128,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
def define_role(role, instance, variables)
|
131
|
+
def define_role(role, instance, variables = {})
|
132
132
|
options = role[:options] || {}
|
133
133
|
|
134
134
|
cap_options = options.inject({}) do |cap_options, (key, value)|
|
data/lib/capify-ec2/version.rb
CHANGED
data/readme.md
CHANGED
@@ -1,8 +1,3 @@
|
|
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
|
-
|
6
1
|
Capify Ec2
|
7
2
|
====================================================
|
8
3
|
|
metadata
CHANGED
@@ -1,73 +1,79 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: capify-ec2
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
- 5
|
10
|
+
version: 1.3.5
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Noah Cantor
|
9
14
|
- Siddharth Dawara
|
10
15
|
autorequire:
|
11
16
|
bindir: bin
|
12
17
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
18
|
+
|
19
|
+
date: 2013-01-11 00:00:00 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
16
22
|
name: fog
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - '='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.3.1
|
23
|
-
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
26
|
+
requirements:
|
27
|
+
- - "="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 25
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 3
|
33
|
+
- 1
|
30
34
|
version: 1.3.1
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
|
-
name: colored
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
|
-
requirements:
|
36
|
-
- - '='
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '1.2'
|
39
35
|
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: colored
|
40
39
|
prerelease: false
|
41
|
-
|
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
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
50
41
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
42
|
+
requirements:
|
43
|
+
- - "="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 11
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 2
|
49
|
+
version: "1.2"
|
55
50
|
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: capistrano
|
56
54
|
prerelease: false
|
57
|
-
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
56
|
none: false
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
version: "0"
|
64
|
+
type: :runtime
|
65
|
+
version_requirements: *id003
|
63
66
|
description: Grabs roles from ec2's tags and autogenerates capistrano tasks
|
64
|
-
email:
|
67
|
+
email:
|
65
68
|
- noah.cantor@forward.co.uk
|
66
69
|
- siddharth.dawara@forward.co.uk
|
67
70
|
executables: []
|
71
|
+
|
68
72
|
extensions: []
|
73
|
+
|
69
74
|
extra_rdoc_files: []
|
70
|
-
|
75
|
+
|
76
|
+
files:
|
71
77
|
- .gitignore
|
72
78
|
- Changelog.md
|
73
79
|
- Gemfile
|
@@ -81,26 +87,36 @@ files:
|
|
81
87
|
- readme.md
|
82
88
|
homepage: http://github.com/forward/capify-ec2
|
83
89
|
licenses: []
|
90
|
+
|
84
91
|
post_install_message:
|
85
92
|
rdoc_options: []
|
86
|
-
|
93
|
+
|
94
|
+
require_paths:
|
87
95
|
- lib
|
88
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
97
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
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
|
95
106
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
100
114
|
requirements: []
|
115
|
+
|
101
116
|
rubyforge_project: capify-ec2
|
102
|
-
rubygems_version: 1.8.
|
117
|
+
rubygems_version: 1.8.15
|
103
118
|
signing_key:
|
104
119
|
specification_version: 3
|
105
120
|
summary: Grabs roles from ec2's tags and autogenerates capistrano tasks
|
106
121
|
test_files: []
|
122
|
+
|