puppet 6.24.0-x64-mingw32 → 7.0.0-x64-mingw32

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 (613) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +1 -3
  5. data/Gemfile.lock +35 -47
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/build_defaults.yaml +1 -1
  9. data/ext/osx/file_mapping.yaml +0 -5
  10. data/ext/osx/puppet.plist +0 -2
  11. data/ext/project_data.yaml +1 -15
  12. data/ext/redhat/puppet.spec.erb +0 -1
  13. data/ext/windows/service/daemon.rb +6 -5
  14. data/install.rb +21 -17
  15. data/lib/puppet.rb +14 -23
  16. data/lib/puppet/application.rb +178 -108
  17. data/lib/puppet/application/agent.rb +4 -12
  18. data/lib/puppet/application/apply.rb +2 -4
  19. data/lib/puppet/application/device.rb +100 -106
  20. data/lib/puppet/application/filebucket.rb +13 -10
  21. data/lib/puppet/application/resource.rb +3 -17
  22. data/lib/puppet/application/script.rb +0 -2
  23. data/lib/puppet/application/ssl.rb +1 -13
  24. data/lib/puppet/application_support.rb +0 -7
  25. data/lib/puppet/configurer.rb +30 -45
  26. data/lib/puppet/configurer/downloader.rb +1 -2
  27. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  28. data/lib/puppet/defaults.rb +100 -192
  29. data/lib/puppet/environments.rb +60 -84
  30. data/lib/puppet/face/facts.rb +5 -103
  31. data/lib/puppet/face/help.rb +1 -1
  32. data/lib/puppet/face/help/action.erb +0 -1
  33. data/lib/puppet/face/help/face.erb +0 -1
  34. data/lib/puppet/face/node/clean.rb +0 -11
  35. data/lib/puppet/face/plugin.rb +5 -8
  36. data/lib/puppet/ffi/windows.rb +12 -0
  37. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  38. data/lib/puppet/ffi/windows/constants.rb +404 -0
  39. data/lib/puppet/ffi/windows/functions.rb +628 -0
  40. data/lib/puppet/ffi/windows/structs.rb +338 -0
  41. data/lib/puppet/file_serving/configuration.rb +0 -5
  42. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  43. data/lib/puppet/file_serving/fileset.rb +2 -14
  44. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  45. data/lib/puppet/file_serving/mount.rb +1 -2
  46. data/lib/puppet/file_system/file_impl.rb +1 -1
  47. data/lib/puppet/file_system/memory_file.rb +1 -8
  48. data/lib/puppet/file_system/windows.rb +2 -4
  49. data/lib/puppet/forge.rb +3 -3
  50. data/lib/puppet/forge/repository.rb +0 -1
  51. data/lib/puppet/functions/all.rb +1 -1
  52. data/lib/puppet/functions/camelcase.rb +1 -1
  53. data/lib/puppet/functions/capitalize.rb +2 -2
  54. data/lib/puppet/functions/downcase.rb +2 -2
  55. data/lib/puppet/functions/empty.rb +0 -8
  56. data/lib/puppet/functions/get.rb +5 -5
  57. data/lib/puppet/functions/group_by.rb +5 -13
  58. data/lib/puppet/functions/lest.rb +1 -1
  59. data/lib/puppet/functions/new.rb +100 -100
  60. data/lib/puppet/functions/partition.rb +4 -12
  61. data/lib/puppet/functions/require.rb +5 -5
  62. data/lib/puppet/functions/sort.rb +3 -3
  63. data/lib/puppet/functions/strftime.rb +0 -1
  64. data/lib/puppet/functions/tree_each.rb +9 -7
  65. data/lib/puppet/functions/type.rb +4 -4
  66. data/lib/puppet/functions/unwrap.rb +2 -17
  67. data/lib/puppet/functions/upcase.rb +2 -2
  68. data/lib/puppet/generate/models/type/type.rb +4 -1
  69. data/lib/puppet/http.rb +22 -13
  70. data/lib/puppet/http/client.rb +164 -114
  71. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  72. data/lib/puppet/http/errors.rb +16 -0
  73. data/lib/puppet/http/external_client.rb +5 -7
  74. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  75. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  76. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  77. data/lib/puppet/http/proxy.rb +137 -0
  78. data/lib/puppet/http/redirector.rb +4 -12
  79. data/lib/puppet/http/resolver.rb +5 -15
  80. data/lib/puppet/http/resolver/server_list.rb +10 -25
  81. data/lib/puppet/http/resolver/settings.rb +4 -7
  82. data/lib/puppet/http/resolver/srv.rb +7 -11
  83. data/lib/puppet/http/response.rb +36 -54
  84. data/lib/puppet/http/response_converter.rb +24 -0
  85. data/lib/puppet/http/response_net_http.rb +42 -0
  86. data/lib/puppet/http/retry_after_handler.rb +4 -13
  87. data/lib/puppet/http/service.rb +12 -26
  88. data/lib/puppet/http/service/ca.rb +11 -22
  89. data/lib/puppet/http/service/compiler.rb +22 -138
  90. data/lib/puppet/http/service/file_server.rb +19 -29
  91. data/lib/puppet/http/service/puppetserver.rb +26 -12
  92. data/lib/puppet/http/service/report.rb +8 -10
  93. data/lib/puppet/http/session.rb +11 -20
  94. data/lib/puppet/{network/http → http}/site.rb +1 -2
  95. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  96. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  97. data/lib/puppet/indirector/facts/rest.rb +3 -22
  98. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  99. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  100. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  101. data/lib/puppet/indirector/file_server.rb +1 -8
  102. data/lib/puppet/indirector/generic_http.rb +0 -11
  103. data/lib/puppet/indirector/node/rest.rb +2 -4
  104. data/lib/puppet/indirector/report/rest.rb +3 -8
  105. data/lib/puppet/indirector/request.rb +0 -101
  106. data/lib/puppet/indirector/resource/ral.rb +1 -6
  107. data/lib/puppet/indirector/rest.rb +12 -263
  108. data/lib/puppet/interface/documentation.rb +0 -1
  109. data/lib/puppet/module_tool/applications.rb +0 -1
  110. data/lib/puppet/module_tool/applications/installer.rb +2 -52
  111. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  112. data/lib/puppet/network/authconfig.rb +2 -96
  113. data/lib/puppet/network/authorization.rb +13 -35
  114. data/lib/puppet/network/formats.rb +0 -67
  115. data/lib/puppet/network/http.rb +3 -3
  116. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  117. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  118. data/lib/puppet/network/http/connection.rb +247 -316
  119. data/lib/puppet/network/http/handler.rb +0 -1
  120. data/lib/puppet/network/http_pool.rb +16 -34
  121. data/lib/puppet/node.rb +1 -30
  122. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  123. data/lib/puppet/pal/pal_impl.rb +3 -1
  124. data/lib/puppet/parser/ast/leaf.rb +2 -3
  125. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  126. data/lib/puppet/parser/compiler.rb +0 -198
  127. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  128. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  129. data/lib/puppet/parser/resource.rb +0 -69
  130. data/lib/puppet/parser/templatewrapper.rb +1 -1
  131. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  132. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  133. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  134. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  135. data/lib/puppet/pops/issues.rb +0 -5
  136. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  137. data/lib/puppet/pops/model/ast.pp +0 -42
  138. data/lib/puppet/pops/model/ast.rb +0 -290
  139. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  140. data/lib/puppet/pops/model/factory.rb +0 -45
  141. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  142. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  143. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  144. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  145. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  146. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  147. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  148. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  149. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  150. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  151. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  152. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  153. data/lib/puppet/pops/types/type_parser.rb +0 -4
  154. data/lib/puppet/pops/types/types.rb +0 -1
  155. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  156. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  157. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  158. data/lib/puppet/property/list.rb +1 -1
  159. data/lib/puppet/provider.rb +0 -13
  160. data/lib/puppet/provider/exec/posix.rb +4 -16
  161. data/lib/puppet/provider/group/groupadd.rb +8 -13
  162. data/lib/puppet/provider/nameservice.rb +0 -18
  163. data/lib/puppet/provider/package/apt.rb +2 -34
  164. data/lib/puppet/provider/package/aptitude.rb +0 -6
  165. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  166. data/lib/puppet/provider/package/dpkg.rb +0 -10
  167. data/lib/puppet/provider/package/gem.rb +23 -3
  168. data/lib/puppet/provider/package/nim.rb +6 -11
  169. data/lib/puppet/provider/package/pip.rb +3 -16
  170. data/lib/puppet/provider/package/pkg.rb +0 -4
  171. data/lib/puppet/provider/package/portage.rb +1 -1
  172. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  173. data/lib/puppet/provider/parsedfile.rb +0 -3
  174. data/lib/puppet/provider/service/debian.rb +0 -2
  175. data/lib/puppet/provider/service/smf.rb +191 -73
  176. data/lib/puppet/provider/service/systemd.rb +4 -14
  177. data/lib/puppet/provider/service/windows.rb +0 -38
  178. data/lib/puppet/provider/user/aix.rb +2 -2
  179. data/lib/puppet/provider/user/directoryservice.rb +10 -33
  180. data/lib/puppet/provider/user/useradd.rb +8 -62
  181. data/lib/puppet/reference/configuration.rb +8 -7
  182. data/lib/puppet/reference/indirection.rb +1 -1
  183. data/lib/puppet/resource.rb +1 -89
  184. data/lib/puppet/resource/catalog.rb +1 -14
  185. data/lib/puppet/resource/type.rb +3 -119
  186. data/lib/puppet/resource/type_collection.rb +3 -48
  187. data/lib/puppet/runtime.rb +1 -2
  188. data/lib/puppet/settings.rb +80 -96
  189. data/lib/puppet/settings/environment_conf.rb +0 -1
  190. data/lib/puppet/settings/integer_setting.rb +17 -0
  191. data/lib/puppet/settings/port_setting.rb +15 -0
  192. data/lib/puppet/settings/priority_setting.rb +5 -4
  193. data/lib/puppet/ssl.rb +10 -6
  194. data/lib/puppet/ssl/base.rb +3 -5
  195. data/lib/puppet/ssl/certificate.rb +0 -6
  196. data/lib/puppet/ssl/certificate_request.rb +1 -12
  197. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  198. data/lib/puppet/ssl/oids.rb +3 -1
  199. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  200. data/lib/puppet/ssl/state_machine.rb +3 -1
  201. data/lib/puppet/ssl/verifier.rb +2 -0
  202. data/lib/puppet/test/test_helper.rb +1 -3
  203. data/lib/puppet/transaction.rb +1 -7
  204. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  205. data/lib/puppet/transaction/report.rb +2 -4
  206. data/lib/puppet/type.rb +0 -76
  207. data/lib/puppet/type/exec.rb +3 -16
  208. data/lib/puppet/type/file.rb +6 -26
  209. data/lib/puppet/type/file/checksum.rb +1 -1
  210. data/lib/puppet/type/file/mode.rb +0 -6
  211. data/lib/puppet/type/file/selcontext.rb +1 -1
  212. data/lib/puppet/type/file/source.rb +1 -1
  213. data/lib/puppet/type/filebucket.rb +3 -3
  214. data/lib/puppet/type/package.rb +8 -16
  215. data/lib/puppet/type/service.rb +38 -18
  216. data/lib/puppet/type/tidy.rb +3 -22
  217. data/lib/puppet/type/user.rb +20 -38
  218. data/lib/puppet/util/autoload.rb +8 -1
  219. data/lib/puppet/util/execution.rb +0 -11
  220. data/lib/puppet/util/http_proxy.rb +2 -215
  221. data/lib/puppet/util/monkey_patches.rb +0 -53
  222. data/lib/puppet/util/posix.rb +5 -54
  223. data/lib/puppet/util/rdoc.rb +0 -7
  224. data/lib/puppet/util/retry_action.rb +1 -1
  225. data/lib/puppet/util/run_mode.rb +9 -1
  226. data/lib/puppet/util/selinux.rb +4 -30
  227. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  228. data/lib/puppet/util/windows.rb +3 -8
  229. data/lib/puppet/util/windows/adsi.rb +0 -46
  230. data/lib/puppet/util/windows/daemon.rb +360 -0
  231. data/lib/puppet/util/windows/error.rb +1 -0
  232. data/lib/puppet/util/windows/eventlog.rb +4 -9
  233. data/lib/puppet/util/windows/file.rb +8 -242
  234. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  235. data/lib/puppet/util/windows/principal.rb +2 -9
  236. data/lib/puppet/util/windows/process.rb +4 -226
  237. data/lib/puppet/util/windows/service.rb +9 -460
  238. data/lib/puppet/util/windows/sid.rb +2 -6
  239. data/lib/puppet/util/windows/string.rb +12 -13
  240. data/lib/puppet/util/yaml.rb +0 -22
  241. data/lib/puppet/vendor/require_vendored.rb +0 -1
  242. data/lib/puppet/version.rb +1 -1
  243. data/lib/puppet/x509.rb +5 -1
  244. data/lib/puppet/x509/cert_provider.rb +29 -1
  245. data/locales/puppet.pot +722 -1527
  246. data/man/man5/puppet.conf.5 +266 -354
  247. data/man/man8/puppet-agent.8 +2 -2
  248. data/man/man8/puppet-apply.8 +2 -2
  249. data/man/man8/puppet-catalog.8 +9 -9
  250. data/man/man8/puppet-config.8 +1 -1
  251. data/man/man8/puppet-describe.8 +1 -1
  252. data/man/man8/puppet-device.8 +2 -2
  253. data/man/man8/puppet-doc.8 +1 -1
  254. data/man/man8/puppet-epp.8 +1 -1
  255. data/man/man8/puppet-facts.8 +8 -51
  256. data/man/man8/puppet-filebucket.8 +4 -4
  257. data/man/man8/puppet-generate.8 +1 -1
  258. data/man/man8/puppet-help.8 +1 -1
  259. data/man/man8/puppet-lookup.8 +1 -1
  260. data/man/man8/puppet-module.8 +1 -58
  261. data/man/man8/puppet-node.8 +5 -5
  262. data/man/man8/puppet-parser.8 +1 -1
  263. data/man/man8/puppet-plugin.8 +1 -1
  264. data/man/man8/puppet-report.8 +5 -5
  265. data/man/man8/puppet-resource.8 +1 -1
  266. data/man/man8/puppet-script.8 +2 -2
  267. data/man/man8/puppet-ssl.8 +1 -5
  268. data/man/man8/puppet.8 +2 -2
  269. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  270. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  271. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  272. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  273. data/spec/fixtures/ssl/ca.pem +35 -57
  274. data/spec/fixtures/ssl/crl.pem +18 -28
  275. data/spec/fixtures/ssl/ec-key.pem +11 -11
  276. data/spec/fixtures/ssl/ec.pem +24 -33
  277. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  278. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  279. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  280. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  281. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  282. data/spec/fixtures/ssl/intermediate.pem +36 -57
  283. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  284. data/spec/fixtures/ssl/pluto.pem +30 -52
  285. data/spec/fixtures/ssl/request-key.pem +57 -107
  286. data/spec/fixtures/ssl/request.pem +26 -47
  287. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  288. data/spec/fixtures/ssl/revoked.pem +30 -52
  289. data/spec/fixtures/ssl/signed-key.pem +57 -107
  290. data/spec/fixtures/ssl/signed.pem +30 -52
  291. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  292. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  293. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  294. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  295. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  296. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  297. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  298. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  299. data/spec/integration/application/agent_spec.rb +27 -171
  300. data/spec/integration/application/apply_spec.rb +1 -20
  301. data/spec/integration/application/filebucket_spec.rb +16 -27
  302. data/spec/integration/application/help_spec.rb +2 -0
  303. data/spec/integration/application/module_spec.rb +0 -21
  304. data/spec/integration/application/plugin_spec.rb +24 -2
  305. data/spec/integration/defaults_spec.rb +14 -3
  306. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  307. data/spec/integration/http/client_spec.rb +0 -12
  308. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  309. data/spec/integration/indirector/facts/facter_spec.rb +36 -90
  310. data/spec/integration/network/http_pool_spec.rb +3 -21
  311. data/spec/integration/parser/catalog_spec.rb +0 -38
  312. data/spec/integration/parser/node_spec.rb +0 -9
  313. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  314. data/spec/integration/resource/type_collection_spec.rb +6 -2
  315. data/spec/integration/transaction_spec.rb +9 -4
  316. data/spec/integration/type/exec_spec.rb +45 -70
  317. data/spec/integration/type/file_spec.rb +5 -4
  318. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  319. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  320. data/spec/integration/util/windows/principal_spec.rb +0 -21
  321. data/spec/integration/util/windows/registry_spec.rb +10 -6
  322. data/spec/integration/util/windows/security_spec.rb +1 -1
  323. data/spec/lib/matchers/include.rb +27 -0
  324. data/spec/lib/matchers/include_spec.rb +32 -0
  325. data/spec/lib/puppet/test_ca.rb +2 -7
  326. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  327. data/spec/lib/puppet_spec/settings.rb +1 -1
  328. data/spec/spec_helper.rb +7 -12
  329. data/spec/unit/agent_spec.rb +6 -10
  330. data/spec/unit/application/agent_spec.rb +3 -7
  331. data/spec/unit/application/facts_spec.rb +12 -456
  332. data/spec/unit/application/filebucket_spec.rb +43 -39
  333. data/spec/unit/application/ssl_spec.rb +2 -25
  334. data/spec/unit/application_spec.rb +9 -51
  335. data/spec/unit/certificate_factory_spec.rb +1 -1
  336. data/spec/unit/configurer/downloader_spec.rb +6 -8
  337. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  338. data/spec/unit/configurer_spec.rb +12 -32
  339. data/spec/unit/confine/feature_spec.rb +1 -1
  340. data/spec/unit/confine_spec.rb +2 -8
  341. data/spec/unit/context/trusted_information_spec.rb +2 -6
  342. data/spec/unit/defaults_spec.rb +68 -54
  343. data/spec/unit/environments_spec.rb +68 -259
  344. data/spec/unit/face/node_spec.rb +11 -0
  345. data/spec/unit/face/plugin_spec.rb +73 -33
  346. data/spec/unit/file_bucket/file_spec.rb +1 -1
  347. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  348. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  349. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  350. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  351. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  352. data/spec/unit/file_system_spec.rb +0 -15
  353. data/spec/unit/forge/module_release_spec.rb +7 -2
  354. data/spec/unit/functions/assert_type_spec.rb +1 -1
  355. data/spec/unit/functions/camelcase_spec.rb +1 -1
  356. data/spec/unit/functions/capitalize_spec.rb +1 -1
  357. data/spec/unit/functions/downcase_spec.rb +1 -1
  358. data/spec/unit/functions/empty_spec.rb +0 -10
  359. data/spec/unit/functions/unwrap_spec.rb +0 -8
  360. data/spec/unit/functions/upcase_spec.rb +1 -1
  361. data/spec/unit/functions4_spec.rb +2 -2
  362. data/spec/unit/gettext/config_spec.rb +0 -12
  363. data/spec/unit/http/client_spec.rb +7 -8
  364. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  365. data/spec/unit/http/external_client_spec.rb +4 -4
  366. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  367. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  368. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  369. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  370. data/spec/unit/http/resolver_spec.rb +13 -13
  371. data/spec/unit/http/service/compiler_spec.rb +0 -185
  372. data/spec/unit/http/service/file_server_spec.rb +3 -3
  373. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  374. data/spec/unit/http/service_spec.rb +0 -1
  375. data/spec/unit/http/session_spec.rb +16 -14
  376. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  377. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -14
  378. data/spec/unit/indirector/face_spec.rb +1 -0
  379. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  380. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  381. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  382. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  383. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  384. data/spec/unit/indirector/file_server_spec.rb +1 -15
  385. data/spec/unit/indirector/indirection_spec.rb +12 -8
  386. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  387. data/spec/unit/indirector/request_spec.rb +0 -264
  388. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  389. data/spec/unit/indirector/rest_spec.rb +98 -752
  390. data/spec/unit/indirector_spec.rb +2 -2
  391. data/spec/unit/module_tool/applications/installer_spec.rb +0 -78
  392. data/spec/unit/network/authconfig_spec.rb +2 -129
  393. data/spec/unit/network/authorization_spec.rb +2 -55
  394. data/spec/unit/network/formats_spec.rb +4 -45
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  396. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  397. data/spec/unit/network/http/api_spec.rb +10 -0
  398. data/spec/unit/network/http/connection_spec.rb +19 -41
  399. data/spec/unit/network/http/handler_spec.rb +0 -1
  400. data/spec/unit/network/http_pool_spec.rb +0 -4
  401. data/spec/unit/node/environment_spec.rb +33 -21
  402. data/spec/unit/node_spec.rb +2 -54
  403. data/spec/unit/parser/compiler_spec.rb +19 -3
  404. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  405. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  406. data/spec/unit/parser/resource_spec.rb +8 -14
  407. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  408. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  409. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  410. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  411. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  412. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  413. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  414. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  415. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  416. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  417. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  418. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  419. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  420. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  421. data/spec/unit/pops/visitor_spec.rb +1 -1
  422. data/spec/unit/property_spec.rb +0 -1
  423. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  424. data/spec/unit/provider/nameservice_spec.rb +64 -122
  425. data/spec/unit/provider/package/apt_spec.rb +23 -28
  426. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  427. data/spec/unit/provider/package/base_spec.rb +5 -6
  428. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  429. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  430. data/spec/unit/provider/package/gem_spec.rb +32 -0
  431. data/spec/unit/provider/package/nim_spec.rb +0 -42
  432. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  433. data/spec/unit/provider/package/pip_spec.rb +11 -43
  434. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  435. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  436. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  437. data/spec/unit/provider/service/init_spec.rb +0 -1
  438. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  439. data/spec/unit/provider/service/smf_spec.rb +401 -165
  440. data/spec/unit/provider/service/systemd_spec.rb +8 -53
  441. data/spec/unit/provider/service/windows_spec.rb +0 -203
  442. data/spec/unit/provider/user/aix_spec.rb +0 -5
  443. data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
  444. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  445. data/spec/unit/provider/user/pw_spec.rb +0 -2
  446. data/spec/unit/provider/user/useradd_spec.rb +3 -71
  447. data/spec/unit/provider_spec.rb +8 -18
  448. data/spec/unit/resource/catalog_spec.rb +1 -1
  449. data/spec/unit/resource/type_collection_spec.rb +2 -22
  450. data/spec/unit/resource/type_spec.rb +1 -1
  451. data/spec/unit/resource_spec.rb +10 -67
  452. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  453. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  454. data/spec/unit/settings/port_setting_spec.rb +31 -0
  455. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  456. data/spec/unit/settings_spec.rb +79 -110
  457. data/spec/unit/ssl/base_spec.rb +37 -3
  458. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  459. data/spec/unit/ssl/certificate_spec.rb +2 -11
  460. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  461. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  462. data/spec/unit/ssl/verifier_spec.rb +0 -21
  463. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  464. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  465. data/spec/unit/transaction/report_spec.rb +0 -2
  466. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  467. data/spec/unit/transaction_spec.rb +55 -96
  468. data/spec/unit/type/exec_spec.rb +29 -76
  469. data/spec/unit/type/file/checksum_spec.rb +6 -6
  470. data/spec/unit/type/file/content_spec.rb +2 -1
  471. data/spec/unit/type/file/ensure_spec.rb +1 -1
  472. data/spec/unit/type/file/mode_spec.rb +1 -1
  473. data/spec/unit/type/file/selinux_spec.rb +5 -3
  474. data/spec/unit/type/file/source_spec.rb +4 -5
  475. data/spec/unit/type/file_spec.rb +18 -6
  476. data/spec/unit/type/group_spec.rb +6 -13
  477. data/spec/unit/type/package_spec.rb +1 -1
  478. data/spec/unit/type/resources_spec.rb +7 -7
  479. data/spec/unit/type/service_spec.rb +189 -60
  480. data/spec/unit/type/tidy_spec.rb +8 -24
  481. data/spec/unit/type/user_spec.rb +0 -45
  482. data/spec/unit/type_spec.rb +22 -2
  483. data/spec/unit/util/at_fork_spec.rb +2 -2
  484. data/spec/unit/util/autoload_spec.rb +1 -5
  485. data/spec/unit/util/backups_spec.rb +2 -3
  486. data/spec/unit/util/execution_spec.rb +11 -44
  487. data/spec/unit/util/inifile_spec.rb +14 -6
  488. data/spec/unit/util/log_spec.rb +7 -8
  489. data/spec/unit/util/logging_spec.rb +3 -3
  490. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  491. data/spec/unit/util/posix_spec.rb +15 -363
  492. data/spec/unit/util/run_mode_spec.rb +21 -121
  493. data/spec/unit/util/selinux_spec.rb +68 -163
  494. data/spec/unit/util/storage_spec.rb +1 -3
  495. data/spec/unit/util/suidmanager_spec.rb +41 -44
  496. data/spec/unit/util/windows/sid_spec.rb +0 -41
  497. data/spec/unit/util/windows/string_spec.rb +1 -3
  498. data/spec/unit/util/yaml_spec.rb +0 -54
  499. data/spec/unit/util_spec.rb +6 -31
  500. data/tasks/generate_cert_fixtures.rake +3 -12
  501. metadata +45 -253
  502. data/conf/auth.conf +0 -150
  503. data/lib/puppet/application/cert.rb +0 -76
  504. data/lib/puppet/application/key.rb +0 -4
  505. data/lib/puppet/application/man.rb +0 -4
  506. data/lib/puppet/application/status.rb +0 -4
  507. data/lib/puppet/face/key.rb +0 -16
  508. data/lib/puppet/face/man.rb +0 -145
  509. data/lib/puppet/face/module/build.rb +0 -14
  510. data/lib/puppet/face/module/generate.rb +0 -14
  511. data/lib/puppet/face/module/search.rb +0 -103
  512. data/lib/puppet/face/status.rb +0 -51
  513. data/lib/puppet/ffi/posix.rb +0 -10
  514. data/lib/puppet/ffi/posix/constants.rb +0 -14
  515. data/lib/puppet/ffi/posix/functions.rb +0 -24
  516. data/lib/puppet/indirector/certificate/file.rb +0 -9
  517. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  518. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  519. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  520. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  521. data/lib/puppet/indirector/file_content/http.rb +0 -22
  522. data/lib/puppet/indirector/key/file.rb +0 -46
  523. data/lib/puppet/indirector/key/memory.rb +0 -7
  524. data/lib/puppet/indirector/ssl_file.rb +0 -162
  525. data/lib/puppet/indirector/status.rb +0 -3
  526. data/lib/puppet/indirector/status/local.rb +0 -12
  527. data/lib/puppet/indirector/status/rest.rb +0 -27
  528. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  529. data/lib/puppet/network/auth_config_parser.rb +0 -90
  530. data/lib/puppet/network/authstore.rb +0 -283
  531. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  532. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  533. data/lib/puppet/network/http/base_pool.rb +0 -36
  534. data/lib/puppet/network/http/compression.rb +0 -127
  535. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  536. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  537. data/lib/puppet/network/rest_controller.rb +0 -2
  538. data/lib/puppet/network/rights.rb +0 -210
  539. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  540. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  541. data/lib/puppet/parser/environment_compiler.rb +0 -202
  542. data/lib/puppet/pops/types/enumeration.rb +0 -16
  543. data/lib/puppet/resource/capability_finder.rb +0 -154
  544. data/lib/puppet/rest/errors.rb +0 -15
  545. data/lib/puppet/rest/response.rb +0 -35
  546. data/lib/puppet/rest/route.rb +0 -85
  547. data/lib/puppet/rest/routes.rb +0 -135
  548. data/lib/puppet/settings/alias_setting.rb +0 -37
  549. data/lib/puppet/ssl/host.rb +0 -505
  550. data/lib/puppet/ssl/key.rb +0 -61
  551. data/lib/puppet/ssl/validator.rb +0 -61
  552. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  553. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  554. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  555. data/lib/puppet/status.rb +0 -40
  556. data/lib/puppet/util/connection.rb +0 -88
  557. data/lib/puppet/util/fact_dif.rb +0 -81
  558. data/lib/puppet/util/ssl.rb +0 -83
  559. data/lib/puppet/util/windows/api_types.rb +0 -309
  560. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  561. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  562. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  563. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  564. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  565. data/lib/puppet/vendor/pathspec/README.md +0 -53
  566. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  567. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  568. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  569. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  570. data/man/man8/puppet-key.8 +0 -126
  571. data/man/man8/puppet-man.8 +0 -76
  572. data/man/man8/puppet-status.8 +0 -108
  573. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  574. data/spec/fixtures/ssl/oid-key.pem +0 -117
  575. data/spec/fixtures/ssl/oid.pem +0 -69
  576. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  577. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  578. data/spec/integration/application/resource_spec.rb +0 -64
  579. data/spec/integration/application/ssl_spec.rb +0 -20
  580. data/spec/integration/network/authconfig_spec.rb +0 -256
  581. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  582. data/spec/unit/application/man_spec.rb +0 -52
  583. data/spec/unit/capability_spec.rb +0 -414
  584. data/spec/unit/face/key_spec.rb +0 -9
  585. data/spec/unit/face/module/search_spec.rb +0 -231
  586. data/spec/unit/face/status_spec.rb +0 -9
  587. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  588. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  589. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  590. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  591. data/spec/unit/indirector/key/file_spec.rb +0 -78
  592. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  593. data/spec/unit/indirector/status/local_spec.rb +0 -10
  594. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  595. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  596. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  597. data/spec/unit/network/authstore_spec.rb +0 -422
  598. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  599. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  600. data/spec/unit/network/http/compression_spec.rb +0 -240
  601. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  602. data/spec/unit/network/http_spec.rb +0 -9
  603. data/spec/unit/network/rights_spec.rb +0 -439
  604. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  605. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  606. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  607. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  608. data/spec/unit/rest/route_spec.rb +0 -132
  609. data/spec/unit/ssl/host_spec.rb +0 -645
  610. data/spec/unit/ssl/key_spec.rb +0 -173
  611. data/spec/unit/ssl/validator_spec.rb +0 -278
  612. data/spec/unit/status_spec.rb +0 -45
  613. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -143,11 +143,9 @@ describe Puppet::Util::Storage do
