hiera-redis 1.0.0 → 1.0.2
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/redis_backend.rb +27 -31
- metadata +32 -50
@@ -2,7 +2,7 @@ class Hiera
|
|
2
2
|
module Backend
|
3
3
|
class Redis_backend
|
4
4
|
|
5
|
-
VERSION="1.0.
|
5
|
+
VERSION="1.0.2"
|
6
6
|
|
7
7
|
attr_reader :redis, :options
|
8
8
|
|
@@ -12,43 +12,43 @@ class Hiera
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def deserialize(args = {})
|
15
|
-
return nil if args[:
|
15
|
+
return nil if args[:data].nil?
|
16
|
+
return args[:data] unless args[:data].is_a? String
|
16
17
|
|
17
|
-
|
18
|
-
return args[:string] unless options.include? :deserialize
|
19
|
-
|
20
|
-
case options[:deserialize]
|
18
|
+
result = case options[:deserialize]
|
21
19
|
when :json
|
22
|
-
Hiera.debug("Deserializing JSON")
|
23
20
|
require 'json'
|
24
|
-
|
25
|
-
JSON.parse(args[:string])
|
21
|
+
JSON.parse args[:data]
|
26
22
|
when :yaml
|
27
|
-
Hiera.debug("Deserializing YAML")
|
28
23
|
require 'yaml'
|
29
|
-
YAML::load
|
24
|
+
YAML::load args[:data]
|
30
25
|
else
|
31
|
-
Hiera.warn
|
32
|
-
args[:
|
26
|
+
Hiera.warn "Invalid configuration for :deserialize; found %s" % options[:deserialize]
|
27
|
+
args[:data]
|
33
28
|
end
|
29
|
+
|
30
|
+
Hiera.debug "Deserialized %s" % options[:deserialize].to_s.upcase
|
31
|
+
result
|
32
|
+
|
34
33
|
# when we try to deserialize a string
|
35
34
|
rescue JSON::ParserError
|
36
|
-
args[:
|
35
|
+
args[:data]
|
37
36
|
rescue => e
|
38
|
-
Hiera.warn
|
37
|
+
Hiera.warn "Exception raised: %s: %s" % [e.class, e.message]
|
39
38
|
end
|
40
39
|
|
41
40
|
def lookup(key, scope, order_override, resolution_type)
|
42
41
|
answer = nil
|
43
42
|
|
44
|
-
Hiera.debug("Looking up %s in Redis backend" % key)
|
45
|
-
|
46
43
|
Backend.datasources(scope, order_override) do |source|
|
47
|
-
|
44
|
+
redis_key = "%s" % [source.split('/'), key].join(options[:separator])
|
45
|
+
Hiera.debug "Looking for %s%s%s" % [source, options[:separator], key]
|
46
|
+
|
47
|
+
data = redis_query redis_key
|
48
48
|
|
49
|
-
data = deserialize(:
|
50
|
-
|
51
|
-
|
49
|
+
data = deserialize(:data => data,
|
50
|
+
:redis_key => redis_key,
|
51
|
+
:key => key) if options.include? :deserialize
|
52
52
|
|
53
53
|
next unless data
|
54
54
|
|
@@ -85,8 +85,7 @@ class Hiera
|
|
85
85
|
:timeout => 3,
|
86
86
|
:path => nil,
|
87
87
|
:soft_connection_failure => false,
|
88
|
-
:separator => ':'
|
89
|
-
:json => false
|
88
|
+
:separator => ':'
|
90
89
|
}.merge Config[:redis] || {}
|
91
90
|
|
92
91
|
require 'redis'
|
@@ -96,20 +95,17 @@ class Hiera
|
|
96
95
|
retry if require 'rubygems'
|
97
96
|
end
|
98
97
|
|
99
|
-
def redis_query(
|
100
|
-
|
101
|
-
# convert our seperator in order to maintain yaml compatibility
|
102
|
-
redis_key = "%s" % [args[:source].split('/'), args[:key]].join(options[:separator])
|
98
|
+
def redis_query(redis_key)
|
103
99
|
|
104
|
-
case redis.type
|
100
|
+
case redis.type redis_key
|
105
101
|
when 'set'
|
106
|
-
redis.smembers
|
102
|
+
redis.smembers redis_key
|
107
103
|
when 'hash'
|
108
|
-
redis.hgetall
|
104
|
+
redis.hgetall redis_key
|
109
105
|
when 'list'
|
110
106
|
redis.lrange(redis_key, 0, -1)
|
111
107
|
when 'string'
|
112
|
-
redis.get
|
108
|
+
redis.get redis_key
|
113
109
|
when 'zset'
|
114
110
|
redis.zrange(redis_key, 0, -1)
|
115
111
|
else
|
metadata
CHANGED
@@ -1,81 +1,63 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiera-redis
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 1.0.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Adam Kosmin c/o Reliant Security, Inc.
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-02-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: hiera
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
version: "1.0"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
33
22
|
type: :runtime
|
34
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
35
30
|
description: Allows hiera functions to pull data from a Redis database.
|
36
31
|
email: heira-redis@reliantsecurity.com
|
37
32
|
executables: []
|
38
|
-
|
39
33
|
extensions: []
|
40
|
-
|
41
34
|
extra_rdoc_files: []
|
42
|
-
|
43
|
-
files:
|
35
|
+
files:
|
44
36
|
- lib/hiera/backend/redis_backend.rb
|
45
37
|
- COPYING
|
46
38
|
homepage: http://github.com/reliantsecurity/hiera-redis
|
47
|
-
licenses:
|
39
|
+
licenses:
|
48
40
|
- GPL-3
|
49
41
|
post_install_message:
|
50
42
|
rdoc_options: []
|
51
|
-
|
52
|
-
require_paths:
|
43
|
+
require_paths:
|
53
44
|
- lib
|
54
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
46
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
- 0
|
62
|
-
version: "0"
|
63
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ! '>='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
52
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
version: "0"
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
72
57
|
requirements: []
|
73
|
-
|
74
58
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.8.
|
59
|
+
rubygems_version: 1.8.24
|
76
60
|
signing_key:
|
77
61
|
specification_version: 3
|
78
62
|
summary: A Redis backend for Hiera.
|
79
63
|
test_files: []
|
80
|
-
|
81
|
-
has_rdoc: false
|