puppet 6.25.1 → 7.0.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 (784) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +3 -5
  5. data/Gemfile.lock +39 -51
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +1 -15
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/application/agent.rb +4 -16
  104. data/lib/puppet/application/apply.rb +4 -24
  105. data/lib/puppet/application/device.rb +100 -106
  106. data/lib/puppet/application/filebucket.rb +13 -10
  107. data/lib/puppet/application/resource.rb +16 -32
  108. data/lib/puppet/application/script.rb +0 -2
  109. data/lib/puppet/application/ssl.rb +1 -13
  110. data/lib/puppet/application.rb +178 -108
  111. data/lib/puppet/application_support.rb +0 -7
  112. data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
  113. data/lib/puppet/configurer/downloader.rb +1 -2
  114. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  115. data/lib/puppet/configurer.rb +86 -189
  116. data/lib/puppet/confine/variable.rb +1 -1
  117. data/lib/puppet/defaults.rb +128 -232
  118. data/lib/puppet/environments.rb +82 -146
  119. data/lib/puppet/face/facts.rb +5 -103
  120. data/lib/puppet/face/help/action.erb +0 -1
  121. data/lib/puppet/face/help/face.erb +0 -1
  122. data/lib/puppet/face/help.rb +1 -1
  123. data/lib/puppet/face/node/clean.rb +0 -11
  124. data/lib/puppet/face/plugin.rb +5 -8
  125. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  126. data/lib/puppet/ffi/windows/constants.rb +404 -0
  127. data/lib/puppet/ffi/windows/functions.rb +628 -0
  128. data/lib/puppet/ffi/windows/structs.rb +338 -0
  129. data/lib/puppet/ffi/windows.rb +12 -0
  130. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  131. data/lib/puppet/file_serving/configuration.rb +0 -8
  132. data/lib/puppet/file_serving/fileset.rb +2 -14
  133. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  134. data/lib/puppet/file_serving/mount/file.rb +4 -4
  135. data/lib/puppet/file_serving/mount.rb +1 -2
  136. data/lib/puppet/file_system/file_impl.rb +1 -3
  137. data/lib/puppet/file_system/memory_file.rb +1 -8
  138. data/lib/puppet/file_system/windows.rb +2 -4
  139. data/lib/puppet/forge/repository.rb +0 -1
  140. data/lib/puppet/forge.rb +4 -4
  141. data/lib/puppet/functions/all.rb +1 -1
  142. data/lib/puppet/functions/camelcase.rb +1 -1
  143. data/lib/puppet/functions/capitalize.rb +2 -2
  144. data/lib/puppet/functions/downcase.rb +2 -2
  145. data/lib/puppet/functions/empty.rb +0 -8
  146. data/lib/puppet/functions/find_template.rb +2 -2
  147. data/lib/puppet/functions/get.rb +5 -5
  148. data/lib/puppet/functions/group_by.rb +5 -13
  149. data/lib/puppet/functions/lest.rb +1 -1
  150. data/lib/puppet/functions/new.rb +100 -100
  151. data/lib/puppet/functions/partition.rb +4 -12
  152. data/lib/puppet/functions/require.rb +5 -5
  153. data/lib/puppet/functions/sort.rb +3 -3
  154. data/lib/puppet/functions/strftime.rb +0 -1
  155. data/lib/puppet/functions/tree_each.rb +9 -7
  156. data/lib/puppet/functions/type.rb +4 -4
  157. data/lib/puppet/functions/unwrap.rb +2 -17
  158. data/lib/puppet/functions/upcase.rb +2 -2
  159. data/lib/puppet/generate/models/type/type.rb +4 -1
  160. data/lib/puppet/http/client.rb +165 -115
  161. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  162. data/lib/puppet/http/errors.rb +16 -0
  163. data/lib/puppet/http/external_client.rb +5 -7
  164. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  165. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  166. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  167. data/lib/puppet/http/proxy.rb +137 -0
  168. data/lib/puppet/http/redirector.rb +4 -17
  169. data/lib/puppet/http/resolver/server_list.rb +10 -25
  170. data/lib/puppet/http/resolver/settings.rb +4 -7
  171. data/lib/puppet/http/resolver/srv.rb +7 -11
  172. data/lib/puppet/http/resolver.rb +5 -15
  173. data/lib/puppet/http/response.rb +36 -54
  174. data/lib/puppet/http/response_converter.rb +24 -0
  175. data/lib/puppet/http/response_net_http.rb +42 -0
  176. data/lib/puppet/http/retry_after_handler.rb +4 -13
  177. data/lib/puppet/http/service/ca.rb +11 -22
  178. data/lib/puppet/http/service/compiler.rb +23 -144
  179. data/lib/puppet/http/service/file_server.rb +19 -29
  180. data/lib/puppet/http/service/puppetserver.rb +26 -12
  181. data/lib/puppet/http/service/report.rb +8 -10
  182. data/lib/puppet/http/service.rb +12 -26
  183. data/lib/puppet/http/session.rb +11 -20
  184. data/lib/puppet/{network/http → http}/site.rb +1 -2
  185. data/lib/puppet/http.rb +22 -13
  186. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  187. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  188. data/lib/puppet/indirector/facts/facter.rb +6 -6
  189. data/lib/puppet/indirector/facts/rest.rb +3 -22
  190. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  191. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  192. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  193. data/lib/puppet/indirector/file_server.rb +1 -8
  194. data/lib/puppet/indirector/generic_http.rb +0 -11
  195. data/lib/puppet/indirector/indirection.rb +1 -1
  196. data/lib/puppet/indirector/node/rest.rb +2 -4
  197. data/lib/puppet/indirector/report/rest.rb +3 -8
  198. data/lib/puppet/indirector/request.rb +0 -101
  199. data/lib/puppet/indirector/resource/ral.rb +1 -6
  200. data/lib/puppet/indirector/rest.rb +12 -263
  201. data/lib/puppet/indirector/terminus.rb +0 -4
  202. data/lib/puppet/interface/documentation.rb +0 -1
  203. data/lib/puppet/module/plan.rb +1 -0
  204. data/lib/puppet/module/task.rb +1 -1
  205. data/lib/puppet/module.rb +0 -1
  206. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  207. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  208. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  209. data/lib/puppet/module_tool/applications.rb +0 -1
  210. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  211. data/lib/puppet/network/authconfig.rb +2 -96
  212. data/lib/puppet/network/authorization.rb +13 -35
  213. data/lib/puppet/network/formats.rb +0 -67
  214. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  215. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  216. data/lib/puppet/network/http/connection.rb +247 -316
  217. data/lib/puppet/network/http/handler.rb +0 -1
  218. data/lib/puppet/network/http.rb +3 -3
  219. data/lib/puppet/network/http_pool.rb +16 -34
  220. data/lib/puppet/node/environment.rb +11 -10
  221. data/lib/puppet/node.rb +1 -30
  222. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  223. data/lib/puppet/pal/pal_impl.rb +4 -2
  224. data/lib/puppet/parser/ast/leaf.rb +2 -3
  225. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  226. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  227. data/lib/puppet/parser/compiler.rb +0 -198
  228. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  229. data/lib/puppet/parser/resource.rb +1 -70
  230. data/lib/puppet/parser/scope.rb +0 -1
  231. data/lib/puppet/parser/templatewrapper.rb +1 -2
  232. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  233. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  234. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  235. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  236. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  237. data/lib/puppet/pops/issues.rb +0 -5
  238. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  240. data/lib/puppet/pops/model/ast.pp +0 -42
  241. data/lib/puppet/pops/model/ast.rb +0 -291
  242. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  243. data/lib/puppet/pops/model/factory.rb +1 -47
  244. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  245. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  246. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  247. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  248. data/lib/puppet/pops/parser/eparser.rb +1691 -1883
  249. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  250. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  251. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  252. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  253. data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
  254. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  255. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  256. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  257. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  258. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  259. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  260. data/lib/puppet/pops/types/type_parser.rb +0 -4
  261. data/lib/puppet/pops/types/types.rb +1 -2
  262. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  263. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  264. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  265. data/lib/puppet/property/list.rb +1 -1
  266. data/lib/puppet/provider/aix_object.rb +1 -1
  267. data/lib/puppet/provider/exec/posix.rb +4 -16
  268. data/lib/puppet/provider/group/groupadd.rb +10 -18
  269. data/lib/puppet/provider/nameservice.rb +0 -18
  270. data/lib/puppet/provider/package/apt.rb +2 -34
  271. data/lib/puppet/provider/package/aptitude.rb +0 -6
  272. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  273. data/lib/puppet/provider/package/dpkg.rb +0 -10
  274. data/lib/puppet/provider/package/gem.rb +23 -3
  275. data/lib/puppet/provider/package/nim.rb +6 -11
  276. data/lib/puppet/provider/package/pip.rb +3 -16
  277. data/lib/puppet/provider/package/pkg.rb +2 -23
  278. data/lib/puppet/provider/package/portage.rb +1 -1
  279. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  280. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  281. data/lib/puppet/provider/package/yum.rb +1 -1
  282. data/lib/puppet/provider/parsedfile.rb +0 -3
  283. data/lib/puppet/provider/service/base.rb +1 -1
  284. data/lib/puppet/provider/service/debian.rb +0 -2
  285. data/lib/puppet/provider/service/init.rb +5 -5
  286. data/lib/puppet/provider/service/launchd.rb +2 -2
  287. data/lib/puppet/provider/service/redhat.rb +1 -1
  288. data/lib/puppet/provider/service/smf.rb +194 -76
  289. data/lib/puppet/provider/service/systemd.rb +6 -16
  290. data/lib/puppet/provider/service/upstart.rb +5 -5
  291. data/lib/puppet/provider/service/windows.rb +0 -38
  292. data/lib/puppet/provider/user/aix.rb +3 -46
  293. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  294. data/lib/puppet/provider/user/useradd.rb +24 -134
  295. data/lib/puppet/provider.rb +1 -14
  296. data/lib/puppet/reference/configuration.rb +8 -7
  297. data/lib/puppet/reference/indirection.rb +1 -1
  298. data/lib/puppet/reference/providers.rb +2 -2
  299. data/lib/puppet/resource/catalog.rb +2 -15
  300. data/lib/puppet/resource/type.rb +3 -119
  301. data/lib/puppet/resource/type_collection.rb +3 -49
  302. data/lib/puppet/resource.rb +6 -127
  303. data/lib/puppet/runtime.rb +2 -13
  304. data/lib/puppet/settings/environment_conf.rb +0 -1
  305. data/lib/puppet/settings/integer_setting.rb +17 -0
  306. data/lib/puppet/settings/port_setting.rb +15 -0
  307. data/lib/puppet/settings/priority_setting.rb +5 -4
  308. data/lib/puppet/settings.rb +82 -98
  309. data/lib/puppet/ssl/base.rb +3 -5
  310. data/lib/puppet/ssl/certificate.rb +0 -6
  311. data/lib/puppet/ssl/certificate_request.rb +1 -12
  312. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  313. data/lib/puppet/ssl/oids.rb +3 -1
  314. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  315. data/lib/puppet/ssl/state_machine.rb +3 -1
  316. data/lib/puppet/ssl/verifier.rb +2 -0
  317. data/lib/puppet/ssl.rb +10 -6
  318. data/lib/puppet/test/test_helper.rb +2 -7
  319. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  320. data/lib/puppet/transaction/persistence.rb +1 -11
  321. data/lib/puppet/transaction/report.rb +3 -19
  322. data/lib/puppet/transaction.rb +1 -7
  323. data/lib/puppet/type/exec.rb +5 -35
  324. data/lib/puppet/type/file/checksum.rb +1 -1
  325. data/lib/puppet/type/file/mode.rb +0 -6
  326. data/lib/puppet/type/file/selcontext.rb +1 -1
  327. data/lib/puppet/type/file/source.rb +1 -1
  328. data/lib/puppet/type/file.rb +12 -32
  329. data/lib/puppet/type/filebucket.rb +4 -4
  330. data/lib/puppet/type/group.rb +1 -0
  331. data/lib/puppet/type/package.rb +8 -16
  332. data/lib/puppet/type/resources.rb +1 -1
  333. data/lib/puppet/type/service.rb +41 -26
  334. data/lib/puppet/type/tidy.rb +3 -22
  335. data/lib/puppet/type/user.rb +21 -38
  336. data/lib/puppet/type.rb +1 -77
  337. data/lib/puppet/util/autoload.rb +8 -1
  338. data/lib/puppet/util/command_line.rb +1 -1
  339. data/lib/puppet/util/execution.rb +0 -11
  340. data/lib/puppet/util/filetype.rb +2 -2
  341. data/lib/puppet/util/http_proxy.rb +2 -215
  342. data/lib/puppet/util/json.rb +0 -3
  343. data/lib/puppet/util/log.rb +2 -1
  344. data/lib/puppet/util/logging.rb +25 -1
  345. data/lib/puppet/util/monkey_patches.rb +0 -53
  346. data/lib/puppet/util/pidlock.rb +1 -1
  347. data/lib/puppet/util/posix.rb +5 -54
  348. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  349. data/lib/puppet/util/rdoc.rb +0 -7
  350. data/lib/puppet/util/retry_action.rb +1 -1
  351. data/lib/puppet/util/run_mode.rb +9 -1
  352. data/lib/puppet/util/selinux.rb +4 -30
  353. data/lib/puppet/util/suidmanager.rb +2 -1
  354. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  355. data/lib/puppet/util/tagging.rb +0 -1
  356. data/lib/puppet/util/windows/adsi.rb +0 -46
  357. data/lib/puppet/util/windows/daemon.rb +360 -0
  358. data/lib/puppet/util/windows/error.rb +1 -0
  359. data/lib/puppet/util/windows/eventlog.rb +4 -9
  360. data/lib/puppet/util/windows/file.rb +8 -242
  361. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  362. data/lib/puppet/util/windows/principal.rb +2 -9
  363. data/lib/puppet/util/windows/process.rb +4 -226
  364. data/lib/puppet/util/windows/service.rb +11 -457
  365. data/lib/puppet/util/windows/sid.rb +2 -6
  366. data/lib/puppet/util/windows/string.rb +12 -13
  367. data/lib/puppet/util/windows/user.rb +2 -0
  368. data/lib/puppet/util/windows.rb +3 -11
  369. data/lib/puppet/util/yaml.rb +0 -22
  370. data/lib/puppet/util.rb +3 -4
  371. data/lib/puppet/vendor/require_vendored.rb +0 -1
  372. data/lib/puppet/version.rb +1 -1
  373. data/lib/puppet/x509/cert_provider.rb +29 -1
  374. data/lib/puppet/x509.rb +5 -1
  375. data/lib/puppet.rb +20 -25
  376. data/locales/puppet.pot +816 -1637
  377. data/man/man5/puppet.conf.5 +286 -382
  378. data/man/man8/puppet-agent.8 +2 -5
  379. data/man/man8/puppet-apply.8 +2 -2
  380. data/man/man8/puppet-catalog.8 +9 -9
  381. data/man/man8/puppet-config.8 +1 -1
  382. data/man/man8/puppet-describe.8 +1 -1
  383. data/man/man8/puppet-device.8 +2 -2
  384. data/man/man8/puppet-doc.8 +1 -1
  385. data/man/man8/puppet-epp.8 +1 -1
  386. data/man/man8/puppet-facts.8 +8 -51
  387. data/man/man8/puppet-filebucket.8 +4 -4
  388. data/man/man8/puppet-generate.8 +1 -1
  389. data/man/man8/puppet-help.8 +1 -1
  390. data/man/man8/puppet-lookup.8 +1 -1
  391. data/man/man8/puppet-module.8 +3 -60
  392. data/man/man8/puppet-node.8 +5 -5
  393. data/man/man8/puppet-parser.8 +1 -1
  394. data/man/man8/puppet-plugin.8 +1 -1
  395. data/man/man8/puppet-report.8 +5 -5
  396. data/man/man8/puppet-resource.8 +1 -1
  397. data/man/man8/puppet-script.8 +2 -2
  398. data/man/man8/puppet-ssl.8 +1 -5
  399. data/man/man8/puppet.8 +2 -2
  400. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  401. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  402. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  403. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  404. data/spec/fixtures/ssl/ca.pem +35 -57
  405. data/spec/fixtures/ssl/crl.pem +18 -28
  406. data/spec/fixtures/ssl/ec-key.pem +11 -11
  407. data/spec/fixtures/ssl/ec.pem +24 -33
  408. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  409. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  410. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  411. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  412. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  413. data/spec/fixtures/ssl/intermediate.pem +36 -57
  414. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  415. data/spec/fixtures/ssl/pluto.pem +30 -52
  416. data/spec/fixtures/ssl/request-key.pem +57 -107
  417. data/spec/fixtures/ssl/request.pem +26 -47
  418. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  419. data/spec/fixtures/ssl/revoked.pem +30 -52
  420. data/spec/fixtures/ssl/signed-key.pem +57 -107
  421. data/spec/fixtures/ssl/signed.pem +30 -52
  422. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  423. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  424. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  425. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  426. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  427. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  428. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  429. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  430. data/spec/integration/application/agent_spec.rb +51 -299
  431. data/spec/integration/application/apply_spec.rb +1 -20
  432. data/spec/integration/application/filebucket_spec.rb +16 -32
  433. data/spec/integration/application/help_spec.rb +2 -0
  434. data/spec/integration/application/module_spec.rb +0 -21
  435. data/spec/integration/application/plugin_spec.rb +24 -2
  436. data/spec/integration/configurer_spec.rb +2 -18
  437. data/spec/integration/defaults_spec.rb +14 -3
  438. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  439. data/spec/integration/http/client_spec.rb +0 -12
  440. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  441. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  442. data/spec/integration/network/http_pool_spec.rb +3 -21
  443. data/spec/integration/parser/catalog_spec.rb +0 -38
  444. data/spec/integration/parser/node_spec.rb +0 -9
  445. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  446. data/spec/integration/resource/type_collection_spec.rb +6 -2
  447. data/spec/integration/transaction/report_spec.rb +1 -1
  448. data/spec/integration/transaction_spec.rb +9 -4
  449. data/spec/integration/type/exec_spec.rb +45 -70
  450. data/spec/integration/type/file_spec.rb +7 -6
  451. data/spec/integration/type/package_spec.rb +6 -6
  452. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  453. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  454. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  455. data/spec/integration/util/windows/principal_spec.rb +0 -21
  456. data/spec/integration/util/windows/process_spec.rb +9 -1
  457. data/spec/integration/util/windows/registry_spec.rb +10 -6
  458. data/spec/integration/util/windows/security_spec.rb +1 -1
  459. data/spec/lib/matchers/include.rb +27 -0
  460. data/spec/lib/matchers/include_spec.rb +32 -0
  461. data/spec/lib/puppet/test_ca.rb +2 -7
  462. data/spec/lib/puppet_spec/modules.rb +2 -13
  463. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  464. data/spec/lib/puppet_spec/settings.rb +1 -1
  465. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  466. data/spec/spec_helper.rb +17 -13
  467. data/spec/unit/agent_spec.rb +6 -10
  468. data/spec/unit/application/agent_spec.rb +3 -7
  469. data/spec/unit/application/apply_spec.rb +56 -76
  470. data/spec/unit/application/facts_spec.rb +12 -456
  471. data/spec/unit/application/filebucket_spec.rb +43 -39
  472. data/spec/unit/application/resource_spec.rb +0 -29
  473. data/spec/unit/application/ssl_spec.rb +2 -25
  474. data/spec/unit/application_spec.rb +9 -51
  475. data/spec/unit/certificate_factory_spec.rb +1 -1
  476. data/spec/unit/configurer/downloader_spec.rb +6 -8
  477. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  478. data/spec/unit/configurer_spec.rb +68 -264
  479. data/spec/unit/confine/feature_spec.rb +1 -1
  480. data/spec/unit/confine_spec.rb +2 -8
  481. data/spec/unit/context/trusted_information_spec.rb +2 -6
  482. data/spec/unit/defaults_spec.rb +68 -55
  483. data/spec/unit/environments_spec.rb +68 -408
  484. data/spec/unit/face/node_spec.rb +11 -0
  485. data/spec/unit/face/plugin_spec.rb +73 -33
  486. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  487. data/spec/unit/file_bucket/file_spec.rb +1 -1
  488. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  489. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  490. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  491. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  492. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  493. data/spec/unit/file_system_spec.rb +0 -22
  494. data/spec/unit/forge/module_release_spec.rb +7 -2
  495. data/spec/unit/functions/assert_type_spec.rb +1 -1
  496. data/spec/unit/functions/camelcase_spec.rb +1 -1
  497. data/spec/unit/functions/capitalize_spec.rb +1 -1
  498. data/spec/unit/functions/downcase_spec.rb +1 -1
  499. data/spec/unit/functions/empty_spec.rb +0 -10
  500. data/spec/unit/functions/logging_spec.rb +0 -1
  501. data/spec/unit/functions/lookup_spec.rb +0 -64
  502. data/spec/unit/functions/unwrap_spec.rb +0 -8
  503. data/spec/unit/functions/upcase_spec.rb +1 -1
  504. data/spec/unit/functions4_spec.rb +2 -2
  505. data/spec/unit/gettext/config_spec.rb +0 -12
  506. data/spec/unit/http/client_spec.rb +8 -66
  507. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  508. data/spec/unit/http/external_client_spec.rb +4 -4
  509. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  510. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  511. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  512. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  513. data/spec/unit/http/resolver_spec.rb +13 -13
  514. data/spec/unit/http/service/compiler_spec.rb +0 -193
  515. data/spec/unit/http/service/file_server_spec.rb +3 -3
  516. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  517. data/spec/unit/http/service_spec.rb +0 -1
  518. data/spec/unit/http/session_spec.rb +16 -14
  519. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  520. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  521. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  522. data/spec/unit/indirector/face_spec.rb +1 -0
  523. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  524. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  525. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  526. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  527. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  528. data/spec/unit/indirector/file_server_spec.rb +1 -15
  529. data/spec/unit/indirector/indirection_spec.rb +15 -18
  530. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  531. data/spec/unit/indirector/request_spec.rb +0 -264
  532. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  533. data/spec/unit/indirector/rest_spec.rb +98 -752
  534. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  535. data/spec/unit/indirector_spec.rb +2 -2
  536. data/spec/unit/interface/action_spec.rb +9 -0
  537. data/spec/unit/module_spec.rb +1 -15
  538. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  539. data/spec/unit/network/authconfig_spec.rb +2 -129
  540. data/spec/unit/network/authorization_spec.rb +2 -55
  541. data/spec/unit/network/formats_spec.rb +4 -51
  542. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  543. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  544. data/spec/unit/network/http/api_spec.rb +10 -0
  545. data/spec/unit/network/http/connection_spec.rb +19 -41
  546. data/spec/unit/network/http/handler_spec.rb +0 -1
  547. data/spec/unit/network/http_pool_spec.rb +0 -4
  548. data/spec/unit/node/environment_spec.rb +33 -21
  549. data/spec/unit/node_spec.rb +2 -54
  550. data/spec/unit/parser/compiler_spec.rb +19 -3
  551. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  552. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  553. data/spec/unit/parser/resource_spec.rb +8 -14
  554. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  555. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  556. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  557. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  558. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  559. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  560. data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
  561. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  562. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  563. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
  564. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  565. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  566. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  567. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  568. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  569. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  570. data/spec/unit/pops/visitor_spec.rb +1 -1
  571. data/spec/unit/property_spec.rb +0 -1
  572. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  573. data/spec/unit/provider/nameservice_spec.rb +64 -122
  574. data/spec/unit/provider/package/apt_spec.rb +23 -28
  575. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  576. data/spec/unit/provider/package/base_spec.rb +5 -6
  577. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  578. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  579. data/spec/unit/provider/package/gem_spec.rb +33 -1
  580. data/spec/unit/provider/package/nim_spec.rb +0 -42
  581. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  582. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  583. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  584. data/spec/unit/provider/package/pip_spec.rb +12 -44
  585. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  586. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  587. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  588. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  589. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  590. data/spec/unit/provider/service/init_spec.rb +0 -1
  591. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  592. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  593. data/spec/unit/provider/service/smf_spec.rb +401 -165
  594. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  595. data/spec/unit/provider/service/windows_spec.rb +0 -203
  596. data/spec/unit/provider/user/aix_spec.rb +0 -105
  597. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  598. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  599. data/spec/unit/provider/user/pw_spec.rb +0 -2
  600. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  601. data/spec/unit/provider_spec.rb +12 -22
  602. data/spec/unit/puppet_spec.rb +4 -12
  603. data/spec/unit/resource/catalog_spec.rb +2 -15
  604. data/spec/unit/resource/type_collection_spec.rb +2 -22
  605. data/spec/unit/resource/type_spec.rb +1 -1
  606. data/spec/unit/resource_spec.rb +12 -125
  607. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  608. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  609. data/spec/unit/settings/port_setting_spec.rb +31 -0
  610. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  611. data/spec/unit/settings_spec.rb +79 -110
  612. data/spec/unit/ssl/base_spec.rb +37 -3
  613. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  614. data/spec/unit/ssl/certificate_spec.rb +2 -11
  615. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  616. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  617. data/spec/unit/ssl/verifier_spec.rb +0 -21
  618. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  619. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  620. data/spec/unit/transaction/report_spec.rb +0 -2
  621. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  622. data/spec/unit/transaction_spec.rb +55 -96
  623. data/spec/unit/type/exec_spec.rb +29 -76
  624. data/spec/unit/type/file/checksum_spec.rb +6 -6
  625. data/spec/unit/type/file/content_spec.rb +2 -1
  626. data/spec/unit/type/file/ensure_spec.rb +1 -1
  627. data/spec/unit/type/file/mode_spec.rb +1 -1
  628. data/spec/unit/type/file/selinux_spec.rb +5 -3
  629. data/spec/unit/type/file/source_spec.rb +4 -5
  630. data/spec/unit/type/file_spec.rb +18 -6
  631. data/spec/unit/type/group_spec.rb +6 -13
  632. data/spec/unit/type/package_spec.rb +1 -1
  633. data/spec/unit/type/resources_spec.rb +7 -7
  634. data/spec/unit/type/service_spec.rb +189 -87
  635. data/spec/unit/type/tidy_spec.rb +8 -24
  636. data/spec/unit/type/user_spec.rb +0 -45
  637. data/spec/unit/type_spec.rb +24 -4
  638. data/spec/unit/util/at_fork_spec.rb +2 -2
  639. data/spec/unit/util/autoload_spec.rb +1 -5
  640. data/spec/unit/util/backups_spec.rb +2 -3
  641. data/spec/unit/util/execution_spec.rb +11 -44
  642. data/spec/unit/util/inifile_spec.rb +14 -6
  643. data/spec/unit/util/log_spec.rb +7 -8
  644. data/spec/unit/util/logging_spec.rb +3 -5
  645. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  646. data/spec/unit/util/posix_spec.rb +15 -363
  647. data/spec/unit/util/run_mode_spec.rb +21 -121
  648. data/spec/unit/util/selinux_spec.rb +68 -163
  649. data/spec/unit/util/storage_spec.rb +1 -3
  650. data/spec/unit/util/suidmanager_spec.rb +41 -44
  651. data/spec/unit/util/windows/sid_spec.rb +0 -41
  652. data/spec/unit/util/windows/string_spec.rb +1 -3
  653. data/spec/unit/util/yaml_spec.rb +0 -54
  654. data/spec/unit/util_spec.rb +6 -31
  655. data/tasks/generate_cert_fixtures.rake +3 -12
  656. data/tasks/parallel.rake +3 -3
  657. metadata +137 -226
  658. data/conf/auth.conf +0 -150
  659. data/ext/README.md +0 -13
  660. data/lib/puppet/application/cert.rb +0 -76
  661. data/lib/puppet/application/key.rb +0 -4
  662. data/lib/puppet/application/man.rb +0 -4
  663. data/lib/puppet/application/status.rb +0 -4
  664. data/lib/puppet/face/key.rb +0 -16
  665. data/lib/puppet/face/man.rb +0 -145
  666. data/lib/puppet/face/module/build.rb +0 -14
  667. data/lib/puppet/face/module/generate.rb +0 -14
  668. data/lib/puppet/face/module/search.rb +0 -103
  669. data/lib/puppet/face/status.rb +0 -51
  670. data/lib/puppet/facter_impl.rb +0 -96
  671. data/lib/puppet/ffi/posix/constants.rb +0 -14
  672. data/lib/puppet/ffi/posix/functions.rb +0 -24
  673. data/lib/puppet/ffi/posix.rb +0 -10
  674. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  675. data/lib/puppet/indirector/certificate/file.rb +0 -9
  676. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  677. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  678. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  679. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  680. data/lib/puppet/indirector/file_content/http.rb +0 -22
  681. data/lib/puppet/indirector/key/file.rb +0 -46
  682. data/lib/puppet/indirector/key/memory.rb +0 -7
  683. data/lib/puppet/indirector/ssl_file.rb +0 -162
  684. data/lib/puppet/indirector/status/local.rb +0 -12
  685. data/lib/puppet/indirector/status/rest.rb +0 -27
  686. data/lib/puppet/indirector/status.rb +0 -3
  687. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  688. data/lib/puppet/network/auth_config_parser.rb +0 -90
  689. data/lib/puppet/network/authstore.rb +0 -283
  690. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  691. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  692. data/lib/puppet/network/http/base_pool.rb +0 -36
  693. data/lib/puppet/network/http/compression.rb +0 -127
  694. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  695. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  696. data/lib/puppet/network/rest_controller.rb +0 -2
  697. data/lib/puppet/network/rights.rb +0 -210
  698. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  699. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  700. data/lib/puppet/parser/environment_compiler.rb +0 -202
  701. data/lib/puppet/pops/types/enumeration.rb +0 -16
  702. data/lib/puppet/resource/capability_finder.rb +0 -154
  703. data/lib/puppet/rest/errors.rb +0 -15
  704. data/lib/puppet/rest/response.rb +0 -35
  705. data/lib/puppet/rest/route.rb +0 -85
  706. data/lib/puppet/rest/routes.rb +0 -135
  707. data/lib/puppet/settings/alias_setting.rb +0 -37
  708. data/lib/puppet/ssl/host.rb +0 -505
  709. data/lib/puppet/ssl/key.rb +0 -61
  710. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  711. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  712. data/lib/puppet/ssl/validator.rb +0 -61
  713. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  714. data/lib/puppet/status.rb +0 -40
  715. data/lib/puppet/util/connection.rb +0 -88
  716. data/lib/puppet/util/fact_dif.rb +0 -81
  717. data/lib/puppet/util/ssl.rb +0 -83
  718. data/lib/puppet/util/windows/api_types.rb +0 -309
  719. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  720. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  721. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  722. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  723. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  724. data/lib/puppet/vendor/pathspec/README.md +0 -53
  725. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  726. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  727. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  728. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  729. data/man/man8/puppet-key.8 +0 -126
  730. data/man/man8/puppet-man.8 +0 -76
  731. data/man/man8/puppet-status.8 +0 -108
  732. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  733. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  734. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  735. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  736. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  737. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  738. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  739. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  740. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  741. data/spec/fixtures/ssl/oid-key.pem +0 -117
  742. data/spec/fixtures/ssl/oid.pem +0 -69
  743. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  744. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  745. data/spec/integration/application/resource_spec.rb +0 -64
  746. data/spec/integration/application/ssl_spec.rb +0 -20
  747. data/spec/integration/l10n/compiler_spec.rb +0 -37
  748. data/spec/integration/network/authconfig_spec.rb +0 -256
  749. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  750. data/spec/shared_contexts/l10n.rb +0 -27
  751. data/spec/unit/application/man_spec.rb +0 -52
  752. data/spec/unit/capability_spec.rb +0 -414
  753. data/spec/unit/face/key_spec.rb +0 -9
  754. data/spec/unit/face/module/search_spec.rb +0 -231
  755. data/spec/unit/face/status_spec.rb +0 -9
  756. data/spec/unit/facter_impl_spec.rb +0 -31
  757. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  758. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  759. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  760. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  761. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  762. data/spec/unit/indirector/key/file_spec.rb +0 -78
  763. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  764. data/spec/unit/indirector/status/local_spec.rb +0 -10
  765. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  766. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  767. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  768. data/spec/unit/network/authstore_spec.rb +0 -407
  769. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  770. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  771. data/spec/unit/network/http/compression_spec.rb +0 -240
  772. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  773. data/spec/unit/network/http_spec.rb +0 -9
  774. data/spec/unit/network/rights_spec.rb +0 -439
  775. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  776. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  777. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  778. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  779. data/spec/unit/rest/route_spec.rb +0 -132
  780. data/spec/unit/ssl/host_spec.rb +0 -645
  781. data/spec/unit/ssl/key_spec.rb +0 -173
  782. data/spec/unit/ssl/validator_spec.rb +0 -278
  783. data/spec/unit/status_spec.rb +0 -45
  784. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -3,29 +3,26 @@ require 'spec_helper'
