facterdb 1.4.0 → 1.5.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 +4 -4
- data/.travis.yml +19 -11
- data/CHANGELOG.md +16 -0
- data/README.md +0 -1
- data/facterdb.gemspec +1 -1
- data/lib/facterdb.rb +31 -10
- data/lib/facterdb/version.rb +1 -1
- data/spec/facterdb_spec.rb +36 -0
- metadata +5 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d3c5507c6727a268578ec7d76730523df6fea54b3eb52c0bb5d3d4fd5dfd5eee
|
|
4
|
+
data.tar.gz: 99ee4c368b24f08a646a9d936507b07fcd1c71c38c202b704676055b4018b6d1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b13f056772f354c139d0674121b3e7d249931b24ee67f7c71336e988276aa537a0e2e09859fecee7ccfe4d5a47c0b6ac7914cef20635a6afbbf4f53b4af8979f
|
|
7
|
+
data.tar.gz: 6c9b28b139fef0ecdc7e5003994882fb1996a32cfd641249960c60c4c65b909ee03e9e5083ed1286f1fb96b3666a96c7e773c18767bc70954a36df7efa748caa
|
data/.travis.yml
CHANGED
|
@@ -3,19 +3,27 @@ sudo: false
|
|
|
3
3
|
cache: bundler
|
|
4
4
|
script:
|
|
5
5
|
- bundle exec rake spec
|
|
6
|
-
rvm:
|
|
7
|
-
- 2.3
|
|
8
|
-
env:
|
|
9
|
-
- FACTER_GEM_VERSION="~> 1.6.0"
|
|
10
|
-
- FACTER_GEM_VERSION="~> 1.7.0"
|
|
11
|
-
- FACTER_GEM_VERSION="~> 2.0.0"
|
|
12
|
-
- FACTER_GEM_VERSION="~> 2.1.0"
|
|
13
|
-
- FACTER_GEM_VERSION="~> 2.2.0"
|
|
14
|
-
- FACTER_GEM_VERSION="~> 2.3.0"
|
|
15
|
-
- FACTER_GEM_VERSION="~> 2.4.0"
|
|
16
|
-
- FACTER_GEM_VERSION="~> 2.0" COVERAGE=yes
|
|
17
6
|
matrix:
|
|
18
7
|
fast_finish: true
|
|
8
|
+
include:
|
|
9
|
+
- rvm: 2.3
|
|
10
|
+
env: FACTER_GEM_VERSION="~> 1.6.0"
|
|
11
|
+
- rvm: 2.3
|
|
12
|
+
env: FACTER_GEM_VERSION="~> 1.7.0"
|
|
13
|
+
- rvm: 2.3
|
|
14
|
+
env: FACTER_GEM_VERSION="~> 2.0.0"
|
|
15
|
+
- rvm: 2.3
|
|
16
|
+
env: FACTER_GEM_VERSION="~> 2.1.0"
|
|
17
|
+
- rvm: 2.3
|
|
18
|
+
env: FACTER_GEM_VERSION="~> 2.2.0"
|
|
19
|
+
- rvm: 2.3
|
|
20
|
+
env: FACTER_GEM_VERSION="~> 2.3.0"
|
|
21
|
+
- rvm: 2.3
|
|
22
|
+
env: FACTER_GEM_VERSION="~> 2.4.0"
|
|
23
|
+
- rvm: 2.5
|
|
24
|
+
env: FACTER_GEM_VERSION="~> 2.0" COVERAGE=yes
|
|
25
|
+
- rvm: 2.7
|
|
26
|
+
env: FACTER_GEM_VERSION="~> 2.0"
|
|
19
27
|
notifications:
|
|
20
28
|
email: false
|
|
21
29
|
deploy:
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.5.0](https://rubygems.org/gems/facterdb/versions/1.5.0) (2020-11-19)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/camptocamp/facterdb/compare/1.4.0...1.5.0)
|
|
6
|
+
|
|
7
|
+
**Implemented enhancements:**
|
|
8
|
+
|
|
9
|
+
- add filter validation [\#19](https://github.com/camptocamp/facterdb/issues/19)
|
|
10
|
+
|
|
11
|
+
**Merged pull requests:**
|
|
12
|
+
|
|
13
|
+
- Fixes a bug with generate\_filter\_str [\#160](https://github.com/camptocamp/facterdb/pull/160) ([logicminds](https://github.com/logicminds))
|
|
14
|
+
- Fixes \#19 - add filter validation [\#159](https://github.com/camptocamp/facterdb/pull/159) ([logicminds](https://github.com/logicminds))
|
|
15
|
+
- Remove pin on facter \< 4 [\#156](https://github.com/camptocamp/facterdb/pull/156) ([sanfrancrisko](https://github.com/sanfrancrisko))
|
|
16
|
+
- Add ruby 2.5 and 2.7 testing [\#155](https://github.com/camptocamp/facterdb/pull/155) ([DavidS](https://github.com/DavidS))
|
|
17
|
+
|
|
3
18
|
## [1.4.0](https://rubygems.org/gems/facterdb/versions/1.4.0) (2020-05-09)
|
|
4
19
|
|
|
5
20
|
[Full Changelog](https://github.com/camptocamp/facterdb/compare/1.3.0...1.4.0)
|
|
@@ -20,6 +35,7 @@
|
|
|
20
35
|
|
|
21
36
|
- Add Debian 10 facter 3.13/3.14 sets [\#152](https://github.com/camptocamp/facterdb/pull/152) ([bastelfreak](https://github.com/bastelfreak))
|
|
22
37
|
- Pin to facter \< 4 to avoid automatic upgrade [\#151](https://github.com/camptocamp/facterdb/pull/151) ([raphink](https://github.com/raphink))
|
|
38
|
+
- Adding facts from Solaris 11 x86 & SPARC [\#149](https://github.com/camptocamp/facterdb/pull/149) ([genebean](https://github.com/genebean))
|
|
23
39
|
- AmazonLinux facts added [\#147](https://github.com/camptocamp/facterdb/pull/147) ([bFekete](https://github.com/bFekete))
|
|
24
40
|
- Add facts for Raspbian 9 and 10; alter Rakefile to support Raspbian [\#136](https://github.com/camptocamp/facterdb/pull/136) ([threepistons](https://github.com/threepistons))
|
|
25
41
|
|
data/README.md
CHANGED
|
@@ -2,7 +2,6 @@ facterdb
|
|
|
2
2
|
========
|
|
3
3
|
|
|
4
4
|
[](https://travis-ci.org/camptocamp/facterdb)
|
|
5
|
-
[](https://codeclimate.com/github/camptocamp/facterdb)
|
|
6
5
|
[](https://rubygems.org/gems/facterdb)
|
|
7
6
|
[](https://rubygems.org/gems/facterdb)
|
|
8
7
|
[](https://coveralls.io/r/camptocamp/facterdb?branch=master)
|
data/facterdb.gemspec
CHANGED
|
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
s.add_development_dependency 'pry'
|
|
22
22
|
s.add_development_dependency 'rspec'
|
|
23
23
|
s.add_development_dependency 'github_changelog_generator', '~> 1.10', '< 1.10.4'
|
|
24
|
-
s.add_runtime_dependency 'facter', '<
|
|
24
|
+
s.add_runtime_dependency 'facter', '< 5.0.0'
|
|
25
25
|
s.add_runtime_dependency 'jgrep'
|
|
26
26
|
end
|
data/lib/facterdb.rb
CHANGED
|
@@ -2,6 +2,9 @@ require 'facter'
|
|
|
2
2
|
require 'jgrep'
|
|
3
3
|
|
|
4
4
|
module FacterDB
|
|
5
|
+
module Errors
|
|
6
|
+
class InvalidFilter < RuntimeError; end
|
|
7
|
+
end
|
|
5
8
|
|
|
6
9
|
# @return [String] - returns a giant incomprehensible string of concatenated json data
|
|
7
10
|
def self.database
|
|
@@ -92,18 +95,36 @@ module FacterDB
|
|
|
92
95
|
get_facts(filter_str)
|
|
93
96
|
end
|
|
94
97
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
# @return [String] - the string filter
|
|
99
|
+
# @param filter [Object] - The filter to convert to jgrep string
|
|
100
|
+
def self.generate_filter_str(filter=nil)
|
|
101
|
+
case filter
|
|
102
|
+
when ::Array
|
|
103
|
+
'(' + filter.map { |f| f.map { |k,v | "#{k}=#{v}" }.join(' and ') }.join(') or (') + ')'
|
|
104
|
+
when ::Hash
|
|
105
|
+
filter.map { |k,v | "#{k}=#{v}" }.join(' and ')
|
|
106
|
+
when ::String
|
|
107
|
+
filter
|
|
108
|
+
when ::NilClass
|
|
109
|
+
''
|
|
104
110
|
else
|
|
105
|
-
raise
|
|
111
|
+
raise Errors::InvalidFilter, "filter must be either an Array a Hash, String, or nil, received #{filter.class}"
|
|
106
112
|
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# @return [Boolean] - true if the filter is valid against the jgrep filter validator
|
|
116
|
+
# @param filter [Object] - The filter to convert to jgrep string
|
|
117
|
+
def self.valid_filters?(filters)
|
|
118
|
+
filter_str = generate_filter_str(filters)
|
|
119
|
+
JGrep.validate_filters(filter_str).nil?
|
|
120
|
+
rescue RuntimeError
|
|
121
|
+
false
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# @return [Array] - array of hashes of facts
|
|
125
|
+
# @param filter [Object] - The filter to convert to jgrep string
|
|
126
|
+
def self.get_facts(filter=nil)
|
|
127
|
+
filter_str = generate_filter_str(filter)
|
|
107
128
|
JGrep.jgrep(database, filter_str).map { |hash| Hash[hash.map{ |k, v| [k.to_sym, v] }] }
|
|
108
129
|
end
|
|
109
130
|
end
|
data/lib/facterdb/version.rb
CHANGED
data/spec/facterdb_spec.rb
CHANGED
|
@@ -282,6 +282,42 @@ describe FacterDB do
|
|
|
282
282
|
end
|
|
283
283
|
end
|
|
284
284
|
|
|
285
|
+
describe '.valid_filters?' do
|
|
286
|
+
it 'invalid and false' do
|
|
287
|
+
expect( FacterDB.valid_filters?('and')).to be_falsey
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
it 'valid and true' do
|
|
291
|
+
expect( FacterDB.valid_filters?('foo')).to be_truthy
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
describe '.generate_filter_str' do
|
|
296
|
+
it 'invalid type' do
|
|
297
|
+
expect{FacterDB.generate_filter_str(3)}.to raise_error(FacterDB::Errors::InvalidFilter)
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
it 'with string' do
|
|
301
|
+
expect(FacterDB.generate_filter_str('foo')).to eq("foo")
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
it 'with hash' do
|
|
305
|
+
expect(FacterDB.generate_filter_str({:osfamily => 'Debian'})).to eq("osfamily=Debian")
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
it 'with Array' do
|
|
309
|
+
expect(FacterDB.generate_filter_str([:osfamily => 'Debian'])).to eq("(osfamily=Debian)")
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
it 'empty' do
|
|
313
|
+
expect(FacterDB.generate_filter_str('')).to eq('')
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
it 'nil filter' do
|
|
317
|
+
expect(FacterDB.generate_filter_str(nil)).to eq('')
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
|
|
285
321
|
describe '.get_facts' do
|
|
286
322
|
subject(:result) { FacterDB.get_facts(filter) }
|
|
287
323
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: facterdb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mickaël Canévet
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: coveralls
|
|
@@ -92,14 +92,14 @@ dependencies:
|
|
|
92
92
|
requirements:
|
|
93
93
|
- - "<"
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
95
|
+
version: 5.0.0
|
|
96
96
|
type: :runtime
|
|
97
97
|
prerelease: false
|
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
99
|
requirements:
|
|
100
100
|
- - "<"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
102
|
+
version: 5.0.0
|
|
103
103
|
- !ruby/object:Gem::Dependency
|
|
104
104
|
name: jgrep
|
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1757,8 +1757,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1757
1757
|
- !ruby/object:Gem::Version
|
|
1758
1758
|
version: '0'
|
|
1759
1759
|
requirements: []
|
|
1760
|
-
|
|
1761
|
-
rubygems_version: 2.7.7
|
|
1760
|
+
rubygems_version: 3.0.8
|
|
1762
1761
|
signing_key:
|
|
1763
1762
|
specification_version: 4
|
|
1764
1763
|
summary: A Database of OS facts provided by Facter
|