puppet 6.27.0 → 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 (804) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +5 -7
  5. data/Gemfile.lock +51 -70
  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/lookup.rb +24 -74
  108. data/lib/puppet/application/resource.rb +16 -32
  109. data/lib/puppet/application/script.rb +0 -2
  110. data/lib/puppet/application/ssl.rb +1 -13
  111. data/lib/puppet/application.rb +178 -108
  112. data/lib/puppet/application_support.rb +0 -7
  113. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  114. data/lib/puppet/configurer/downloader.rb +1 -2
  115. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  116. data/lib/puppet/configurer.rb +86 -183
  117. data/lib/puppet/confine/variable.rb +1 -1
  118. data/lib/puppet/defaults.rb +130 -244
  119. data/lib/puppet/environments.rb +82 -146
  120. data/lib/puppet/face/facts.rb +5 -103
  121. data/lib/puppet/face/generate.rb +0 -2
  122. data/lib/puppet/face/help/action.erb +0 -1
  123. data/lib/puppet/face/help/face.erb +0 -1
  124. data/lib/puppet/face/help.rb +1 -1
  125. data/lib/puppet/face/node/clean.rb +0 -11
  126. data/lib/puppet/face/plugin.rb +5 -8
  127. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  128. data/lib/puppet/ffi/windows/constants.rb +404 -0
  129. data/lib/puppet/ffi/windows/functions.rb +628 -0
  130. data/lib/puppet/ffi/windows/structs.rb +338 -0
  131. data/lib/puppet/ffi/windows.rb +12 -0
  132. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  133. data/lib/puppet/file_serving/configuration.rb +0 -8
  134. data/lib/puppet/file_serving/fileset.rb +2 -14
  135. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  136. data/lib/puppet/file_serving/metadata.rb +0 -3
  137. data/lib/puppet/file_serving/mount/file.rb +4 -4
  138. data/lib/puppet/file_serving/mount.rb +1 -2
  139. data/lib/puppet/file_system/file_impl.rb +8 -10
  140. data/lib/puppet/file_system/jruby.rb +1 -1
  141. data/lib/puppet/file_system/memory_file.rb +1 -8
  142. data/lib/puppet/file_system/windows.rb +6 -8
  143. data/lib/puppet/file_system.rb +1 -1
  144. data/lib/puppet/forge/repository.rb +0 -1
  145. data/lib/puppet/forge.rb +4 -4
  146. data/lib/puppet/functions/all.rb +1 -1
  147. data/lib/puppet/functions/camelcase.rb +1 -1
  148. data/lib/puppet/functions/capitalize.rb +2 -2
  149. data/lib/puppet/functions/downcase.rb +2 -2
  150. data/lib/puppet/functions/empty.rb +0 -8
  151. data/lib/puppet/functions/find_template.rb +2 -2
  152. data/lib/puppet/functions/get.rb +5 -5
  153. data/lib/puppet/functions/group_by.rb +5 -13
  154. data/lib/puppet/functions/lest.rb +1 -1
  155. data/lib/puppet/functions/new.rb +100 -100
  156. data/lib/puppet/functions/next.rb +1 -18
  157. data/lib/puppet/functions/partition.rb +4 -12
  158. data/lib/puppet/functions/require.rb +5 -5
  159. data/lib/puppet/functions/sort.rb +3 -3
  160. data/lib/puppet/functions/strftime.rb +0 -1
  161. data/lib/puppet/functions/tree_each.rb +10 -7
  162. data/lib/puppet/functions/type.rb +4 -4
  163. data/lib/puppet/functions/unwrap.rb +2 -17
  164. data/lib/puppet/functions/upcase.rb +2 -2
  165. data/lib/puppet/functions/versioncmp.rb +2 -6
  166. data/lib/puppet/generate/models/type/type.rb +4 -1
  167. data/lib/puppet/generate/type.rb +0 -9
  168. data/lib/puppet/http/client.rb +165 -115
  169. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  170. data/lib/puppet/http/errors.rb +16 -0
  171. data/lib/puppet/http/external_client.rb +5 -7
  172. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  173. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  174. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  175. data/lib/puppet/http/proxy.rb +137 -0
  176. data/lib/puppet/http/redirector.rb +4 -17
  177. data/lib/puppet/http/resolver/server_list.rb +10 -25
  178. data/lib/puppet/http/resolver/settings.rb +4 -7
  179. data/lib/puppet/http/resolver/srv.rb +7 -11
  180. data/lib/puppet/http/resolver.rb +5 -15
  181. data/lib/puppet/http/response.rb +36 -54
  182. data/lib/puppet/http/response_converter.rb +24 -0
  183. data/lib/puppet/http/response_net_http.rb +42 -0
  184. data/lib/puppet/http/retry_after_handler.rb +4 -13
  185. data/lib/puppet/http/service/ca.rb +11 -22
  186. data/lib/puppet/http/service/compiler.rb +23 -144
  187. data/lib/puppet/http/service/file_server.rb +19 -29
  188. data/lib/puppet/http/service/puppetserver.rb +26 -12
  189. data/lib/puppet/http/service/report.rb +8 -10
  190. data/lib/puppet/http/service.rb +12 -26
  191. data/lib/puppet/http/session.rb +11 -20
  192. data/lib/puppet/{network/http → http}/site.rb +1 -2
  193. data/lib/puppet/http.rb +22 -13
  194. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  195. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  196. data/lib/puppet/indirector/facts/facter.rb +6 -6
  197. data/lib/puppet/indirector/facts/rest.rb +3 -22
  198. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  199. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  200. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  201. data/lib/puppet/indirector/file_server.rb +1 -8
  202. data/lib/puppet/indirector/generic_http.rb +0 -11
  203. data/lib/puppet/indirector/indirection.rb +1 -1
  204. data/lib/puppet/indirector/node/rest.rb +2 -4
  205. data/lib/puppet/indirector/report/rest.rb +3 -8
  206. data/lib/puppet/indirector/request.rb +0 -101
  207. data/lib/puppet/indirector/resource/ral.rb +1 -6
  208. data/lib/puppet/indirector/rest.rb +12 -263
  209. data/lib/puppet/indirector/terminus.rb +0 -4
  210. data/lib/puppet/interface/documentation.rb +0 -1
  211. data/lib/puppet/module/plan.rb +1 -0
  212. data/lib/puppet/module/task.rb +1 -1
  213. data/lib/puppet/module.rb +0 -1
  214. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  215. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  216. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  217. data/lib/puppet/module_tool/applications.rb +0 -1
  218. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  219. data/lib/puppet/network/authconfig.rb +2 -96
  220. data/lib/puppet/network/authorization.rb +13 -35
  221. data/lib/puppet/network/formats.rb +0 -67
  222. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  223. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  224. data/lib/puppet/network/http/connection.rb +247 -316
  225. data/lib/puppet/network/http/handler.rb +0 -1
  226. data/lib/puppet/network/http.rb +3 -3
  227. data/lib/puppet/network/http_pool.rb +16 -34
  228. data/lib/puppet/node/environment.rb +11 -10
  229. data/lib/puppet/node.rb +2 -31
  230. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  231. data/lib/puppet/pal/pal_impl.rb +4 -2
  232. data/lib/puppet/parser/ast/leaf.rb +2 -3
  233. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  234. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  235. data/lib/puppet/parser/compiler.rb +0 -198
  236. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  237. data/lib/puppet/parser/resource.rb +1 -70
  238. data/lib/puppet/parser/scope.rb +0 -1
  239. data/lib/puppet/parser/templatewrapper.rb +1 -2
  240. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  241. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  242. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  243. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  244. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  245. data/lib/puppet/pops/issues.rb +0 -5
  246. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  247. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  248. data/lib/puppet/pops/model/ast.pp +0 -42
  249. data/lib/puppet/pops/model/ast.rb +0 -291
  250. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  251. data/lib/puppet/pops/model/factory.rb +1 -47
  252. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  253. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  254. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  255. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  256. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  257. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  258. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  259. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  260. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  261. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  262. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  263. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  264. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  265. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  266. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  267. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  268. data/lib/puppet/pops/types/type_parser.rb +0 -4
  269. data/lib/puppet/pops/types/types.rb +1 -2
  270. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  271. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  272. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  273. data/lib/puppet/property/list.rb +1 -1
  274. data/lib/puppet/provider/aix_object.rb +1 -1
  275. data/lib/puppet/provider/exec/posix.rb +4 -16
  276. data/lib/puppet/provider/group/groupadd.rb +10 -18
  277. data/lib/puppet/provider/nameservice.rb +0 -18
  278. data/lib/puppet/provider/package/apt.rb +2 -34
  279. data/lib/puppet/provider/package/aptitude.rb +0 -6
  280. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  281. data/lib/puppet/provider/package/dpkg.rb +0 -10
  282. data/lib/puppet/provider/package/gem.rb +23 -3
  283. data/lib/puppet/provider/package/nim.rb +6 -11
  284. data/lib/puppet/provider/package/pip.rb +3 -16
  285. data/lib/puppet/provider/package/pkg.rb +2 -23
  286. data/lib/puppet/provider/package/portage.rb +1 -1
  287. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  288. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  289. data/lib/puppet/provider/package/yum.rb +1 -1
  290. data/lib/puppet/provider/parsedfile.rb +0 -3
  291. data/lib/puppet/provider/service/base.rb +1 -1
  292. data/lib/puppet/provider/service/debian.rb +0 -2
  293. data/lib/puppet/provider/service/init.rb +9 -10
  294. data/lib/puppet/provider/service/launchd.rb +2 -2
  295. data/lib/puppet/provider/service/redhat.rb +1 -1
  296. data/lib/puppet/provider/service/smf.rb +194 -76
  297. data/lib/puppet/provider/service/systemd.rb +6 -16
  298. data/lib/puppet/provider/service/upstart.rb +5 -5
  299. data/lib/puppet/provider/service/windows.rb +0 -38
  300. data/lib/puppet/provider/user/aix.rb +3 -46
  301. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  302. data/lib/puppet/provider/user/useradd.rb +24 -134
  303. data/lib/puppet/provider.rb +1 -14
  304. data/lib/puppet/reference/configuration.rb +8 -7
  305. data/lib/puppet/reference/indirection.rb +1 -1
  306. data/lib/puppet/reference/providers.rb +2 -2
  307. data/lib/puppet/resource/catalog.rb +2 -15
  308. data/lib/puppet/resource/type.rb +3 -119
  309. data/lib/puppet/resource/type_collection.rb +3 -49
  310. data/lib/puppet/resource.rb +6 -127
  311. data/lib/puppet/runtime.rb +2 -13
  312. data/lib/puppet/settings/environment_conf.rb +0 -1
  313. data/lib/puppet/settings/integer_setting.rb +17 -0
  314. data/lib/puppet/settings/port_setting.rb +15 -0
  315. data/lib/puppet/settings/priority_setting.rb +5 -4
  316. data/lib/puppet/settings.rb +82 -98
  317. data/lib/puppet/ssl/base.rb +3 -5
  318. data/lib/puppet/ssl/certificate.rb +0 -6
  319. data/lib/puppet/ssl/certificate_request.rb +1 -12
  320. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  321. data/lib/puppet/ssl/oids.rb +3 -1
  322. data/lib/puppet/ssl/ssl_provider.rb +24 -10
  323. data/lib/puppet/ssl/state_machine.rb +3 -1
  324. data/lib/puppet/ssl/verifier.rb +2 -6
  325. data/lib/puppet/ssl.rb +10 -6
  326. data/lib/puppet/test/test_helper.rb +2 -7
  327. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  328. data/lib/puppet/transaction/persistence.rb +1 -21
  329. data/lib/puppet/transaction/report.rb +3 -19
  330. data/lib/puppet/transaction.rb +1 -7
  331. data/lib/puppet/type/exec.rb +6 -36
  332. data/lib/puppet/type/file/checksum.rb +1 -1
  333. data/lib/puppet/type/file/data_sync.rb +1 -1
  334. data/lib/puppet/type/file/mode.rb +0 -6
  335. data/lib/puppet/type/file/selcontext.rb +1 -1
  336. data/lib/puppet/type/file/source.rb +1 -1
  337. data/lib/puppet/type/file.rb +12 -32
  338. data/lib/puppet/type/filebucket.rb +4 -4
  339. data/lib/puppet/type/group.rb +1 -0
  340. data/lib/puppet/type/package.rb +8 -16
  341. data/lib/puppet/type/resources.rb +1 -1
  342. data/lib/puppet/type/service.rb +41 -26
  343. data/lib/puppet/type/tidy.rb +3 -22
  344. data/lib/puppet/type/user.rb +13 -32
  345. data/lib/puppet/type.rb +1 -77
  346. data/lib/puppet/util/autoload.rb +8 -1
  347. data/lib/puppet/util/command_line.rb +1 -1
  348. data/lib/puppet/util/execution.rb +0 -11
  349. data/lib/puppet/util/filetype.rb +2 -2
  350. data/lib/puppet/util/http_proxy.rb +2 -215
  351. data/lib/puppet/util/json.rb +0 -20
  352. data/lib/puppet/util/log.rb +4 -8
  353. data/lib/puppet/util/logging.rb +25 -1
  354. data/lib/puppet/util/monkey_patches.rb +2 -59
  355. data/lib/puppet/util/package.rb +16 -25
  356. data/lib/puppet/util/pidlock.rb +1 -1
  357. data/lib/puppet/util/posix.rb +5 -54
  358. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  359. data/lib/puppet/util/rdoc.rb +0 -7
  360. data/lib/puppet/util/retry_action.rb +1 -1
  361. data/lib/puppet/util/run_mode.rb +9 -1
  362. data/lib/puppet/util/selinux.rb +4 -30
  363. data/lib/puppet/util/suidmanager.rb +2 -1
  364. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  365. data/lib/puppet/util/tagging.rb +0 -1
  366. data/lib/puppet/util/windows/adsi.rb +0 -46
  367. data/lib/puppet/util/windows/daemon.rb +360 -0
  368. data/lib/puppet/util/windows/error.rb +1 -0
  369. data/lib/puppet/util/windows/eventlog.rb +4 -9
  370. data/lib/puppet/util/windows/file.rb +8 -242
  371. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  372. data/lib/puppet/util/windows/principal.rb +2 -9
  373. data/lib/puppet/util/windows/process.rb +4 -226
  374. data/lib/puppet/util/windows/service.rb +11 -457
  375. data/lib/puppet/util/windows/sid.rb +2 -6
  376. data/lib/puppet/util/windows/string.rb +12 -13
  377. data/lib/puppet/util/windows/user.rb +2 -0
  378. data/lib/puppet/util/windows.rb +3 -11
  379. data/lib/puppet/util/yaml.rb +1 -42
  380. data/lib/puppet/util.rb +5 -5
  381. data/lib/puppet/vendor/require_vendored.rb +0 -1
  382. data/lib/puppet/version.rb +1 -1
  383. data/lib/puppet/x509/cert_provider.rb +29 -1
  384. data/lib/puppet/x509.rb +5 -1
  385. data/lib/puppet.rb +20 -26
  386. data/locales/puppet.pot +9633 -5
  387. data/man/man5/puppet.conf.5 +286 -401
  388. data/man/man8/puppet-agent.8 +2 -5
  389. data/man/man8/puppet-apply.8 +2 -2
  390. data/man/man8/puppet-catalog.8 +9 -9
  391. data/man/man8/puppet-config.8 +1 -1
  392. data/man/man8/puppet-describe.8 +1 -1
  393. data/man/man8/puppet-device.8 +2 -2
  394. data/man/man8/puppet-doc.8 +1 -1
  395. data/man/man8/puppet-epp.8 +1 -1
  396. data/man/man8/puppet-facts.8 +8 -51
  397. data/man/man8/puppet-filebucket.8 +4 -4
  398. data/man/man8/puppet-generate.8 +1 -1
  399. data/man/man8/puppet-help.8 +1 -1
  400. data/man/man8/puppet-lookup.8 +6 -9
  401. data/man/man8/puppet-module.8 +3 -60
  402. data/man/man8/puppet-node.8 +5 -5
  403. data/man/man8/puppet-parser.8 +1 -1
  404. data/man/man8/puppet-plugin.8 +1 -1
  405. data/man/man8/puppet-report.8 +5 -5
  406. data/man/man8/puppet-resource.8 +1 -1
  407. data/man/man8/puppet-script.8 +2 -2
  408. data/man/man8/puppet-ssl.8 +1 -5
  409. data/man/man8/puppet.8 +2 -2
  410. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  411. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  412. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  413. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  414. data/spec/fixtures/ssl/ca.pem +35 -57
  415. data/spec/fixtures/ssl/crl.pem +18 -28
  416. data/spec/fixtures/ssl/ec-key.pem +11 -11
  417. data/spec/fixtures/ssl/ec.pem +24 -33
  418. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  419. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  420. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  421. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  422. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  423. data/spec/fixtures/ssl/intermediate.pem +36 -57
  424. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  425. data/spec/fixtures/ssl/pluto.pem +30 -52
  426. data/spec/fixtures/ssl/request-key.pem +57 -107
  427. data/spec/fixtures/ssl/request.pem +26 -47
  428. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  429. data/spec/fixtures/ssl/revoked.pem +30 -52
  430. data/spec/fixtures/ssl/signed-key.pem +57 -107
  431. data/spec/fixtures/ssl/signed.pem +30 -52
  432. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  433. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  434. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  435. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  436. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  437. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  438. data/spec/fixtures/unit/forge/bacula.json +1 -1
  439. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  440. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  441. data/spec/integration/application/agent_spec.rb +51 -299
  442. data/spec/integration/application/apply_spec.rb +1 -20
  443. data/spec/integration/application/filebucket_spec.rb +16 -32
  444. data/spec/integration/application/help_spec.rb +2 -0
  445. data/spec/integration/application/lookup_spec.rb +50 -81
  446. data/spec/integration/application/module_spec.rb +0 -21
  447. data/spec/integration/application/plugin_spec.rb +24 -2
  448. data/spec/integration/configurer_spec.rb +2 -18
  449. data/spec/integration/defaults_spec.rb +14 -3
  450. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  451. data/spec/integration/http/client_spec.rb +0 -42
  452. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  453. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  454. data/spec/integration/network/http_pool_spec.rb +3 -21
  455. data/spec/integration/parser/catalog_spec.rb +0 -38
  456. data/spec/integration/parser/node_spec.rb +0 -9
  457. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  458. data/spec/integration/resource/type_collection_spec.rb +6 -2
  459. data/spec/integration/transaction/report_spec.rb +1 -1
  460. data/spec/integration/transaction_spec.rb +9 -4
  461. data/spec/integration/type/exec_spec.rb +45 -70
  462. data/spec/integration/type/file_spec.rb +7 -6
  463. data/spec/integration/type/package_spec.rb +6 -6
  464. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  465. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  466. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  467. data/spec/integration/util/windows/principal_spec.rb +0 -21
  468. data/spec/integration/util/windows/process_spec.rb +9 -1
  469. data/spec/integration/util/windows/registry_spec.rb +10 -6
  470. data/spec/integration/util/windows/security_spec.rb +1 -1
  471. data/spec/lib/matchers/include.rb +27 -0
  472. data/spec/lib/matchers/include_spec.rb +32 -0
  473. data/spec/lib/puppet/test_ca.rb +2 -7
  474. data/spec/lib/puppet_spec/modules.rb +2 -13
  475. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  476. data/spec/lib/puppet_spec/settings.rb +1 -1
  477. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  478. data/spec/spec_helper.rb +17 -13
  479. data/spec/unit/agent_spec.rb +6 -10
  480. data/spec/unit/application/agent_spec.rb +3 -7
  481. data/spec/unit/application/apply_spec.rb +56 -76
  482. data/spec/unit/application/facts_spec.rb +12 -456
  483. data/spec/unit/application/filebucket_spec.rb +43 -39
  484. data/spec/unit/application/lookup_spec.rb +10 -131
  485. data/spec/unit/application/resource_spec.rb +0 -29
  486. data/spec/unit/application/ssl_spec.rb +2 -25
  487. data/spec/unit/application_spec.rb +9 -51
  488. data/spec/unit/certificate_factory_spec.rb +1 -1
  489. data/spec/unit/configurer/downloader_spec.rb +6 -8
  490. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  491. data/spec/unit/configurer_spec.rb +68 -327
  492. data/spec/unit/confine/feature_spec.rb +1 -1
  493. data/spec/unit/confine_spec.rb +2 -8
  494. data/spec/unit/context/trusted_information_spec.rb +2 -6
  495. data/spec/unit/defaults_spec.rb +68 -55
  496. data/spec/unit/environments_spec.rb +68 -408
  497. data/spec/unit/face/generate_spec.rb +0 -64
  498. data/spec/unit/face/node_spec.rb +11 -0
  499. data/spec/unit/face/plugin_spec.rb +73 -33
  500. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  501. data/spec/unit/file_bucket/file_spec.rb +1 -1
  502. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  503. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  504. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  505. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  506. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  507. data/spec/unit/file_system_spec.rb +4 -56
  508. data/spec/unit/forge/module_release_spec.rb +10 -5
  509. data/spec/unit/functions/assert_type_spec.rb +1 -1
  510. data/spec/unit/functions/camelcase_spec.rb +1 -1
  511. data/spec/unit/functions/capitalize_spec.rb +1 -1
  512. data/spec/unit/functions/downcase_spec.rb +1 -1
  513. data/spec/unit/functions/empty_spec.rb +0 -10
  514. data/spec/unit/functions/logging_spec.rb +0 -1
  515. data/spec/unit/functions/lookup_spec.rb +0 -64
  516. data/spec/unit/functions/unwrap_spec.rb +0 -8
  517. data/spec/unit/functions/upcase_spec.rb +1 -1
  518. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  519. data/spec/unit/functions4_spec.rb +2 -2
  520. data/spec/unit/gettext/config_spec.rb +0 -12
  521. data/spec/unit/http/client_spec.rb +8 -66
  522. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  523. data/spec/unit/http/external_client_spec.rb +4 -4
  524. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  525. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  526. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  527. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  528. data/spec/unit/http/resolver_spec.rb +13 -13
  529. data/spec/unit/http/service/compiler_spec.rb +0 -193
  530. data/spec/unit/http/service/file_server_spec.rb +3 -3
  531. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  532. data/spec/unit/http/service_spec.rb +0 -1
  533. data/spec/unit/http/session_spec.rb +16 -14
  534. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  535. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  536. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  537. data/spec/unit/indirector/face_spec.rb +1 -0
  538. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  539. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  540. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  541. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  542. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  543. data/spec/unit/indirector/file_server_spec.rb +1 -15
  544. data/spec/unit/indirector/indirection_spec.rb +15 -18
  545. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  546. data/spec/unit/indirector/request_spec.rb +0 -264
  547. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  548. data/spec/unit/indirector/rest_spec.rb +98 -752
  549. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  550. data/spec/unit/indirector_spec.rb +2 -2
  551. data/spec/unit/interface/action_spec.rb +9 -0
  552. data/spec/unit/module_spec.rb +1 -15
  553. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  554. data/spec/unit/network/authconfig_spec.rb +2 -129
  555. data/spec/unit/network/authorization_spec.rb +2 -55
  556. data/spec/unit/network/formats_spec.rb +4 -51
  557. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  558. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  559. data/spec/unit/network/http/api_spec.rb +10 -0
  560. data/spec/unit/network/http/connection_spec.rb +19 -41
  561. data/spec/unit/network/http/handler_spec.rb +0 -1
  562. data/spec/unit/network/http_pool_spec.rb +0 -4
  563. data/spec/unit/node/environment_spec.rb +33 -21
  564. data/spec/unit/node_spec.rb +2 -60
  565. data/spec/unit/parser/compiler_spec.rb +19 -3
  566. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  567. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  568. data/spec/unit/parser/resource_spec.rb +8 -14
  569. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  570. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  571. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  572. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  573. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  574. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  575. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  576. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  577. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  578. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  579. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  580. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  581. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  582. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  583. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  584. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  585. data/spec/unit/pops/visitor_spec.rb +1 -1
  586. data/spec/unit/property_spec.rb +0 -1
  587. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  588. data/spec/unit/provider/nameservice_spec.rb +64 -122
  589. data/spec/unit/provider/package/apt_spec.rb +23 -28
  590. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  591. data/spec/unit/provider/package/base_spec.rb +5 -6
  592. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  593. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  594. data/spec/unit/provider/package/gem_spec.rb +33 -1
  595. data/spec/unit/provider/package/nim_spec.rb +0 -42
  596. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  597. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  598. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  599. data/spec/unit/provider/package/pip_spec.rb +12 -44
  600. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  601. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  602. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  603. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  604. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  605. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  606. data/spec/unit/provider/service/init_spec.rb +9 -16
  607. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  608. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  609. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  610. data/spec/unit/provider/service/smf_spec.rb +401 -165
  611. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  612. data/spec/unit/provider/service/windows_spec.rb +0 -203
  613. data/spec/unit/provider/user/aix_spec.rb +0 -105
  614. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  615. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  616. data/spec/unit/provider/user/pw_spec.rb +0 -2
  617. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  618. data/spec/unit/provider_spec.rb +12 -22
  619. data/spec/unit/puppet_spec.rb +4 -12
  620. data/spec/unit/resource/catalog_spec.rb +2 -15
  621. data/spec/unit/resource/type_collection_spec.rb +2 -22
  622. data/spec/unit/resource/type_spec.rb +1 -1
  623. data/spec/unit/resource_spec.rb +12 -125
  624. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  625. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  626. data/spec/unit/settings/port_setting_spec.rb +31 -0
  627. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  628. data/spec/unit/settings_spec.rb +79 -110
  629. data/spec/unit/ssl/base_spec.rb +37 -3
  630. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  631. data/spec/unit/ssl/certificate_spec.rb +2 -11
  632. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  633. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  634. data/spec/unit/ssl/verifier_spec.rb +0 -21
  635. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  636. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  637. data/spec/unit/transaction/persistence_spec.rb +0 -51
  638. data/spec/unit/transaction/report_spec.rb +0 -2
  639. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  640. data/spec/unit/transaction_spec.rb +55 -96
  641. data/spec/unit/type/exec_spec.rb +29 -76
  642. data/spec/unit/type/file/checksum_spec.rb +6 -6
  643. data/spec/unit/type/file/content_spec.rb +2 -1
  644. data/spec/unit/type/file/ensure_spec.rb +1 -1
  645. data/spec/unit/type/file/mode_spec.rb +1 -1
  646. data/spec/unit/type/file/selinux_spec.rb +5 -3
  647. data/spec/unit/type/file/source_spec.rb +4 -5
  648. data/spec/unit/type/file_spec.rb +18 -6
  649. data/spec/unit/type/group_spec.rb +6 -13
  650. data/spec/unit/type/package_spec.rb +1 -1
  651. data/spec/unit/type/resources_spec.rb +7 -7
  652. data/spec/unit/type/service_spec.rb +189 -87
  653. data/spec/unit/type/tidy_spec.rb +8 -24
  654. data/spec/unit/type_spec.rb +24 -4
  655. data/spec/unit/util/at_fork_spec.rb +2 -2
  656. data/spec/unit/util/autoload_spec.rb +1 -5
  657. data/spec/unit/util/backups_spec.rb +2 -3
  658. data/spec/unit/util/execution_spec.rb +11 -44
  659. data/spec/unit/util/inifile_spec.rb +14 -6
  660. data/spec/unit/util/log_spec.rb +7 -8
  661. data/spec/unit/util/logging_spec.rb +3 -5
  662. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  663. data/spec/unit/util/posix_spec.rb +15 -363
  664. data/spec/unit/util/run_mode_spec.rb +21 -121
  665. data/spec/unit/util/selinux_spec.rb +68 -163
  666. data/spec/unit/util/storage_spec.rb +1 -3
  667. data/spec/unit/util/suidmanager_spec.rb +41 -44
  668. data/spec/unit/util/windows/sid_spec.rb +0 -41
  669. data/spec/unit/util/windows/string_spec.rb +1 -3
  670. data/spec/unit/util/yaml_spec.rb +13 -92
  671. data/spec/unit/util_spec.rb +6 -31
  672. data/tasks/generate_cert_fixtures.rake +3 -12
  673. data/tasks/parallel.rake +3 -3
  674. metadata +138 -233
  675. data/conf/auth.conf +0 -150
  676. data/ext/README.md +0 -13
  677. data/lib/puppet/application/cert.rb +0 -76
  678. data/lib/puppet/application/key.rb +0 -4
  679. data/lib/puppet/application/man.rb +0 -4
  680. data/lib/puppet/application/status.rb +0 -4
  681. data/lib/puppet/face/key.rb +0 -16
  682. data/lib/puppet/face/man.rb +0 -145
  683. data/lib/puppet/face/module/build.rb +0 -14
  684. data/lib/puppet/face/module/generate.rb +0 -14
  685. data/lib/puppet/face/module/search.rb +0 -103
  686. data/lib/puppet/face/status.rb +0 -51
  687. data/lib/puppet/facter_impl.rb +0 -96
  688. data/lib/puppet/ffi/posix/constants.rb +0 -14
  689. data/lib/puppet/ffi/posix/functions.rb +0 -24
  690. data/lib/puppet/ffi/posix.rb +0 -10
  691. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  692. data/lib/puppet/indirector/certificate/file.rb +0 -9
  693. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  694. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  695. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  696. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  697. data/lib/puppet/indirector/file_content/http.rb +0 -22
  698. data/lib/puppet/indirector/key/file.rb +0 -46
  699. data/lib/puppet/indirector/key/memory.rb +0 -7
  700. data/lib/puppet/indirector/ssl_file.rb +0 -162
  701. data/lib/puppet/indirector/status/local.rb +0 -12
  702. data/lib/puppet/indirector/status/rest.rb +0 -27
  703. data/lib/puppet/indirector/status.rb +0 -3
  704. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  705. data/lib/puppet/network/auth_config_parser.rb +0 -90
  706. data/lib/puppet/network/authstore.rb +0 -283
  707. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  708. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  709. data/lib/puppet/network/http/base_pool.rb +0 -36
  710. data/lib/puppet/network/http/compression.rb +0 -127
  711. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  712. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  713. data/lib/puppet/network/rest_controller.rb +0 -2
  714. data/lib/puppet/network/rights.rb +0 -210
  715. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  716. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  717. data/lib/puppet/parser/environment_compiler.rb +0 -202
  718. data/lib/puppet/pops/types/enumeration.rb +0 -16
  719. data/lib/puppet/resource/capability_finder.rb +0 -154
  720. data/lib/puppet/rest/errors.rb +0 -15
  721. data/lib/puppet/rest/response.rb +0 -35
  722. data/lib/puppet/rest/route.rb +0 -85
  723. data/lib/puppet/rest/routes.rb +0 -135
  724. data/lib/puppet/settings/alias_setting.rb +0 -37
  725. data/lib/puppet/ssl/host.rb +0 -505
  726. data/lib/puppet/ssl/key.rb +0 -61
  727. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  728. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  729. data/lib/puppet/ssl/validator.rb +0 -61
  730. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  731. data/lib/puppet/status.rb +0 -40
  732. data/lib/puppet/util/connection.rb +0 -88
  733. data/lib/puppet/util/fact_dif.rb +0 -81
  734. data/lib/puppet/util/ssl.rb +0 -83
  735. data/lib/puppet/util/windows/api_types.rb +0 -309
  736. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  737. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  738. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  739. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  740. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  741. data/lib/puppet/vendor/pathspec/README.md +0 -53
  742. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  743. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  744. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  745. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  746. data/man/man8/puppet-key.8 +0 -126
  747. data/man/man8/puppet-man.8 +0 -76
  748. data/man/man8/puppet-status.8 +0 -108
  749. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  750. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  751. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  752. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  753. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  754. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  755. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  756. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  757. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  758. data/spec/fixtures/ssl/oid-key.pem +0 -117
  759. data/spec/fixtures/ssl/oid.pem +0 -69
  760. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  761. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  762. data/spec/integration/application/resource_spec.rb +0 -68
  763. data/spec/integration/application/ssl_spec.rb +0 -20
  764. data/spec/integration/l10n/compiler_spec.rb +0 -37
  765. data/spec/integration/network/authconfig_spec.rb +0 -256
  766. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  767. data/spec/shared_contexts/l10n.rb +0 -32
  768. data/spec/unit/application/man_spec.rb +0 -52
  769. data/spec/unit/capability_spec.rb +0 -414
  770. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  771. data/spec/unit/face/key_spec.rb +0 -9
  772. data/spec/unit/face/module/search_spec.rb +0 -231
  773. data/spec/unit/face/status_spec.rb +0 -9
  774. data/spec/unit/facter_impl_spec.rb +0 -31
  775. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  776. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  777. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  778. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  779. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  780. data/spec/unit/indirector/key/file_spec.rb +0 -78
  781. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  782. data/spec/unit/indirector/status/local_spec.rb +0 -10
  783. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  784. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  785. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  786. data/spec/unit/network/authstore_spec.rb +0 -407
  787. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  788. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  789. data/spec/unit/network/http/compression_spec.rb +0 -240
  790. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  791. data/spec/unit/network/http_spec.rb +0 -9
  792. data/spec/unit/network/rights_spec.rb +0 -439
  793. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  794. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  795. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  796. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  797. data/spec/unit/rest/route_spec.rb +0 -132
  798. data/spec/unit/ssl/host_spec.rb +0 -645
  799. data/spec/unit/ssl/key_spec.rb +0 -173
  800. data/spec/unit/ssl/validator_spec.rb +0 -278
  801. data/spec/unit/status_spec.rb +0 -45
  802. data/spec/unit/util/json_spec.rb +0 -126
  803. data/spec/unit/util/ssl_spec.rb +0 -91
  804. data/spec/unit/util/windows_spec.rb +0 -23