143
143
  end
144
144
 
145
145
  it "should raise an error if the state file does not contain valid YAML and cannot be renamed" do
146
- allow(File).to receive(:rename).and_call_original
147
-
148
146
  write_state_file('{ invalid')
149
147
 
150
- expect(File).to receive(:rename).with(@state_file, "#{@state_file}.bad").and_raise(SystemCallError)
148
+ expect(File).to receive(:rename).and_raise(SystemCallError)
151
149
 
152
150
  expect { Puppet::Util::Storage.load }.to raise_error(Puppet::Error, /Could not rename/)
153
151
  end
@@ -14,14 +14,12 @@ describe Puppet::Util::SUIDManager do
14
14
  pwent = double('pwent', :name => 'fred', :uid => 42, :gid => 42)
15
15
  allow(Etc).to receive(:getpwuid).with(42).and_return(pwent)
16
16
 
17
- unless Puppet::Util::Platform.windows?
18
- [:euid, :egid, :uid, :gid, :groups].each do |id|
19
- allow(Process).to receive("#{id}=") {|value| xids[id] = value}
20
- end
17
+ [:euid, :egid, :uid, :gid, :groups].each do |id|
18
+ allow(Process).to receive("#{id}=") {|value| xids[id] = value}
21
19
  end
22
20
  end
23
21
 
24
- describe "#initgroups", unless: Puppet::Util::Platform.windows? do
22
+ describe "#initgroups" do
25
23
  it "should use the primary group of the user as the 'basegid'" do
26
24
  expect(Process).to receive(:initgroups).with('fred', 42)
27
25
  described_class.initgroups(42)
@@ -29,7 +27,7 @@ describe Puppet::Util::SUIDManager do
29
27
  end
30
28
 
31
29
  describe "#uid" do
32
- it "should allow setting euid/egid", unless: Puppet::Util::Platform.windows? do
30
+ it "should allow setting euid/egid" do
33
31
  Puppet::Util::SUIDManager.egid = user[:gid]
34
32
  Puppet::Util::SUIDManager.euid = user[:uid]
35
33
 
@@ -39,7 +37,8 @@ describe Puppet::Util::SUIDManager do
39
37
  end
40
38
 
41
39
  describe "#asuser" do
42
- it "should not get or set euid/egid when not root", unless: Puppet::Util::Platform.windows? do
40
+ it "should not get or set euid/egid when not root" do
41
+ allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
43
42
  allow(Process).to receive(:uid).and_return(1)
44
43
 
45
44
  allow(Process).to receive(:egid).and_return(51)
@@ -50,12 +49,13 @@ describe Puppet::Util::SUIDManager do
50
49
  expect(xids).to be_empty
51
50
  end
52
51
 
53
- context "when root and not Windows" do
52
+ context "when root and not windows" do
54
53
  before :each do
55
54
  allow(Process).to receive(:uid).and_return(0)
55
+ allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
56
56
  end
57
57
 
58
- it "should set euid/egid", unless: Puppet::Util::Platform.windows? do
58
+ it "should set euid/egid" do
59
59
  allow(Process).to receive(:egid).and_return(51, 51, user[:gid])
60
60
  allow(Process).to receive(:euid).and_return(50, 50, user[:uid])
61
61
 
@@ -79,23 +79,29 @@ describe Puppet::Util::SUIDManager do
79
79
  end
80
80
 
81
81
  it "should just yield if user and group are nil" do
82
- expect { |b| Puppet::Util::SUIDManager.asuser(nil, nil, &b) }.to yield_control
82
+ yielded = false
83
+ Puppet::Util::SUIDManager.asuser(nil, nil) { yielded = true }
84
+ expect(yielded).to be_truthy
83
85
  expect(xids).to eq({})
84
86
  end
85
87
 
86
- it "should just change group if only group is given", unless: Puppet::Util::Platform.windows? do
87
- expect { |b| Puppet::Util::SUIDManager.asuser(nil, 42, &b) }.to yield_control
88
+ it "should just change group if only group is given" do
89
+ yielded = false
90
+ Puppet::Util::SUIDManager.asuser(nil, 42) { yielded = true }
91
+ expect(yielded).to be_truthy
88
92
  expect(xids).to eq({ :egid => 42 })
