hiera-mysql-backend 0.0.6 → 0.0.8

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: 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