3
3
  require 'pathname'
4
4
  require 'puppet/util/selinux'
5
5
 
6
+ unless defined?(Selinux)
7
+ module Selinux
8
+ def self.is_selinux_enabled
9
+ false
10
+ end
11
+ end
12
+ end
13
+
6
14
  describe Puppet::Util::SELinux do
7
15
  include Puppet::Util::SELinux
8
16
 
9
- let(:selinux) { double('selinux', is_selinux_enabled: false) }
10
-
11
- before :each do
12
- stub_const('Selinux', selinux)
13
- end
14
-
15
17
  describe "selinux_support?" do
16
- it "should return true if this system has SELinux enabled" do
18
+ it "should return :true if this system has SELinux enabled" do
17
19
  expect(Selinux).to receive(:is_selinux_enabled).and_return(1)
18
- expect(selinux_support?).to eq(true)
20
+ expect(selinux_support?).to be_truthy
19
21
  end
20
22
 
21
- it "should return false if this system has SELinux disabled" do
23
+ it "should return :false if this system lacks SELinux" do
22
24
  expect(Selinux).to receive(:is_selinux_enabled).and_return(0)
23
- expect(selinux_support?).to eq(false)
24
- end
25
-
26
- it "should return false if this system lacks SELinux" do
27
- hide_const('Selinux')
28
- expect(selinux_support?).to eq(false)
25
+ expect(selinux_support?).to be_falsey
29
26
  end