89
93
  end
90
94
 
91
- it "should change gid to the primary group of uid by default", unless: Puppet::Util::Platform.windows? do
95
+ it "should change gid to the primary group of uid by default" do
92
96
  allow(Process).to receive(:initgroups)
93
97
 
94
- expect { |b| Puppet::Util::SUIDManager.asuser(42, nil, &b) }.to yield_control
98
+ yielded = false
99
+ Puppet::Util::SUIDManager.asuser(42) { yielded = true }
100
+ expect(yielded).to be_truthy
95
101
  expect(xids).to eq({ :euid => 42, :egid => 42 })
96
102
  end
97
103
 
98
- it "should change both uid and gid if given", unless: Puppet::Util::Platform.windows? do
104
+ it "should change both uid and gid if given" do
99
105
  # I don't like the sequence, but it is the only way to assert on the
100
106
  # internal behaviour in a reliable fashion, given we need multiple
101
107
  # sequenced calls to the same methods. --daniel 2012-02-05
@@ -104,23 +110,21 @@ describe Puppet::Util::SUIDManager do
104
110
  expect(Puppet::Util::SUIDManager).to receive(:change_group).with(Puppet::Util::SUIDManager.egid, false).ordered()
105
111
  expect(Puppet::Util::SUIDManager).to receive(:change_user).with(Puppet::Util::SUIDManager.euid, false).ordered()
106
112
 
107
- expect { |b| Puppet::Util::SUIDManager.asuser(42, 43, &b) }.to yield_control
113
+ yielded = false
114
+ Puppet::Util::SUIDManager.asuser(42, 43) { yielded = true }
115
+ expect(yielded).to be_truthy
108
116
  end
109
117
  end
110
118
 
111
- it "should just yield on Windows", if: Puppet::Util::Platform.windows? do
112
- expect { |b| Puppet::Util::SUIDManager.asuser(1, 2, &b) }.to yield_control
119
+ it "should not get or set euid/egid on Windows", if: Puppet::Util::Platform.windows? do
120
+ Puppet::Util::SUIDManager.asuser(user[:uid], user[:gid]) {}
121
+
122
+ expect(xids).to be_empty
113
123
  end
114
124
  end
115
125
 
116
126
  describe "#change_group" do
117
- it "raises on Windows", if: Puppet::Util::Platform.windows? do
118
- expect {
119
- Puppet::Util::SUIDManager.change_group(42, true)
120
- }.to raise_error(NotImplementedError, /change_privilege\(\) function is unimplemented/)
121
- end
122
-
123
- describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
127
+ describe "when changing permanently" do
124
128
  it "should change_privilege" do
125
129
  expect(Process::GID).to receive(:change_privilege) do |gid|
126
130
  Process.gid = gid
@@ -146,7 +150,7 @@ describe Puppet::Util::SUIDManager do
146
150
  end
147
151
  end
148
152
 
149
- describe "when changing temporarily", unless: Puppet::Util::Platform.windows? do
153
+ describe "when changing temporarily" do
150
154
  it "should change only egid" do
151
155
  Puppet::Util::SUIDManager.change_group(42, false)
152
156
 
@@ -157,13 +161,7 @@ describe Puppet::Util::SUIDManager do
157
161
  end
158
162
 
159
163
  describe "#change_user" do
160
- it "raises on Windows", if: Puppet::Util::Platform.windows? do
161
- expect {
162
- Puppet::Util::SUIDManager.change_user(42, true)
163
- }.to raise_error(NotImplementedError, /initgroups\(\) function is unimplemented/)
164
- end
165
-
166
- describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
164
+ describe "when changing permanently" do
167
165
  it "should change_privilege" do
168
166
  expect(Process::UID).to receive(:change_privilege) do |uid|
169
167
  Process.uid = uid
@@ -193,7 +191,7 @@ describe Puppet::Util::SUIDManager do
193
191
  end
194
192
  end
195
193
 
196
- describe "when changing temporarily", unless: Puppet::Util::Platform.windows? do
194
+ describe "when changing temporarily" do
197
195
  it "should change only euid and groups" do
198
196
  allow(Puppet::Util::SUIDManager).to receive(:initgroups).and_return([])
199
197
  Puppet::Util::SUIDManager.change_user(42, false)
@@ -223,7 +221,12 @@ describe Puppet::Util::SUIDManager do
223
221
  end
224
222
 
225
223
  describe "#root?" do
226
- describe "on POSIX systems", unless: Puppet::Util::Platform.windows? do
224
+ describe "on POSIX systems" do
225
+ before :each do
226
+ allow(Puppet.features).to receive(:posix?).and_return(true)
227
+ allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
228
+ end
229
+
227
230
  it "should be root if uid is 0" do
228
231
  allow(Process).to receive(:uid).and_return(0)
229
232
 
@@ -237,7 +240,7 @@ describe Puppet::Util::SUIDManager do
237
240
  end
238
241
  end
239
242
 
240
- describe "on Windows", :if => Puppet::Util::Platform.windows? do
243
+ describe "on Microsoft Windows", :if => Puppet::Util::Platform.windows? do
241
244
  it "should be root if user is privileged" do
242
245
  allow(Puppet::Util::Windows::User).to receive(:admin?).and_return(true)
243
246
 
@@ -258,19 +261,13 @@ describe 'Puppet::Util::SUIDManager#groups=' do
258
261
  Puppet::Util::SUIDManager
259
262
  end
260
263
 
261
- it "raises on Windows", if: Puppet::Util::Platform.windows? do
262
- expect {
263
- subject.groups = []
264
- }.to raise_error(NotImplementedError, /groups=\(\) function is unimplemented/)
265
- end
266
-
267
- it "(#3419) should rescue Errno::EINVAL on OS X", unless: Puppet::Util::Platform.windows? do
264
+ it "(#3419) should rescue Errno::EINVAL on OS X" do
268
265
  expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
269
266
  expect(subject).to receive(:osx_maj_ver).and_return('10.7').twice
270
267
  subject.groups = ['list', 'of', 'groups']
271
268
  end
272
269
 
273
- it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X", unless: Puppet::Util::Platform.windows? do
270
+ it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X" do
274
271
  expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
275
272
  expect(subject).to receive(:osx_maj_ver).and_return(false)
276
273
  expect { subject.groups = ['list', 'of', 'groups'] }.to raise_error(Errno::EINVAL)
@@ -131,74 +131,33 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
131
131
  expect(subject.name_to_principal(unknown_name)).to be_nil
132
132
  end
133
133
 
134
- it "should print a debug message if the account does not exist" do
135
- expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
136
- subject.name_to_principal(unknown_name)
137
- end
138
-
139
134
  it "should return a Puppet::Util::Windows::SID::Principal instance for any valid sid" do
140
135
  expect(subject.name_to_principal(sid)).to be_an_instance_of(Puppet::Util::Windows::SID::Principal)
141
136
  end
142
137
 
143
- it "should not print debug messages for valid sid" do
144
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
145
- expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
146
- subject.name_to_principal(sid)
147
- end
148
-
149
- it "should print a debug message for invalid sid" do
150
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
151
- expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
152
- subject.name_to_principal('S-1-5-21-INVALID-SID')
153
- end
154
-
155
138
  it "should accept unqualified account name" do
156
139
  # NOTE: lookup by name works in localized environments only for a few instances
157
140
  # this works in French Windows, even though the account is really Syst\u00E8me
158
141
  expect(subject.name_to_principal('SYSTEM').sid).to eq(sid)
159
142
  end
160
143
 
161
- it "should not print debug messages for unqualified account name" do
162
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
163
- expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
164
- subject.name_to_principal('SYSTEM')
165
- end
166
-
167
144
  it "should be case-insensitive" do
168
145
  # NOTE: lookup by name works in localized environments only for a few instances
169
146
  # this works in French Windows, even though the account is really Syst\u00E8me
170
147
  expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal('system'))
171
148
  end
172
149
 
173
- it "should not print debug messages for wrongly cased account name" do
174
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
175
- expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
176
- subject.name_to_principal('system')
177
- end
178
-
179
150
  it "should be leading and trailing whitespace-insensitive" do
180
151
  # NOTE: lookup by name works in localized environments only for a few instances
181
152
  # this works in French Windows, even though the account is really Syst\u00E8me
182
153
  expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal(' SYSTEM '))
183
154
  end
184
155
 
185
- it "should not print debug messages for account name with leading and trailing whitespace" do
186
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
187
- expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
188
- subject.name_to_principal(' SYSTEM ')
189
- end
190
-
191
156
  it "should accept domain qualified account names" do
192
157
  # NOTE: lookup by name works in localized environments only for a few instances
193
158
  # this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
194
159
  expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
195
160
  end
196
-
197
- it "should not print debug messages for domain qualified account names" do
198
- expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
199
- expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
200
- subject.name_to_principal('NT AUTHORITY\SYSTEM')
201
- end
202
161
  end
203
162
 
204
163
  context "#ads_to_principal" do
@@ -4,15 +4,13 @@ require 'spec_helper'
4
4
  require 'puppet/util/windows'
5
5
 
6
6
  describe "Puppet::Util::Windows::String", :if => Puppet::Util::Platform.windows? do
7
- UTF16_NULL = [0, 0]
8
-
9
7
  def wide_string(str)
10
8
  Puppet::Util::Windows::String.wide_string(str)
11
9
  end
12
10
 
13
11
  def converts_to_wide_string(string_value)