@@ -191,27 +191,6 @@ OUTPUT
191
191
  expect(versions[version]).to eq(:rpm)
192
192
  end
193
193
  end
194
-
195
- it "should be able to parse RPM package listings with letters in version" do
196
- showres_output = <<END
197
- cairo ALL @@R:cairo _all_filesets
198
- @@R:cairo-1.14.6-2waixX11 1.14.6-2waixX11
199
- END
200
- packages = subject.send(:parse_showres_output, showres_output)
201
- expect(Set.new(packages.keys)).to eq(Set.new(['cairo']))
202
- versions = packages['cairo']
203
- expect(versions.has_key?('1.14.6-2waixX11')).to eq(true)
204
- expect(versions['1.14.6-2waixX11']).to eq(:rpm)
205
- end
206
-
207
- it "should raise error when parsing invalid RPM package listings" do
208
- showres_output = <<END
209
- cairo ALL @@R:cairo _all_filesets
210
- @@R:cairo-invalid_version invalid_version
211
- END
212
- expect{ subject.send(:parse_showres_output, showres_output) }.to raise_error(Puppet::Error,
213
- /Unable to parse output from nimclient showres: package string does not match expected rpm package string format/)
214
- end
215
194
  end
216
195
 
217
196
  context "#determine_latest_version" do