30
27
 
31
28
  it "should return nil if /proc/mounts does not exist" do
@@ -114,19 +111,15 @@ describe Puppet::Util::SELinux do
114
111
  end
115
112
 
116
113
  it "should return a context" do
117
- without_partial_double_verification do
118
- expect(self).to receive(:selinux_support?).and_return(true)
119
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
120
- expect(get_selinux_current_context("/foo")).to eq("user_u:role_r:type_t:s0")
121
- end
114
+ expect(self).to receive(:selinux_support?).and_return(true)
115
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
116
+ expect(get_selinux_current_context("/foo")).to eq("user_u:role_r:type_t:s0")
122
117
  end
123
118
 
124
119
  it "should return nil if lgetfilecon fails" do
125
- without_partial_double_verification do
126
- expect(self).to receive(:selinux_support?).and_return(true)
127
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return(-1)
128
- expect(get_selinux_current_context("/foo")).to be_nil
129
- end
120
+ expect(self).to receive(:selinux_support?).and_return(true)
121
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return(-1)
122
+ expect(get_selinux_current_context("/foo")).to be_nil
130
123
  end
131
124
  end
132
125
 
@@ -137,102 +130,47 @@ describe Puppet::Util::SELinux do
137
130
  end
138
131
 
139
132
  it "should return a context if a default context exists" do
140
- without_partial_double_verification do
141
- expect(self).to receive(:selinux_support?).and_return(true)
142
- fstat = double('File::Stat', :mode => 0)
143
- expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
144
- expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
145
- expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return([0, "user_u:role_r:type_t:s0"])
146
-
147
- expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
148
- end
149
- end
150
-
151
- it "handles permission denied errors by issuing a warning" do
152
- without_partial_double_verification do
153
- allow(self).to receive(:selinux_support?).and_return(true)
154
- allow(self).to receive(:selinux_label_support?).and_return(true)
155
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
156
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::EACCES, "/root/chuj")
157
-
158
- expect(get_selinux_default_context("/root/chuj")).to be_nil
159
- end
160
- end
161
-
162
- it "backward compatibly handles no such file or directory errors by issuing a warning when resource_ensure not set" do
163
- without_partial_double_verification do
164
- allow(self).to receive(:selinux_support?).and_return(true)
165
- allow(self).to receive(:selinux_label_support?).and_return(true)
166
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
167
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
168
-
169
- expect(get_selinux_default_context("/root/chuj")).to be_nil
170
- end
171
- end
172
-
173
- it "should determine mode based on resource ensure when set to file" do
174
- without_partial_double_verification do
175
- allow(self).to receive(:selinux_support?).and_return(true)
176
- allow(self).to receive(:selinux_label_support?).and_return(true)
177
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 32768).and_return(-1)
178
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
179
-
180
- expect(get_selinux_default_context("/root/chuj", :present)).to be_nil
181
- expect(get_selinux_default_context("/root/chuj", :file)).to be_nil
182
- end
183
- end
184
-
185
- it "should determine mode based on resource ensure when set to dir" do
186
- without_partial_double_verification do
187
- allow(self).to receive(:selinux_support?).and_return(true)
188
- allow(self).to receive(:selinux_label_support?).and_return(true)
189
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 16384).and_return(-1)
190
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
133
+ expect(self).to receive(:selinux_support?).and_return(true)
134
+ fstat = double('File::Stat', :mode => 0)
135
+ expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
136
+ expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
137
+ expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return([0, "user_u:role_r:type_t:s0"])
191
138
 
