humidifier 1.11.0 → 1.11.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -0
- data/lib/humidifier/configuration.rb +23 -4
- data/lib/humidifier/sdk_payload.rb +22 -2
- data/lib/humidifier/version.rb +1 -1
- 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: f63e3c8426ef72d434bc4cedf68899d4ae9e2573
|
4
|
+
data.tar.gz: 99cdd9a0863a786e1c72df2d8008805e70ebca0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c19ea21dbaa03e6a0515f7f8e5c9af5d785f14549f02b021505948e25f046659dac1cd055e591299face04d19a896e7f91eb69460134df114a7a7bfc509f50d2
|
7
|
+
data.tar.gz: 4a64f7e5ed14d2e6441eaa565c3816f8008b2c6abfd1c6988a65c8593f5bc5eef65797ca4fa3d906f5a56f9e4d64c6d2220dbaa9e4af84c119f1614a80058f78
|
data/README.md
CHANGED
@@ -77,6 +77,23 @@ Humidifier.configure do |config|
|
|
77
77
|
end
|
78
78
|
```
|
79
79
|
|
80
|
+
### Forcing uploading
|
81
|
+
|
82
|
+
You can force a stack to upload its template to S3 regardless of the size of the template. This is a useful option if you're going to be deploying multiple
|
83
|
+
copies of a template or you just generally want a backup. You can set this option on a per-stack basis:
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
stack.deploy(force_upload: true)
|
87
|
+
```
|
88
|
+
|
89
|
+
or globally, but setting the configuration option:
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
Humidifier.configure do |config|
|
93
|
+
config.force_upload = true
|
94
|
+
end
|
95
|
+
```
|
96
|
+
|
80
97
|
## Development
|
81
98
|
|
82
99
|
To get started, ensure you have ruby installed, version 2.1 or later. From there, install the `bundler` gem: `gem install bundler` and then `bundle install` in the root of the repository.
|
@@ -15,12 +15,31 @@ Humidifier object like so:
|
|
15
15
|
end
|
16
16
|
MSG
|
17
17
|
|
18
|
-
|
18
|
+
# If true, always upload the CloudFormation template to the configured S3
|
19
|
+
# destination. A useful option if you're going to be deploying multiple
|
20
|
+
# copies of a template or you just generally want a backup.
|
21
|
+
attr_accessor :force_upload
|
22
|
+
|
23
|
+
# The S3 bucket to which to deploy CloudFormation templates when
|
24
|
+
# `always_upload` is set to true or the template is too big for a string
|
25
|
+
# literal.
|
26
|
+
attr_accessor :s3_bucket
|
27
|
+
|
28
|
+
# An optional prefix for the stack names.
|
29
|
+
attr_accessor :s3_prefix
|
30
|
+
|
31
|
+
# By default, `humidifier` will attempt to determine which SDK you have
|
32
|
+
# loaded. (There's not really a story for peer dependencies with bundler).
|
33
|
+
# If you want to enforce a specific version (for instance if you have both
|
34
|
+
# `aws-sdk-v1` and `aws-sdk` but want to use the former) you can set this
|
35
|
+
# variable to `1`.
|
36
|
+
attr_accessor :sdk_version
|
19
37
|
|
20
38
|
def initialize(opts = {})
|
21
|
-
|
22
|
-
|
23
|
-
|
39
|
+
@force_upload = opts[:force_upload]
|
40
|
+
@s3_bucket = opts[:s3_bucket]
|
41
|
+
@s3_prefix = opts[:s3_prefix]
|
42
|
+
@sdk_version = opts[:sdk_version]
|
24
43
|
end
|
25
44
|
|
26
45
|
# raise an error unless the s3_bucket field is set
|
@@ -24,7 +24,21 @@ module Humidifier
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
# The stack on which operations are going to be performed.
|
28
|
+
attr_reader :stack
|
29
|
+
|
30
|
+
# Options that should be passed through to CloudFormation when the desired
|
31
|
+
# operation is being performed. Particularly useful for the `capabilities`
|
32
|
+
# option for acknowledging IAM resource changes.
|
33
|
+
attr_reader :options
|
34
|
+
|
35
|
+
# The maximum amount of time that `humidifier` should wait for the stack to
|
36
|
+
# resolve to the desired state. If your stacks are particularly large, you
|
37
|
+
# may need to set this to wait longer than the default `MAX_WAIT`.
|
38
|
+
attr_accessor :max_wait
|
39
|
+
|
40
|
+
# Force the stack to upload to S3 regardless of the size of the stack.
|
41
|
+
attr_accessor :force_upload
|
28
42
|
|
29
43
|
extend Forwardable
|
30
44
|
def_delegators :stack, :id=, :identifier, :name
|
@@ -33,6 +47,7 @@ module Humidifier
|
|
33
47
|
@stack = stack
|
34
48
|
@options = options
|
35
49
|
@max_wait = options.delete(:max_wait) || MAX_WAIT
|
50
|
+
@force_upload = options.delete(:force_upload)
|
36
51
|
end
|
37
52
|
|
38
53
|
# True if the stack and options are the same as the other (used for testing)
|
@@ -87,9 +102,14 @@ module Humidifier
|
|
87
102
|
end
|
88
103
|
end
|
89
104
|
|
105
|
+
def should_upload?
|
106
|
+
return force_upload unless force_upload.nil?
|
107
|
+
Humidifier.config.force_upload || bytesize > MAX_TEMPLATE_BODY_SIZE
|
108
|
+
end
|
109
|
+
|
90
110
|
def template_param
|
91
111
|
@template_param ||=
|
92
|
-
if
|
112
|
+
if should_upload?
|
93
113
|
{ template_url: AwsShim.upload(self) }
|
94
114
|
else
|
95
115
|
{ template_body: template_body }
|
data/lib/humidifier/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: humidifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.0
|
4
|
+
version: 1.11.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Localytics
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|