capify-ec2 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.3.7 (Jan 20, 2013)
2
+
3
+ - Make the behaviour for passing hash/filename consistent
4
+ - Fix ec2_role when role_name_or_hash is not a hash.
5
+
1
6
  ## 1.3.6 (Jan 17, 2013)
2
7
 
3
8
  Bugfixes:
data/lib/capify-ec2.rb CHANGED
@@ -3,7 +3,6 @@ require 'fog'
3
3
  require 'colored'
4
4
  require File.expand_path(File.dirname(__FILE__) + '/capify-ec2/server')
5
5
 
6
-
7
6
  class CapifyEc2
8
7
 
9
8
  attr_accessor :load_balancer, :instances
@@ -18,23 +17,24 @@ class CapifyEc2
18
17
  @ec2_config = ec2_config
19
18
  when String
20
19
  @ec2_config = YAML.load_file ec2_config
21
-
22
- # Maintain backward compatibility with previous config format
23
- @ec2_config[:project_tags] ||= []
24
- # User can change the Roles tag string
25
- @ec2_config[:aws_roles_tag] ||= "Roles"
26
- @ec2_config[:project_tags] << @ec2_config[:project_tag] if @ec2_config[:project_tag]
27
20
  else
28
21
  raise ArgumentError, "Invalid ec2_config: #{ec2_config.inspect}"
29
22
  end
30
23
 
24
+ # Maintain backward compatibility with previous config format
25
+ @ec2_config[:project_tags] ||= []
26
+ # User can change the Roles tag string
27
+ @ec2_config[:aws_roles_tag] ||= "Roles"
28
+ @ec2_config[:project_tags] << @ec2_config[:project_tag] if @ec2_config[:project_tag]
29
+
31
30
  regions = determine_regions()
32
31
 
33
32
  @instances = []
34
33
  regions.each do |region|
35
- servers = Fog::Compute.new(:provider => 'AWS', :aws_access_key_id => @ec2_config[:aws_access_key_id],
36
- :aws_secret_access_key => @ec2_config[:aws_secret_access_key], :region => region).servers
37
- servers.each do |server|
34
+ Fog::Compute.new(:provider => 'AWS',
35
+ :aws_access_key_id => @ec2_config[:aws_access_key_id],
36
+ :aws_secret_access_key => @ec2_config[:aws_secret_access_key],
37
+ :region => region).servers.each do |server|
38
38
  @instances << server if server.ready?
39
39
  end
40
40
  end
@@ -77,23 +77,22 @@ Capistrano::Configuration.instance(:must_exist).load do
77
77
  end
78
78
 
79
79
  def ec2_role(role_name_or_hash)
80
- role = role_name_or_hash.is_a?(Hash) ? role_name_or_hash : {:name => role_name_or_hash,:options => {}}
81
- variables = role_name_or_hash[:variables] || {}
80
+ role = role_name_or_hash.is_a?(Hash) ? role_name_or_hash : {:name => role_name_or_hash, :options => {}, :variables => {}}
82
81
 
83
82
  instances = capify_ec2.get_instances_by_role(role[:name])
84
-
85
83
  if role[:options] && role[:options].delete(:default)
86
84
  instances.each do |instance|
87
85
  define_role(role, instance)
88
86
  end
89
- end
87
+ end
88
+
90
89
  regions = capify_ec2.determine_regions
91
90
  regions.each do |region|
92
91
  define_regions(region, role)
93
92
  end unless regions.nil?
94
93
 
95
- define_role_roles(role, instances, variables)
96
- define_instance_roles(role, instances, variables)
94
+ define_role_roles(role, instances)
95
+ define_instance_roles(role, instances)
97
96
  end
98
97
 
99
98
  def define_regions(region, role)
@@ -110,26 +109,27 @@ Capistrano::Configuration.instance(:must_exist).load do
110
109
  end
111
110
  end
112
111
 
113
- def define_instance_roles(role, instances, variables)
112
+ def define_instance_roles(role, instances)
114
113
  instances.each do |instance|
115
114
  task instance.name.to_sym do
116
115
  remove_default_roles
117
- define_role(role, instance, variables)
116
+ define_role(role, instance)
118
117
  end
119
118
  end
120
119
  end
121
120
 
122
- def define_role_roles(role, instances, variables)
121
+ def define_role_roles(role, instances)
123
122
  task role[:name].to_sym do
124
123
  remove_default_roles
125
124
  instances.each do |instance|
126
- define_role(role, instance, variables)
125
+ define_role(role, instance)
127
126
  end
128
127
  end
129
128
  end
130
129
 
131
- def define_role(role, instance, variables = {})
130
+ def define_role(role, instance)
132
131
  options = role[:options] || {}
132
+ variables = role[:variables] || {}
133
133
 
134
134
  cap_options = options.inject({}) do |cap_options, (key, value)|
135
135
  cap_options[key] = true if value.to_s == instance.name
@@ -139,7 +139,8 @@ Capistrano::Configuration.instance(:must_exist).load do
139
139
  ec2_options = instance.tags["Options"] || ""
140
140
  ec2_options.split(%r{,\s*}).compact.each { |ec2_option| cap_options[ec2_option.to_sym] = true }
141
141
 
142
- variables.each { |name, value| set name, value }
142
+ variables.each { |key, value| set key, value }
143
+
143
144
  role role[:name].to_sym, instance.contact_point, cap_options
144
145
  end
145
146
 
@@ -1,6 +1,6 @@
1
1
  module Capify
2
2
  module Ec2
3
- VERSION = "1.3.6"
3
+ VERSION = "1.3.7"
4
4
  end
5
5
  end
6
6
 
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: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.7
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 6
10
- version: 1.3.6
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: 2013-01-17 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2013-01-20 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
- rubygems_version: 1.8.15
102
+ rubygems_version: 1.8.23
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
-