192
- expect(get_selinux_default_context("/root/chuj", :directory)).to be_nil
193
- end
139
+ expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
194
140
  end
195
141
 
196
- it "should determine mode based on resource ensure when set to link" do
197
- without_partial_double_verification do
198
- allow(self).to receive(:selinux_support?).and_return(true)
199
- allow(self).to receive(:selinux_label_support?).and_return(true)
200
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 40960).and_return(-1)
201
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
142
+ it "handles permission denied errors by issuing a warning" do
143
+ allow(self).to receive(:selinux_support?).and_return(true)
144
+ allow(self).to receive(:selinux_label_support?).and_return(true)
145
+ allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
146
+ allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::EACCES, "/root/chuj")
202
147
 
203
- expect(get_selinux_default_context("/root/chuj", :link)).to be_nil
204
- end
148
+ expect(get_selinux_default_context("/root/chuj")).to be_nil
205
149
  end
206
150
 
207
- it "should determine mode based on resource ensure when set to unknown" do
208
- without_partial_double_verification do
209
- allow(self).to receive(:selinux_support?).and_return(true)
210
- allow(self).to receive(:selinux_label_support?).and_return(true)
211
- allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
212
- allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
151
+ it "handles no such file or directory errors by issuing a warning" do
152
+ allow(self).to receive(:selinux_support?).and_return(true)
153
+ allow(self).to receive(:selinux_label_support?).and_return(true)
154
+ allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
155
+ allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
213
156
 
