hiera-gosecret 0.2.2 → 0.2.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: d661cac6cb6cba8254c9c051da612d8a5a760a16
4
- data.tar.gz: eb33ca93188008b63c87f6d6dc5b54ef009878c6
3
+ metadata.gz: 9b9df459ed056bb392cfcec623853265a3a92b97
4
+ data.tar.gz: 5f19dd197a38ccadf116c96fef89b7adb836d2f4
5
5
  SHA512:
6
- metadata.gz: 9caa285d33fdc1d84dd38d5ddd1407780f125ff102e9816471fa292dd42583211e7f1bfdf5de150bef2869607589ddc3077ba6ffdf27be3671ce6ad3d3945382
7
- data.tar.gz: d9f0c52b2b824b4c6df83d295234461dd532385425eb0d938681599cf5ce82fcf1a82489634423ad70e28999ab010275bd8c1bf6c0a148a94458bbcdf981a530
6
+ metadata.gz: 3ff58d20225775a5f5b6ba7ab3fb8455264a3667a0e382b38b94af2619fa3228fd93d27ce4fe03e40ad6024effe8b3b255ddf266d4825c7627444ef29df02144
7
+ data.tar.gz: 188e6273c60b48855d3d05a4922057349c1064f23dfd216acb8b3c35b3538cadc1b7580eb58ba7bfda5b9c2bdb4f4ee419748ebd3a0ed0ecc3de81b30e07fcf8
@@ -32,26 +32,31 @@ class Hiera
32
32
  new_answer = nil
33
33
  case resolution_type
34
34
  when :array
35
- new_answer ||= []
36
- answer.each do |item|
37
- new_answer << decrypt(item) || item
38
- end
35
+ new_answer = decrypt_array(answer)
39
36
  when :hash
40
- # TODO: Verify if this works for nested hashes
41
- new_answer ||= {}
42
- answer.each do |key, value|
43
- new_answer[key] = decrypt(value) || value
44
- end
37
+ new_answer = decrypt_hash(answer)
45
38
  else
46
39
  new_answer = decrypt(answer)
47
40
  end
48
41
  return new_answer
49
42
  end
50
43
 
51
- def decrypt(value)
44
+ def decrypt_hash(hash)
45
+ hash.each do |key, value|
46
+ value.is_a?(Hash) ? decrypt_hash(value) : ( value.is_a?(Array) ? (hash[key] = decrypt_array(value) || value) : (hash[key] = decrypt(value) || value) )
47
+ end
48
+ end
49
+
50
+ def decrypt_array(array)
51
+ array.map do |value|
52
+ value.is_a?(Array) ? decrypt_array(value) : ( value.is_a?(Hash) ? decrypt_hash(value) : decrypt(value) || value )
53
+ end
54
+ end
55
+
56
+ def decrypt(value)
52
57
  if value != nil and value.is_a?(String) and /\[(gosecret(\|[^\]\|]*){4})\]/.match(value)
53
58
  Hiera.debug("Decrypting gosecret encrypted value: #{value}")
54
- `gosecret-decrypt "#{Config[:gosecret][:keydir]}" "#{value}"`
59
+ return `gosecret-decrypt "#{Config[:gosecret][:keydir]}" "#{value}"`
55
60
  end
56
61
  end
57
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiera-gosecret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Calvin Leung Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-12 00:00:00.000000000 Z
11
+ date: 2015-01-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Hiera backend for decrypting gosecret-encrypted values
14
14
  email: