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.
Files changed (2) hide show
  1. data/lib/hiera/backend/redis_backend.rb +27 -31
  2. metadata +32 -50
@@ -2,7 +2,7 @@ class Hiera
2
2
  module Backend
3
3
  class Redis_backend
4
4
 
5
- VERSION="1.0.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[:string].nil?
15
+ return nil if args[:data].nil?
16
+ return args[:data] unless args[:data].is_a? String
16
17
 
17
- Hiera.debug("Found %s key in %s source" % [args[:key], args[:source]])
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(args[:string])
24
+ YAML::load args[:data]
30
25
  else
31
- Hiera.warn("Invalid configuration for :deserialize; found %s" % options[:deserialize])
32
- args[:string]
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[:string]
35
+ args[:data]
37
36
  rescue => e
38
- Hiera.warn("Exception raised: %s: %s" % [e.class, e.message])
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
- Hiera.debug("Looking for data source %s" % source)
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(:string => redis_query(:source => source, :key => key),
50
- :source => source,
51
- :key => key)
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(args = {})
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(redis_key)
100
+ case redis.type redis_key
105
101
  when 'set'
106
- redis.smembers(redis_key)
102
+ redis.smembers redis_key
107
103
  when 'hash'
108
- redis.hgetall(redis_key)
104
+ redis.hgetall redis_key
109
105
  when 'list'
110
106
  redis.lrange(redis_key, 0, -1)
111
107
  when 'string'
112
- redis.get(redis_key)
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
- hash: 23
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
- date: 2012-09-14 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- hash: 15
29
- segments:
30
- - 1
31
- - 0
32
- version: "1.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
33
22
  type: :runtime
34
- version_requirements: *id001
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
- hash: 3
60
- segments:
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
- hash: 3
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.15
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