214
- expect(get_selinux_default_context("/root/chuj", "unknown")).to be_nil
215
- end
157
+ expect(get_selinux_default_context("/root/chuj")).to be_nil
216
158
  end
217
159
 
218
160
  it "should return nil if matchpathcon returns failure" do
219
- without_partial_double_verification do
220
- expect(self).to receive(:selinux_support?).and_return(true)
221
- fstat = double('File::Stat', :mode => 0)
222
- expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
223
- expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
224
- expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return(-1)
225
-
226
- expect(get_selinux_default_context("/foo")).to be_nil
227
- end
161
+ expect(self).to receive(:selinux_support?).and_return(true)
162
+ fstat = double('File::Stat', :mode => 0)
163
+ expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
164
+ expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
165
+ expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return(-1)
166
+
167
+ expect(get_selinux_default_context("/foo")).to be_nil
228
168
  end
229
169
 
230
170
  it "should return nil if selinux_label_support returns false" do
231
- without_partial_double_verification do
232
- expect(self).to receive(:selinux_support?).and_return(true)
233
- expect(self).to receive(:find_fs).with("/foo").and_return("nfs")
234
- expect(get_selinux_default_context("/foo")).to be_nil
235
- end
171
+ expect(self).to receive(:selinux_support?).and_return(true)
172
+ expect(self).to receive(:find_fs).with("/foo").and_return("nfs")
173
+ expect(get_selinux_default_context("/foo")).to be_nil
236
174
  end
