eb_deployer 0.4.4.beta5 → 0.4.4.beta6
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.
- data/lib/eb_deployer.rb +3 -3
- data/lib/eb_deployer/eb_environment.rb +18 -2
- data/lib/eb_deployer/utils.rb +5 -0
- data/lib/eb_deployer/version.rb +1 -1
- data/test/aws_driver_stubs.rb +8 -0
- data/test/eb_environment_test.rb +10 -1
- metadata +1 -1
data/lib/eb_deployer.rb
CHANGED
@@ -191,11 +191,11 @@ module EbDeployer
|
|
191
191
|
env.settings = opts[:option_settings] || opts[:settings] || []
|
192
192
|
env.inactive_settings = opts[:inactive_settings] || []
|
193
193
|
env.creation_opts = {
|
194
|
-
:solution_stack => opts[:solution_stack_name]
|
194
|
+
:solution_stack => opts[:solution_stack_name],
|
195
195
|
:cname_prefix => opts[:cname_prefix],
|
196
|
-
:smoke_test => opts[:smoke_test]
|
196
|
+
:smoke_test => opts[:smoke_test],
|
197
197
|
:phoenix_mode => opts[:phoenix_mode],
|
198
|
-
:tier => opts[:tier]
|
198
|
+
:tier => opts[:tier]
|
199
199
|
}
|
200
200
|
env.strategy_name = opts[:strategy] || :blue_green
|
201
201
|
env.components = opts[:components]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module EbDeployer
|
2
2
|
class EbEnvironment
|
3
|
+
include Utils
|
4
|
+
|
3
5
|
attr_reader :app, :name
|
4
6
|
attr_writer :event_poller
|
5
7
|
|
@@ -13,7 +15,7 @@ module EbDeployer
|
|
13
15
|
@app = app
|
14
16
|
@name = self.class.unique_ebenv_name(name, app)
|
15
17
|
@bs = eb_driver
|
16
|
-
@creation_opts = creation_opts
|
18
|
+
@creation_opts = default_create_options.merge(reject_nil(creation_opts))
|
17
19
|
end
|
18
20
|
|
19
21
|
def deploy(version_label, settings={})
|
@@ -61,8 +63,10 @@ module EbDeployer
|
|
61
63
|
private
|
62
64
|
|
63
65
|
def create_eb_env(settings, version_label)
|
66
|
+
solution_stack = @creation_opts[:solution_stack]
|
67
|
+
validate_solutions_stack(solution_stack)
|
64
68
|
with_polling_events(/Successfully launched environment/i) do
|
65
|
-
@bs.create_environment(@app, @name,
|
69
|
+
@bs.create_environment(@app, @name, solution_stack, @creation_opts[:cname_prefix], version_label, @creation_opts[:tier], settings)
|
66
70
|
end
|
67
71
|
end
|
68
72
|
|
@@ -72,6 +76,11 @@ module EbDeployer
|
|
72
76
|
end
|
73
77
|
end
|
74
78
|
|
79
|
+
def validate_solutions_stack(stack_name)
|
80
|
+
names = @bs.list_solution_stack_names
|
81
|
+
raise "'#{stack_name}' is not a valid solution stack name, available solution stack names are: #{names.join(', ')}" unless names.include?(stack_name)
|
82
|
+
end
|
83
|
+
|
75
84
|
def smoke_test
|
76
85
|
host_name = @bs.environment_cname(@app, @name)
|
77
86
|
SmokeTest.new(@creation_opts[:smoke_test]).run(host_name, self)
|
@@ -112,6 +121,13 @@ module EbDeployer
|
|
112
121
|
@event_poller || EventPoller.new(@app, @name, @bs)
|
113
122
|
end
|
114
123
|
|
124
|
+
def default_create_options
|
125
|
+
{
|
126
|
+
:solution_stack => "64bit Amazon Linux 2013.09 running Tomcat 7 Java 7",
|
127
|
+
:smoke_test => Proc.new {},
|
128
|
+
:tier => 'WebServer'
|
129
|
+
}
|
130
|
+
end
|
115
131
|
|
116
132
|
def log_event(event)
|
117
133
|
puts "[#{event[:event_date]}][environment:#{@name}] #{event[:message]}"
|
data/lib/eb_deployer/utils.rb
CHANGED
data/lib/eb_deployer/version.rb
CHANGED
data/test/aws_driver_stubs.rb
CHANGED
@@ -127,11 +127,19 @@ class EBStub
|
|
127
127
|
@envs[env_key(app_name, env_name)][:version]
|
128
128
|
end
|
129
129
|
|
130
|
+
def list_solution_stack_names
|
131
|
+
@solution_stacks || ["64bit Amazon Linux 2013.09 running Tomcat 7 Java 7"]
|
132
|
+
end
|
133
|
+
|
130
134
|
#test only
|
131
135
|
def mark_all_envs_ready
|
132
136
|
@envs.values.each { |env| set_env_ready(env[:application], env[:name], true) }
|
133
137
|
end
|
134
138
|
|
139
|
+
def set_solution_stacks(names)
|
140
|
+
@solution_stacks = names
|
141
|
+
end
|
142
|
+
|
135
143
|
def environment_tier(app_name, env_name)
|
136
144
|
@envs[env_key(app_name, env_name)][:tier]
|
137
145
|
end
|
data/test/eb_environment_test.rb
CHANGED
@@ -51,11 +51,20 @@ class EbEnvironmentTest < MiniTest::Unit::TestCase
|
|
51
51
|
assert_raises(RuntimeError) { env.deploy("version 1") }
|
52
52
|
end
|
53
53
|
|
54
|
-
|
55
54
|
def test_terminate_should_delete_environment
|
56
55
|
env = EbDeployer::EbEnvironment.new("myapp", "production", @eb_driver)
|
57
56
|
env.deploy("version1")
|
58
57
|
env.terminate
|
59
58
|
assert !@eb_driver.environment_exists?('myapp', t('production', 'myapp'))
|
60
59
|
end
|
60
|
+
|
61
|
+
def test_should_raise_runtime_error_when_solution_stack_is_not_valid
|
62
|
+
env = EbDeployer::EbEnvironment.new("myapp", "production", @eb_driver, {
|
63
|
+
:solution_stack => "python"
|
64
|
+
})
|
65
|
+
@eb_driver.set_solution_stacks(["java", "ruby"])
|
66
|
+
assert_raises(RuntimeError) { env.deploy("version 1") }
|
67
|
+
end
|
68
|
+
|
69
|
+
|
61
70
|
end
|