hiera-mysql-backend 0.0.6 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 67b238516159dbc557c0f028f1ed64309d58662a
4
- data.tar.gz: f434c79cde6fbf9687145894cace532a177dd17d
3
+ metadata.gz: 80b1ee50dbad3c03c12cb304258cddeeff5b43f4
4
+ data.tar.gz: 9b7eb5add117640cc6acf7cb5700f22708d007d3
5
5
  SHA512:
6
- metadata.gz: 34396bca064fdf98a4d8748e5a629742001342ad9c613a72e826c7936f938dcf96945e9dcb90604f09fc9d0bae83f2399d7b538e39bc7591b677fc8f2ff4273f
7
- data.tar.gz: 1e221ab27a654fbebc50b02088ed5a8b2fce1af2c81f7fdb98108cb784160c4be4cda5666e1e2288727dd88522638a75de5e2eb345c21c166e3c9d16c8e7f4fc
6
+ metadata.gz: f01c50cc82931af61aca1effff5073860653ea135450345d744b27aeffe0a90aa58c3ff3182c276871275097a48e02474f50adbbbe386194bcda5dea4a869c60
7
+ data.tar.gz: f41ab3d9f8410890192f18611ae91403bfbc08804cf45b5c065b86b62a3f39773e5102441a850d9fc1c0dd13b1ea7719575656ef3e733ad04f66647759fc2833
@@ -0,0 +1,17 @@
1
+ ### 0.0.1
2
+ - Initial Release
3
+
4
+ ### 0.0.2 - 0.0.3
5
+ - Minor Updates
6
+
7
+ ### 0.0.4
8
+ - Connection strings can now be defined per hierarchy file instead of being global
9
+
10
+ ### 0.0.5
11
+ - Added port as one of the settings that can be defined, thanks [Dave Seff](https://github.com/daveseff)
12
+
13
+ ### 0.0.6
14
+
15
+ - Made improvements to the connection Hash
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`
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.name = "hiera-mysql-backend"
5
+ gem.version = "0.0.8"
6
+ gem.authors = ["Telmo"]
7
+ gem.email = ["telmox@gmail.com"]
8
+ gem.description = %q{Alternative MySQL backend for hiera}
9
+ gem.summary = %q{Alternative MySQL backend for hiera}
10
+ gem.homepage = "https://github.com/Telmo/hiera-mysql-backend"
11
+ gem.license = "MIT"
12
+ gem.platform = "java"
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+ gem.require_paths = ["lib"]
18
+ gem.add_dependency('jdbc-mysql', '~> 0')
19
+ gem.add_dependency('hiera', '~> 0')
20
+ gem.add_development_dependency('rake', '~> 0')
21
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "hiera-mysql-backend"
5
- gem.version = "0.0.6"
5
+ gem.version = "0.0.8"
6
6
  gem.authors = ["Telmo"]
7
7
  gem.email = ["telmox@gmail.com"]
8
8
  gem.description = %q{Alternative MySQL backend for hiera}
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
15
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
16
  gem.require_paths = ["lib"]
17
- gem.add_dependency('mysql2')
18
- gem.add_dependency('hiera')
19
- gem.add_development_dependency('rake')
17
+ gem.requirements << 'mysql'
18
+ gem.requirements << 'jdbc-mysql'
19
+
20
20
  end
@@ -3,11 +3,16 @@ class Hiera
3
3
  class Mysql2_backend
4
4
 
5
5
  def initialize(cache=nil)
6
- begin
7
- require 'mysql2'
8
- rescue LoadError
9
- require 'rubygems'
10
- require 'mysql2'
6
+ if defined?(JRUBY_VERSION)
7
+ require 'jdbc/mysql'
8
+ require 'java'
9
+ else
10
+ begin
11
+ require 'mysql2'
12
+ rescue LoadError
13
+ require 'rubygems'
14
+ require 'mysql2'
15
+ end
11
16
  end
12
17
 
13
18
  @cache = cache || Filecache.new
@@ -50,14 +55,14 @@ class Hiera
50
55
  :reconnect => true}
51
56
 
52
57
 
53
- Hiera.debug("data #{data.inspect}")
54
- next if data.empty?
55
- next unless data.include?(key)
58
+ Hiera.debug("data #{data.inspect}")
59
+ next if data.empty?
60
+ next unless data.include?(key)
56
61
 
57
- Hiera.debug("Found #{key} in #{source}")
62
+ Hiera.debug("Found #{key} in #{source}")
58
63
 
59
- new_answer = Backend.parse_answer(data[key], scope)
60
- results = query(connection_hash, new_answer)
64
+ new_answer = Backend.parse_answer(data[key], scope)
65
+ results = query(connection_hash, new_answer)
61
66
 
62
67
  end
63
68
  return results
@@ -68,20 +73,52 @@ class Hiera
68
73
  Hiera.debug("Executing SQL Query: #{query}")
69
74
 
70
75
  data=nil
71
- client = Mysql2::Client.new(connection_hash)
72
- begin
73
- data = client.query(query).to_a
74
- Hiera.debug("Mysql Query returned #{data.size} rows")
75
- rescue => e
76
- Hiera.debug e.message
77
- data = nil
78
- ensure
79
- client.close
76
+ if defined?(JRUBY_VERSION)
77
+ Jdbc::MySQL.load_driver
78
+ url = "jdbc:mysql://#{mysql_host}:#{mysql_port}/#{mysql_database}"
79
+ props = java.util.Properties.new
80
+ props.set_property :user, mysql_user
81
+ props.set_property :password, mysql_pass
82
+
83
+ conn = com.mysql.jdbc.Driver.new.connect(url,props)
84
+ stmt = conn.create_statement
85
+
86
+ res = stmt.execute_query(sql)
87
+ md = res.getMetaData
88
+ numcols = md.getColumnCount
89
+
90
+ Hiera.debug("Mysql Query returned #{numcols} rows")
91
+
92
+ while ( res.next ) do
93
+ if numcols < 2
94
+ Hiera.debug("Mysql value : #{res.getString(1)}")
95
+ data << res.getString(1)
96
+ else
97
+ row = {}
98
+ (1..numcols).each do |c|
99
+ row[md.getColumnName(c)] = res.getString(c)
100
+ end
101
+ data << row
102
+ end
103
+ end
104
+
105
+ else
106
+ client = Mysql2::Client.new(connection_hash)
107
+ begin
108
+ data = client.query(query).to_a
109
+ Hiera.debug("Mysql Query returned #{data.size} rows")
110
+ rescue => e
111
+ Hiera.debug e.message
112
+ data = nil
113
+ ensure
114
+ client.close
115
+ end
80
116
  end
81
117
 
82
118
  return data
83
119
 
84
120
  end
121
+
85
122
  end
86
123
  end
87
124
  end
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiera-mysql-backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Telmo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-28 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: mysql2
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: hiera
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
+ dependencies: []
55
13
  description: Alternative MySQL backend for hiera
56
14
  email:
57
15
  - telmox@gmail.com
@@ -60,11 +18,13 @@ extensions: []
60
18
  extra_rdoc_files: []
61
19
  files:
62
20
  - ".gitignore"
21
+ - CHANGELOG.md
63
22
  - Gemfile
64
23
  - Gemfile.lock
65
24
  - LICENSE
66
25
  - README.md
67
26
  - Rakefile
27
+ - hiera-mysql-backend-java.gemspec
68
28
  - hiera-mysql-backend.gemspec
69
29
  - lib/hiera/backend/mysql2_backend.rb
70
30
  homepage: https://github.com/Telmo/hiera-mysql-backend
@@ -85,9 +45,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
45
  - - ">="
86
46
  - !ruby/object:Gem::Version
87
47
  version: '0'
88
- requirements: []
48
+ requirements:
49
+ - mysql
50
+ - jdbc-mysql
89
51
  rubyforge_project:
90
- rubygems_version: 2.2.0.rc.1
52
+ rubygems_version: 2.5.1
91
53
  signing_key:
92
54
  specification_version: 4
93
55
  summary: Alternative MySQL backend for hiera