14
12
  expected = string_value.encode(Encoding::UTF_16LE)
15
- expected_bytes = expected.bytes.to_a + UTF16_NULL
13
+ expected_bytes = expected.bytes.to_a
16
14
 
17
15
  expect(wide_string(string_value).bytes.to_a).to eq(expected_bytes)
18
16
  end
@@ -139,60 +139,6 @@ FACTS
139
139
  end
140
140
  end
141
141
 
142
- context '#load_file' do
143
- it_should_behave_like 'yaml file loader', Puppet::Util::Yaml.method(:load_file)
144
-
145
- it 'raises an error when the file is invalid YAML' do
146
- write_file(filename, '{ invalid')
147
-
148
- expect {
149
- Puppet::Util::Yaml.load_file(filename)
150
- }.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r{\(#{filename}\): .* at line \d+ column \d+})
151
- end
152
-
153
- it 'raises an error when the filename is illegal' do
154
- expect {
155
- Puppet::Util::Yaml.load_file("not\0allowed")
156
- }.to raise_error(Puppet::Util::Yaml::YamlLoadError, /null byte/)
157
- end
158
-
159
- it 'raises an error when the file does not exist' do
160
- expect {
161
- Puppet::Util::Yaml.load_file('does/not/exist.yaml')
162
- }.to raise_error(Puppet::Util::Yaml::YamlLoadError, /No such file or directory/)
163
- end
164
-
165
- it 'allows return value to be overridden' do
166
- Puppet::FileSystem.touch(filename)
167
-
168
- expect(Puppet::Util::Yaml.load_file(filename, {})).to eq({})
169
- end
170
-
171
- it 'loads arbitrary objects' do
172
- write_file(filename, "--- !ruby/object {}\n")
173
-
174
- expect(Puppet::Util::Yaml.load_file(filename, {})).to be_instance_of(Object)
175
- end
176
-
177
- it 'should allow one to strip ruby tags that would otherwise not parse' do
178
- write_file(filename, "---\nweirddata: !ruby/hash:Not::A::Valid::Class {}")
179
-
180
- expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => {}})
181
- end
182
-
183
- it 'should not strip non-ruby tags' do
184
- write_file(filename, "---\nweirddata: !binary |-\n e21kNX04MTE4ZGY2NmM5MTc3OTg4ZWE4Y2JiOWEzMjMyNzFkYg==")
185
-
186
- expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => "{md5}8118df66c9177988ea8cbb9a323271db"})
187
- end
188
-
189
- it 'writes data formatted as YAML to disk' do
190
- Puppet::Util::Yaml.dump({ "my" => "data" }, filename)
191
-
192
- expect(Puppet::Util::Yaml.load_file(filename)).to eq({ "my" => "data" })
193
- end
194
- end
195
-
196
142
  def write_file(name, contents)
197
143
  File.open(name, "w:UTF-8") do |fh|
198
144
  fh.write(contents)
@@ -3,12 +3,6 @@ require 'spec_helper'
3
3
  describe Puppet::Util do
4
4
  include PuppetSpec::Files
5
5
 
6
- # Discriminator for tests that attempts to unset HOME since that, for reasons currently unknown,
7
- # doesn't work in Ruby >= 2.4.0
8
- def self.gte_ruby_2_4
9
- @gte_ruby_2_4 ||= SemanticPuppet::Version.parse(RUBY_VERSION) >= SemanticPuppet::Version.parse('2.4.0')
10
- end
11
-
12
6
  if Puppet::Util::Platform.windows?
13
7
  def set_mode(mode, file)
14
8
  Puppet::Util::Windows::Security.set_mode(mode, file)
@@ -315,7 +309,7 @@ describe Puppet::Util do
315
309
 
316
310
  describe "when using platform :posix" do
317
311
  before :each do
318
- allow(Puppet.features).to receive(:posix?).and_return(true)
312
+ allow(Puppet.features).to receive(:posix).and_return(true)
319
313
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
320
314
  end
321
315
 
@@ -328,7 +322,7 @@ describe Puppet::Util do
328
322
 
329
323
  describe "when using platform :windows" do
330
324
  before :each do
331
- allow(Puppet.features).to receive(:posix?).and_return(false)
325
+ allow(Puppet.features).to receive(:posix).and_return(false)
332
326
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
333
327
  end
334
328
 
@@ -462,7 +456,7 @@ describe Puppet::Util do
462
456
 
463
457
  describe "when using platform :posix" do
464
458
  before :each do
465
- allow(Puppet.features).to receive(:posix?).and_return(true)
459
+ allow(Puppet.features).to receive(:posix).and_return(true)
466
460
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
467
461
  end
468
462
 
@@ -501,7 +495,7 @@ describe Puppet::Util do
501
495
 
502
496
  describe "when using platform :windows" do
503
497
  before :each do
504
- allow(Puppet.features).to receive(:posix?).and_return(false)
498
+ allow(Puppet.features).to receive(:posix).and_return(false)
505
499
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
506
500
  end
507
501
 
@@ -539,6 +533,7 @@ describe Puppet::Util do
539
533
  expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
540
534
  end
541
535
 
536
+
542
537
  [
543
538
  "http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
544
539
  "http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
@@ -588,15 +583,7 @@ describe Puppet::Util do
588
583
  end
589
584
  end
590
585
 
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
586
+ describe "safe_posix_fork" do
600
587
  let(:pid) { 5501 }
601
588
 
602
589
  before :each do
@@ -676,18 +663,6 @@ describe Puppet::Util do
676
663
  expect(Puppet::Util.which('doesnotexist')).to be_nil
677
664
  end
678
665
 
679
- it "should warn if the user's HOME is not set but their PATH contains a ~", :unless => gte_ruby_2_4 do
680
- env_path = %w[~/bin /usr/bin /bin].join(File::PATH_SEPARATOR)
681
-
682
- env = {:HOME => nil, :PATH => env_path}
683
- env.merge!({:HOMEDRIVE => nil, :USERPROFILE => nil}) if Puppet::Util::Platform.windows?
684
-
685
- expect(Puppet::Util::Warnings).to receive(:warnonce).once
686
- Puppet::Util.withenv(env) do
687
- Puppet::Util.which('foo')
688
- end
689
- end
690
-
691
666
  it "should reject directories" do
692
667
  expect(Puppet::Util.which(base)).to be_nil
693
668
  end