ruby-puppetdb 2.3.0 → 3.0.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
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88be7794aca945016db299dffdd58a3bfbddcbc5
|
4
|
+
data.tar.gz: c90c01f08accf3a7ba7e66ac8b6360a63d77ed15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ffc5acdeb4cb4066c6aea9a567774cf91dc50cf3b4e313b382f949ba5301ed2de43daf7be04c177fb049d2f28e4de7b2466ba906c3c909359be06400e883b48b
|
7
|
+
data.tar.gz: a75d1b296d2207410e49b3fe3e4f151f4eca44b62d5a27043a980421cdde123604150ddfec5a1deff7c98a989c7974e00c087d8ef9955e221a07fd6b9dc96c8d
|
@@ -2,13 +2,13 @@ require 'puppet/application/query'
|
|
2
2
|
require 'puppet/face'
|
3
3
|
require 'puppet/util/colors'
|
4
4
|
|
5
|
-
Puppet::Face.define(:
|
5
|
+
Puppet::Face.define(:puppetdbquery, '1.0.0') do
|
6
6
|
require 'puppetdb/connection'
|
7
7
|
PuppetDB::Connection.check_version
|
8
8
|
|
9
9
|
extend Puppet::Util::Colors
|
10
10
|
|
11
|
-
copyright 'Erik Dalen
|
11
|
+
copyright 'Erik Dalen', 2012..2017
|
12
12
|
license 'Apache 2 license; see COPYING'
|
13
13
|
|
14
14
|
option '--host PUPPETDB' do
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# The `puppetdb_lookup_key` is a hiera 5 `lookup_key` data provider function.
|
2
|
+
# See (https://docs.puppet.com/puppet/latest/hiera_custom_lookup_key.html) for
|
3
|
+
# more info.
|
4
|
+
#
|
5
|
+
# See README.md#hiera-backend for usage.
|
6
|
+
#
|
7
|
+
Puppet::Functions.create_function(:puppetdb_lookup_key) do
|
8
|
+
|
9
|
+
dispatch :puppetdb_lookup_key do
|
10
|
+
param 'String[1]', :key
|
11
|
+
param 'Hash[String[1],Any]', :options
|
12
|
+
param 'Puppet::LookupContext', :context
|
13
|
+
end
|
14
|
+
|
15
|
+
def puppetdb_lookup_key(key, options, context)
|
16
|
+
return context.cached_value(key) if context.cache_has_key(key)
|
17
|
+
|
18
|
+
if !key.end_with?('::_nodequery') && nodequery = call_function('lookup', "#{key}::_nodequery", 'merge' => 'first', 'default_value' => nil)
|
19
|
+
# Support specifying the query in a few different ways
|
20
|
+
query, fact, sort = case nodequery
|
21
|
+
when Hash then [nodequery['query'], nodequery['fact'], nodequery['sort']]
|
22
|
+
when Array then nodequery
|
23
|
+
else [nodequery.to_s, nil, nil]
|
24
|
+
end
|
25
|
+
|
26
|
+
paramz = [query, fact].compact
|
27
|
+
result = call_function('query_nodes', *paramz)
|
28
|
+
result.sort! if sort
|
29
|
+
context.cache(key, result)
|
30
|
+
else
|
31
|
+
context.not_found
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/puppetdb.rb
CHANGED
@@ -46,7 +46,10 @@ module PuppetDB::ParserHelper
|
|
46
46
|
fact_hash.reduce({}) do |ret, fact|
|
47
47
|
# Array#include? only matches on values of the same type, so if we find
|
48
48
|
# a matching string, it's not a nested query.
|
49
|
-
name, value = if facts.include?(fact['name']) || facts == [:all]
|
49
|
+
name, value = if facts.include?(fact['name']) || facts == [:all] ||
|
50
|
+
# in case a regex pattern is used in the facts query
|
51
|
+
facts.index{ |factname| factname =~ /^\/(.+)\/$/ && Regexp.new(factname.match(/^\/(.+)\/$/)[1]).match(fact['name']) }
|
52
|
+
|
50
53
|
[fact['name'], fact['value']]
|
51
54
|
else
|
52
55
|
# Find the set of keys where the first value is the fact name
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-puppetdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Dalen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -183,8 +183,9 @@ files:
|
|
183
183
|
- examples/query_node_examples.pp
|
184
184
|
- examples/query_resource_examples.pp
|
185
185
|
- lib/hiera/backend/puppetdb_backend.rb
|
186
|
-
- lib/puppet/application/
|
187
|
-
- lib/puppet/face/
|
186
|
+
- lib/puppet/application/puppetdbquery.rb
|
187
|
+
- lib/puppet/face/puppetdbquery.rb
|
188
|
+
- lib/puppet/functions/puppetdb_lookup_key.rb
|
188
189
|
- lib/puppet/functions/query_facts.rb
|
189
190
|
- lib/puppet/functions/query_nodes.rb
|
190
191
|
- lib/puppet/parser/functions/query_facts.rb
|
@@ -224,17 +225,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
225
|
version: '0'
|
225
226
|
requirements: []
|
226
227
|
rubyforge_project:
|
227
|
-
rubygems_version: 2.
|
228
|
+
rubygems_version: 2.6.14
|
228
229
|
signing_key:
|
229
230
|
specification_version: 4
|
230
231
|
summary: Query functions for PuppetDB
|
231
232
|
test_files:
|
232
|
-
- spec/puppet/util/puppetdb.rb
|
233
|
-
- spec/spec_helper.rb
|
234
233
|
- spec/unit/puppetdb/parser_spec.rb
|
234
|
+
- spec/spec_helper.rb
|
235
|
+
- spec/puppet/util/puppetdb.rb
|
235
236
|
- spec/functions/query_facts_spec.rb
|
236
|
-
- spec/functions/query_nodes_spec.rb
|
237
237
|
- spec/functions/query_resources_spec.rb
|
238
|
+
- spec/functions/query_nodes_spec.rb
|
239
|
+
- examples/query_node_examples.pp
|
238
240
|
- examples/nova_functions.pp
|
239
241
|
- examples/query_resource_examples.pp
|
240
|
-
- examples/query_node_examples.pp
|