puppet 6.19.1 → 6.23.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +51 -40
  5. data/ext/osx/puppet.plist +2 -0
  6. data/ext/project_data.yaml +2 -2
  7. data/lib/puppet/application.rb +10 -6
  8. data/lib/puppet/application/agent.rb +12 -4
  9. data/lib/puppet/application/apply.rb +4 -2
  10. data/lib/puppet/application/device.rb +2 -0
  11. data/lib/puppet/application/filebucket.rb +2 -2
  12. data/lib/puppet/application/resource.rb +2 -1
  13. data/lib/puppet/application/script.rb +2 -0
  14. data/lib/puppet/application/ssl.rb +11 -0
  15. data/lib/puppet/application_support.rb +7 -0
  16. data/lib/puppet/configurer.rb +28 -18
  17. data/lib/puppet/configurer/downloader.rb +2 -1
  18. data/lib/puppet/defaults.rb +51 -23
  19. data/lib/puppet/environments.rb +54 -55
  20. data/lib/puppet/face/config.rb +10 -0
  21. data/lib/puppet/face/epp.rb +12 -2
  22. data/lib/puppet/face/facts.rb +158 -0
  23. data/lib/puppet/ffi/posix.rb +10 -0
  24. data/lib/puppet/ffi/posix/constants.rb +14 -0
  25. data/lib/puppet/ffi/posix/functions.rb +24 -0
  26. data/lib/puppet/file_serving/fileset.rb +14 -2
  27. data/lib/puppet/file_system/memory_file.rb +8 -1
  28. data/lib/puppet/file_system/windows.rb +2 -0
  29. data/lib/puppet/functions/all.rb +1 -1
  30. data/lib/puppet/functions/camelcase.rb +1 -1
  31. data/lib/puppet/functions/capitalize.rb +2 -2
  32. data/lib/puppet/functions/downcase.rb +2 -2
  33. data/lib/puppet/functions/epp.rb +1 -0
  34. data/lib/puppet/functions/get.rb +5 -5
  35. data/lib/puppet/functions/group_by.rb +13 -5
  36. data/lib/puppet/functions/inline_epp.rb +1 -0
  37. data/lib/puppet/functions/lest.rb +1 -1
  38. data/lib/puppet/functions/new.rb +100 -100
  39. data/lib/puppet/functions/partition.rb +12 -4
  40. data/lib/puppet/functions/require.rb +5 -5
  41. data/lib/puppet/functions/sort.rb +3 -3
  42. data/lib/puppet/functions/tree_each.rb +7 -9
  43. data/lib/puppet/functions/type.rb +4 -4
  44. data/lib/puppet/functions/upcase.rb +2 -2
  45. data/lib/puppet/http/resolver/server_list.rb +15 -4
  46. data/lib/puppet/http/service/compiler.rb +69 -0
  47. data/lib/puppet/http/service/file_server.rb +2 -1
  48. data/lib/puppet/indirector/catalog/compiler.rb +1 -0
  49. data/lib/puppet/indirector/fact_search.rb +60 -0
  50. data/lib/puppet/indirector/facts/facter.rb +24 -3
  51. data/lib/puppet/indirector/facts/json.rb +27 -0
  52. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  53. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  54. data/lib/puppet/indirector/json.rb +5 -1
  55. data/lib/puppet/indirector/node/json.rb +8 -0
  56. data/lib/puppet/indirector/report/json.rb +34 -0
  57. data/lib/puppet/module_tool/applications/installer.rb +48 -2
  58. data/lib/puppet/module_tool/errors/shared.rb +17 -2
  59. data/lib/puppet/network/formats.rb +69 -1
  60. data/lib/puppet/network/http/factory.rb +4 -0
  61. data/lib/puppet/pal/pal_impl.rb +70 -17
  62. data/lib/puppet/parser/ast/leaf.rb +3 -2
  63. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  64. data/lib/puppet/parser/templatewrapper.rb +1 -1
  65. data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
  66. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
  67. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  68. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  69. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  70. data/lib/puppet/property/list.rb +1 -1
  71. data/lib/puppet/provider/group/groupadd.rb +13 -8
  72. data/lib/puppet/provider/package/apt.rb +34 -2
  73. data/lib/puppet/provider/package/aptitude.rb +6 -0
  74. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  75. data/lib/puppet/provider/package/nim.rb +11 -6
  76. data/lib/puppet/provider/service/debian.rb +2 -0
  77. data/lib/puppet/provider/service/systemd.rb +14 -4
  78. data/lib/puppet/provider/service/windows.rb +38 -0
  79. data/lib/puppet/provider/user/aix.rb +2 -2
  80. data/lib/puppet/provider/user/directoryservice.rb +25 -12
  81. data/lib/puppet/provider/user/useradd.rb +62 -8
  82. data/lib/puppet/reference/configuration.rb +7 -6
  83. data/lib/puppet/settings.rb +33 -28
  84. data/lib/puppet/settings/alias_setting.rb +37 -0
  85. data/lib/puppet/settings/base_setting.rb +26 -2
  86. data/lib/puppet/settings/environment_conf.rb +1 -0
  87. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  88. data/lib/puppet/type/file.rb +19 -1
  89. data/lib/puppet/type/file/selcontext.rb +1 -1
  90. data/lib/puppet/type/package.rb +3 -3
  91. data/lib/puppet/type/service.rb +18 -38
  92. data/lib/puppet/type/tidy.rb +21 -2
  93. data/lib/puppet/type/user.rb +38 -20
  94. data/lib/puppet/util/autoload.rb +1 -8
  95. data/lib/puppet/util/fact_dif.rb +81 -0
  96. data/lib/puppet/util/monkey_patches.rb +7 -0
  97. data/lib/puppet/util/posix.rb +54 -5
  98. data/lib/puppet/util/rubygems.rb +5 -1
  99. data/lib/puppet/util/selinux.rb +30 -4
  100. data/lib/puppet/util/windows/adsi.rb +46 -0
  101. data/lib/puppet/util/windows/api_types.rb +1 -1
  102. data/lib/puppet/util/windows/principal.rb +9 -2
  103. data/lib/puppet/util/windows/service.rb +1 -1
  104. data/lib/puppet/util/windows/sid.rb +4 -2
  105. data/lib/puppet/version.rb +1 -1
  106. data/locales/puppet.pot +372 -288
  107. data/man/man5/puppet.conf.5 +282 -254
  108. data/man/man8/puppet-agent.8 +2 -2
  109. data/man/man8/puppet-apply.8 +2 -2
  110. data/man/man8/puppet-catalog.8 +1 -1
  111. data/man/man8/puppet-config.8 +1 -1
  112. data/man/man8/puppet-describe.8 +1 -1
  113. data/man/man8/puppet-device.8 +2 -2
  114. data/man/man8/puppet-doc.8 +1 -1
  115. data/man/man8/puppet-epp.8 +1 -1
  116. data/man/man8/puppet-facts.8 +90 -1
  117. data/man/man8/puppet-filebucket.8 +3 -3
  118. data/man/man8/puppet-generate.8 +1 -1
  119. data/man/man8/puppet-help.8 +1 -1
  120. data/man/man8/puppet-key.8 +1 -1
  121. data/man/man8/puppet-lookup.8 +1 -1
  122. data/man/man8/puppet-man.8 +1 -1
  123. data/man/man8/puppet-module.8 +1 -1
  124. data/man/man8/puppet-node.8 +4 -1
  125. data/man/man8/puppet-parser.8 +1 -1
  126. data/man/man8/puppet-plugin.8 +1 -1
  127. data/man/man8/puppet-report.8 +4 -1
  128. data/man/man8/puppet-resource.8 +1 -1
  129. data/man/man8/puppet-script.8 +2 -2
  130. data/man/man8/puppet-ssl.8 +5 -1
  131. data/man/man8/puppet-status.8 +1 -1
  132. data/man/man8/puppet.8 +2 -2
  133. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
  134. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  135. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  136. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  137. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  138. data/spec/fixtures/ssl/ca.pem +57 -35
  139. data/spec/fixtures/ssl/crl.pem +28 -18
  140. data/spec/fixtures/ssl/ec-key.pem +11 -11
  141. data/spec/fixtures/ssl/ec.pem +33 -24
  142. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  143. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  144. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  145. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  146. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  147. data/spec/fixtures/ssl/intermediate.pem +57 -36
  148. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  149. data/spec/fixtures/ssl/pluto.pem +52 -30
  150. data/spec/fixtures/ssl/request-key.pem +107 -57
  151. data/spec/fixtures/ssl/request.pem +47 -26
  152. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  153. data/spec/fixtures/ssl/revoked.pem +52 -30
  154. data/spec/fixtures/ssl/signed-key.pem +107 -57
  155. data/spec/fixtures/ssl/signed.pem +52 -30
  156. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  157. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  158. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  159. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  160. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  161. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  162. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  163. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  164. data/spec/integration/application/agent_spec.rb +160 -3
  165. data/spec/integration/application/apply_spec.rb +19 -0
  166. data/spec/integration/application/plugin_spec.rb +1 -1
  167. data/spec/integration/application/resource_spec.rb +30 -0
  168. data/spec/integration/defaults_spec.rb +0 -7
  169. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  170. data/spec/integration/http/client_spec.rb +12 -0
  171. data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
  172. data/spec/integration/resource/type_collection_spec.rb +2 -6
  173. data/spec/integration/transaction_spec.rb +4 -9
  174. data/spec/integration/util/windows/adsi_spec.rb +21 -1
  175. data/spec/integration/util/windows/principal_spec.rb +21 -0
  176. data/spec/integration/util/windows/registry_spec.rb +6 -10
  177. data/spec/lib/puppet/test_ca.rb +2 -2
  178. data/spec/lib/puppet_spec/settings.rb +6 -1
  179. data/spec/spec_helper.rb +12 -5
  180. data/spec/unit/agent_spec.rb +8 -6
  181. data/spec/unit/application/agent_spec.rb +7 -3
  182. data/spec/unit/application/config_spec.rb +224 -4
  183. data/spec/unit/application/facts_spec.rb +482 -3
  184. data/spec/unit/application/filebucket_spec.rb +0 -2
  185. data/spec/unit/application/ssl_spec.rb +23 -0
  186. data/spec/unit/application_spec.rb +51 -9
  187. data/spec/unit/configurer/downloader_spec.rb +6 -0
  188. data/spec/unit/configurer_spec.rb +23 -0
  189. data/spec/unit/confine/feature_spec.rb +1 -1
  190. data/spec/unit/confine_spec.rb +8 -2
  191. data/spec/unit/defaults_spec.rb +36 -1
  192. data/spec/unit/environments_spec.rb +221 -68
  193. data/spec/unit/face/config_spec.rb +27 -32
  194. data/spec/unit/face/facts_spec.rb +4 -0
  195. data/spec/unit/face/node_spec.rb +0 -11
  196. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
  197. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  198. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  199. data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
  200. data/spec/unit/file_system_spec.rb +9 -0
  201. data/spec/unit/forge/module_release_spec.rb +2 -7
  202. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  203. data/spec/unit/gettext/config_spec.rb +12 -0
  204. data/spec/unit/http/service/compiler_spec.rb +172 -0
  205. data/spec/unit/http/service_spec.rb +1 -1
  206. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  207. data/spec/unit/indirector/face_spec.rb +0 -1
  208. data/spec/unit/indirector/facts/facter_spec.rb +95 -1
  209. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  210. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
  211. data/spec/unit/indirector/indirection_spec.rb +8 -12
  212. data/spec/unit/indirector/key/file_spec.rb +0 -1
  213. data/spec/unit/indirector/node/json_spec.rb +33 -0
  214. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  215. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  216. data/spec/unit/indirector_spec.rb +2 -2
  217. data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
  218. data/spec/unit/network/authconfig_spec.rb +0 -3
  219. data/spec/unit/network/formats_spec.rb +41 -0
  220. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
  221. data/spec/unit/network/http/factory_spec.rb +19 -0
  222. data/spec/unit/network/http/handler_spec.rb +0 -5
  223. data/spec/unit/parser/compiler_spec.rb +3 -19
  224. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  225. data/spec/unit/parser/resource_spec.rb +14 -8
  226. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  227. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  228. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  229. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  230. data/spec/unit/property_spec.rb +1 -0
  231. data/spec/unit/provider/group/groupadd_spec.rb +5 -2
  232. data/spec/unit/provider/nameservice_spec.rb +66 -65
  233. data/spec/unit/provider/package/apt_spec.rb +28 -23
  234. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  235. data/spec/unit/provider/package/base_spec.rb +6 -5
  236. data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
  237. data/spec/unit/provider/package/nim_spec.rb +42 -0
  238. data/spec/unit/provider/package/pacman_spec.rb +18 -12
  239. data/spec/unit/provider/package/pip_spec.rb +6 -11
  240. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
  241. data/spec/unit/provider/service/init_spec.rb +1 -0
  242. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  243. data/spec/unit/provider/service/systemd_spec.rb +53 -8
  244. data/spec/unit/provider/service/windows_spec.rb +202 -0
  245. data/spec/unit/provider/user/aix_spec.rb +5 -0
  246. data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
  247. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  248. data/spec/unit/provider/user/pw_spec.rb +2 -0
  249. data/spec/unit/provider/user/useradd_spec.rb +71 -3
  250. data/spec/unit/provider_spec.rb +8 -10
  251. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  252. data/spec/unit/resource/capability_finder_spec.rb +6 -1
  253. data/spec/unit/resource/catalog_spec.rb +1 -1
  254. data/spec/unit/resource/type_spec.rb +1 -1
  255. data/spec/unit/resource_spec.rb +11 -10
  256. data/spec/unit/settings_spec.rb +419 -242
  257. data/spec/unit/ssl/base_spec.rb +0 -1
  258. data/spec/unit/ssl/host_spec.rb +0 -5
  259. data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
  260. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  261. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -9
  262. data/spec/unit/transaction/event_manager_spec.rb +14 -11
  263. data/spec/unit/transaction_spec.rb +18 -11
  264. data/spec/unit/type/file/content_spec.rb +0 -1
  265. data/spec/unit/type/file/selinux_spec.rb +3 -5
  266. data/spec/unit/type/file_spec.rb +0 -6
  267. data/spec/unit/type/group_spec.rb +13 -6
  268. data/spec/unit/type/resources_spec.rb +7 -7
  269. data/spec/unit/type/service_spec.rb +60 -189
  270. data/spec/unit/type/tidy_spec.rb +17 -8
  271. data/spec/unit/type/user_spec.rb +45 -0
  272. data/spec/unit/type_spec.rb +2 -2
  273. data/spec/unit/util/at_fork_spec.rb +2 -2
  274. data/spec/unit/util/autoload_spec.rb +5 -1
  275. data/spec/unit/util/backups_spec.rb +1 -2
  276. data/spec/unit/util/execution_spec.rb +15 -11
  277. data/spec/unit/util/inifile_spec.rb +6 -14
  278. data/spec/unit/util/log_spec.rb +8 -7
  279. data/spec/unit/util/logging_spec.rb +3 -3
  280. data/spec/unit/util/posix_spec.rb +363 -15
  281. data/spec/unit/util/rubygems_spec.rb +2 -2
  282. data/spec/unit/util/selinux_spec.rb +163 -68
  283. data/spec/unit/util/storage_spec.rb +3 -1
  284. data/spec/unit/util/suidmanager_spec.rb +44 -41
  285. data/spec/unit/util/windows/sid_spec.rb +6 -0
  286. data/spec/unit/util_spec.rb +13 -6
  287. data/tasks/generate_cert_fixtures.rake +2 -2
  288. metadata +25 -14
  289. data/spec/integration/application/config_spec.rb +0 -74
  290. data/spec/lib/matchers/include.rb +0 -27
  291. data/spec/lib/matchers/include_spec.rb +0 -32
  292. data/spec/unit/face/catalog_spec.rb +0 -6
  293. data/spec/unit/face/module_spec.rb +0 -3
