hiera-mysql-json-backend-jruby 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: 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