@@ -241,27 +220,6 @@ END
241
220
  it "should return :installp for installp/bff packages" do
242
221
  expect(subject.send(:determine_package_type, bff_showres_output, 'mypackage.foo', '1.2.3.4')).to eq(:installp)
243
222
  end
244
-
245
- it "should return :installp for security updates" do
246
- nimclient_showres_output = <<END
247
- bos.net ALL @@S:bos.net _all_filesets
248
- + 7.2.0.1 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.1
249
- + 7.2.0.2 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.2
250
-
251
- END
252
- expect(subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2')).to eq(:installp)
253
- end
254
-
255
- it "should raise error when invalid header format is given" do
256
- nimclient_showres_output = <<END
257
- bos.net ALL @@INVALID_TYPE:bos.net _all_filesets
258
- + 7.2.0.1 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.1
259
- + 7.2.0.2 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.2
260
-
261
- END
262
- expect{ subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2') }.to raise_error(
263
- Puppet::Error, /Unable to parse output from nimclient showres: line does not match expected package header format/)
264
- end
265
223
  end
266
224
  end
267
225
  end
@@ -32,12 +32,10 @@ describe Puppet::Type.type(:package).provider(:pacman) do
32
32
  end
33
33
 
34
34
  it "should call yaourt to install the right package quietly when yaourt is installed" do
35
- without_partial_double_verification do
36
- allow(described_class).to receive(:yaourt?).and_return(true)
37
- args = ['--noconfirm', '--needed', '--noprogressbar', '-S', resource[:name]]
38
- expect(provider).to receive(:yaourt).at_least(:once).with(*args).and_return('')
39
- provider.install
40
- end
35
+ allow(described_class).to receive(:yaourt?).and_return(true)
36
+ args = ['--noconfirm', '--needed', '--noprogressbar', '-S', resource[:name]]
37
+ expect(provider).to receive(:yaourt).at_least(:once).with(*args).and_return('')
38
+ provider.install
41
39
  end
42
40
 
43
41
  it "should raise an Puppet::Error if the installation failed" do
@@ -76,12 +74,10 @@ describe Puppet::Type.type(:package).provider(:pacman) do
76
74
  end
77
75
 
78
76
  it "should call yaourt to install the right package quietly when yaourt is installed" do
79
- without_partial_double_verification do
80
- expect(described_class).to receive(:yaourt?).and_return(true)
81
- args = ['--noconfirm', '--needed', '--noprogressbar', '-x', '--arg=value', '-S', resource[:name]]
82
- expect(provider).to receive(:yaourt).at_least(:once).with(*args).and_return('')
83
- provider.install
84
- end
77
+ expect(described_class).to receive(:yaourt?).and_return(true)
78
+ args = ['--noconfirm', '--needed', '--noprogressbar', '-x', '--arg=value', '-S', resource[:name]]
79
+ expect(provider).to receive(:yaourt).at_least(:once).with(*args).and_return('')
80
+ provider.install
85
81
  end
86
82
  end
87
83
 
@@ -176,12 +172,10 @@ describe Puppet::Type.type(:package).provider(:pacman) do
176
172
  end
177
173
 
178
174
  it "should call yaourt to remove the right package quietly" do
179
- without_partial_double_verification do
180
- allow(described_class).to receive(:yaourt?).and_return(true)
181
- args = ["--noconfirm", "--noprogressbar", "-R", resource[:name]]
182
- expect(provider).to receive(:yaourt).with(*args)
183
- provider.uninstall
184
- end
175
+ allow(described_class).to receive(:yaourt?).and_return(true)
176
+ args = ["--noconfirm", "--noprogressbar", "-R", resource[:name]]
177
+ expect(provider).to receive(:yaourt).with(*args)
178
+ provider.uninstall
185
179
  end
186
180
 
187
181
  it "adds any uninstall_options" do
@@ -24,7 +24,7 @@ describe Puppet::Type.type(:package).provider(:pip2) do
24
24
  end
25
25
 
26
26
  context 'when is defaultfor' do
27
- let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
27
+ let(:os) { Facter.value(:operatingsystem) }
28
28
  subject do
29
29
  described_class.defaultfor(operatingsystem: os)
30
30
  described_class.specificity
@@ -24,7 +24,7 @@ describe Puppet::Type.type(:package).provider(:pip3) do
24
24
  end
25
25
 
26
26
  context 'when is defaultfor' do
27
- let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
27
+ let(:os) { Facter.value(:operatingsystem) }
28
28
  subject do
29
29
  described_class.defaultfor(operatingsystem: os)
30
30
  described_class.specificity
@@ -14,8 +14,9 @@ describe Puppet::Type.type(:package).provider(:pip) do
14
14
  it { is_expected.to be_version_ranges }
15
15
 
16
16
  before do
17
- @resource = Puppet::Type.type(:package).new(name: "fake_package", provider: :pip)
18
- @provider = @resource.provider
17
+ @resource = Puppet::Resource.new(:package, "fake_package")
18
+ allow(@resource).to receive(:original_parameters).and_return({})
19
+ @provider = described_class.new(@resource)
19
20
  @client = double('client')
20
21
  allow(@client).to receive(:call).with('package_releases', 'real_package').and_return(["1.3", "1.2.5", "1.2.4"])
21
22
  allow(@client).to receive(:call).with('package_releases', 'fake_package').and_return([])
@@ -266,43 +267,6 @@ describe Puppet::Type.type(:package).provider(:pip) do
266
267
  let(:pip_version) { '1.5.4' }
267
268
  let(:pip_path) { '/fake/bin/pip' }
268
269
 
269
- context "with pip version >= 20.3 and < 21.1" do
270
- let(:pip_version) { '20.3.1' }
271
- let(:pip_path) { '/fake/bin/pip' }
272
-
273
- it "should use legacy-resolver argument" do
274
- p = StringIO.new(
275
- <<-EOS
276
- Collecting real-package==versionplease
277
- Could not find a version that satisfies the requirement real-package==versionplease (from versions: 1.1.3, 1.0, 1.9b1)
278
- No matching distribution found for real-package==versionplease
279
- EOS
280
- )
281
- expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease",
282
- "--use-deprecated=legacy-resolver"]).and_yield(p).once
283
- @resource[:name] = "real_package"
284
- @provider.latest
285
- end
286
- end
287
-
288
- context "with pip version >= 21.1" do
289
- let(:pip_version) { '21.1' }
290
- let(:pip_path) { '/fake/bin/pip' }
291
-
292
- it "should not use legacy-resolver argument" do
293
- p = StringIO.new(
294
- <<-EOS
295
- Collecting real-package==versionplease
296
- Could not find a version that satisfies the requirement real-package==versionplease (from versions: 1.1.3, 1.0, 1.9b1)
297
- No matching distribution found for real-package==versionplease
298
- EOS
299
- )
300
- expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).and_yield(p).once
301
- @resource[:name] = "real_package"
302
- @provider.latest
303
- end
304
- end
305
-
306
270
  it "should find a version number for real_package" do
