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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 817938d5e697cd44c2c346438043111c7d323538
4
- data.tar.gz: 68b387fdfbfc3c191c6b7270fd241112f39cec92
3
+ metadata.gz: 4efa7393335490c5e80a03e6f3c733727c75acdf
4
+ data.tar.gz: 185c228d9dcec000b92fafca815cf9ac9b36ebf4
5
5
  SHA512:
6
- metadata.gz: b6e66c46e218e4e1763b11bed6043a7b9225b6962a7de5cf8ffd59519666d4e38ccb72c4e783a3f40ca0b3454faa9f51c00e8f5efcf683bd5c8663fa34b7efd3
7
- data.tar.gz: f675f519b87322a2802d5198b399ce78a16e616bf2b573466e685c36460ddbbc2ffc78e55630b255179aa26db26829f032b14087d98596227a83195df901284a
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
@@ -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
- controller.deploy_code if options[:deploy]
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.'
@@ -32,9 +32,10 @@ module Moonshot
32
32
  end
33
33
 
34
34
  def status
35
- run_plugins(:status)
35
+ run_plugins(:pre_status)
36
36
  run_hook(:deploy, :status)
37
37
  stack.status
38
+ run_plugins(:post_status)
38
39
  end
39
40
 
40
41
  def deploy_code
@@ -1,13 +1,12 @@
1
1
  module Moonshot
2
2
  module ParameterStrategy
3
- # Default strategy: grabbing every parameter
4
- # from the parameter file.
3
+ # Default strategy: use parameter defined in the parameter file
5
4
  class DefaultStrategy
6
- def parameters(_, overrides)
7
- overrides.map do |key, _|
5
+ def parameters(params, _, _)
6
+ params.map do |key, _|
8
7
  {
9
8
  parameter_key: key,
10
- parameter_value: overrides[key],
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: merging parameter values
7
- # declared in the parameter file, otherwise
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(current, overrides)
11
- current.map do |key, _|
12
- if overrides[key]
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: overrides[key],
18
+ parameter_value: params[key],
16
19
  use_previous_value: false
17
20
  }
18
21
  else
@@ -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(parameters, overrides)
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.2
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-05-26 00:00:00.000000000 Z
11
+ date: 2016-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk