stackup 0.8.1 → 0.8.2
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 +4 -4
- data/CHANGES.md +10 -0
- data/bin/stackup +8 -1
- data/lib/stackup/differ.rb +5 -2
- data/lib/stackup/utils.rb +21 -0
- data/lib/stackup/version.rb +1 -1
- data/spec/stackup/utils_spec.rb +76 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a685003b83032534f9b6c8201d658d72b97ba984
|
4
|
+
data.tar.gz: 29337a550911b7a812693206cca7b6a7e3a9933f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ef3c38343086e98db0a29d8ed8e4362502a3428a6dfd81dfb68a285c01278e75f7660fe6f3706e810d98c70f4b47dd5a11b9f06e191342981c30c20fde91302
|
7
|
+
data.tar.gz: 33176851b2506904a937a3fbe391c9316fba67ca3b7a6b0c9e11243a7ab65ba99271adea564fb3fc73b07f329e20e45fb33d0623da48c123cae3269a2e7147ac
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 0.8.2 (2016-05-31)
|
2
|
+
|
3
|
+
* CLI catches and reports any `Aws::Errors::ServiceError`.
|
4
|
+
* Add `--retry-limit` option.
|
5
|
+
* Normalize templates (sort by key) before diff-ing them.
|
6
|
+
|
7
|
+
## 0.8.1 (2016-04-13)
|
8
|
+
|
9
|
+
* Add "outputs" rake task.
|
10
|
+
|
1
11
|
## 0.8.0 (2016-03-15)
|
2
12
|
|
3
13
|
* Add support for stack tags.
|
data/bin/stackup
CHANGED
@@ -30,6 +30,13 @@ Clamp do
|
|
30
30
|
arg
|
31
31
|
end
|
32
32
|
|
33
|
+
option ["--retry-limit"], "N", "maximum number of retries for API calls",
|
34
|
+
:environment_variable => "AWS_API_RETRY_LIMIT" do |arg|
|
35
|
+
Integer(arg).tap do |value|
|
36
|
+
Aws.config.update(:retry_limit => value)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
33
40
|
option "--debug", :flag, "enable debugging"
|
34
41
|
|
35
42
|
option ["--version"], :flag, "display version" do
|
@@ -45,7 +52,7 @@ Clamp do
|
|
45
52
|
signal_error e.message
|
46
53
|
rescue Aws::Errors::MissingCredentialsError
|
47
54
|
signal_error "no credentials provided"
|
48
|
-
rescue Aws::
|
55
|
+
rescue Aws::Errors::ServiceError => e
|
49
56
|
signal_error e.message
|
50
57
|
end
|
51
58
|
|
data/lib/stackup/differ.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "diffy"
|
2
|
+
require "stackup/utils"
|
2
3
|
require "yaml"
|
3
4
|
|
4
5
|
module Stackup
|
@@ -14,9 +15,11 @@ module Stackup
|
|
14
15
|
|
15
16
|
attr_reader :diff_style
|
16
17
|
|
18
|
+
include Utils
|
19
|
+
|
17
20
|
def diff(existing_data, pending_data)
|
18
|
-
existing = format(existing_data) + "\n"
|
19
|
-
pending = format(pending_data) + "\n"
|
21
|
+
existing = format(normalize_data(existing_data)) + "\n"
|
22
|
+
pending = format(normalize_data(pending_data)) + "\n"
|
20
23
|
diff = Diffy::Diff.new(existing, pending).to_s(diff_style)
|
21
24
|
diff unless diff =~ /\A\s*\Z/
|
22
25
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Stackup
|
2
|
+
|
3
|
+
# Generates diffs of data.
|
4
|
+
#
|
5
|
+
module Utils
|
6
|
+
|
7
|
+
def normalize_data(data)
|
8
|
+
case data
|
9
|
+
when Hash
|
10
|
+
pairs = data.sort.map { |k,v| [k, normalize_data(v)] }
|
11
|
+
Hash[pairs]
|
12
|
+
when Array
|
13
|
+
pairs = data.map { |x| normalize_data(x) }
|
14
|
+
else
|
15
|
+
data
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/lib/stackup/version.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
require "stackup/utils"
|
4
|
+
|
5
|
+
describe Stackup::Utils do
|
6
|
+
|
7
|
+
include Stackup::Utils
|
8
|
+
|
9
|
+
describe ".normalize_data" do
|
10
|
+
|
11
|
+
context "with a scalar" do
|
12
|
+
|
13
|
+
it "returns the input" do
|
14
|
+
expect(normalize_data(123)).to eql(123)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
context "with a Hash" do
|
20
|
+
|
21
|
+
it "sorts the Hash" do
|
22
|
+
input = {
|
23
|
+
"foo" => 1,
|
24
|
+
"bar" => 2
|
25
|
+
}
|
26
|
+
expected_output = {
|
27
|
+
"bar" => 2,
|
28
|
+
"foo" => 1
|
29
|
+
}
|
30
|
+
expect(normalize_data(input)).to eql(expected_output)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context "with a nested Hash" do
|
36
|
+
|
37
|
+
it "sorts the Hash" do
|
38
|
+
input = {
|
39
|
+
"stuff" => {
|
40
|
+
"foo" => 1,
|
41
|
+
"bar" => 2
|
42
|
+
}
|
43
|
+
}
|
44
|
+
expected_output = {
|
45
|
+
"stuff" => {
|
46
|
+
"bar" => 2,
|
47
|
+
"foo" => 1
|
48
|
+
}
|
49
|
+
}
|
50
|
+
expect(normalize_data(input)).to eql(expected_output)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
context "with an array of Hashes" do
|
56
|
+
|
57
|
+
it "sorts the all" do
|
58
|
+
input = [
|
59
|
+
{
|
60
|
+
"foo" => 1,
|
61
|
+
"bar" => 2
|
62
|
+
}
|
63
|
+
]
|
64
|
+
expected_output = [
|
65
|
+
{
|
66
|
+
"bar" => 2,
|
67
|
+
"foo" => 1
|
68
|
+
}
|
69
|
+
]
|
70
|
+
expect(normalize_data(input)).to eql(expected_output)
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Williams
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk-resources
|
@@ -102,11 +102,13 @@ files:
|
|
102
102
|
- lib/stackup/service.rb
|
103
103
|
- lib/stackup/stack.rb
|
104
104
|
- lib/stackup/stack_watcher.rb
|
105
|
+
- lib/stackup/utils.rb
|
105
106
|
- lib/stackup/version.rb
|
106
107
|
- spec/spec_helper.rb
|
107
108
|
- spec/stackup/parameters_spec.rb
|
108
109
|
- spec/stackup/stack_spec.rb
|
109
110
|
- spec/stackup/stack_watcher_spec.rb
|
111
|
+
- spec/stackup/utils_spec.rb
|
110
112
|
homepage: https://github.com/realestate-com-au/stackup
|
111
113
|
licenses:
|
112
114
|
- MIT
|
@@ -136,3 +138,4 @@ test_files:
|
|
136
138
|
- spec/stackup/parameters_spec.rb
|
137
139
|
- spec/stackup/stack_spec.rb
|
138
140
|
- spec/stackup/stack_watcher_spec.rb
|
141
|
+
- spec/stackup/utils_spec.rb
|