237
175
  end
238
176
 
@@ -323,47 +261,37 @@ describe Puppet::Util::SELinux do
323
261
  end
324
262
 
325
263
  it "should use lsetfilecon to set a context" do
326
- without_partial_double_verification do
327
- expect(self).to receive(:selinux_support?).and_return(true)
328
- expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
329
- expect(set_selinux_context("/foo", "user_u:role_r:type_t:s0")).to be_truthy
330
- end
264
+ expect(self).to receive(:selinux_support?).and_return(true)
265
+ expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
266
+ expect(set_selinux_context("/foo", "user_u:role_r:type_t:s0")).to be_truthy
331
267
  end
332
268
 
333
269
  it "should use lsetfilecon to set user_u user context" do
334
- without_partial_double_verification do
335
- expect(self).to receive(:selinux_support?).and_return(true)
336
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "foo:role_r:type_t:s0"])
337
- expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
338
- expect(set_selinux_context("/foo", "user_u", :seluser)).to be_truthy
339
- end
270
+ expect(self).to receive(:selinux_support?).and_return(true)
271
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "foo:role_r:type_t:s0"])
272
+ expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
273
+ expect(set_selinux_context("/foo", "user_u", :seluser)).to be_truthy
340
274
  end
341
275
 
342
276
  it "should use lsetfilecon to set role_r role context" do
