facter 3.11.6.cfacter.20181031 → 3.12.0.cfacter.20180918
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/ext/facter/cpp-hocon/CMakeLists.txt +1 -1
- data/ext/facter/cpp-hocon/lib/inc/hocon/types.hpp +6 -0
- data/ext/facter/cpp-hocon/lib/src/parseable.cc +3 -0
- data/ext/facter/facter/CMakeLists.txt +1 -1
- data/ext/facter/facter/acceptance/lib/facter/acceptance/base_fact_utils.rb +1 -3
- data/ext/facter/facter/acceptance/tests/facts/dmi.rb +1 -1
- data/ext/facter/facter/appveyor.yml +17 -14
- data/ext/facter/facter/exe/facter.cc +1 -2
- data/ext/facter/facter/lib/CMakeLists.txt +17 -1
- data/ext/facter/facter/lib/Doxyfile +1 -1
- data/ext/facter/facter/lib/inc/facter/facts/os.hpp +8 -0
- data/ext/facter/facter/lib/inc/facter/ruby/ruby.hpp +0 -11
- data/ext/facter/facter/lib/inc/internal/facts/freebsd/disk_resolver.hpp +25 -0
- data/ext/facter/facter/lib/inc/internal/facts/freebsd/filesystem_resolver.hpp +25 -0
- data/ext/facter/facter/lib/inc/internal/util/freebsd/geom.hpp +149 -0
- data/ext/facter/facter/lib/src/facts/collection.cc +0 -2
- data/ext/facter/facter/lib/src/facts/freebsd/collection.cc +4 -2
- data/ext/facter/facter/lib/src/facts/freebsd/disk_resolver.cc +34 -0
- data/ext/facter/facter/lib/src/facts/freebsd/filesystem_resolver.cc +37 -0
- data/ext/facter/facter/lib/src/facts/linux/os_linux.cc +4 -0
- data/ext/facter/facter/lib/src/facts/windows/dmi_resolver.cc +2 -3
- data/ext/facter/facter/lib/src/facts/windows/operating_system_resolver.cc +1 -23
- data/ext/facter/facter/lib/src/ruby/fact.cc +41 -57
- data/ext/facter/facter/lib/src/ruby/ruby.cc +3 -35
- data/ext/facter/facter/lib/src/util/freebsd/geom.cc +130 -0
- data/ext/facter/facter/lib/tests/CMakeLists.txt +25 -9
- data/ext/facter/facter/lib/tests/facts/collection.cc +1 -1
- data/ext/facter/facter/lib/tests/fixtures.cc +1 -0
- data/ext/facter/facter/locales/FACTER.pot +18 -18
- data/ext/facter/leatherman/CMakeLists.txt +1 -1
- data/ext/facter/leatherman/cmake/cflags.cmake +2 -2
- data/ext/facter/leatherman/dynamic_library/CMakeLists.txt +1 -1
- data/ext/facter/leatherman/locale/src/locale.cc +1 -0
- data/ext/facter/leatherman/ruby/inc/leatherman/ruby/api.hpp +0 -4
- data/ext/facter/leatherman/ruby/src/api.cc +0 -1
- data/ext/facter/leatherman/util/inc/leatherman/util/strings.hpp +3 -0
- data/ext/facter/leatherman/windows/CMakeLists.txt +1 -1
- data/ext/facter/leatherman/windows/inc/leatherman/windows/wmi.hpp +0 -5
- metadata +9 -4
- data/ext/facter/facter/acceptance/tests/custom_facts/conflicts_with_builtin_fact.rb +0 -106
@@ -40,7 +40,6 @@ set(LIBFACTER_TESTS_COMMON_SOURCES
|
|
40
40
|
"logging/logging.cc"
|
41
41
|
"log_capture.cc"
|
42
42
|
"main.cc"
|
43
|
-
"mock_server.cc"
|
44
43
|
"util/string.cc"
|
45
44
|
"fixtures.cc"
|
46
45
|
"collection_fixture.cc"
|
@@ -128,20 +127,37 @@ include_directories(
|
|
128
127
|
${CPPHOCON_INCLUDE_DIRS}
|
129
128
|
)
|
130
129
|
|
130
|
+
# On EL 4, we run into a linking error when trying to create libraries or
|
131
|
+
# executables that link in a static library with code using threads. As I
|
132
|
+
# described in https://gcc.gnu.org/ml/gcc-help/2015-08/msg00035.html, we get
|
133
|
+
# the error undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'.
|
134
|
+
# Build mock_server as a separate shared library to avoid this error.
|
131
135
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
136
|
+
add_library(mock-server SHARED mock_server.cc)
|
137
|
+
target_link_libraries(mock-server PRIVATE
|
138
|
+
${Boost_THREAD_LIBRARY}
|
139
|
+
${Boost_SYSTEM_LIBRARY}
|
140
|
+
${LIBFACTER_TESTS_PLATFORM_LIBRARIES})
|
137
141
|
|
138
142
|
add_executable(libfacter_test $<TARGET_OBJECTS:libfactersrc>
|
139
143
|
${LIBFACTER_TESTS_COMMON_SOURCES}
|
140
144
|
${LIBFACTER_TESTS_PLATFORM_SOURCES}
|
141
145
|
${LIBFACTER_TESTS_CATEGORY_SOURCES})
|
142
|
-
|
143
|
-
|
144
|
-
|
146
|
+
# On Windows, mock-server comes after Boost libraries to avoid double
|
147
|
+
# definition of boost::system::system_category() on Windows. On Linux, it
|
148
|
+
# comes before to avoid picking up incomplete Boost.Asio symbols included
|
149
|
+
# by Boost.Log in Leatherman logging.
|
150
|
+
if (WIN32)
|
151
|
+
target_link_libraries(libfacter_test
|
152
|
+
${LIBS}
|
153
|
+
${LIBFACTER_TESTS_PLATFORM_LIBRARIES}
|
154
|
+
mock-server)
|
155
|
+
else()
|
156
|
+
target_link_libraries(libfacter_test
|
157
|
+
mock-server
|
158
|
+
${LIBS}
|
159
|
+
${LIBFACTER_TESTS_PLATFORM_LIBRARIES})
|
160
|
+
endif()
|
145
161
|
|
146
162
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND BOOST_STATIC AND LEATHERMAN_USE_LOCALES)
|
147
163
|
target_link_libraries(libfacter_test iconv)
|
@@ -6,7 +6,7 @@
|
|
6
6
|
#, fuzzy
|
7
7
|
msgid ""
|
8
8
|
msgstr ""
|
9
|
-
"Project-Id-Version: FACTER 3.
|
9
|
+
"Project-Id-Version: FACTER 3.12.0\n"
|
10
10
|
"Report-Msgid-Bugs-To: docs@puppet.com\n"
|
11
11
|
"POT-Creation-Date: \n"
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
@@ -1225,6 +1225,11 @@ msgstr ""
|
|
1225
1225
|
msgid "failed adding platform facts that require WMI: {1}"
|
1226
1226
|
msgstr ""
|
1227
1227
|
|
1228
|
+
#. debug
|
1229
|
+
#: lib/src/facts/windows/dmi_resolver.cc
|
1230
|
+
msgid "WMI query returned no results for {1} with value {2}."
|
1231
|
+
msgstr ""
|
1232
|
+
|
1228
1233
|
#. debug
|
1229
1234
|
#: lib/src/facts/windows/dmi_resolver.cc
|
1230
1235
|
msgid "WMI query returned no results for {1} with values {2} and {3}."
|
@@ -1289,13 +1294,6 @@ msgstr ""
|
|
1289
1294
|
msgid "error finding SYSTEMROOT: {1}"
|
1290
1295
|
msgstr ""
|
1291
1296
|
|
1292
|
-
#. debug
|
1293
|
-
#: lib/src/facts/windows/operating_system_resolver.cc
|
1294
|
-
msgid ""
|
1295
|
-
"Could not resolve the OS release and OS major version facts from the kernel "
|
1296
|
-
"version fact"
|
1297
|
-
msgstr ""
|
1298
|
-
|
1299
1297
|
#. debug
|
1300
1298
|
#: lib/src/facts/windows/processor_resolver.cc
|
1301
1299
|
msgid "WMI processor Name, Architecture query returned no results."
|
@@ -1531,16 +1529,6 @@ msgstr ""
|
|
1531
1529
|
msgid "timeout= is not supported for custom facts and will be ignored."
|
1532
1530
|
msgstr ""
|
1533
1531
|
|
1534
|
-
#. debug
|
1535
|
-
#: lib/src/ruby/ruby.cc
|
1536
|
-
msgid "Redirecting ruby's stdout to stderr"
|
1537
|
-
msgstr ""
|
1538
|
-
|
1539
|
-
#. debug
|
1540
|
-
#: lib/src/ruby/ruby.cc
|
1541
|
-
msgid "Restoring Ruby's stdout"
|
1542
|
-
msgstr ""
|
1543
|
-
|
1544
1532
|
#. warning
|
1545
1533
|
#: lib/src/ruby/ruby.cc
|
1546
1534
|
msgid "Could not load puppet; some facts may be unavailable: {1}"
|
@@ -1559,6 +1547,18 @@ msgstr ""
|
|
1559
1547
|
msgid "a block is unexpected when passing a String"
|
1560
1548
|
msgstr ""
|
1561
1549
|
|
1550
|
+
#: lib/src/util/freebsd/geom.cc
|
1551
|
+
msgid "Skipping config {1} because it has a null value"
|
1552
|
+
msgstr ""
|
1553
|
+
|
1554
|
+
#: lib/src/util/freebsd/geom.cc
|
1555
|
+
msgid "Unable to get GEOM tree"
|
1556
|
+
msgstr ""
|
1557
|
+
|
1558
|
+
#: lib/src/util/freebsd/geom.cc
|
1559
|
+
msgid "The GEOM class \"{1}\" was not found"
|
1560
|
+
msgstr ""
|
1561
|
+
|
1562
1562
|
#: lib/src/util/posix/utmpx_file.cc
|
1563
1563
|
msgid "only one utmpx_file instance can exist at a time!"
|
1564
1564
|
msgstr ""
|
@@ -70,9 +70,9 @@ endif()
|
|
70
70
|
if (WIN32)
|
71
71
|
# Update standard link libraries to explicitly exclude kernel32. It isn't necessary, and when compiling with
|
72
72
|
# MinGW makes the executable unusable on Microsoft Nano Server due to including __C_specific_handler.
|
73
|
-
SET(CMAKE_C_STANDARD_LIBRARIES "-luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32"
|
73
|
+
SET(CMAKE_C_STANDARD_LIBRARIES "-luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -lbcrypt"
|
74
74
|
CACHE STRING "Standard C link libraries." FORCE)
|
75
|
-
SET(CMAKE_CXX_STANDARD_LIBRARIES "-luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32"
|
75
|
+
SET(CMAKE_CXX_STANDARD_LIBRARIES "-luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -lbcrypt"
|
76
76
|
CACHE STRING "Standard C++ link libraries." FORCE)
|
77
77
|
|
78
78
|
# We currently support Windows Vista and later APIs, see
|
@@ -5,6 +5,7 @@
|
|
5
5
|
// boost includes are not always warning-clean. Disable warnings that
|
6
6
|
// cause problems before including the headers, then re-enable the warnings.
|
7
7
|
#pragma GCC diagnostic push
|
8
|
+
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
8
9
|
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
|
9
10
|
#include <boost/locale.hpp>
|
10
11
|
#pragma GCC diagnostic pop
|
@@ -207,10 +207,6 @@ namespace leatherman { namespace ruby {
|
|
207
207
|
* See MRI documentation.
|
208
208
|
*/
|
209
209
|
VALUE (* const rb_gv_get)(char const*);
|
210
|
-
/**
|
211
|
-
* See MRI documentation.
|
212
|
-
*/
|
213
|
-
VALUE (* const rb_gv_set)(char const*, VALUE);
|
214
210
|
/**
|
215
211
|
* See MRI documentation.
|
216
212
|
*/
|
@@ -51,7 +51,6 @@ namespace leatherman { namespace ruby {
|
|
51
51
|
LOAD_SYMBOL(rb_define_singleton_method),
|
52
52
|
LOAD_SYMBOL(rb_class_new_instance),
|
53
53
|
LOAD_SYMBOL(rb_gv_get),
|
54
|
-
LOAD_SYMBOL(rb_gv_set),
|
55
54
|
LOAD_SYMBOL(rb_eval_string),
|
56
55
|
LOAD_SYMBOL(rb_funcall),
|
57
56
|
LOAD_ALIASED_SYMBOL(rb_funcallv, rb_funcall2),
|
@@ -4,8 +4,11 @@
|
|
4
4
|
*/
|
5
5
|
#pragma once
|
6
6
|
|
7
|
+
#pragma GCC diagnostic push
|
8
|
+
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
7
9
|
#include <boost/algorithm/string/predicate.hpp>
|
8
10
|
#include <boost/algorithm/string/compare.hpp>
|
11
|
+
#pragma GCC diagnostic pop
|
9
12
|
#include <functional>
|
10
13
|
#include <string>
|
11
14
|
#include <vector>
|
@@ -43,11 +43,6 @@ namespace leatherman { namespace windows {
|
|
43
43
|
*/
|
44
44
|
constexpr static char const* computersystemproduct = "Win32_ComputerSystemProduct";
|
45
45
|
|
46
|
-
/**
|
47
|
-
* Identifier for the WMI property UUID
|
48
|
-
*/
|
49
|
-
constexpr static char const* uuid = "UUID";
|
50
|
-
|
51
46
|
/**
|
52
47
|
* Identifier for the WMI class Win32_OperatingSystem
|
53
48
|
*/
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.12.0.cfacter.20180918
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: info@puppet.com
|
@@ -203,7 +203,6 @@ files:
|
|
203
203
|
- ext/facter/facter/acceptance/lib/puppet/acceptance/common_utils.rb
|
204
204
|
- ext/facter/facter/acceptance/lib/puppet/acceptance/git_utils.rb
|
205
205
|
- ext/facter/facter/acceptance/lib/puppet/acceptance/install_utils.rb
|
206
|
-
- ext/facter/facter/acceptance/tests/custom_facts/conflicts_with_builtin_fact.rb
|
207
206
|
- ext/facter/facter/acceptance/tests/custom_facts/custom_fact_with_10001_weight_overrides_external_fact.rb
|
208
207
|
- ext/facter/facter/acceptance/tests/custom_facts/having_multiple_facts_in_one_file.rb
|
209
208
|
- ext/facter/facter/acceptance/tests/custom_facts/using_win32ole_should_not_hang.rb
|
@@ -377,7 +376,9 @@ files:
|
|
377
376
|
- ext/facter/facter/lib/inc/internal/facts/external/text_resolver.hpp
|
378
377
|
- ext/facter/facter/lib/inc/internal/facts/external/windows/powershell_resolver.hpp
|
379
378
|
- ext/facter/facter/lib/inc/internal/facts/external/yaml_resolver.hpp
|
379
|
+
- ext/facter/facter/lib/inc/internal/facts/freebsd/disk_resolver.hpp
|
380
380
|
- ext/facter/facter/lib/inc/internal/facts/freebsd/dmi_resolver.hpp
|
381
|
+
- ext/facter/facter/lib/inc/internal/facts/freebsd/filesystem_resolver.hpp
|
381
382
|
- ext/facter/facter/lib/inc/internal/facts/freebsd/memory_resolver.hpp
|
382
383
|
- ext/facter/facter/lib/inc/internal/facts/freebsd/networking_resolver.hpp
|
383
384
|
- ext/facter/facter/lib/inc/internal/facts/freebsd/operating_system_resolver.hpp
|
@@ -484,6 +485,7 @@ files:
|
|
484
485
|
- ext/facter/facter/lib/inc/internal/util/aix/odm.hpp
|
485
486
|
- ext/facter/facter/lib/inc/internal/util/aix/vmount.hpp
|
486
487
|
- ext/facter/facter/lib/inc/internal/util/bsd/scoped_ifaddrs.hpp
|
488
|
+
- ext/facter/facter/lib/inc/internal/util/freebsd/geom.hpp
|
487
489
|
- ext/facter/facter/lib/inc/internal/util/posix/scoped_addrinfo.hpp
|
488
490
|
- ext/facter/facter/lib/inc/internal/util/posix/scoped_bio.hpp
|
489
491
|
- ext/facter/facter/lib/inc/internal/util/posix/scoped_descriptor.hpp
|
@@ -524,7 +526,9 @@ files:
|
|
524
526
|
- ext/facter/facter/lib/src/facts/external/windows/powershell_resolver.cc
|
525
527
|
- ext/facter/facter/lib/src/facts/external/yaml_resolver.cc
|
526
528
|
- ext/facter/facter/lib/src/facts/freebsd/collection.cc
|
529
|
+
- ext/facter/facter/lib/src/facts/freebsd/disk_resolver.cc
|
527
530
|
- ext/facter/facter/lib/src/facts/freebsd/dmi_resolver.cc
|
531
|
+
- ext/facter/facter/lib/src/facts/freebsd/filesystem_resolver.cc
|
528
532
|
- ext/facter/facter/lib/src/facts/freebsd/memory_resolver.cc
|
529
533
|
- ext/facter/facter/lib/src/facts/freebsd/networking_resolver.cc
|
530
534
|
- ext/facter/facter/lib/src/facts/freebsd/operating_system_resolver.cc
|
@@ -642,6 +646,7 @@ files:
|
|
642
646
|
- ext/facter/facter/lib/src/util/config/config.cc
|
643
647
|
- ext/facter/facter/lib/src/util/config/posix/config.cc
|
644
648
|
- ext/facter/facter/lib/src/util/config/windows/config.cc
|
649
|
+
- ext/facter/facter/lib/src/util/freebsd/geom.cc
|
645
650
|
- ext/facter/facter/lib/src/util/posix/scoped_addrinfo.cc
|
646
651
|
- ext/facter/facter/lib/src/util/posix/scoped_bio.cc
|
647
652
|
- ext/facter/facter/lib/src/util/posix/scoped_descriptor.cc
|
@@ -1081,7 +1086,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1081
1086
|
version: 1.3.1
|
1082
1087
|
requirements: []
|
1083
1088
|
rubyforge_project:
|
1084
|
-
rubygems_version: 2.6
|
1089
|
+
rubygems_version: 2.7.6
|
1085
1090
|
signing_key:
|
1086
1091
|
specification_version: 4
|
1087
1092
|
summary: Facter gem wrapper
|
@@ -1,106 +0,0 @@
|
|
1
|
-
test_name 'Facter should appropriately resolve a custom fact when it conflicts with a builtin fact' do
|
2
|
-
tag 'risk:medium'
|
3
|
-
|
4
|
-
def create_custom_fact_on(host, custom_fact_dir, fact_file_name, fact)
|
5
|
-
fact_file_contents = <<-CUSTOM_FACT
|
6
|
-
Facter.add(:#{fact[:name]}) do
|
7
|
-
has_weight #{fact[:weight]}
|
8
|
-
setcode do
|
9
|
-
#{fact[:value]}
|
10
|
-
end
|
11
|
-
end
|
12
|
-
CUSTOM_FACT
|
13
|
-
|
14
|
-
fact_file_path = File.join(custom_fact_dir, fact_file_name)
|
15
|
-
create_remote_file(host, fact_file_path, fact_file_contents)
|
16
|
-
end
|
17
|
-
|
18
|
-
def clear_custom_facts_on(host, custom_fact_dir)
|
19
|
-
step "Clean-up the previous test's custom facts" do
|
20
|
-
on(agent, "rm -f #{custom_fact_dir}/*")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
agents.each do |agent|
|
25
|
-
custom_fact_dir = agent.tmpdir('facter')
|
26
|
-
teardown do
|
27
|
-
on(agent, "rm -rf '#{custom_fact_dir}'")
|
28
|
-
end
|
29
|
-
|
30
|
-
fact_name = 'timezone'
|
31
|
-
builtin_value = on(agent, facter('timezone')).stdout.chomp
|
32
|
-
|
33
|
-
step "Verify that Facter uses the custom fact's value when its weight is > 0" do
|
34
|
-
custom_fact_value = "custom_timezone"
|
35
|
-
create_custom_fact_on(
|
36
|
-
agent,
|
37
|
-
custom_fact_dir,
|
38
|
-
'custom_timezone.rb',
|
39
|
-
name: fact_name,
|
40
|
-
weight: 10,
|
41
|
-
value: "'#{custom_fact_value}'"
|
42
|
-
)
|
43
|
-
|
44
|
-
on(agent, facter("--custom-dir=#{custom_fact_dir} timezone")) do |result|
|
45
|
-
assert_match(/#{custom_fact_value}/, result.stdout.chomp, "Facter does not use the custom fact's value when its weight is > 0")
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
clear_custom_facts_on(agent, custom_fact_dir)
|
50
|
-
|
51
|
-
step "Verify that Facter uses the builtin fact's value when all conflicting custom facts fail to resolve" do
|
52
|
-
[ 'timezone_one.rb', 'timezone_two.rb'].each do |fact_file|
|
53
|
-
create_custom_fact_on(
|
54
|
-
agent,
|
55
|
-
custom_fact_dir,
|
56
|
-
fact_file,
|
57
|
-
{ name: fact_name, weight: 10, value: nil }
|
58
|
-
)
|
59
|
-
end
|
60
|
-
|
61
|
-
on(agent, facter("--custom-dir=#{custom_fact_dir} timezone")) do |result|
|
62
|
-
assert_match(/#{builtin_value}/, result.stdout.chomp, "Facter does not use the builtin fact's value when all conflicting custom facts fail to resolve")
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
step "Verify that Facter gives precedence to the builtin fact over zero weight custom facts" do
|
67
|
-
step "when all custom facts have zero weight" do
|
68
|
-
{
|
69
|
-
'timezone_one.rb' => "'timezone_one'",
|
70
|
-
'timezone_two.rb' => "'timezone_two'"
|
71
|
-
}.each do |fact_file, fact_value|
|
72
|
-
create_custom_fact_on(
|
73
|
-
agent,
|
74
|
-
custom_fact_dir,
|
75
|
-
fact_file,
|
76
|
-
{ name: fact_name, weight: 0, value: fact_value }
|
77
|
-
)
|
78
|
-
end
|
79
|
-
|
80
|
-
on(agent, facter("--custom-dir=#{custom_fact_dir} timezone")) do |result|
|
81
|
-
assert_match(/#{builtin_value}/, result.stdout.chomp, "Facter does not give precedence to the builtin fact when all custom facts have zero weight")
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
clear_custom_facts_on(agent, custom_fact_dir)
|
86
|
-
|
87
|
-
step "when some custom facts have zero weight" do
|
88
|
-
{
|
89
|
-
'timezone_one.rb' => { weight: 10, value: nil },
|
90
|
-
'timezone_two.rb' => { weight: 0, value: "'timezone_two'" }
|
91
|
-
}.each do |fact_file, fact|
|
92
|
-
create_custom_fact_on(
|
93
|
-
agent,
|
94
|
-
custom_fact_dir,
|
95
|
-
fact_file,
|
96
|
-
fact.merge(name: fact_name)
|
97
|
-
)
|
98
|
-
end
|
99
|
-
|
100
|
-
on(agent, facter("--custom-dir=#{custom_fact_dir} timezone")) do |result|
|
101
|
-
assert_match(/#{builtin_value}/, result.stdout.chomp, "Facter does not give precedence to the builtin fact when only some custom facts have zero weight")
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|