beanstalkify 0.0.5 → 0.0.6
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/Gemfile.lock +2 -2
- data/bin/beanstalkify +3 -3
- data/lib/beanstalkify/application.rb +3 -3
- data/lib/beanstalkify/environment.rb +7 -5
- data/lib/beanstalkify/version.rb +1 -1
- data/test/environment_spec.rb +4 -4
- metadata +3 -3
data/Gemfile.lock
CHANGED
data/bin/beanstalkify
CHANGED
@@ -20,7 +20,7 @@ OptionParser.new do |opts|
|
|
20
20
|
opts.on("-s", "--stack [stack]", "Stack to provision (e.g. '64bit Amazon Linux running Node.js')") do |v|
|
21
21
|
options[:stack] = v
|
22
22
|
end
|
23
|
-
opts.on("-n", "--cname [cname]", "CNAME
|
23
|
+
opts.on("-n", "--cname [cname]", "CNAME prefixes to try (e.g. my-awesome-app,my-awesome-app-2)") do |v|
|
24
24
|
options[:cname] = v
|
25
25
|
end
|
26
26
|
opts.on("-c", "--config [file]", "Configuration overrides for the environment (optional)") do |v|
|
@@ -33,13 +33,13 @@ end.parse!
|
|
33
33
|
|
34
34
|
required_params = [:credentials, :archive, :environment, :stack]
|
35
35
|
unless (required_params - options.keys).empty?
|
36
|
-
puts "Example usage: beanstalkify -k credentials.yml -a AppName-version.zip -e Test -s '64bit Amazon Linux running Node.js' [-c config.yml] [-n my-awesome-app] [-o info.yml]"
|
36
|
+
puts "Example usage: beanstalkify -k credentials.yml -a AppName-version.zip -e Test -s '64bit Amazon Linux running Node.js' [-c config.yml] [-n my-awesome-app,my-awesome-app-1] [-o info.yml]"
|
37
37
|
exit
|
38
38
|
end
|
39
39
|
|
40
40
|
Beanstalkify::Beanstalk.configure! options[:credentials]
|
41
41
|
|
42
|
-
app = Beanstalkify::Application.new(options[:stack], options[:cname], options[:config] || [])
|
42
|
+
app = Beanstalkify::Application.new(options[:stack], options[:cname] || '', options[:config] || [])
|
43
43
|
archive = Beanstalkify::Archive.new(options[:archive])
|
44
44
|
environment = Beanstalkify::Environment.new(archive, options[:environment])
|
45
45
|
|
@@ -4,9 +4,9 @@ module Beanstalkify
|
|
4
4
|
|
5
5
|
# config is an array of hashes:
|
6
6
|
# :namespace, :option_name, :value
|
7
|
-
def initialize(stack,
|
7
|
+
def initialize(stack, cnames, config)
|
8
8
|
@stack = stack
|
9
|
-
@
|
9
|
+
@cnames = cnames.split(',')
|
10
10
|
@config = config.map { |c| Hash[c.map { |k, v| [k.to_sym,v]}] }
|
11
11
|
end
|
12
12
|
|
@@ -17,7 +17,7 @@ module Beanstalkify
|
|
17
17
|
|
18
18
|
if env.status.empty?
|
19
19
|
puts "Creating stack '#{@stack}' for #{archive.app_name}-#{archive.version}..."
|
20
|
-
env.create!(archive, @stack, @
|
20
|
+
env.create!(archive, @stack, @cnames, @config)
|
21
21
|
env.wait!("Launching")
|
22
22
|
else
|
23
23
|
puts "Deploying #{archive.version} to #{env.name}..."
|
@@ -22,7 +22,8 @@ module Beanstalkify
|
|
22
22
|
|
23
23
|
# Assuming the archive has already been uploaded,
|
24
24
|
# create a new environment with the app deployed onto the provided stack.
|
25
|
-
|
25
|
+
# Attempts to use the first available cname in the cnames array.
|
26
|
+
def create!(archive, stack, cnames, settings=[])
|
26
27
|
params = {
|
27
28
|
:application_name => archive.app_name,
|
28
29
|
:version_label => archive.version,
|
@@ -30,11 +31,12 @@ module Beanstalkify
|
|
30
31
|
:solution_stack_name => stack,
|
31
32
|
:option_settings => settings
|
32
33
|
}
|
33
|
-
|
34
|
-
if dns_available(
|
35
|
-
params[:cname_prefix] =
|
34
|
+
cnames.each do |c|
|
35
|
+
if dns_available(c)
|
36
|
+
params[:cname_prefix] = c
|
37
|
+
break
|
36
38
|
else
|
37
|
-
puts "CNAME #{
|
39
|
+
puts "CNAME #{c} is unavailable."
|
38
40
|
end
|
39
41
|
end
|
40
42
|
@beanstalk.create_environment(params)
|
data/lib/beanstalkify/version.rb
CHANGED
data/test/environment_spec.rb
CHANGED
@@ -17,7 +17,7 @@ describe Beanstalkify::Environment do
|
|
17
17
|
:solution_stack_name => 'mastack',
|
18
18
|
:option_settings => masettings
|
19
19
|
).and_return nil
|
20
|
-
@env.create! @archive, 'mastack',
|
20
|
+
@env.create! @archive, 'mastack', [], masettings
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'creates a new environment with a cname, if available' do
|
@@ -27,13 +27,13 @@ describe Beanstalkify::Environment do
|
|
27
27
|
:version_label => 'version',
|
28
28
|
:environment_name => 'app-name-Test',
|
29
29
|
:solution_stack_name => 'mastack',
|
30
|
-
:cname_prefix => 'ma-cname',
|
30
|
+
:cname_prefix => 'ma-cname-1',
|
31
31
|
:option_settings => masettings
|
32
32
|
).and_return nil
|
33
33
|
expect(@beanstalk_api).to receive(:check_dns_availability).and_return(
|
34
34
|
:available => true
|
35
35
|
)
|
36
|
-
@env.create! @archive, 'mastack', 'ma-cname', masettings
|
36
|
+
@env.create! @archive, 'mastack', ['ma-cname-1'], masettings
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'creates an environment without the cname, if the cname was unavailable' do
|
@@ -48,7 +48,7 @@ describe Beanstalkify::Environment do
|
|
48
48
|
expect(@beanstalk_api).to receive(:check_dns_availability).and_return(
|
49
49
|
:available => false
|
50
50
|
)
|
51
|
-
@env.create! @archive, 'mastack', 'ma-cname', masettings
|
51
|
+
@env.create! @archive, 'mastack', ['ma-cname-1'], masettings
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'prepends the application name because environment names must be unique within an AWS account' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beanstalkify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
83
|
version: '0'
|
84
84
|
segments:
|
85
85
|
- 0
|
86
|
-
hash: -
|
86
|
+
hash: -637330145255751151
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
88
|
none: false
|
89
89
|
requirements:
|
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
92
|
version: '0'
|
93
93
|
segments:
|
94
94
|
- 0
|
95
|
-
hash: -
|
95
|
+
hash: -637330145255751151
|
96
96
|
requirements: []
|
97
97
|
rubyforge_project:
|
98
98
|
rubygems_version: 1.8.24
|