hiera-classifier 0.0.1
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.
- data/lib/hiera/backend/classifier_backend.rb +58 -0
- metadata +78 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'sequel'
|
2
|
+
|
3
|
+
class Hiera
|
4
|
+
module Backend
|
5
|
+
class Classifier_backend
|
6
|
+
def initialize
|
7
|
+
Hiera.debug("Hiera Classifier backend starting")
|
8
|
+
@conf = Config[:classifier]
|
9
|
+
end
|
10
|
+
|
11
|
+
def lookup(key, scope, order_override, resolution_type)
|
12
|
+
answer = Backend.empty_answer(resolution_type)
|
13
|
+
|
14
|
+
Hiera.debug("Looking up #{key} in Classifier backend")
|
15
|
+
|
16
|
+
Backend.datasources(scope, order_override) do |source|
|
17
|
+
Hiera.debug("Looking up #{key} in Classifier backend source: #{source}")
|
18
|
+
|
19
|
+
if key == 'classes'
|
20
|
+
connect
|
21
|
+
data = @db[:sources_classes].filter(:source_name => source).map(:class_name)
|
22
|
+
else
|
23
|
+
next
|
24
|
+
end
|
25
|
+
|
26
|
+
next if ! data
|
27
|
+
next if data.nil?
|
28
|
+
new_answer = Backend.parse_answer(data, scope)
|
29
|
+
|
30
|
+
case resolution_type
|
31
|
+
when :array
|
32
|
+
unless new_answer.kind_of? Array or new_answer.kind_of? String
|
33
|
+
raise Exception, "Hiera type mismatch: expected Array and got #{new_answer.class}"
|
34
|
+
end
|
35
|
+
answer << new_answer
|
36
|
+
else
|
37
|
+
answer = new_answer
|
38
|
+
break
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
return answer
|
43
|
+
end
|
44
|
+
|
45
|
+
def connect
|
46
|
+
unless connected?
|
47
|
+
@db = Sequel.connect(@conf[:database])
|
48
|
+
@connected = true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def connected?
|
53
|
+
@connected || false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hiera-classifier
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kelsey Hightower
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: hiera
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :runtime
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: sequel
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
none: false
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
type: :runtime
|
46
|
+
description: Query Hiera data from Puppet Classifier
|
47
|
+
email: kelsey@puppetlabs.com
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- lib/hiera/backend/classifier_backend.rb
|
53
|
+
homepage: https://github.com/kelseyhightower/hiera-classifier
|
54
|
+
licenses: []
|
55
|
+
post_install_message:
|
56
|
+
rdoc_options: []
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
none: false
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
none: false
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 1.8.24
|
74
|
+
signing_key:
|
75
|
+
specification_version: 3
|
76
|
+
summary: Puppet Classifier backend for Hiera
|
77
|
+
test_files: []
|
78
|
+
...
|