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 +4 -4
- data/CHANGELOG.md +17 -0
- data/hiera-mysql-backend-java.gemspec +21 -0
- data/hiera-mysql-backend.gemspec +4 -4
- data/lib/hiera/backend/mysql2_backend.rb +57 -20
- metadata +9 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80b1ee50dbad3c03c12cb304258cddeeff5b43f4
|
4
|
+
data.tar.gz: 9b7eb5add117640cc6acf7cb5700f22708d007d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f01c50cc82931af61aca1effff5073860653ea135450345d744b27aeffe0a90aa58c3ff3182c276871275097a48e02474f50adbbbe386194bcda5dea4a869c60
|
7
|
+
data.tar.gz: f41ab3d9f8410890192f18611ae91403bfbc08804cf45b5c065b86b62a3f39773e5102441a850d9fc1c0dd13b1ea7719575656ef3e733ad04f66647759fc2833
|
data/CHANGELOG.md
ADDED
@@ -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
|
data/hiera-mysql-backend.gemspec
CHANGED
@@ -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.
|
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.
|
18
|
-
gem.
|
19
|
-
|
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
|
-
|
7
|
-
require '
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
54
|
-
|
55
|
-
|
58
|
+
Hiera.debug("data #{data.inspect}")
|
59
|
+
next if data.empty?
|
60
|
+
next unless data.include?(key)
|
56
61
|
|
57
|
-
|
62
|
+
Hiera.debug("Found #{key} in #{source}")
|
58
63
|
|
59
|
-
|
60
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
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.
|
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:
|
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.
|
52
|
+
rubygems_version: 2.5.1
|
91
53
|
signing_key:
|
92
54
|
specification_version: 4
|
93
55
|
summary: Alternative MySQL backend for hiera
|