hiera-http 1.3.1 → 1.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA1:
3
- data.tar.gz: 620ef8615d2e8ace93c078b216dae1b4cedd37e0
4
- metadata.gz: 99c301ebac50f12262c7e480816ee2402ad3fea2
5
- SHA512:
6
- data.tar.gz: 414d0646b8aa2b45d04cf0614099615c281b6ffb8d947444a782a85eb5a8222733af46eed7f875f84220dec6ff7bfb63ec327ee742964859343a8eb85c62349b
7
- metadata.gz: 4be252eab56b83a9f9bb530fa749db584af51e9febd1f8bfad28d262b7c80d98cdd2a841b4a5d86835ca2d9797941fd2a19df2a447cb8624751e6aa6b0ac2c66
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 63ab1df0ab23f968b79343ec215cffc367e0769d
4
+ data.tar.gz: 7da4074c7417b661010bb7986b9788dbf7b3fd3a
5
+ SHA512:
6
+ metadata.gz: 2a87f6180b5712df95d7d54a91c11ee50b90a5df488fc0840decd6a59de30d5886afb0ea2182335d6be53bbde17677c369eccdc13abb92ebae4f2d3d286f8081
7
+ data.tar.gz: ef924a36d8c2b836b656b1be962ff5ec360b2c1543609f08f9560da090776ad3f8a4f7cd72fac1305a1d9da712e5112687e4b482450c003eb47e49f1e3608eb1
@@ -15,6 +15,14 @@ class Hiera
15
15
  @cache_timeout = @config[:cache_timeout] || 10
16
16
  @cache_clean_interval = @config[:cache_clean_interval] || 3600
17
17
 
18
+ @regex_key_match = nil
19
+
20
+ if confine_keys = @config[:confine_to_keys]
21
+ confine_keys.map! { |r| Regexp.new(r) }
22
+ @regex_key_match = Regexp.union(confine_keys)
23
+ end
24
+
25
+
18
26
  if @config[:use_ssl]
19
27
  @http.use_ssl = true
20
28
 
@@ -38,6 +46,15 @@ class Hiera
38
46
  end
39
47
 
40
48
  def lookup(key, scope, order_override, resolution_type)
49
+
50
+ # if confine_to_keys is configured, then only proceed if one of the
51
+ # regexes matches the lookup key
52
+ #
53
+ if @regex_key_match
54
+ return nil unless key[@regex_key_match] == key
55
+ end
56
+
57
+
41
58
  answer = nil
42
59
 
43
60
  paths = @config[:paths].map { |p| Backend.parse_string(p, scope, { 'key' => key }) }
@@ -100,22 +117,22 @@ class Hiera
100
117
 
101
118
  def parse_yaml(answer)
102
119
  require 'yaml'
103
- YAML.parse(answer)
120
+ YAML.load(answer)
104
121
  end
105
122
 
106
123
  def http_get_and_parse_with_cache(path)
107
- return http_get(path) if @cache_timeout <= 0
124
+ return http_get_and_parse(path) if @cache_timeout <= 0
108
125
 
109
126
  now = Time.now.to_i
110
127
  expired_at = now + @cache_timeout
111
128
 
112
129
  # Deleting all stale cache entries can be expensive. Do not do it every time
113
- periodically_clean_cache(now, expired_at) unless @cache_clean_interval == 0
130
+ periodically_clean_cache(now) unless @cache_clean_interval == 0
114
131
 
115
132
  # Just refresh the entry being requested for performance
116
- unless @cache[path] && @cache[path][:created_at] < expired_at
133
+ if !@cache[path] || @cache[path][:expired_at] < now
117
134
  @cache[path] = {
118
- :created_at => now,
135
+ :expired_at => expired_at,
119
136
  :result => http_get_and_parse(path)
120
137
  }
121
138
  end
@@ -150,12 +167,12 @@ class Hiera
150
167
  end
151
168
 
152
169
 
153
- def periodically_clean_cache(now, expired_at)
170
+ def periodically_clean_cache(now)
154
171
  return if now < @clean_cache_at.to_i
155
172
 
156
173
  @clean_cache_at = now + @cache_clean_interval
157
174
  @cache.delete_if do |_, entry|
158
- entry[:created_at] > expired_at
175
+ entry[:expired_at] < now
159
176
  end
160
177
  end
161
178
  end
metadata CHANGED
@@ -1,61 +1,57 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hiera-http
3
- version: !ruby/object:Gem::Version
4
- version: 1.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Craig Dunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2015-03-26 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- requirement: &id001 !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
19
  version: 1.1.1
20
- version_requirements: *id001
21
- prerelease: false
22
20
  type: :runtime
23
- name: json
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.1
24
27
  description: Hiera backend for looking up data over HTTP APIs
25
28
  email: craig@craigdunn.org
26
29
  executables: []
27
-
28
30
  extensions: []
29
-
30
31
  extra_rdoc_files: []
31
-
32
- files:
32
+ files:
33
33
  - lib/hiera/backend/http_backend.rb
34
34
  homepage: http://github.com/crayfishx/hiera-http
35
35
  licenses: []
36
-
37
36
  metadata: {}
38
-
39
37
  post_install_message:
40
38
  rdoc_options: []
41
-
42
- require_paths:
39
+ require_paths:
43
40
  - lib
44
- required_ruby_version: !ruby/object:Gem::Requirement
45
- requirements:
46
- - &id002
47
- - ">="
48
- - !ruby/object:Gem::Version
49
- version: "0"
50
- required_rubygems_version: !ruby/object:Gem::Requirement
51
- requirements:
52
- - *id002
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
53
51
  requirements: []
54
-
55
52
  rubyforge_project:
56
53
  rubygems_version: 2.0.14
57
54
  signing_key:
58
55
  specification_version: 4
59
56
  summary: HTTP backend for Hiera
60
57
  test_files: []
61
-