@@ -158,6 +158,12 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
158
158
  # this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
159
159
  expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
160
160
  end
161
+
162
+ it "should print a debug message on failures" do
163
+ expect(Puppet).to receive(:debug).with(/Could not retrieve raw SID bytes from 'NonExistingUser'/)
164
+ expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
165
+ subject.name_to_principal('NonExistingUser')
166
+ end
161
167
  end
162
168
 
163
169
  context "#ads_to_principal" do
@@ -315,7 +315,7 @@ describe Puppet::Util do
315
315
 
316
316
  describe "when using platform :posix" do
317
317
  before :each do
318
- allow(Puppet.features).to receive(:posix).and_return(true)
318
+ allow(Puppet.features).to receive(:posix?).and_return(true)
319
319
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
320
320
  end
321
321
 
@@ -328,7 +328,7 @@ describe Puppet::Util do
328
328
 
329
329
  describe "when using platform :windows" do
330
330
  before :each do
331
- allow(Puppet.features).to receive(:posix).and_return(false)
331
+ allow(Puppet.features).to receive(:posix?).and_return(false)
332
332
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
333
333
  end
334
334
 
@@ -462,7 +462,7 @@ describe Puppet::Util do
462
462
 
463
463
  describe "when using platform :posix" do
464
464
  before :each do
