stackit 0.3.0 → 0.3.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ae87dceb69b924c250e0520eb60e133cdd96d55
4
- data.tar.gz: 66b8268399565686f4abdc904b14e4360df71a5b
3
+ metadata.gz: b39c2acbc470ade26621ca98efb4022dc6a6fee1
4
+ data.tar.gz: 399b7ae0ffe05e4eb97cc515ca8163ebf0f5efdb
5
5
  SHA512:
6
- metadata.gz: 6f74864e0c51bb6c9699d8b5a2cba475b88a2d922e62e2b4ac084125207c3219e66548157551142f2d4cc147c958c72fb63fdf581526c4c09a206ce057db882e
7
- data.tar.gz: 1ce70a217a4bba624bdf2c4c399aac5df0b9992a760ef404632594bfe010bb22dc934a0f78006c5ce917d2b3690175b2d75e4a4c73a7e57afdd6e2df678e319f
6
+ metadata.gz: bae425a405e846166d0a9e83b83f1ba9bf4dbe1b937943f0ddb463dab8f91bcb14eabe272910f14fb0477d8a023d605f39cfa5c6302f06ded70edfa9a9f9c8d4
7
+ data.tar.gz: ebecc281df32b6392c39f1b217722fa27901a83c156acadc9d96c2503a0d5734c95f6194d5873f5d69fd3bfe82c42843a5eb4c4fc6eda751354a8909120bfdf2
data/lib/stackit.rb CHANGED
@@ -51,3 +51,5 @@ module Stackit
51
51
  end
52
52
 
53
53
  module Stackit::Mixin; end
54
+
55
+ require "stackit/stack/opsworks_managed_stack_service"
@@ -1,7 +1,40 @@
1
1
  module Stackit::Mixin::AvailabilityZone
2
2
 
3
- def random_az(keys = [:VpcAvailabilityZone1, :VpcAvailabilityZone2, :VpcAvailabilityZone3])
3
+ def selected_az_sym
4
+ selected_az.keys[0].to_sym
5
+ end
6
+
7
+ def selected_az_value
8
+ selected_az.values[0]
9
+ end
10
+
11
+ def subnet_id_for_selected_az(tier, az_sym = selected_az_sym)
12
+ az_subnet_mapping = az_subnet_map(tier)
13
+ selected_subnet_key = az_subnet_mapping[az_sym]
14
+ resolve_parameter(selected_subnet_key)
15
+ end
16
+
17
+ def random_az(keys = default_az_keys)
4
18
  resolve_parameters(keys).split(',').sample
5
19
  end
6
20
 
21
+ def random_az_as_hash(keys = default_az_keys)
22
+ sampled_az_key = default_az_keys.sample
23
+ sampled_az_value = resolve_parameter(sampled_az_key.to_sym)
24
+ {
25
+ sampled_az_key => sampled_az_value
26
+ }
27
+ end
28
+
29
+ private
30
+
31
+ def default_az_keys
32
+ [:VpcAvailabilityZone1, :VpcAvailabilityZone2, :VpcAvailabilityZone3]
33
+ end
34
+
35
+ def selected_az
36
+ @selected_az ||= random_az_as_hash
37
+ end
38
+
7
39
  end
40
+
@@ -0,0 +1,39 @@
1
+ require_relative 'availability_zone'
2
+
3
+ module Stackit::Mixin::Tier
4
+
5
+ include Stackit::Mixin::AvailabilityZone
6
+
7
+ attr_accessor :tier
8
+
9
+ def tier=(tier)
10
+ @tier = tier.to_sym
11
+ end
12
+
13
+ def random_tier_az
14
+ random_az ||= random_az_as_hash
15
+ end
16
+
17
+ def random_tier_az_sym
18
+ random_tier_az.keys[0].to_sym
19
+ end
20
+
21
+ def random_tier_az_value
22
+ random_tier_az.values[0]
23
+ end
24
+
25
+ def random_az_and_subnet
26
+ random_az = random_az_as_hash
27
+ random_az_sym = random_az.keys[0].to_sym
28
+ random_az_value = random_az.values[0]
29
+ az_subnet_mapping = az_subnet_map(tier)
30
+ selected_subnet_key = az_subnet_mapping[random_az_sym]
31
+ resolved_subnet = resolve_parameter(selected_subnet_key)
32
+ {
33
+ :az => random_az_value,
34
+ :subnet => resolved_subnet
35
+ }
36
+ end
37
+
38
+ end
39
+
@@ -271,6 +271,9 @@ module Stackit
271
271
  merged_params.merge!(param_name => this_stack[mapped_key(param_name)])
272
272
  end
273
273
  end
274
+ user_defined_parameters.each { |k, v|
275
+ user_defined_parameters[k] = v.to_s
276
+ }
274
277
  merged_params.merge!(user_defined_parameters)
275
278
  end
276
279
 
@@ -139,6 +139,7 @@ module Stackit
139
139
  options[:depends].each do |stack|
140
140
  @depends_stacks << Stackit::Stack.new(stack_name: stack)
141
141
  end
142
+ @depends_stacks
142
143
  end
143
144
 
144
145
  def stacks
@@ -146,10 +147,11 @@ module Stackit
146
147
  end
147
148
 
148
149
  def resolve_parameter(key)
149
- depends_stacks.each do |s|
150
- value = s[key.to_s]
150
+ depends_stacks.each do |_stack|
151
+ value = _stack[key.to_s]
151
152
  return value unless value.nil?
152
153
  end
154
+ nil
153
155
  end
154
156
 
155
157
  def resolve_parameters(keys)
@@ -0,0 +1,9 @@
1
+ require 'stackit/mixin/opsworks'
2
+
3
+ module Stackit
4
+
5
+ class OpsWorksManagedStackService < ManagedStackService
6
+ include Stackit::Mixin::OpsWorks
7
+ end
8
+
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Stackit
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Hahn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-07 00:00:00.000000000 Z
11
+ date: 2016-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -147,11 +147,13 @@ files:
147
147
  - lib/stackit/cli/stackit_cli.rb
148
148
  - lib/stackit/mixin/availability_zone.rb
149
149
  - lib/stackit/mixin/opsworks.rb
150
+ - lib/stackit/mixin/tier.rb
150
151
  - lib/stackit/stack.rb
151
152
  - lib/stackit/stack/default-stack-policy.json
152
153
  - lib/stackit/stack/default_notifier.rb
153
154
  - lib/stackit/stack/managed_stack.rb
154
155
  - lib/stackit/stack/managed_stack_service.rb
156
+ - lib/stackit/stack/opsworks_managed_stack_service.rb
155
157
  - lib/stackit/template.rb
156
158
  - lib/stackit/version.rb
157
159
  - lib/stackit/wait.rb