moonshot 0.7.2 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/moonshot/artifact_repository/s3_bucket.rb +3 -2
- data/lib/moonshot/cli.rb +10 -1
- data/lib/moonshot/controller.rb +2 -1
- data/lib/moonshot/default_strategy.rb +4 -5
- data/lib/moonshot/merge_strategy.rb +10 -7
- data/lib/moonshot/stack.rb +6 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4efa7393335490c5e80a03e6f3c733727c75acdf
|
4
|
+
data.tar.gz: 185c228d9dcec000b92fafca815cf9ac9b36ebf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17624a530e39bbe1179a776c082d9f1b4e5d2b8ea68dd0c0fc811d3767b5a4b014721b6b41d7253ba973d33772ee1cfb2b4b7c9345bfeef5625dcbeb9e045646
|
7
|
+
data.tar.gz: ca1d90df3feba59452c6d0a5c6bf63467c73d7fc009c2fda144cfce826a31e7f6184c1042b6bfbf99256baaab37ae9a4cabcb8cd5de03e162c2fd5f21d0cd63f
|
@@ -12,8 +12,9 @@ class Moonshot::ArtifactRepository::S3Bucket
|
|
12
12
|
|
13
13
|
attr_reader :bucket_name
|
14
14
|
|
15
|
-
def initialize(bucket_name)
|
15
|
+
def initialize(bucket_name, prefix: '')
|
16
16
|
@bucket_name = bucket_name
|
17
|
+
@prefix = prefix
|
17
18
|
end
|
18
19
|
|
19
20
|
def store_hook(build_mechanism, version_name)
|
@@ -32,7 +33,7 @@ class Moonshot::ArtifactRepository::S3Bucket
|
|
32
33
|
end
|
33
34
|
|
34
35
|
def filename_for_version(version_name)
|
35
|
-
"#{version_name}.tar.gz"
|
36
|
+
"#{@prefix}#{version_name}.tar.gz"
|
36
37
|
end
|
37
38
|
|
38
39
|
private
|
data/lib/moonshot/cli.rb
CHANGED
@@ -121,10 +121,19 @@ module Moonshot
|
|
121
121
|
desc: "Parent stack to import parameters from. (Default: #{default_parent_stack || 'None'})")
|
122
122
|
option :deploy, default: true, type: :boolean, aliases: '-d',
|
123
123
|
desc: 'Choose if code should be deployed after stack is created'
|
124
|
+
option :version, default: nil, type: :string,
|
125
|
+
desc: 'Version to deploy. Only valid if deploy flag is set.'
|
124
126
|
option :show_all_events, desc: 'Show all stack events during update. (Default: errors only)'
|
125
127
|
def create
|
126
128
|
controller.create
|
127
|
-
|
129
|
+
|
130
|
+
if options[:deploy]
|
131
|
+
if options[:version].nil?
|
132
|
+
controller.deploy_code
|
133
|
+
else
|
134
|
+
controller.deploy_version(options[:version])
|
135
|
+
end
|
136
|
+
end
|
128
137
|
end
|
129
138
|
|
130
139
|
desc :update, 'Update the CloudFormation stack within an environment.'
|
data/lib/moonshot/controller.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
module Moonshot
|
2
2
|
module ParameterStrategy
|
3
|
-
# Default strategy:
|
4
|
-
# from the parameter file.
|
3
|
+
# Default strategy: use parameter defined in the parameter file
|
5
4
|
class DefaultStrategy
|
6
|
-
def parameters(_,
|
7
|
-
|
5
|
+
def parameters(params, _, _)
|
6
|
+
params.map do |key, _|
|
8
7
|
{
|
9
8
|
parameter_key: key,
|
10
|
-
parameter_value:
|
9
|
+
parameter_value: params[key],
|
11
10
|
use_previous_value: false
|
12
11
|
}
|
13
12
|
end
|
@@ -3,16 +3,19 @@ require_relative 'unicode_table'
|
|
3
3
|
|
4
4
|
module Moonshot
|
5
5
|
module ParameterStrategy
|
6
|
-
# Merge strategy:
|
7
|
-
#
|
8
|
-
# using previous value.
|
6
|
+
# Merge strategy: prefer parameter values defined in the parameter file,
|
7
|
+
# otherwise use the previously set value on the existing stack.
|
9
8
|
class MergeStrategy
|
10
|
-
def parameters(
|
11
|
-
|
12
|
-
|
9
|
+
def parameters(params, stack_params, template)
|
10
|
+
stack_keys = stack_params.keys.select do |k|
|
11
|
+
template.parameters.any? { |p| p.name == k }
|
12
|
+
end
|
13
|
+
|
14
|
+
(params.keys + stack_keys).uniq.map do |key|
|
15
|
+
if params[key]
|
13
16
|
{
|
14
17
|
parameter_key: key,
|
15
|
-
parameter_value:
|
18
|
+
parameter_value: params[key],
|
16
19
|
use_previous_value: false
|
17
20
|
}
|
18
21
|
else
|
data/lib/moonshot/stack.rb
CHANGED
@@ -138,7 +138,7 @@ module Moonshot
|
|
138
138
|
# update.
|
139
139
|
def overrides
|
140
140
|
if File.exist?(parameters_file)
|
141
|
-
YAML.load_file(parameters_file)
|
141
|
+
YAML.load_file(parameters_file) || {}
|
142
142
|
else
|
143
143
|
{}
|
144
144
|
end
|
@@ -260,7 +260,11 @@ module Moonshot
|
|
260
260
|
stack_name: @name,
|
261
261
|
template_body: template.body,
|
262
262
|
capabilities: ['CAPABILITY_IAM'],
|
263
|
-
parameters: @config.parameter_strategy.parameters(
|
263
|
+
parameters: @config.parameter_strategy.parameters(
|
264
|
+
overrides,
|
265
|
+
parameters,
|
266
|
+
template
|
267
|
+
)
|
264
268
|
)
|
265
269
|
true
|
266
270
|
rescue Aws::CloudFormation::Errors::ValidationError => e
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moonshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cloud Engineering <engineering@acquia.com>
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|