puppetdb_query 0.0.24 → 0.0.25
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 +4 -4
- data/lib/puppetdb_query/mongodb.rb +44 -26
- data/lib/puppetdb_query/puppetdb.rb +1 -3
- data/lib/puppetdb_query/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8472f7c93ea4f65a4ee87ace1642691819290c3
|
4
|
+
data.tar.gz: e1106d8da873423d09d5b1b38a3def9e94d7d2e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51ab68da432386ea4e02fed4df626c56fe0a9b3ea942ca5b0dfff7944b48a2039a33b2f26236155868f193ae137a68866abea71445f39d319b4d2329fcd3e386
|
7
|
+
data.tar.gz: 63f8fb7e455e04b1767ba51462ad21b23175ea2cf5ae48d7063f96fb2b547b921de6cb291abf8fdeb87a695db6276930eab49fb8a29e840f4609839e87fd37f4
|
@@ -29,14 +29,36 @@ module PuppetDBQuery
|
|
29
29
|
@meta_collection = meta
|
30
30
|
end
|
31
31
|
|
32
|
+
# get all nodes and their update dates
|
33
|
+
def node_properties
|
34
|
+
collection = connection[node_properties_collection]
|
35
|
+
result = {}
|
36
|
+
collection.find.batch_size(999).each do |values|
|
37
|
+
id = values.delete('_id')
|
38
|
+
result[id] = values
|
39
|
+
end
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
# get all node names
|
44
|
+
def all_nodes
|
45
|
+
collection = connection[nodes_collection]
|
46
|
+
collection.find.batch_size(999).projection(_id: 1).map { |k| k[:_id] }
|
47
|
+
end
|
48
|
+
|
32
49
|
# get node names that fulfill given mongodb query
|
50
|
+
#
|
51
|
+
# @param query mongodb query
|
33
52
|
def query_nodes(query)
|
34
53
|
collection = connection[nodes_collection]
|
35
54
|
collection.find(query).batch_size(999).projection(_id: 1).map { |k| k[:_id] }
|
36
55
|
end
|
37
56
|
|
38
57
|
# get nodes and their facts that fulfill given mongodb query
|
39
|
-
|
58
|
+
#
|
59
|
+
# @param query mongodb query
|
60
|
+
# @param facts [Array<String>] get these facts in the result, eg ['fqdn'], empty for all
|
61
|
+
def query_facts(query, facts = [])
|
40
62
|
fields = Hash[facts.collect { |fact| [fact.to_sym, 1] }]
|
41
63
|
collection = connection[nodes_collection]
|
42
64
|
result = {}
|
@@ -48,11 +70,12 @@ module PuppetDBQuery
|
|
48
70
|
end
|
49
71
|
|
50
72
|
# get nodes and their facts for a pattern
|
73
|
+
#
|
51
74
|
# @param query mongodb query
|
52
|
-
# @param pattern RegExp
|
53
|
-
# @param facts Array get these
|
54
|
-
# @param facts_found Array fact names are added to this array
|
55
|
-
# @param check_names Boolean also search fact names
|
75
|
+
# @param pattern [RegExp] search for
|
76
|
+
# @param facts [Array<String>] get these facts in the result, eg ['fqdn'], empty for all
|
77
|
+
# @param facts_found [Array<String>] fact names are added to this array
|
78
|
+
# @param check_names [Boolean] also search fact names
|
56
79
|
def search_facts(query, pattern, facts = [], facts_found = [], check_names = false)
|
57
80
|
collection = connection[nodes_collection]
|
58
81
|
result = {}
|
@@ -76,36 +99,26 @@ module PuppetDBQuery
|
|
76
99
|
result
|
77
100
|
end
|
78
101
|
|
79
|
-
# get all node names
|
80
|
-
def nodes
|
81
|
-
collection = connection[nodes_collection]
|
82
|
-
collection.find.batch_size(999).projection(_id: 1).map { |k| k[:_id] }
|
83
|
-
end
|
84
|
-
|
85
|
-
# get all nodes and their update dates
|
86
|
-
def node_properties
|
87
|
-
collection = connection[node_properties_collection]
|
88
|
-
result = {}
|
89
|
-
collection.find.batch_size(999).each do |values|
|
90
|
-
id = values.delete('_id')
|
91
|
-
result[id] = values
|
92
|
-
end
|
93
|
-
result
|
94
|
-
end
|
95
|
-
|
96
102
|
# get facts for given node name
|
97
|
-
|
103
|
+
#
|
104
|
+
# @param node [String] node name
|
105
|
+
# @param facts [Array<String>] get these facts in the result, eg ['fqdn'], empty for all
|
106
|
+
def single_node_facts(node, facts)
|
107
|
+
fields = Hash[facts.collect { |fact| [fact.to_sym, 1] }]
|
98
108
|
collection = connection[nodes_collection]
|
99
|
-
result = collection.find(_id: node).limit(1).batch_size(1).to_a.first
|
109
|
+
result = collection.find(_id: node).limit(1).batch_size(1).projection(fields).to_a.first
|
100
110
|
result.delete("_id") if result
|
101
111
|
result
|
102
112
|
end
|
103
113
|
|
104
114
|
# get all nodes and their facts
|
105
|
-
|
115
|
+
#
|
116
|
+
# @param facts [Array<String>] get these facts in the result, eg ['fqdn'], empty for all
|
117
|
+
def facts(facts = [])
|
118
|
+
fields = Hash[facts.collect { |fact| [fact.to_sym, 1] }]
|
106
119
|
collection = connection[nodes_collection]
|
107
120
|
result = {}
|
108
|
-
collection.find.batch_size(999).each do |values|
|
121
|
+
collection.find.batch_size(999).projection(fields).each do |values|
|
109
122
|
id = values.delete('_id')
|
110
123
|
result[id] = values
|
111
124
|
end
|
@@ -121,6 +134,9 @@ module PuppetDBQuery
|
|
121
134
|
end
|
122
135
|
|
123
136
|
# update or insert facts for given node name
|
137
|
+
#
|
138
|
+
# @param node [String] node name
|
139
|
+
# @param facts [Array<String>] get these facts in the result, eg ['fqdn'], empty for all
|
124
140
|
def node_update(node, facts)
|
125
141
|
connection[nodes_collection].find(_id: node).replace_one(facts, upsert: true)
|
126
142
|
rescue ::Mongo::Error::OperationFailure => e
|
@@ -134,6 +150,8 @@ module PuppetDBQuery
|
|
134
150
|
end
|
135
151
|
|
136
152
|
# delete node data for given node name
|
153
|
+
#
|
154
|
+
# @param node [String] node name
|
137
155
|
def node_delete(node)
|
138
156
|
connection[nodes_collection].find(_id: node).delete_one
|
139
157
|
end
|
@@ -19,9 +19,7 @@ module PuppetDBQuery
|
|
19
19
|
|
20
20
|
# get array of node names
|
21
21
|
def nodes
|
22
|
-
|
23
|
-
# in '/v3/nodes' we must take 'name'
|
24
|
-
api_nodes.map { |data| data['certname'] }
|
22
|
+
api_nodes.reject { |data| data['deactivated'] }.map { |data| data['certname'] }
|
25
23
|
end
|
26
24
|
|
27
25
|
# get hash of node update properties
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppetdb_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Meyling
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: easy_diff
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: Allow puppetdb access from resources like mongodb.
|
@@ -45,9 +45,9 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
49
|
-
- .rubocop.yml
|
50
|
-
- .travis.yml
|
48
|
+
- ".gitignore"
|
49
|
+
- ".rubocop.yml"
|
50
|
+
- ".travis.yml"
|
51
51
|
- Gemfile
|
52
52
|
- LICENSE.txt
|
53
53
|
- README.md
|
@@ -75,19 +75,19 @@ homepage: https://github.com/m-31/puppetdb_query
|
|
75
75
|
licenses:
|
76
76
|
- MIT
|
77
77
|
metadata: {}
|
78
|
-
post_install_message:
|
79
|
-
by itself.
|
78
|
+
post_install_message: " Sitting quietly, doing nothing, spring comes, and grass grows
|
79
|
+
by itself."
|
80
80
|
rdoc_options: []
|
81
81
|
require_paths:
|
82
82
|
- lib
|
83
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: 1.9.3
|
88
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|