307
271
  p = StringIO.new(
308
272
  <<-EOS
@@ -371,6 +335,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
371
335
 
372
336
  it "should install" do
373
337
  @resource[:ensure] = :installed
338
+ @resource[:source] = nil
374
339
  expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "fake_package"]])
375
340
  @provider.install
376
341
  end
@@ -403,6 +368,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
403
368
 
404
369
  it "should install a particular version" do
405
370
  @resource[:ensure] = "0.0.0"
371
+ @resource[:source] = nil
406
372
  # TJK
407
373
  expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "fake_package==0.0.0"]])
408
374
  @provider.install
@@ -410,6 +376,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
410
376
 
411
377
  it "should upgrade" do
412
378
  @resource[:ensure] = :latest
379
+ @resource[:source] = nil
413
380
  # TJK
414
381
  expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "--upgrade", "fake_package"]])
415
382
  @provider.install
@@ -417,6 +384,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
417
384
 
418
385
  it "should handle install options" do
419
386
  @resource[:ensure] = :installed
387
+ @resource[:source] = nil
420
388
  @resource[:install_options] = [{"--timeout" => "10"}, "--no-index"]
421
389
  expect(@provider).to receive(:execute).with(["/fake/bin/pip", ["install", "-q", "--timeout=10", "--no-index", "fake_package"]])