465
- allow(Puppet.features).to receive(:posix).and_return(true)
465
+ allow(Puppet.features).to receive(:posix?).and_return(true)
466
466
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
467
467
  end
468
468
 
@@ -501,7 +501,7 @@ describe Puppet::Util do
501
501
 
502
502
  describe "when using platform :windows" do
503
503
  before :each do
504
- allow(Puppet.features).to receive(:posix).and_return(false)
504
+ allow(Puppet.features).to receive(:posix?).and_return(false)
505
505
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
506
506
  end
507
507
 
@@ -539,7 +539,6 @@ describe Puppet::Util do
539
539
  expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
540
540
  end
541
541
 
542
-
543
542
  [
544
543
  "http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
545
544
  "http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
@@ -589,7 +588,15 @@ describe Puppet::Util do
589
588
  end
590
589
  end
591
590
 
592
- describe "safe_posix_fork" do
591
+ describe "safe_posix_fork on Windows and JRuby", if: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
592
+ it "raises not implemented error" do
593
+ expect {
594
+ Puppet::Util.safe_posix_fork
595
+ }.to raise_error(NotImplementedError, /fork/)
596
+ end
597
+ end
598
+
599
+ describe "safe_posix_fork", unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
593
600
  let(:pid) { 5501 }
594
601
 
595
602
  before :each do
@@ -173,12 +173,12 @@ task(:gen_cert_fixtures) do
173
173
 
174
174
  # Create a request, but replace its public key after it's signed
175
175
  tampered_csr = ca.create_request('signed')[:csr]
176
- tampered_csr.public_key = OpenSSL::PKey::RSA.new(1024).public_key
176
+ tampered_csr.public_key = OpenSSL::PKey::RSA.new(2048).public_key
177
177
  save(dir, 'tampered-csr.pem', tampered_csr)
178
178
 
179
179
  # Create a cert issued from the real intermediate CA, but replace its
180
180
  # public key
181
181
  tampered_cert = ca.create_cert('signed', inter[:cert], inter[:private_key])[:cert]
182
- tampered_cert.public_key = OpenSSL::PKey::RSA.new(1024).public_key
182
+ tampered_cert.public_key = OpenSSL::PKey::RSA.new(2048).public_key
183
183
  save(dir, 'tampered-cert.pem', tampered_cert)
184
184
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.19.1
4
+ version: 6.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2021-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -422,6 +422,9 @@ files:
422
422
  - lib/puppet/feature/ssh.rb
423
423
  - lib/puppet/feature/telnet.rb
424
424
  - lib/puppet/feature/zlib.rb
425
+ - lib/puppet/ffi/posix.rb
426
+ - lib/puppet/ffi/posix/constants.rb
427
+ - lib/puppet/ffi/posix/functions.rb
425
428
  - lib/puppet/file_bucket.rb
426
429
  - lib/puppet/file_bucket/dipper.rb
427
430
  - lib/puppet/file_bucket/file.rb
@@ -596,7 +599,9 @@ files:
596
599
  - lib/puppet/indirector/errors.rb
597
600
  - lib/puppet/indirector/exec.rb
598
601
  - lib/puppet/indirector/face.rb
602
+ - lib/puppet/indirector/fact_search.rb
599
603
  - lib/puppet/indirector/facts/facter.rb
604
+ - lib/puppet/indirector/facts/json.rb
600
605
  - lib/puppet/indirector/facts/memory.rb
601
606
  - lib/puppet/indirector/facts/network_device.rb
602
607
  - lib/puppet/indirector/facts/rest.rb
@@ -627,6 +632,7 @@ files:
627
632
  - lib/puppet/indirector/memory.rb
628
633
  - lib/puppet/indirector/msgpack.rb
629
634
  - lib/puppet/indirector/node/exec.rb
635
+ - lib/puppet/indirector/node/json.rb
630
636
  - lib/puppet/indirector/node/memory.rb
631
637
  - lib/puppet/indirector/node/msgpack.rb
632
638
  - lib/puppet/indirector/node/plain.rb
@@ -635,6 +641,7 @@ files:
635
641
  - lib/puppet/indirector/node/yaml.rb
636
642
  - lib/puppet/indirector/none.rb
637
643
  - lib/puppet/indirector/plain.rb
644
+ - lib/puppet/indirector/report/json.rb
638
645
  - lib/puppet/indirector/report/msgpack.rb
639
646
  - lib/puppet/indirector/report/processor.rb
640
647
  - lib/puppet/indirector/report/rest.rb
@@ -1139,6 +1146,7 @@ files:
1139
1146
  - lib/puppet/scheduler/splay_job.rb
1140
1147
  - lib/puppet/scheduler/timer.rb
1141
1148
  - lib/puppet/settings.rb
1149
+ - lib/puppet/settings/alias_setting.rb
1142
1150
  - lib/puppet/settings/array_setting.rb
1143
1151
  - lib/puppet/settings/autosign_setting.rb
1144
1152
  - lib/puppet/settings/base_setting.rb
@@ -1247,6 +1255,7 @@ files:
1247
1255
  - lib/puppet/util/errors.rb
1248
1256
  - lib/puppet/util/execution.rb
1249
1257
  - lib/puppet/util/execution_stub.rb
1258
+ - lib/puppet/util/fact_dif.rb
1250
1259
  - lib/puppet/util/feature.rb
1251
1260
  - lib/puppet/util/file_watcher.rb
1252
1261
  - lib/puppet/util/fileparsing.rb
@@ -1401,6 +1410,7 @@ files:
1401
1410
  - man/man8/puppet.8
1402
1411
  - spec/fixtures/faulty_face/puppet/face/syntax.rb
1403
1412
  - spec/fixtures/hiera.yaml
1413
+ - spec/fixtures/integration/application/agent/cached_deferred_catalog.json
1404
1414
  - spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
1405
1415
  - spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
1406
1416
  - spec/fixtures/integration/node/environment/sitedir/00_a.pp
@@ -1777,6 +1787,7 @@ files:
1777
1787
  - spec/fixtures/unit/provider/service/smf/svcs_fmri.out
1778
1788
  - spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
1779
1789
  - spec/fixtures/unit/provider/service/systemd/list_unit_files_services
1790
+ - spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
1780
1791
  - spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
1781
1792
  - spec/fixtures/unit/reports/tagmail/tagmail_email.conf
1782
1793
  - spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
@@ -1800,13 +1811,13 @@ files:
1800
1811
  - spec/integration/agent/logging_spec.rb
1801
1812
  - spec/integration/application/agent_spec.rb
1802
1813
  - spec/integration/application/apply_spec.rb
1803
- - spec/integration/application/config_spec.rb
1804
1814
  - spec/integration/application/doc_spec.rb
1805
1815
  - spec/integration/application/filebucket_spec.rb
1806
1816
  - spec/integration/application/help_spec.rb
1807
1817
  - spec/integration/application/lookup_spec.rb
1808
1818
  - spec/integration/application/module_spec.rb
1809
1819
  - spec/integration/application/plugin_spec.rb
1820
+ - spec/integration/application/resource_spec.rb
1810
1821
  - spec/integration/configurer_spec.rb
1811
1822
  - spec/integration/data_binding_spec.rb
1812
1823
  - spec/integration/defaults_spec.rb
@@ -1821,7 +1832,6 @@ files:
1821
1832
  - spec/integration/indirector/facts/facter_spec.rb
1822
1833
  - spec/integration/indirector/file_content/file_server_spec.rb
1823
1834
  - spec/integration/indirector/file_metadata/file_server_spec.rb
1824
- - spec/integration/indirector/report/yaml.rb
1825
1835
  - spec/integration/network/authconfig_spec.rb
1826
1836
  - spec/integration/network/formats_spec.rb
1827
1837
  - spec/integration/network/http/api/indirected_routes_spec.rb
@@ -1867,10 +1877,8 @@ files:
1867
1877
  - spec/integration/util/windows/user_spec.rb
1868
1878
  - spec/integration/util_spec.rb
1869
1879
  - spec/lib/matchers/containment_matchers.rb
1870
- - spec/lib/matchers/include.rb
1871
1880
  - spec/lib/matchers/include_in_order.rb
1872
1881
  - spec/lib/matchers/include_in_order_spec.rb
1873
- - spec/lib/matchers/include_spec.rb
1874
1882
  - spec/lib/matchers/json.rb
1875
1883
  - spec/lib/matchers/match_tokens2.rb
1876
1884
  - spec/lib/matchers/relationship_graph_matchers.rb
@@ -1967,7 +1975,6 @@ files:
1967
1975
  - spec/unit/environments_spec.rb
1968
1976
  - spec/unit/etc_spec.rb
1969
1977
  - spec/unit/external/pson_spec.rb
1970
- - spec/unit/face/catalog_spec.rb
1971
1978
  - spec/unit/face/config_spec.rb
1972
1979
  - spec/unit/face/epp_face_spec.rb
1973
1980
  - spec/unit/face/facts_spec.rb
@@ -1979,7 +1986,6 @@ files:
1979
1986
  - spec/unit/face/module/search_spec.rb
1980
1987
  - spec/unit/face/module/uninstall_spec.rb
1981
1988
  - spec/unit/face/module/upgrade_spec.rb
1982
- - spec/unit/face/module_spec.rb
1983
1989
  - spec/unit/face/node_spec.rb
1984
1990
  - spec/unit/face/parser_spec.rb
1985
1991
  - spec/unit/face/plugin_spec.rb
@@ -2124,6 +2130,7 @@ files:
2124
2130
  - spec/unit/indirector/exec_spec.rb
2125
2131
  - spec/unit/indirector/face_spec.rb
2126
2132
  - spec/unit/indirector/facts/facter_spec.rb
2133
+ - spec/unit/indirector/facts/json_spec.rb
2127
2134
  - spec/unit/indirector/facts/network_device_spec.rb
2128
2135
  - spec/unit/indirector/facts/rest_spec.rb
2129
2136
  - spec/unit/indirector/facts/store_configs_spec.rb
@@ -2148,6 +2155,7 @@ files:
2148
2155
  - spec/unit/indirector/memory_spec.rb
2149
2156
  - spec/unit/indirector/msgpack_spec.rb
2150
2157
  - spec/unit/indirector/node/exec_spec.rb
2158
+ - spec/unit/indirector/node/json_spec.rb
2151
2159
  - spec/unit/indirector/node/memory_spec.rb
2152
2160
  - spec/unit/indirector/node/msgpack_spec.rb
2153
2161
  - spec/unit/indirector/node/plain_spec.rb
@@ -2156,6 +2164,7 @@ files:
2156
2164
  - spec/unit/indirector/node/yaml_spec.rb
2157
2165
  - spec/unit/indirector/none_spec.rb
2158
2166
  - spec/unit/indirector/plain_spec.rb
2167
+ - spec/unit/indirector/report/json_spec.rb
2159
2168
  - spec/unit/indirector/report/msgpack_spec.rb
2160
2169
  - spec/unit/indirector/report/processor_spec.rb
2161
2170
  - spec/unit/indirector/report/rest_spec.rb
@@ -2280,6 +2289,7 @@ files:
2280
2289
  - spec/unit/pops/evaluator/collections_ops_spec.rb
2281
2290
  - spec/unit/pops/evaluator/comparison_ops_spec.rb
2282
2291
  - spec/unit/pops/evaluator/conditionals_spec.rb
2292
+ - spec/unit/pops/evaluator/deferred_resolver_spec.rb
2283
2293
  - spec/unit/pops/evaluator/evaluating_parser_spec.rb
2284
2294
  - spec/unit/pops/evaluator/evaluator_rspec_helper.rb
2285
2295
  - spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
@@ -2670,6 +2680,7 @@ summary: Puppet, an automated configuration management tool
2670
2680
  test_files:
2671
2681
  - spec/fixtures/faulty_face/puppet/face/syntax.rb
2672
2682
  - spec/fixtures/hiera.yaml
2683
+ - spec/fixtures/integration/application/agent/cached_deferred_catalog.json
2673
2684
  - spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb
2674
2685
  - spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb
2675
2686
  - spec/fixtures/integration/node/environment/sitedir/00_a.pp
@@ -3046,6 +3057,7 @@ test_files:
3046
3057
  - spec/fixtures/unit/provider/service/smf/svcs_fmri.out
3047
3058
  - spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out
3048
3059
  - spec/fixtures/unit/provider/service/systemd/list_unit_files_services
3060
+ - spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset
3049
3061
  - spec/fixtures/unit/provider/user/aix/aix_passwd_file.out
3050
3062
  - spec/fixtures/unit/reports/tagmail/tagmail_email.conf
3051
3063
  - spec/fixtures/unit/reports/tagmail/tagmail_failers.conf
@@ -3069,13 +3081,13 @@ test_files:
3069
3081
  - spec/integration/agent/logging_spec.rb
3070
3082
  - spec/integration/application/agent_spec.rb
3071
3083
  - spec/integration/application/apply_spec.rb
3072
- - spec/integration/application/config_spec.rb
3073
3084
  - spec/integration/application/doc_spec.rb
3074
3085
  - spec/integration/application/filebucket_spec.rb
3075
3086
  - spec/integration/application/help_spec.rb
3076
3087
  - spec/integration/application/lookup_spec.rb
3077
3088
  - spec/integration/application/module_spec.rb
3078
3089
  - spec/integration/application/plugin_spec.rb
3090
+ - spec/integration/application/resource_spec.rb
3079
3091
  - spec/integration/configurer_spec.rb
3080
3092
  - spec/integration/data_binding_spec.rb
3081
3093
  - spec/integration/defaults_spec.rb
@@ -3090,7 +3102,6 @@ test_files:
3090
3102
  - spec/integration/indirector/facts/facter_spec.rb
3091
3103
  - spec/integration/indirector/file_content/file_server_spec.rb
3092
3104
  - spec/integration/indirector/file_metadata/file_server_spec.rb
3093
- - spec/integration/indirector/report/yaml.rb
3094
3105
  - spec/integration/network/authconfig_spec.rb
3095
3106
  - spec/integration/network/formats_spec.rb
3096
3107
  - spec/integration/network/http/api/indirected_routes_spec.rb
@@ -3136,10 +3147,8 @@ test_files:
3136
3147
  - spec/integration/util/windows/user_spec.rb
3137
3148
  - spec/integration/util_spec.rb
3138
3149
  - spec/lib/matchers/containment_matchers.rb
3139
- - spec/lib/matchers/include.rb
3140
3150
  - spec/lib/matchers/include_in_order.rb
3141
3151
  - spec/lib/matchers/include_in_order_spec.rb
3142
- - spec/lib/matchers/include_spec.rb
3143
3152
  - spec/lib/matchers/json.rb
3144
3153
  - spec/lib/matchers/match_tokens2.rb
3145
3154
  - spec/lib/matchers/relationship_graph_matchers.rb
@@ -3236,7 +3245,6 @@ test_files:
3236
3245
  - spec/unit/environments_spec.rb
3237
3246
  - spec/unit/etc_spec.rb
3238
3247
  - spec/unit/external/pson_spec.rb
3239
- - spec/unit/face/catalog_spec.rb
3240
3248
  - spec/unit/face/config_spec.rb
3241
3249
  - spec/unit/face/epp_face_spec.rb
3242
3250
  - spec/unit/face/facts_spec.rb
@@ -3248,7 +3256,6 @@ test_files:
3248
3256
  - spec/unit/face/module/search_spec.rb
3249
3257
  - spec/unit/face/module/uninstall_spec.rb
3250
3258
  - spec/unit/face/module/upgrade_spec.rb
3251
- - spec/unit/face/module_spec.rb
3252
3259
  - spec/unit/face/node_spec.rb
3253
3260
  - spec/unit/face/parser_spec.rb
3254
3261
  - spec/unit/face/plugin_spec.rb
@@ -3393,6 +3400,7 @@ test_files:
3393
3400
  - spec/unit/indirector/exec_spec.rb
3394
3401
  - spec/unit/indirector/face_spec.rb
3395
3402
  - spec/unit/indirector/facts/facter_spec.rb
3403
+ - spec/unit/indirector/facts/json_spec.rb
3396
3404
  - spec/unit/indirector/facts/network_device_spec.rb
3397
3405
  - spec/unit/indirector/facts/rest_spec.rb
3398
3406
  - spec/unit/indirector/facts/store_configs_spec.rb
@@ -3417,6 +3425,7 @@ test_files:
3417
3425
  - spec/unit/indirector/memory_spec.rb
3418
3426
  - spec/unit/indirector/msgpack_spec.rb
3419
3427
  - spec/unit/indirector/node/exec_spec.rb
3428
+ - spec/unit/indirector/node/json_spec.rb
3420
3429
  - spec/unit/indirector/node/memory_spec.rb
3421
3430
  - spec/unit/indirector/node/msgpack_spec.rb
3422
3431
  - spec/unit/indirector/node/plain_spec.rb
@@ -3425,6 +3434,7 @@ test_files:
3425
3434
  - spec/unit/indirector/node/yaml_spec.rb
3426
3435
  - spec/unit/indirector/none_spec.rb
3427
3436
  - spec/unit/indirector/plain_spec.rb
3437
+ - spec/unit/indirector/report/json_spec.rb
3428
3438
  - spec/unit/indirector/report/msgpack_spec.rb
3429
3439
  - spec/unit/indirector/report/processor_spec.rb
3430
3440
  - spec/unit/indirector/report/rest_spec.rb
@@ -3549,6 +3559,7 @@ test_files:
3549
3559
  - spec/unit/pops/evaluator/collections_ops_spec.rb
3550
3560
  - spec/unit/pops/evaluator/comparison_ops_spec.rb
3551
3561
  - spec/unit/pops/evaluator/conditionals_spec.rb
3562
+ - spec/unit/pops/evaluator/deferred_resolver_spec.rb
3552
3563
  - spec/unit/pops/evaluator/evaluating_parser_spec.rb
3553
3564
  - spec/unit/pops/evaluator/evaluator_rspec_helper.rb
3554
3565
  - spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb
@@ -1,74 +0,0 @@
1
- # coding: utf-8
2
- require 'spec_helper'
3
- require 'puppet/application/config'
4
-
5
- #describe "puppet config" do
6
- describe Puppet::Face[:config, '0.0.1'] do
7
- include PuppetSpec::Files
8
-
9
- # different UTF-8 widths
10
- # 1-byte A
11
- # 2-byte ۿ - http://www.fileformat.info/info/unicode/char/06ff/index.htm - 0xDB 0xBF / 219 191
12
- # 3-byte ᚠ - http://www.fileformat.info/info/unicode/char/16A0/index.htm - 0xE1 0x9A 0xA0 / 225 154 160
13
- # 4-byte 𠜎 - http://www.fileformat.info/info/unicode/char/2070E/index.htm - 0xF0 0xA0 0x9C 0x8E / 240 160 156 142
14
- MIXED_UTF8 = "A\u06FF\u16A0\u{2070E}" # Aۿᚠ𠜎
15
-
16
- let(:tmp_config) { tmpfile('puppet.conf') }
17
- let(:config) { Puppet::Application[:config] }
18
-
19
- def read_utf8(path)
20
- File.read(tmp_config, :encoding => 'UTF-8')
21
- end
22
-
23
- def write_utf8(path, content)
24
- File.write(tmp_config, content, 0, :encoding => 'UTF-8')
25
- end
26
-
27
- it "reads a UTF-8 value" do
28
- write_utf8(tmp_config, <<~EOF)
29
- [main]
30
- tags=#{MIXED_UTF8}
31
- EOF
32
-
33
- Puppet.initialize_settings(['--config', tmp_config])
34
- config.command_line.args = ['print', 'tags' ]
35
-
36
- expect {
37
- config.run
38
- }.to exit_with(0)
39
- .and output("#{MIXED_UTF8}\n").to_stdout
40
- end
41
-
42
- it "sets a UTF-8 value" do
43
- Puppet.initialize_settings(['--config', tmp_config])
44
- config.command_line.args = ['set', 'tags', MIXED_UTF8 ]
45
-
46
- expect {
47
- config.run
48
- }.to exit_with(0)
49
-
50
- expect(read_utf8(tmp_config)).to eq(<<~EOF)
51
- [main]
52
- tags = #{MIXED_UTF8}
53
- EOF
54
- end
55
-
56
- it "deletes a key" do
57
- write_utf8(tmp_config, <<~EOF)
58
- [main]
59
- tags=#{MIXED_UTF8}
60
- EOF
61
-
62
- Puppet.initialize_settings(['--config', tmp_config])
63
- config.command_line.args = ['delete', 'tags']
64
-
65
- expect {
66
- config.run
67
- }.to exit_with(0)
68
- .and output(/Deleted setting from 'main': 'tags=#{MIXED_UTF8}'/).to_stdout
69
-
70
- expect(read_utf8(tmp_config)).to eq(<<~EOF)
71
- [main]
72
- EOF
73
- end
74
- end
@@ -1,27 +0,0 @@
1
- module Matchers; module Include
2
- extend RSpec::Matchers::DSL
3
-
4
- matcher :include_in_any_order do |*matchers|
5
- match do |enumerable|
6
- @not_matched = []
7
- expected_as_array.each do |matcher|
8
- if enumerable.empty?
9
- break
10
- end
11
-
12
- if found = enumerable.find { |elem| matcher.matches?(elem) }
13
- enumerable = enumerable.reject { |elem| elem == found }
14
- else
15
- @not_matched << matcher
16
- end
17
- end
18
-
19
-
20
- @not_matched.empty? && enumerable.empty?
21
- end
22
-
23
- failure_message do |enumerable|
24
- "did not match #{@not_matched.collect(&:description).join(', ')} in #{enumerable.inspect}: <#{@not_matched.collect(&:failure_message).join('>, <')}>"
25
- end
26
- end
27
- end; end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
- require 'matchers/include'
3
-
4
- describe "include matchers" do
5
- include Matchers::Include
6
-
7
- context :include_in_any_order do
8
- it "matches an empty list" do
9
- expect([]).to include_in_any_order()
10
- end
11
-
12
- it "matches a list with a single element" do
13
- expect([1]).to include_in_any_order(eq(1))
14
- end
15
-
16
- it "does not match when an expected element is missing" do
17
- expect([1]).to_not include_in_any_order(eq(2))
18
- end
19
-
20
- it "matches a list with 2 elements in a different order from the expectation" do
21
- expect([1, 2]).to include_in_any_order(eq(2), eq(1))
22
- end
23
-
24
- it "does not match when there are more than just the expected elements" do
25
- expect([1, 2]).to_not include_in_any_order(eq(1))
26
- end
27
-
28
- it "matches multiple, equal elements when there are multiple, equal exepectations" do
29
- expect([1, 1]).to include_in_any_order(eq(1), eq(1))
30
- end
31
- end
32
- end