hiera-mysql-json-backend-jruby 1.1.2 → 2.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb11facf052d04d437f3581fd57567c65d5a43c4
4
- data.tar.gz: 12469fcb7ae7efaafabab674a0cce399b6e5b911
3
+ metadata.gz: 151c57260b48d8af84d39031c757f8b1293f3a8b
4
+ data.tar.gz: 12c880b1473bf097e8c6a475e1c0af1e585d4c02
5
5
  SHA512:
6
- metadata.gz: bb789c536cb19f5a19b8ef0a883ff32768103f5540301250b43cab9ca71d3982d690e0616a8f4aa6db67a3762064c448e06dd330189fd556af1d579aec6c6a6c
7
- data.tar.gz: 2624b89efbe176b7e45953776630e6cb66f7dea19f6347c1a8fe9cadf3ca65724702dd87c33e7c3ff23bbdcf21b94cd1bc3a22b08ed525a8a855ee3d432e5e67
6
+ metadata.gz: fecc0d05fa3d06d01e927465202722d2e6d5fa32d2c4cf898206ca52715fe1b3287178b2cb58d33d477be7714bc6601c759194bc7c5828d853aac80d5fd942bf
7
+ data.tar.gz: 54d0875399ed79f101908c764ada9734bcc8b6baade41f372175c710dd5edc72cc08c7a9c183b4cbc558b4ede861d0e13c0540cced1a64ea06973fe4fc13a8e6
data/.gitignore CHANGED
@@ -16,3 +16,5 @@ tmp
16
16
  .yardoc
17
17
  _yardoc
18
18
  doc/
19
+
20
+ .ruby-version
data/CHANGELOG.md CHANGED
@@ -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-jruby
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: jdbc-mysql