hiera-mysql-json-backend 1.1.2 → 2.0.0

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: fbf488a487e7f43f77fe5cc3e65b271357f8873a
4
- data.tar.gz: 6f004a40633fb221a64b84e9386b3c1ddd60b56d
3
+ metadata.gz: 7089e8b0947896353a2650c6e40859181b27daef
4
+ data.tar.gz: 15a1065f32602bc4f9b40655744e5b67a26a4e77
5
5
  SHA512:
6
- metadata.gz: f13c4d437856a299310f2cfe73628c0ba36bcf641e391a1944f6191430608a9d38ee08bf753a1e200a86438f687bf832d6f84bc7245bdabed4c85b71781d5471
7
- data.tar.gz: 9e9b07cd44462189aca7901898ba82ae12b3dcde7dc35d285baa4cf735d211d65bfb8f75c9073def41af8fc13dc114216f51814a54121923aed37b23d66c6d74
6
+ metadata.gz: 8ef7562939428dc62bd2696d331593c7f2098420920ecd1cd0cfad919c2a87f325bb548fb9a8a18056f61fe9b40c97ca94196fcbf2e53d9c2cb0ababf1fc95a1
7
+ data.tar.gz: 8ac1c9fef7bfd2c670ec9a2cf679a0b516d11c76553bde7592150b965be005424d592bc8098e1eb7b5d2c855501b8f7476d16834359d4a0d28d9ae34494d18e4
data/.gitignore CHANGED
@@ -16,3 +16,5 @@ tmp
16
16
  .yardoc
17
17
  _yardoc
18
18
  doc/
19
+
20
+ .ruby-version
@@ -14,4 +14,9 @@
14
14
 
15
15
  - Made improvements to the connection Hash
16
16
  - Fixed an issue where if no port was defined nill would be passed
17
- - Added defaults for hostname and port, hostname will default to `localhost` port to `3306`
17
+ - Added defaults for hostname and port, hostname will default to `localhost` port to `3306`
18
+
19
+ ### 2.0.0
20
+
21
+ - If we cannot parse JSON as json, do something nasty to try if the value is a
22
+ boolean
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "hiera-mysql-json-backend-jruby"
5
- gem.version = "1.1.2"
5
+ gem.version = "2.0.0"
6
6
  gem.authors = ["Hostnet"]
7
7
  gem.email = ["opensource@hostnet.nl"]
8
8
  gem.description = %q{Alternative MySQL backend with json support for hiera}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "hiera-mysql-json-backend"
5
- gem.version = "1.1.2"
5
+ gem.version = "2.0.0"
6
6
  gem.authors = ["Hostnet"]
7
7
  gem.email = ["opensource@hostnet.nl"]
8
8
  gem.description = %q{Alternative MySQL backend with json support for hiera}
@@ -82,16 +82,34 @@ class Hiera
82
82
 
83
83
  Hiera.debug("Found #{key} in #{source}")
84
84
 
85
- new_answer = Backend.parse_answer(data[key], scope)
85
+ query = Backend.parse_answer(data[key], scope)
86
86
 
87
- sql_results = query(connection_hash, new_answer)
87
+ sql_results = query(connection_hash, query)
88
88
  # TODO: make sure we fail if we have more than 1 result, skip if less than 1.
89
89
  next if sql_results.length != 1
90
+
91
+ new_answer = nil
92
+ sqlvalue = sql_results[0]['value']
93
+
90
94
  begin
91
- new_answer = JSON.parse(sql_results[0]['value'])
95
+ new_answer = JSON.parse(sqlvalue)
92
96
  rescue
93
- raise Exception, "JSON parse error for key '#{key}'. Offending data: #{sql_results[0]['value']}." unless Config[:mysql_json][:ignore_json_parse_errors]
94
- Hiera.debug("Miserable failure while looking for #{key}.")
97
+ Hiera.debug("Miserable failure while parsing #{key} as JSON.")
98
+ end
99
+
100
+ if new_answer.nil?
101
+ case sqlvalue
102
+ when /^(true|t|yes|y|1)$/i
103
+ new_answer = true
104
+ when /^(false|f|no|n|0)$/i
105
+ new_answer = false
106
+ else
107
+ Hiera.debug("Miserable failure while parsing #{key} as boolean.")
108
+ end
109
+ end
110
+
111
+ if new_answer.nil?
112
+ raise Exception, "Parse error for key '#{key}'. Offending data: #{sql_results[0]['value']}." unless Config[:mysql_json][:ignore_json_parse_errors]
95
113
  next
96
114
  end
97
115
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiera-mysql-json-backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hostnet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-08 00:00:00.000000000 Z
11
+ date: 2017-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2