343
- without_partial_double_verification do
344
- expect(self).to receive(:selinux_support?).and_return(true)
345
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:foo:type_t:s0"])
346
- expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
347
- expect(set_selinux_context("/foo", "role_r", :selrole)).to be_truthy
348
- end
277
+ expect(self).to receive(:selinux_support?).and_return(true)
278
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:foo:type_t:s0"])
279
+ expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
280
+ expect(set_selinux_context("/foo", "role_r", :selrole)).to be_truthy
349
281
  end
350
282
 
351
283
  it "should use lsetfilecon to set type_t type context" do
352
- without_partial_double_verification do
353
- expect(self).to receive(:selinux_support?).and_return(true)
354
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:foo:s0"])
355
- expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
356
- expect(set_selinux_context("/foo", "type_t", :seltype)).to be_truthy
357
- end
284
+ expect(self).to receive(:selinux_support?).and_return(true)
285
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:foo:s0"])
286
+ expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
287
+ expect(set_selinux_context("/foo", "type_t", :seltype)).to be_truthy
358
288
  end
359
289
 
360
290
  it "should use lsetfilecon to set s0:c3,c5 range context" do
361
- without_partial_double_verification do
362
- expect(self).to receive(:selinux_support?).and_return(true)
363
- expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
364
- expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0:c3,c5").and_return(0)
365
- expect(set_selinux_context("/foo", "s0:c3,c5", :selrange)).to be_truthy
366
- end
291
+ expect(self).to receive(:selinux_support?).and_return(true)
292
+ expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
293
+ expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0:c3,c5").and_return(0)
294
+ expect(set_selinux_context("/foo", "s0:c3,c5", :selrange)).to be_truthy
367
295
  end
368
296
  end
369
297
 
@@ -374,44 +302,21 @@ describe Puppet::Util::SELinux do
374
302
  end
375
303
 
376
304
  it "should return nil if no default context exists" do
377
- expect(self).to receive(:get_selinux_default_context).with("/foo", nil).and_return(nil)
305
+ expect(self).to receive(:get_selinux_default_context).with("/foo").and_return(nil)
378
306
  expect(set_selinux_default_context("/foo")).to be_nil
379
307
  end
380
308
 
381
309
  it "should do nothing and return nil if the current context matches the default context" do
382
- expect(self).to receive(:get_selinux_default_context).with("/foo", nil).and_return("user_u:role_r:type_t")
310
+ expect(self).to receive(:get_selinux_default_context).with("/foo").and_return("user_u:role_r:type_t")
383
311
  expect(self).to receive(:get_selinux_current_context).with("/foo").and_return("user_u:role_r:type_t")
384
312
  expect(set_selinux_default_context("/foo")).to be_nil
385
313
  end
386
314
 
387
315
  it "should set and return the default context if current and default do not match" do
388
- expect(self).to receive(:get_selinux_default_context).with("/foo", nil).and_return("user_u:role_r:type_t")
316
+ expect(self).to receive(:get_selinux_default_context).with("/foo").and_return("user_u:role_r:type_t")
389
317
  expect(self).to receive(:get_selinux_current_context).with("/foo").and_return("olduser_u:role_r:type_t")
390
318
  expect(self).to receive(:set_selinux_context).with("/foo", "user_u:role_r:type_t").and_return(true)
391
319
  expect(set_selinux_default_context("/foo")).to eq("user_u:role_r:type_t")
392
320
  end
393
321
  end
394
-
395
- describe "get_create_mode" do
396
- it "should return 0 if the resource is absent" do
397
- expect(get_create_mode(:absent)).to eq(0)
398
- end
399
-
400
- it "should return mode with file type set to S_IFREG when resource is file" do
401
- expect(get_create_mode(:present)).to eq(32768)
402
- expect(get_create_mode(:file)).to eq(32768)
403
- end
404
-
405
- it "should return mode with file type set to S_IFDIR when resource is dir" do
406
- expect(get_create_mode(:directory)).to eq(16384)
407
- end
408
-
409
- it "should return mode with file type set to S_IFLNK when resource is link" do
410
- expect(get_create_mode(:link)).to eq(40960)
411
- end
412
-
413
- it "should return 0 for everything else" do
414
- expect(get_create_mode("unknown")).to eq(0)
415
- end
416
- end
417
322
  end
@@ -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