hiera-redis 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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