422
390
  @provider.install
@@ -447,7 +415,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
447
415
  let(:pip) { '/fake/bin/pip' }
448
416
 
449
417
  it "should look up version if pip is present" do
450
- allow(described_class).to receive(:cmd).and_return(pip)
418
+ allow(described_class).to receive(:pip_cmd).and_return(pip)
451
419
  process = ['pip 8.0.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)']
452
420
  allow(described_class).to receive(:execpipe).with([pip, '--version']).and_yield(process)
453
421
 
@@ -455,7 +423,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
455
423
  end
456
424
 
457
425
  it "parses multiple lines of output" do
458
- allow(described_class).to receive(:cmd).and_return(pip)
426
+ allow(described_class).to receive(:pip_cmd).and_return(pip)
459
427
  process = [
460
428
  "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/socks.py:37: DependencyWarning: SOCKS support in urllib3 requires the installation of optional dependencies: specifically, PySocks. For more information, see https://urllib3.readthedocs.io/en/latest/contrib.html#socks-proxies",
461
429
  " DependencyWarning",
@@ -467,7 +435,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
467
435
  end
468
436
 
469
437
  it "raises if there isn't a version string" do
470
- allow(described_class).to receive(:cmd).and_return(pip)
438
+ allow(described_class).to receive(:pip_cmd).and_return(pip)
471
439
  allow(described_class).to receive(:execpipe).with([pip, '--version']).and_yield([""])
472
440
  expect {
473
441
  described_class.pip_version(pip)
@@ -476,7 +444,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
476
444
 
477
445
  it "quotes commands with spaces" do
478
446
  pip = 'C:\Program Files\Python27\Scripts\pip.exe'
479
- allow(described_class).to receive(:cmd).and_return(pip)
447
+ allow(described_class).to receive(:pip_cmd).and_return(pip)
480
448
  process = ["pip 18.1 from c:\program files\python27\lib\site-packages\pip (python 2.7)\r\n"]
481
449
  allow(described_class).to receive(:execpipe).with(["\"#{pip}\"", '--version']).and_yield(process)
482
450
 
@@ -491,7 +459,7 @@ describe Puppet::Type.type(:package).provider(:pip) do
491
459
  end
492
460
 
493
461
  context 'when is defaultfor' do
494
- let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
462
+ let(:os) { Facter.value(:operatingsystem) }
495
463
  subject do
496
464
  described_class.defaultfor(operatingsystem: os)
497
465
  described_class.specificity
@@ -352,15 +352,12 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
352
352
  resource[:ensure] = '1.0-0.151006'
353
353
  is = :absent
354
354
  expect(provider).to receive(:query).with(no_args).and_return({:ensure => is})
355
- expect(provider).to receive(:properties).and_return({:mark => :hold}).exactly(3).times
356
-
355
+ expect(provider).to receive(:properties).and_return({:mark => :hold})
357
356
  expect(described_class).to receive(:pkg)
358
357
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
359
358
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
360
359
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
361
- expect(provider).to receive(:unhold).with(no_args).twice
362
- expect(described_class).to receive(:pkg)
363
- .with(:freeze, 'dummy')
360
+ expect(provider).to receive(:unhold).with(no_args)
364
361
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
365
362
  allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
366
363
  provider.insync?(is)
@@ -371,14 +368,10 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
371
368
  resource[:ensure] = '1.0-0.151006'
372
369
  is = '1.0,5.11-0.151006:20140219T191204Z'
373
370
  expect(provider).to receive(:query).with(no_args).and_return({:ensure => is})
374
- expect(provider).to receive(:properties).and_return({:mark => :hold}).exactly(3).times
375
-
371
+ expect(provider).to receive(:properties).and_return({:mark => :hold})
376
372
  expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
377
- expect(described_class).to receive(:pkg)
378
- .with(:freeze, 'dummy')
379
373
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
380
- .and_return(File.read(my_fixture('dummy_implicit_version')))
381
- expect(provider).to receive(:unhold).with(no_args).twice
374
+ expect(provider).to receive(:unhold).with(no_args)
382
375
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
383
376
  allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
384
377
  provider.insync?(is)
@@ -392,8 +385,6 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
392
385
  expect(described_class).to receive(:pkg)
393
386
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
394
387
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
395
- expect(Puppet::Util::Execution).to receive(:execute).with(["/bin/pkg", "list", "-Hv", "dummy"], {:failonfail => false, :combine => true})
396
- .and_return(File.read(my_fixture('dummy_implicit_version')))
397
388
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
398
389
  allow($CHILD_STATUS).to receive(:exitstatus).and_return(4)
399
390
  provider.insync?(is)
@@ -405,26 +396,10 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
405
396
  expect(provider).to receive(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
406
397
  expect(provider).to receive(:warning).with("Selecting version '1.0,5.11-0.151006:20140220T084443Z' for implicit '1.0-0.151006'")
407
398
  expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
408
- expect(Puppet::Util::Execution).to receive(:execute).with(["/bin/pkg", "list", "-Hv", "dummy"], {:failonfail => false, :combine => true})
409
- .and_return(File.read(my_fixture('dummy_implicit_version')))
410
399
  expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
411
400
  allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
412
401
  provider.insync?(is)
413
402
  end
414
-
415
- it "should try 5 times to install and fail when all tries failed" do
416
- allow_any_instance_of(Kernel).to receive(:sleep)
417
-
418
- expect(provider).to receive(:query).and_return({:ensure => :absent})
419
- expect(provider).to receive(:properties).and_return({:mark => :hold})
420
- expect(provider).to receive(:unhold)
421
- expect(Puppet::Util::Execution).to receive(:execute)
422
- .with(['/bin/pkg', 'install', *hash[:flags], 'dummy'], {:failonfail => false, :combine => true}).exactly(5).times
423
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(7)
424
- expect {
425
- provider.update
426
- }.to raise_error(Puppet::Error, /Pkg could not install dummy after 5 tries. Aborting run/)
427
- end
428
403
  end
429
404
  end
430
405
  end
@@ -8,6 +8,10 @@ describe Puppet::Type.type(:package).provider(:pkgdmg) do
8
8
  it { is_expected.not_to be_uninstallable }
9
9
 
10
10
  describe "when installing it should fail when" do
11
+ before :each do
12
+ expect(Puppet::Util).not_to receive(:execute)
13
+ end
14
+
11
15
  it "no source is specified" do
12
16
  expect { provider.install }.to raise_error(Puppet::Error, /must specify a package source/)
13
17
  end
@@ -15,19 +15,20 @@ describe Puppet::Type.type(:package).provider(:puppet_gem) do
15
15
  end
16
16
 
17
17
  if Puppet::Util::Platform.windows?
18
- let(:provider_gem_cmd) { 'gem' }
18
+ let(:provider_gem_cmd) { 'C:\Program Files\Puppet Labs\Puppet\puppet\bin\gem.bat' }
19
19
  else
20
20
  let(:provider_gem_cmd) { '/opt/puppetlabs/puppet/bin/gem' }
21
21
  end
22
22
 
23
23
  custom_environment = {"HOME"=>ENV["HOME"]}
24
- custom_environment['PKG_CONFIG_PATH'] = '/opt/puppetlabs/puppet/lib/pkgconfig' unless Puppet::Util::Platform.windows?
24
+ custom_environment['PKG_CONFIG_PATH'] = '/opt/puppetlabs/puppet/lib/pkgconfig'
25
25
 
26
26
  let(:execute_options) { {:failonfail => true, :combine => true, :custom_environment => custom_environment} }
27
27
 
28
28
  before :each do
29
29
  resource.provider = provider
30
30
  allow(described_class).to receive(:command).with(:gemcmd).and_return(provider_gem_cmd)
31
+ allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
31
32
  end
32
33
 
33
34
  context "when installing" do
@@ -87,7 +88,7 @@ describe Puppet::Type.type(:package).provider(:puppet_gem) do
87
88
  end
88
89
 
89
90
  context 'when is defaultfor' do
90
- let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
91
+ let(:os) { Facter.value(:operatingsystem) }
91
92
  subject do
92
93
  described_class.defaultfor(operatingsystem: os)
93
94
  described_class.specificity
@@ -125,7 +125,7 @@ describe Puppet::Type.type(:package).provider(:puppetserver_gem) do
125
125
  end
126
126
 
127
127
  context 'when is defaultfor' do
128
- let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
128
+ let(:os) { Facter.value(:operatingsystem) }
129
129
  subject do
130
130
  described_class.defaultfor(operatingsystem: os)
131
131
  described_class.specificity
@@ -79,16 +79,6 @@ describe Puppet::Provider::ParsedFile do
79
79
 
80
80
  provider.instances
81
81
  end
82
-
83
- it "should raise if parsing returns nil" do
84
- expect(provider).to receive(:targets).and_return(%w{/one})
85
- expect_any_instance_of(Puppet::Util::FileType::FileTypeFlat).to receive(:read).and_return('a=b')
86
- expect(provider).to receive(:parse).and_return(nil)
87
-
88
- expect {
89
- provider.instances
90
- }.to raise_error(Puppet::DevError, %r{Prefetching /one for provider parsedfile_provider returned nil})
91
- end
92
82
  end
93
83
 
94
84
  describe "when matching resources to existing records" do
@@ -10,8 +10,8 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
10
10
 
11
11
  before :each do
12
12
  allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class)
13
- allow(Puppet::FileSystem).to receive(:file?).with('/sbin/rc-update').and_return(true)
14
- allow(Puppet::FileSystem).to receive(:executable?).with('/sbin/rc-update').and_return(true)
13
+ allow(FileTest).to receive(:file?).with('/sbin/rc-update').and_return(true)
14
+ allow(FileTest).to receive(:executable?).with('/sbin/rc-update').and_return(true)
15
15
  allow(Facter).to receive(:value).with(:operatingsystem).and_return('Gentoo')
16
16
  allow(Facter).to receive(:value).with(:osfamily).and_return('Gentoo')
17
17
 
@@ -52,14 +52,13 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
52
52
  end
53
53
 
54
54
  it "should get a list of services from /etc/init.d but exclude helper scripts" do
55
- allow(Puppet::FileSystem).to receive(:directory?).and_call_original
56
- allow(Puppet::FileSystem).to receive(:directory?).with('/etc/init.d').and_return(true)
55
+ expect(FileTest).to receive(:directory?).with('/etc/init.d').and_return(true)
57
56
  expect(Dir).to receive(:entries).with('/etc/init.d').and_return(initscripts)
58
57
  (initscripts - helperscripts).each do |script|
59
- expect(Puppet::FileSystem).to receive(:executable?).with("/etc/init.d/#{script}").and_return(true)
58
+ expect(FileTest).to receive(:executable?).with("/etc/init.d/#{script}").and_return(true)
60
59
  end
61
60
  helperscripts.each do |script|
62
- expect(Puppet::FileSystem).not_to receive(:executable?).with("/etc/init.d/#{script}")
61
+ expect(FileTest).not_to receive(:executable?).with("/etc/init.d/#{script}")
63
62
  end
64
63
 
65
64
  allow(Puppet::FileSystem).to receive(:symlink?).and_return(false)
@@ -83,22 +83,15 @@ describe 'Puppet::Type::Service::Provider::Init',
83
83
  allow(provider_class).to receive(:defpath).and_return('tmp')
84
84
 
85
85
  @services = ['one', 'two', 'three', 'four', 'umountfs']
86
- allow(Dir).to receive(:entries).and_call_original
87
86
  allow(Dir).to receive(:entries).with('tmp').and_return(@services)
88
- allow(Puppet::FileSystem).to receive(:directory?).and_call_original
89
- allow(Puppet::FileSystem).to receive(:directory?).with('tmp').and_return(true)
90
- allow(Puppet::FileSystem).to receive(:executable?).and_return(true)
87
+ expect(FileTest).to receive(:directory?).with('tmp').and_return(true)
88
+ allow(FileTest).to receive(:executable?).and_return(true)
91
89
  end
92
90
 
93
91
  it "should return instances for all services" do
94
92
  expect(provider_class.instances.map(&:name)).to eq(@services)
95
93
  end
96
94
 
97
- it "should omit directories from the service list" do
98
- expect(Puppet::FileSystem).to receive(:directory?).with('tmp/four').and_return(true)
99
- expect(provider_class.instances.map(&:name)).to eq(@services - ['four'])
100
- end
101
-
102
95
  it "should omit an array of services from exclude list" do
103
96
  exclude = ['two', 'four']
104
97
  expect(provider_class.get_services(provider_class.defpath, exclude).map(&:name)).to eq(@services - exclude)
@@ -146,9 +139,9 @@ describe 'Puppet::Type::Service::Provider::Init',
146
139
 
147
140
  describe "when checking valid paths" do
148
141
  it "should discard paths that do not exist" do
149
- expect(Puppet::FileSystem).to receive(:directory?).with(paths[0]).and_return(false)
142
+ expect(File).to receive(:directory?).with(paths[0]).and_return(false)
150
143
  expect(Puppet::FileSystem).to receive(:exist?).with(paths[0]).and_return(false)
151
- expect(Puppet::FileSystem).to receive(:directory?).with(paths[1]).and_return(true)
144
+ expect(File).to receive(:directory?).with(paths[1]).and_return(true)
152
145
 
153
146
  expect(provider.paths).to eq([paths[1]])
154
147
  end
@@ -156,7 +149,7 @@ describe 'Puppet::Type::Service::Provider::Init',
156
149
  it "should discard paths that are not directories" do
157
150
  paths.each do |path|
158
151
  expect(Puppet::FileSystem).to receive(:exist?).with(path).and_return(true)
159
- expect(Puppet::FileSystem).to receive(:directory?).with(path).and_return(false)
152
+ expect(File).to receive(:directory?).with(path).and_return(false)
160
153
  end
161
154
  expect(provider.paths).to be_empty
162
155
  end
@@ -164,7 +157,7 @@ describe 'Puppet::Type::Service::Provider::Init',
164
157
 
165
158
  describe "when searching for the init script" do
166
159
  before :each do
167
- paths.each {|path| expect(Puppet::FileSystem).to receive(:directory?).with(path).and_return(true) }
160
+ paths.each {|path| expect(File).to receive(:directory?).with(path).and_return(true) }
168
161
  end
169
162
 
170
163
  it "should be able to find the init script in the service path" do
@@ -197,9 +190,9 @@ describe 'Puppet::Type::Service::Provider::Init',
197
190
 
198
191
  describe "if the init script is present" do
199
192
  before :each do
200
- allow(Puppet::FileSystem).to receive(:directory?).and_call_original
201
- allow(Puppet::FileSystem).to receive(:directory?).with("/service/path").and_return(true)
202
- allow(Puppet::FileSystem).to receive(:directory?).with("/alt/service/path").and_return(true)
193
+ allow(File).to receive(:directory?).and_call_original
194
+ allow(File).to receive(:directory?).with("/service/path").and_return(true)
195
+ allow(File).to receive(:directory?).with("/alt/service/path").and_return(true)
203
196
  allow(Puppet::FileSystem).to receive(:exist?).with("/service/path/myservice").and_return(true)
204
197
  end
205
198
 
@@ -327,7 +327,6 @@ describe 'Puppet::Type::Service::Provider::Launchd',
327
327
  'LimitLoadToSessionType' => 'Aqua'
328
328
  }
329
329
  end
330
- let(:plist_without_label_not_hash) { 'just a string' }
331
330
  let(:busted_plist_path) { '/Library/LaunchAgents/org.busted.plist' }
332
331
  let(:binary_plist_path) { '/Library/LaunchAgents/org.binary.plist' }
333
332
 
@@ -339,16 +338,6 @@ describe 'Puppet::Type::Service::Provider::Launchd',
339
338
  expect(Puppet).to receive(:debug).with("The #{busted_plist_path} plist does not contain a 'label' key; Puppet is skipping it")
340
339
  provider.make_label_to_path_map
341
340
  end
342
-
343
- it "it should warn that the malformed plist in question is being skipped" do
344
- expect(provider).to receive(:launchd_paths).and_return(['/Library/LaunchAgents'])
345
- expect(provider).to receive(:return_globbed_list_of_file_paths).with('/Library/LaunchAgents').and_return([busted_plist_path])
346
- expect(plistlib).to receive(:read_plist_file).with(busted_plist_path).and_return(plist_without_label_not_hash)
347
- expect(Puppet).to receive(:debug).with("Reading launchd plist #{busted_plist_path}")
348
- expect(Puppet).to receive(:debug).with("The #{busted_plist_path} plist does not contain a 'label' key; Puppet is skipping it")
349
- provider.make_label_to_path_map
350
- end
351
-
352
341
  end
353
342
 
354
343
  it "should return the cached value when available" do
@@ -2,56 +2,61 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Puppet::Type::Service::Provider::Openwrt',
4
4
  unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
5
-
6
5
  let(:provider_class) { Puppet::Type.type(:service).provider(:openwrt) }
7
6
 
8
7
  let(:resource) do
9
- Puppet::Type.type(:service).new(
10
- :name => 'myservice',
11
- :path => '/etc/init.d',
12
- :hasrestart => true,
13
- )
8
+ resource = double('resource')
9
+ allow(resource).to receive(:[]).and_return(nil)
10
+ allow(resource).to receive(:[]).with(:name).and_return("myservice")
11
+ allow(resource).to receive(:[]).with(:path).and_return(["/etc/init.d"])
12
+
13
+ resource
14
14
  end
15
15
 
16
16
  let(:provider) do
17
17
  provider = provider_class.new
18
- provider.resource = resource
18
+ allow(provider).to receive(:get).with(:hasstatus).and_return(false)
19
+
19
20
  provider
20
21
  end
21
22
 
22
23
  before :each do
23
- resource.provider = provider
24
+ allow(resource).to receive(:provider).and_return(provider)
25
+ provider.resource = resource
26
+
27
+ allow(FileTest).to receive(:file?).with('/etc/rc.common').and_return(true)
28
+ allow(FileTest).to receive(:executable?).with('/etc/rc.common').and_return(true)
24
29
 
25
30
  # All OpenWrt tests operate on the init script directly. It must exist.
26
- allow(Puppet::FileSystem).to receive(:directory?).and_call_original
27
- allow(Puppet::FileSystem).to receive(:directory?).with('/etc/init.d').and_return(true)
31
+ allow(File).to receive(:directory?).and_call_original
32
+ allow(File).to receive(:directory?).with('/etc/init.d').and_return(true)
28
33
 
29
34
  allow(Puppet::FileSystem).to receive(:exist?).with('/etc/init.d/myservice').and_return(true)
30
- allow(Puppet::FileSystem).to receive(:file?).and_call_original
31
- allow(Puppet::FileSystem).to receive(:file?).with('/etc/init.d/myservice').and_return(true)
32
- allow(Puppet::FileSystem).to receive(:executable?).with('/etc/init.d/myservice').and_return(true)
35
+ allow(FileTest).to receive(:file?).with('/etc/init.d/myservice').and_return(true)
36
+ allow(FileTest).to receive(:executable?).with('/etc/init.d/myservice').and_return(true)
33
37
  end
34
38
 
35
- it "should be the default provider on 'openwrt'" do
36
- expect(Facter).to receive(:value).with(:operatingsystem).and_return('openwrt')
39
+ operatingsystem = 'openwrt'
40
+ it "should be the default provider on #{operatingsystem}" do
41
+ expect(Facter).to receive(:value).with(:operatingsystem).and_return(operatingsystem)
37
42
  expect(provider_class.default?).to be_truthy
38
43
  end
39
44
 
40
45
  # test self.instances
41
46
  describe "when getting all service instances" do
42
- let(:services) { ['dnsmasq', 'dropbear', 'firewall', 'led', 'puppet', 'uhttpd' ] }
47
+ let(:services) {['dnsmasq', 'dropbear', 'firewall', 'led', 'puppet', 'uhttpd' ]}
43
48
 
44
49
  before :each do
45
- allow(Dir).to receive(:entries).and_call_original
46
- allow(Dir).to receive(:entries).with('/etc/init.d').and_return(services)
47
- allow(Puppet::FileSystem).to receive(:executable?).and_return(true)
50
+ allow(Dir).to receive(:entries).and_return(services)
51
+ allow(FileTest).to receive(:directory?).and_return(true)
52
+ allow(FileTest).to receive(:executable?).and_return(true)
48
53
  end
49
54
 
50
55
  it "should return instances for all services" do
51
56
  services.each do |inst|
52
57
  expect(provider_class).to receive(:new).with(hash_including(:name => inst, :path => '/etc/init.d')).and_return("#{inst}_instance")
53
58
  end
54
- results = services.collect { |x| "#{x}_instance"}
59
+ results = services.collect {|x| "#{x}_instance"}
55
60
  expect(provider_class.instances).to eq(results)
56
61
  end
57
62
  end
@@ -75,13 +80,14 @@ describe 'Puppet::Type::Service::Provider::Openwrt',
75
80
 
76
81
  describe "when running #{method}" do
77
82
  it "should use any provided explicit command" do
78
- resource[method] = '/user/specified/command'
79
- expect(provider).to receive(:execute).with(['/user/specified/command'], any_args)
83
+ allow(resource).to receive(:[]).with(method).and_return("/user/specified/command")
84
+ expect(provider).to receive(:execute).with(["/user/specified/command"], any_args)
80
85
  provider.send(method)
81
86
  end
82
87
 
83
88
  it "should execute the init script with #{method} when no explicit command is provided" do
84
- expect(provider).to receive(:execute).with(['/etc/init.d/myservice', method], any_args)
89
+ allow(resource).to receive(:[]).with("has#{method}".intern).and_return(:true)
90
+ expect(provider).to receive(:execute).with(['/etc/init.d/myservice', method ], any_args)
85
91
  provider.send(method)
86
92
  end
87
93
  end
@@ -50,9 +50,8 @@ describe 'Puppet::Type::Service::Provider::Redhat',
50
50
  @services = ['one', 'two', 'three', 'four', 'kudzu', 'functions', 'halt', 'killall', 'single', 'linuxconf', 'boot', 'reboot']
51
51
  @not_services = ['functions', 'halt', 'killall', 'single', 'linuxconf', 'reboot', 'boot']
52
52
  allow(Dir).to receive(:entries).and_return(@services)
53
- allow(Puppet::FileSystem).to receive(:directory?).and_call_original
54
- allow(Puppet::FileSystem).to receive(:directory?).with('/etc/init.d').and_return(true)
55
- allow(Puppet::FileSystem).to receive(:executable?).and_return(true)
53
+ allow(FileTest).to receive(:directory?).and_return(true)
54
+ allow(FileTest).to receive(:executable?).and_return(true)
56
55
  end
57
56
 
58
57
  it "should return instances for all services" do