hiera-aws 0.0.7 → 0.0.8
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/lib/hiera/backend/aws/version.rb +1 -1
- data/lib/hiera/backend/aws_backend.rb +32 -22
- data/spec/aws_backend_spec.rb +8 -0
- 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: 1562b0fa2d2ba741b2f5b12baff4e13567d72849
|
4
|
+
data.tar.gz: f00a5df6b7c0d3c58ff7f9faff00c2e09aaeab49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 048087837fc6f406e5e8e3a70b1b1685114fdfbe80a79fb367437d31c55fe52f8476badd34e3d0e175886b313134f0689985438a43a1fb768359ad1a08cb27e9
|
7
|
+
data.tar.gz: 2af386fad0a859c8b7d133a9a2a4c12bea04c7c38c5c4402243ecdfdeb63cb4db65713e703135da99f257db728172d36f26b77c845b1206ca55fff6b0085f9f1
|
@@ -18,6 +18,28 @@ class Hiera
|
|
18
18
|
Hiera.debug("AWS backend initialized")
|
19
19
|
end
|
20
20
|
|
21
|
+
def lookup(key, scope, order_override, resolution_type)
|
22
|
+
answer = nil
|
23
|
+
|
24
|
+
Hiera.debug("Looking up #{key} in AWS backend")
|
25
|
+
|
26
|
+
Backend.datasources(scope, order_override) do |source|
|
27
|
+
Hiera.debug("Looking for data source #{source}")
|
28
|
+
|
29
|
+
service_class = find_service_class(source)
|
30
|
+
next unless service_class
|
31
|
+
|
32
|
+
value = service_class.lookup(key, scope)
|
33
|
+
next if value.nil? || value.empty?
|
34
|
+
|
35
|
+
answer = Backend.parse_answer(value, scope)
|
36
|
+
break if answer
|
37
|
+
end
|
38
|
+
answer
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
21
43
|
def setup_aws_credentials
|
22
44
|
if Config[:aws] && Config[:aws][:access_key_id] && Config[:aws][:secret_access_key]
|
23
45
|
Hiera.debug("Using AWS credentials from backend configuration")
|
@@ -31,30 +53,18 @@ class Hiera
|
|
31
53
|
end
|
32
54
|
end
|
33
55
|
|
34
|
-
def
|
35
|
-
|
36
|
-
|
37
|
-
next unless elements[0] == "aws"
|
38
|
-
|
39
|
-
service = elements[1]
|
40
|
-
|
41
|
-
service_class = case service
|
42
|
-
when "elasticache"
|
43
|
-
Hiera::Backend::Aws::ElastiCache.new
|
44
|
-
when "rds"
|
45
|
-
Hiera::Backend::Aws::RDS.new
|
46
|
-
end
|
47
|
-
next if service_class.nil?
|
56
|
+
def find_service_class(source)
|
57
|
+
elements = source.split "/"
|
58
|
+
return nil unless elements[0] == "aws"
|
48
59
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
60
|
+
case elements[1]
|
61
|
+
when "elasticache"
|
62
|
+
Hiera::Backend::Aws::ElastiCache.new
|
63
|
+
when "rds"
|
64
|
+
Hiera::Backend::Aws::RDS.new
|
65
|
+
else
|
66
|
+
nil
|
56
67
|
end
|
57
|
-
nil
|
58
68
|
end
|
59
69
|
end
|
60
70
|
end
|
data/spec/aws_backend_spec.rb
CHANGED
@@ -57,6 +57,14 @@ class Hiera
|
|
57
57
|
expect_any_instance_of(Aws::RDS).to receive(:lookup).with(key, scope)
|
58
58
|
backend.lookup(*params)
|
59
59
|
end
|
60
|
+
|
61
|
+
it "returns nil if service returns empty result" do
|
62
|
+
empty_result = []
|
63
|
+
Backend.stub(:datasources).and_yield "aws/rds"
|
64
|
+
Backend.stub(:parse_answer).and_return(empty_result)
|
65
|
+
Aws::RDS.stub(:new).and_return(double(:lookup => empty_result))
|
66
|
+
expect(backend.lookup(*params)).to be_nil
|
67
|
+
end
|
60
68
|
end
|
61
69
|
end
|
62
70
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiera-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Lafeldt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|