puppet 7.6.1 → 7.7.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 (625) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +9 -9
  3. data/install.rb +11 -11
  4. data/lib/hiera_puppet.rb +1 -1
  5. data/lib/puppet.rb +37 -37
  6. data/lib/puppet/agent.rb +6 -6
  7. data/lib/puppet/agent/disabler.rb +1 -1
  8. data/lib/puppet/agent/locker.rb +2 -2
  9. data/lib/puppet/application.rb +6 -6
  10. data/lib/puppet/application/agent.rb +18 -11
  11. data/lib/puppet/application/apply.rb +6 -5
  12. data/lib/puppet/application/catalog.rb +1 -1
  13. data/lib/puppet/application/config.rb +1 -1
  14. data/lib/puppet/application/describe.rb +1 -1
  15. data/lib/puppet/application/device.rb +8 -7
  16. data/lib/puppet/application/doc.rb +7 -7
  17. data/lib/puppet/application/epp.rb +2 -2
  18. data/lib/puppet/application/face_base.rb +2 -2
  19. data/lib/puppet/application/facts.rb +1 -1
  20. data/lib/puppet/application/filebucket.rb +2 -2
  21. data/lib/puppet/application/generate.rb +1 -1
  22. data/lib/puppet/application/help.rb +1 -1
  23. data/lib/puppet/application/indirection_base.rb +1 -1
  24. data/lib/puppet/application/lookup.rb +6 -6
  25. data/lib/puppet/application/module.rb +1 -1
  26. data/lib/puppet/application/node.rb +1 -1
  27. data/lib/puppet/application/parser.rb +2 -2
  28. data/lib/puppet/application/plugin.rb +1 -1
  29. data/lib/puppet/application/report.rb +1 -1
  30. data/lib/puppet/application/resource.rb +3 -2
  31. data/lib/puppet/application/script.rb +6 -5
  32. data/lib/puppet/application/ssl.rb +2 -2
  33. data/lib/puppet/application_support.rb +4 -4
  34. data/lib/puppet/compilable_resource_type.rb +1 -1
  35. data/lib/puppet/concurrent/lock.rb +1 -1
  36. data/lib/puppet/configurer.rb +4 -4
  37. data/lib/puppet/configurer/downloader.rb +4 -3
  38. data/lib/puppet/configurer/fact_handler.rb +3 -3
  39. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  40. data/lib/puppet/confine.rb +1 -1
  41. data/lib/puppet/confine/boolean.rb +1 -1
  42. data/lib/puppet/confine/exists.rb +1 -1
  43. data/lib/puppet/confine/false.rb +1 -1
  44. data/lib/puppet/confine/feature.rb +1 -1
  45. data/lib/puppet/confine/true.rb +1 -1
  46. data/lib/puppet/confine/variable.rb +1 -1
  47. data/lib/puppet/confine_collection.rb +1 -1
  48. data/lib/puppet/confiner.rb +1 -1
  49. data/lib/puppet/context.rb +2 -2
  50. data/lib/puppet/context/trusted_information.rb +1 -1
  51. data/lib/puppet/daemon.rb +2 -2
  52. data/lib/puppet/data_binding.rb +1 -1
  53. data/lib/puppet/datatypes/error.rb +1 -1
  54. data/lib/puppet/defaults.rb +6 -6
  55. data/lib/puppet/environments.rb +1 -1
  56. data/lib/puppet/etc.rb +1 -1
  57. data/lib/puppet/external/pson/common.rb +1 -1
  58. data/lib/puppet/external/pson/pure.rb +3 -3
  59. data/lib/puppet/face.rb +1 -1
  60. data/lib/puppet/face/catalog.rb +1 -1
  61. data/lib/puppet/face/config.rb +2 -2
  62. data/lib/puppet/face/epp.rb +6 -6
  63. data/lib/puppet/face/facts.rb +2 -2
  64. data/lib/puppet/face/generate.rb +2 -2
  65. data/lib/puppet/face/help.rb +3 -3
  66. data/lib/puppet/face/module.rb +3 -3
  67. data/lib/puppet/face/module/install.rb +2 -2
  68. data/lib/puppet/face/node.rb +1 -1
  69. data/lib/puppet/face/parser.rb +4 -4
  70. data/lib/puppet/face/plugin.rb +2 -2
  71. data/lib/puppet/face/report.rb +1 -1
  72. data/lib/puppet/face/resource.rb +1 -1
  73. data/lib/puppet/feature/base.rb +2 -2
  74. data/lib/puppet/feature/bolt.rb +1 -1
  75. data/lib/puppet/feature/cfpropertylist.rb +1 -1
  76. data/lib/puppet/feature/eventlog.rb +1 -1
  77. data/lib/puppet/feature/hiera_eyaml.rb +1 -1
  78. data/lib/puppet/feature/hocon.rb +1 -1
  79. data/lib/puppet/feature/libuser.rb +2 -2
  80. data/lib/puppet/feature/msgpack.rb +1 -1
  81. data/lib/puppet/feature/pe_license.rb +1 -1
  82. data/lib/puppet/feature/selinux.rb +1 -1
  83. data/lib/puppet/feature/ssh.rb +1 -1
  84. data/lib/puppet/feature/telnet.rb +1 -1
  85. data/lib/puppet/feature/zlib.rb +1 -1
  86. data/lib/puppet/ffi/posix.rb +2 -2
  87. data/lib/puppet/ffi/posix/constants.rb +1 -1
  88. data/lib/puppet/ffi/posix/functions.rb +1 -1
  89. data/lib/puppet/ffi/windows.rb +4 -4
  90. data/lib/puppet/ffi/windows/api_types.rb +2 -2
  91. data/lib/puppet/ffi/windows/constants.rb +1 -1
  92. data/lib/puppet/ffi/windows/functions.rb +1 -1
  93. data/lib/puppet/ffi/windows/structs.rb +1 -1
  94. data/lib/puppet/file_bucket/dipper.rb +4 -4
  95. data/lib/puppet/file_bucket/file.rb +3 -3
  96. data/lib/puppet/file_serving/base.rb +2 -2
  97. data/lib/puppet/file_serving/configuration.rb +10 -10
  98. data/lib/puppet/file_serving/configuration/parser.rb +2 -2
  99. data/lib/puppet/file_serving/content.rb +3 -3
  100. data/lib/puppet/file_serving/fileset.rb +16 -4
  101. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  102. data/lib/puppet/file_serving/metadata.rb +6 -6
  103. data/lib/puppet/file_serving/mount.rb +4 -4
  104. data/lib/puppet/file_serving/mount/file.rb +1 -1
  105. data/lib/puppet/file_serving/mount/locales.rb +1 -1
  106. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  107. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  108. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  109. data/lib/puppet/file_serving/mount/tasks.rb +1 -1
  110. data/lib/puppet/file_serving/terminus_helper.rb +2 -2
  111. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  112. data/lib/puppet/file_system.rb +9 -9
  113. data/lib/puppet/file_system/jruby.rb +1 -1
  114. data/lib/puppet/file_system/path_pattern.rb +1 -1
  115. data/lib/puppet/file_system/uniquefile.rb +1 -1
  116. data/lib/puppet/file_system/windows.rb +2 -2
  117. data/lib/puppet/forge.rb +5 -5
  118. data/lib/puppet/forge/cache.rb +1 -1
  119. data/lib/puppet/forge/errors.rb +3 -3
  120. data/lib/puppet/forge/repository.rb +4 -4
  121. data/lib/puppet/functions/all.rb +1 -1
  122. data/lib/puppet/functions/camelcase.rb +1 -1
  123. data/lib/puppet/functions/capitalize.rb +2 -2
  124. data/lib/puppet/functions/downcase.rb +2 -2
  125. data/lib/puppet/functions/get.rb +5 -5
  126. data/lib/puppet/functions/group_by.rb +13 -5
  127. data/lib/puppet/functions/lest.rb +1 -1
  128. data/lib/puppet/functions/new.rb +100 -100
  129. data/lib/puppet/functions/partition.rb +4 -4
  130. data/lib/puppet/functions/require.rb +5 -5
  131. data/lib/puppet/functions/sort.rb +3 -3
  132. data/lib/puppet/functions/tree_each.rb +7 -9
  133. data/lib/puppet/functions/type.rb +4 -4
  134. data/lib/puppet/functions/upcase.rb +2 -2
  135. data/lib/puppet/functions/versioncmp.rb +1 -1
  136. data/lib/puppet/generate/models/type/type.rb +1 -1
  137. data/lib/puppet/generate/type.rb +2 -2
  138. data/lib/puppet/gettext/config.rb +3 -3
  139. data/lib/puppet/gettext/module_translations.rb +1 -1
  140. data/lib/puppet/graph.rb +6 -6
  141. data/lib/puppet/graph/simple_graph.rb +2 -2
  142. data/lib/puppet/http.rb +26 -26
  143. data/lib/puppet/http/factory.rb +2 -2
  144. data/lib/puppet/http/proxy.rb +1 -1
  145. data/lib/puppet/http/resolver/server_list.rb +15 -4
  146. data/lib/puppet/http/service/compiler.rb +73 -1
  147. data/lib/puppet/http/service/file_server.rb +3 -2
  148. data/lib/puppet/indirector.rb +5 -5
  149. data/lib/puppet/indirector/catalog/compiler.rb +7 -6
  150. data/lib/puppet/indirector/catalog/json.rb +2 -2
  151. data/lib/puppet/indirector/catalog/msgpack.rb +2 -2
  152. data/lib/puppet/indirector/catalog/rest.rb +2 -2
  153. data/lib/puppet/indirector/catalog/store_configs.rb +2 -2
  154. data/lib/puppet/indirector/catalog/yaml.rb +2 -2
  155. data/lib/puppet/indirector/code.rb +1 -1
  156. data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
  157. data/lib/puppet/indirector/data_binding/none.rb +1 -1
  158. data/lib/puppet/indirector/direct_file_server.rb +2 -2
  159. data/lib/puppet/indirector/envelope.rb +1 -1
  160. data/lib/puppet/indirector/errors.rb +1 -1
  161. data/lib/puppet/indirector/exec.rb +2 -2
  162. data/lib/puppet/indirector/face.rb +1 -1
  163. data/lib/puppet/indirector/facts/facter.rb +2 -2
  164. data/lib/puppet/indirector/facts/json.rb +3 -3
  165. data/lib/puppet/indirector/facts/memory.rb +2 -2
  166. data/lib/puppet/indirector/facts/network_device.rb +2 -2
  167. data/lib/puppet/indirector/facts/rest.rb +2 -2
  168. data/lib/puppet/indirector/facts/store_configs.rb +2 -2
  169. data/lib/puppet/indirector/facts/yaml.rb +3 -3
  170. data/lib/puppet/indirector/file_bucket_file/file.rb +4 -4
  171. data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -2
  172. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -1
  173. data/lib/puppet/indirector/file_content.rb +1 -1
  174. data/lib/puppet/indirector/file_content/file.rb +3 -3
  175. data/lib/puppet/indirector/file_content/file_server.rb +3 -3
  176. data/lib/puppet/indirector/file_content/rest.rb +3 -3
  177. data/lib/puppet/indirector/file_content/selector.rb +4 -4
  178. data/lib/puppet/indirector/file_metadata.rb +1 -1
  179. data/lib/puppet/indirector/file_metadata/file.rb +3 -3
  180. data/lib/puppet/indirector/file_metadata/file_server.rb +3 -3
  181. data/lib/puppet/indirector/file_metadata/http.rb +3 -3
  182. data/lib/puppet/indirector/file_metadata/rest.rb +4 -3
  183. data/lib/puppet/indirector/file_metadata/selector.rb +4 -4
  184. data/lib/puppet/indirector/file_server.rb +4 -4
  185. data/lib/puppet/indirector/generic_http.rb +1 -1
  186. data/lib/puppet/indirector/hiera.rb +1 -1
  187. data/lib/puppet/indirector/indirection.rb +5 -5
  188. data/lib/puppet/indirector/json.rb +2 -2
  189. data/lib/puppet/indirector/memory.rb +1 -1
  190. data/lib/puppet/indirector/msgpack.rb +2 -2
  191. data/lib/puppet/indirector/node/exec.rb +2 -2
  192. data/lib/puppet/indirector/node/json.rb +2 -2
  193. data/lib/puppet/indirector/node/memory.rb +2 -2
  194. data/lib/puppet/indirector/node/msgpack.rb +2 -2
  195. data/lib/puppet/indirector/node/plain.rb +2 -2
  196. data/lib/puppet/indirector/node/rest.rb +2 -2
  197. data/lib/puppet/indirector/node/store_configs.rb +2 -2
  198. data/lib/puppet/indirector/node/yaml.rb +2 -2
  199. data/lib/puppet/indirector/none.rb +1 -1
  200. data/lib/puppet/indirector/plain.rb +1 -1
  201. data/lib/puppet/indirector/report/json.rb +2 -2
  202. data/lib/puppet/indirector/report/msgpack.rb +2 -2
  203. data/lib/puppet/indirector/report/processor.rb +3 -3
  204. data/lib/puppet/indirector/report/rest.rb +1 -1
  205. data/lib/puppet/indirector/report/yaml.rb +2 -2
  206. data/lib/puppet/indirector/request.rb +3 -3
  207. data/lib/puppet/indirector/resource/ral.rb +1 -1
  208. data/lib/puppet/indirector/resource/store_configs.rb +2 -2
  209. data/lib/puppet/indirector/terminus.rb +5 -5
  210. data/lib/puppet/indirector/yaml.rb +2 -2
  211. data/lib/puppet/info_service.rb +3 -3
  212. data/lib/puppet/info_service/class_information_service.rb +3 -3
  213. data/lib/puppet/info_service/plan_information_service.rb +1 -1
  214. data/lib/puppet/info_service/task_information_service.rb +1 -1
  215. data/lib/puppet/interface.rb +10 -10
  216. data/lib/puppet/interface/documentation.rb +1 -1
  217. data/lib/puppet/loaders.rb +21 -21
  218. data/lib/puppet/metatype/manager.rb +3 -3
  219. data/lib/puppet/module.rb +4 -4
  220. data/lib/puppet/module/plan.rb +1 -1
  221. data/lib/puppet/module/task.rb +1 -1
  222. data/lib/puppet/module_tool.rb +10 -10
  223. data/lib/puppet/module_tool/applications.rb +7 -7
  224. data/lib/puppet/module_tool/applications/application.rb +2 -2
  225. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  226. data/lib/puppet/module_tool/applications/installer.rb +7 -7
  227. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  228. data/lib/puppet/module_tool/applications/upgrader.rb +5 -5
  229. data/lib/puppet/module_tool/checksums.rb +1 -1
  230. data/lib/puppet/module_tool/contents_description.rb +1 -1
  231. data/lib/puppet/module_tool/dependency.rb +2 -2
  232. data/lib/puppet/module_tool/errors.rb +6 -6
  233. data/lib/puppet/module_tool/install_directory.rb +2 -2
  234. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  235. data/lib/puppet/module_tool/local_tarball.rb +2 -2
  236. data/lib/puppet/module_tool/metadata.rb +3 -3
  237. data/lib/puppet/module_tool/tar.rb +4 -4
  238. data/lib/puppet/network/format.rb +1 -1
  239. data/lib/puppet/network/format_handler.rb +3 -3
  240. data/lib/puppet/network/format_support.rb +1 -1
  241. data/lib/puppet/network/formats.rb +2 -2
  242. data/lib/puppet/network/http.rb +12 -12
  243. data/lib/puppet/network/http/api.rb +1 -1
  244. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  245. data/lib/puppet/network/http/api/master.rb +1 -1
  246. data/lib/puppet/network/http/api/master/v3.rb +2 -2
  247. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  248. data/lib/puppet/network/http/api/server/v3.rb +2 -2
  249. data/lib/puppet/network/http/api/server/v3/environments.rb +1 -1
  250. data/lib/puppet/network/http/connection.rb +1 -1
  251. data/lib/puppet/network/http/error.rb +1 -1
  252. data/lib/puppet/network/http/handler.rb +3 -3
  253. data/lib/puppet/network/http_pool.rb +1 -1
  254. data/lib/puppet/node.rb +3 -3
  255. data/lib/puppet/node/environment.rb +3 -3
  256. data/lib/puppet/node/facts.rb +3 -3
  257. data/lib/puppet/pal/pal_api.rb +10 -10
  258. data/lib/puppet/pal/pal_impl.rb +3 -3
  259. data/lib/puppet/parameter.rb +4 -4
  260. data/lib/puppet/parameter/boolean.rb +1 -1
  261. data/lib/puppet/parameter/package_options.rb +1 -1
  262. data/lib/puppet/parameter/path.rb +1 -1
  263. data/lib/puppet/parameter/value.rb +1 -1
  264. data/lib/puppet/parameter/value_collection.rb +1 -1
  265. data/lib/puppet/parser.rb +10 -10
  266. data/lib/puppet/parser/ast.rb +8 -8
  267. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  268. data/lib/puppet/parser/ast/pops_bridge.rb +2 -2
  269. data/lib/puppet/parser/catalog_compiler.rb +2 -2
  270. data/lib/puppet/parser/compiler.rb +5 -5
  271. data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
  272. data/lib/puppet/parser/functions.rb +4 -4
  273. data/lib/puppet/parser/functions/digest.rb +1 -1
  274. data/lib/puppet/parser/functions/file.rb +1 -1
  275. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  276. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  277. data/lib/puppet/parser/parser_factory.rb +2 -2
  278. data/lib/puppet/parser/resource.rb +3 -3
  279. data/lib/puppet/parser/scope.rb +3 -3
  280. data/lib/puppet/parser/script_compiler.rb +2 -2
  281. data/lib/puppet/parser/templatewrapper.rb +2 -2
  282. data/lib/puppet/parser/type_loader.rb +1 -1
  283. data/lib/puppet/plugins/configuration.rb +5 -5
  284. data/lib/puppet/pops.rb +57 -57
  285. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  286. data/lib/puppet/pops/evaluator/evaluator_impl.rb +7 -7
  287. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  288. data/lib/puppet/pops/loader/task_instantiator.rb +1 -1
  289. data/lib/puppet/pops/lookup/invocation.rb +1 -1
  290. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  291. data/lib/puppet/pops/model/pn_transformer.rb +1 -1
  292. data/lib/puppet/pops/parser/eparser.rb +2 -2
  293. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  294. data/lib/puppet/pops/parser/lexer2.rb +5 -5
  295. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  296. data/lib/puppet/pops/parser/parser_support.rb +4 -4
  297. data/lib/puppet/pops/puppet_stack.rb +1 -1
  298. data/lib/puppet/pops/serialization/json.rb +1 -1
  299. data/lib/puppet/pops/serialization/json_path.rb +1 -1
  300. data/lib/puppet/pops/time/timespan.rb +1 -1
  301. data/lib/puppet/pops/types/string_converter.rb +1 -1
  302. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  303. data/lib/puppet/pops/types/type_formatter.rb +1 -1
  304. data/lib/puppet/pops/types/type_parser.rb +1 -1
  305. data/lib/puppet/pops/types/types.rb +1 -1
  306. data/lib/puppet/pops/validation/checker4_0.rb +1 -1
  307. data/lib/puppet/property.rb +3 -3
  308. data/lib/puppet/property/boolean.rb +1 -1
  309. data/lib/puppet/property/ensure.rb +1 -1
  310. data/lib/puppet/property/keyvalue.rb +1 -1
  311. data/lib/puppet/property/list.rb +1 -1
  312. data/lib/puppet/property/ordered_list.rb +1 -1
  313. data/lib/puppet/provider.rb +2 -2
  314. data/lib/puppet/provider/confine.rb +2 -2
  315. data/lib/puppet/provider/exec.rb +2 -2
  316. data/lib/puppet/provider/exec/posix.rb +1 -1
  317. data/lib/puppet/provider/exec/windows.rb +1 -1
  318. data/lib/puppet/provider/file/posix.rb +1 -1
  319. data/lib/puppet/provider/file/windows.rb +1 -1
  320. data/lib/puppet/provider/group/aix.rb +1 -1
  321. data/lib/puppet/provider/group/directoryservice.rb +1 -1
  322. data/lib/puppet/provider/group/groupadd.rb +2 -2
  323. data/lib/puppet/provider/group/ldap.rb +1 -1
  324. data/lib/puppet/provider/group/pw.rb +1 -1
  325. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  326. data/lib/puppet/provider/ldap.rb +2 -2
  327. data/lib/puppet/provider/nameservice.rb +1 -1
  328. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  329. data/lib/puppet/provider/nameservice/objectadd.rb +1 -1
  330. data/lib/puppet/provider/nameservice/pw.rb +1 -1
  331. data/lib/puppet/provider/package.rb +1 -1
  332. data/lib/puppet/provider/package/aix.rb +2 -2
  333. data/lib/puppet/provider/package/appdmg.rb +2 -2
  334. data/lib/puppet/provider/package/apple.rb +1 -1
  335. data/lib/puppet/provider/package/apt.rb +2 -2
  336. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  337. data/lib/puppet/provider/package/dpkg.rb +1 -1
  338. data/lib/puppet/provider/package/gem.rb +3 -3
  339. data/lib/puppet/provider/package/hpux.rb +1 -1
  340. data/lib/puppet/provider/package/macports.rb +2 -2
  341. data/lib/puppet/provider/package/nim.rb +2 -2
  342. data/lib/puppet/provider/package/openbsd.rb +1 -1
  343. data/lib/puppet/provider/package/opkg.rb +1 -1
  344. data/lib/puppet/provider/package/pacman.rb +1 -1
  345. data/lib/puppet/provider/package/pip.rb +3 -3
  346. data/lib/puppet/provider/package/pkg.rb +2 -2
  347. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  348. data/lib/puppet/provider/package/pkgin.rb +1 -1
  349. data/lib/puppet/provider/package/pkgng.rb +1 -1
  350. data/lib/puppet/provider/package/portage.rb +1 -1
  351. data/lib/puppet/provider/package/portupgrade.rb +1 -1
  352. data/lib/puppet/provider/package/puppetserver_gem.rb +0 -0
  353. data/lib/puppet/provider/package/rpm.rb +2 -2
  354. data/lib/puppet/provider/package/sun.rb +1 -1
  355. data/lib/puppet/provider/package/windows.rb +3 -3
  356. data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
  357. data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
  358. data/lib/puppet/provider/package/windows/package.rb +4 -4
  359. data/lib/puppet/provider/package/yum.rb +3 -3
  360. data/lib/puppet/provider/package_targetable.rb +1 -1
  361. data/lib/puppet/provider/parsedfile.rb +3 -3
  362. data/lib/puppet/provider/service/base.rb +6 -4
  363. data/lib/puppet/provider/service/daemontools.rb +0 -1
  364. data/lib/puppet/provider/service/debian.rb +3 -5
  365. data/lib/puppet/provider/service/init.rb +1 -1
  366. data/lib/puppet/provider/service/launchd.rb +9 -3
  367. data/lib/puppet/provider/service/service.rb +28 -3
  368. data/lib/puppet/provider/service/smf.rb +0 -24
  369. data/lib/puppet/provider/service/src.rb +2 -2
  370. data/lib/puppet/provider/service/systemd.rb +11 -6
  371. data/lib/puppet/provider/service/windows.rb +38 -0
  372. data/lib/puppet/provider/user/aix.rb +2 -2
  373. data/lib/puppet/provider/user/directoryservice.rb +2 -2
  374. data/lib/puppet/provider/user/ldap.rb +1 -1
  375. data/lib/puppet/provider/user/openbsd.rb +1 -1
  376. data/lib/puppet/provider/user/pw.rb +1 -1
  377. data/lib/puppet/provider/user/user_role_add.rb +2 -2
  378. data/lib/puppet/provider/user/useradd.rb +3 -3
  379. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  380. data/lib/puppet/reference/configuration.rb +1 -1
  381. data/lib/puppet/reference/indirection.rb +4 -4
  382. data/lib/puppet/reference/report.rb +1 -1
  383. data/lib/puppet/reports.rb +1 -1
  384. data/lib/puppet/reports/http.rb +2 -2
  385. data/lib/puppet/reports/log.rb +1 -1
  386. data/lib/puppet/reports/store.rb +2 -2
  387. data/lib/puppet/resource.rb +4 -4
  388. data/lib/puppet/resource/catalog.rb +5 -5
  389. data/lib/puppet/resource/status.rb +2 -2
  390. data/lib/puppet/resource/type.rb +4 -4
  391. data/lib/puppet/resource/type_collection.rb +4 -4
  392. data/lib/puppet/runtime.rb +1 -1
  393. data/lib/puppet/scheduler.rb +4 -4
  394. data/lib/puppet/settings.rb +28 -28
  395. data/lib/puppet/settings/autosign_setting.rb +1 -1
  396. data/lib/puppet/settings/base_setting.rb +2 -2
  397. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
  398. data/lib/puppet/settings/config_file.rb +1 -1
  399. data/lib/puppet/settings/errors.rb +1 -1
  400. data/lib/puppet/settings/priority_setting.rb +3 -3
  401. data/lib/puppet/ssl.rb +11 -11
  402. data/lib/puppet/ssl/base.rb +3 -3
  403. data/lib/puppet/ssl/certificate.rb +1 -1
  404. data/lib/puppet/ssl/certificate_request.rb +2 -2
  405. data/lib/puppet/ssl/certificate_request_attributes.rb +2 -2
  406. data/lib/puppet/ssl/oids.rb +1 -1
  407. data/lib/puppet/ssl/openssl_loader.rb +1 -1
  408. data/lib/puppet/ssl/ssl_context.rb +1 -1
  409. data/lib/puppet/ssl/ssl_provider.rb +1 -1
  410. data/lib/puppet/ssl/state_machine.rb +2 -2
  411. data/lib/puppet/ssl/verifier.rb +5 -1
  412. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  413. data/lib/puppet/syntax_checkers/epp.rb +1 -1
  414. data/lib/puppet/syntax_checkers/json.rb +1 -1
  415. data/lib/puppet/syntax_checkers/pp.rb +1 -1
  416. data/lib/puppet/transaction.rb +11 -11
  417. data/lib/puppet/transaction/event.rb +4 -4
  418. data/lib/puppet/transaction/event_manager.rb +1 -1
  419. data/lib/puppet/transaction/persistence.rb +1 -1
  420. data/lib/puppet/transaction/report.rb +2 -2
  421. data/lib/puppet/transaction/resource_harness.rb +1 -1
  422. data/lib/puppet/type.rb +14 -14
  423. data/lib/puppet/type/component.rb +3 -3
  424. data/lib/puppet/type/file.rb +37 -19
  425. data/lib/puppet/type/file/checksum.rb +1 -1
  426. data/lib/puppet/type/file/checksum_value.rb +2 -2
  427. data/lib/puppet/type/file/content.rb +2 -2
  428. data/lib/puppet/type/file/data_sync.rb +2 -2
  429. data/lib/puppet/type/file/ensure.rb +1 -1
  430. data/lib/puppet/type/file/group.rb +1 -1
  431. data/lib/puppet/type/file/mode.rb +1 -1
  432. data/lib/puppet/type/file/selcontext.rb +2 -2
  433. data/lib/puppet/type/file/source.rb +4 -4
  434. data/lib/puppet/type/filebucket.rb +1 -1
  435. data/lib/puppet/type/group.rb +2 -2
  436. data/lib/puppet/type/package.rb +2 -2
  437. data/lib/puppet/type/resources.rb +2 -2
  438. data/lib/puppet/type/service.rb +10 -29
  439. data/lib/puppet/type/tidy.rb +24 -5
  440. data/lib/puppet/type/user.rb +4 -4
  441. data/lib/puppet/util.rb +43 -34
  442. data/lib/puppet/util/at_fork.rb +3 -3
  443. data/lib/puppet/util/at_fork/solaris.rb +1 -1
  444. data/lib/puppet/util/autoload.rb +4 -4
  445. data/lib/puppet/util/checksums.rb +3 -3
  446. data/lib/puppet/util/colors.rb +1 -1
  447. data/lib/puppet/util/command_line.rb +6 -6
  448. data/lib/puppet/util/command_line/puppet_option_parser.rb +2 -2
  449. data/lib/puppet/util/execution.rb +2 -2
  450. data/lib/puppet/util/feature.rb +2 -2
  451. data/lib/puppet/util/filetype.rb +1 -1
  452. data/lib/puppet/util/http_proxy.rb +1 -1
  453. data/lib/puppet/util/inifile.rb +2 -2
  454. data/lib/puppet/util/instance_loader.rb +3 -3
  455. data/lib/puppet/util/json_lockfile.rb +1 -1
  456. data/lib/puppet/util/ldap/connection.rb +1 -1
  457. data/lib/puppet/util/ldap/generator.rb +1 -1
  458. data/lib/puppet/util/ldap/manager.rb +3 -3
  459. data/lib/puppet/util/limits.rb +1 -1
  460. data/lib/puppet/util/log.rb +6 -6
  461. data/lib/puppet/util/log/destinations.rb +1 -1
  462. data/lib/puppet/util/logging.rb +2 -2
  463. data/lib/puppet/util/metric.rb +2 -2
  464. data/lib/puppet/util/monkey_patches.rb +7 -3
  465. data/lib/puppet/util/network_device/base.rb +3 -3
  466. data/lib/puppet/util/network_device/config.rb +2 -2
  467. data/lib/puppet/util/network_device/transport.rb +1 -1
  468. data/lib/puppet/util/network_device/transport/base.rb +2 -2
  469. data/lib/puppet/util/package/version/range.rb +6 -6
  470. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  471. data/lib/puppet/util/package/version/range/gt.rb +1 -1
  472. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -1
  473. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  474. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -1
  475. data/lib/puppet/util/package/version/range/min_max.rb +1 -1
  476. data/lib/puppet/util/package/version/range/simple.rb +1 -1
  477. data/lib/puppet/util/package/version/rpm.rb +1 -1
  478. data/lib/puppet/util/pidlock.rb +1 -1
  479. data/lib/puppet/util/plist.rb +1 -1
  480. data/lib/puppet/util/posix.rb +1 -1
  481. data/lib/puppet/util/profiler.rb +3 -3
  482. data/lib/puppet/util/profiler/aggregate.rb +2 -2
  483. data/lib/puppet/util/profiler/object_counts.rb +1 -1
  484. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  485. data/lib/puppet/util/provider_features.rb +2 -2
  486. data/lib/puppet/util/rdoc.rb +2 -2
  487. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  488. data/lib/puppet/util/rdoc/parser.rb +6 -6
  489. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  490. data/lib/puppet/util/reference.rb +1 -1
  491. data/lib/puppet/util/resource_template.rb +2 -2
  492. data/lib/puppet/util/rubygems.rb +1 -1
  493. data/lib/puppet/util/selinux.rb +30 -4
  494. data/lib/puppet/util/skip_tags.rb +1 -1
  495. data/lib/puppet/util/storage.rb +1 -1
  496. data/lib/puppet/util/suidmanager.rb +2 -2
  497. data/lib/puppet/util/symbolic_file_mode.rb +1 -1
  498. data/lib/puppet/util/tag_set.rb +1 -1
  499. data/lib/puppet/util/tagging.rb +1 -1
  500. data/lib/puppet/util/watched_file.rb +1 -1
  501. data/lib/puppet/util/watcher.rb +3 -3
  502. data/lib/puppet/util/windows.rb +20 -20
  503. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  504. data/lib/puppet/util/windows/adsi.rb +1 -1
  505. data/lib/puppet/util/windows/daemon.rb +1 -1
  506. data/lib/puppet/util/windows/error.rb +2 -2
  507. data/lib/puppet/util/windows/file.rb +1 -1
  508. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -2
  509. data/lib/puppet/util/windows/principal.rb +1 -1
  510. data/lib/puppet/util/windows/process.rb +2 -2
  511. data/lib/puppet/util/windows/registry.rb +1 -1
  512. data/lib/puppet/util/windows/root_certs.rb +2 -2
  513. data/lib/puppet/util/windows/security.rb +1 -1
  514. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  515. data/lib/puppet/util/windows/service.rb +1 -1
  516. data/lib/puppet/util/windows/sid.rb +1 -1
  517. data/lib/puppet/util/windows/user.rb +1 -1
  518. data/lib/puppet/vendor.rb +1 -1
  519. data/lib/puppet/version.rb +1 -1
  520. data/lib/puppet/x509.rb +4 -4
  521. data/lib/puppet/x509/cert_provider.rb +1 -1
  522. data/lib/puppet/x509/pem_store.rb +1 -1
  523. data/lib/puppet_pal.rb +2 -2
  524. data/locales/puppet.pot +156 -144
  525. data/man/man5/puppet.conf.5 +256 -241
  526. data/man/man8/puppet-agent.8 +1 -1
  527. data/man/man8/puppet-apply.8 +1 -1
  528. data/man/man8/puppet-catalog.8 +1 -1
  529. data/man/man8/puppet-config.8 +1 -1
  530. data/man/man8/puppet-describe.8 +1 -1
  531. data/man/man8/puppet-device.8 +1 -1
  532. data/man/man8/puppet-doc.8 +1 -1
  533. data/man/man8/puppet-epp.8 +1 -1
  534. data/man/man8/puppet-facts.8 +1 -1
  535. data/man/man8/puppet-filebucket.8 +1 -1
  536. data/man/man8/puppet-generate.8 +1 -1
  537. data/man/man8/puppet-help.8 +1 -1
  538. data/man/man8/puppet-lookup.8 +1 -1
  539. data/man/man8/puppet-module.8 +1 -1
  540. data/man/man8/puppet-node.8 +1 -1
  541. data/man/man8/puppet-parser.8 +1 -1
  542. data/man/man8/puppet-plugin.8 +1 -1
  543. data/man/man8/puppet-report.8 +1 -1
  544. data/man/man8/puppet-resource.8 +1 -1
  545. data/man/man8/puppet-script.8 +1 -1
  546. data/man/man8/puppet-ssl.8 +1 -1
  547. data/man/man8/puppet.8 +2 -2
  548. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  549. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  550. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  551. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  552. data/spec/fixtures/ssl/ca.pem +57 -35
  553. data/spec/fixtures/ssl/crl.pem +28 -18
  554. data/spec/fixtures/ssl/ec-key.pem +11 -11
  555. data/spec/fixtures/ssl/ec.pem +33 -24
  556. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  557. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  558. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  559. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  560. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  561. data/spec/fixtures/ssl/intermediate.pem +57 -36
  562. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  563. data/spec/fixtures/ssl/pluto.pem +52 -30
  564. data/spec/fixtures/ssl/request-key.pem +107 -57
  565. data/spec/fixtures/ssl/request.pem +47 -26
  566. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  567. data/spec/fixtures/ssl/revoked.pem +52 -30
  568. data/spec/fixtures/ssl/signed-key.pem +107 -57
  569. data/spec/fixtures/ssl/signed.pem +52 -30
  570. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  571. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  572. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  573. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  574. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  575. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  576. data/spec/integration/type/file_spec.rb +5 -5
  577. data/spec/lib/puppet/test_ca.rb +2 -2
  578. data/spec/lib/puppet_spec/files.rb +1 -1
  579. data/spec/shared_contexts/provider.rb +16 -0
  580. data/spec/unit/application/agent_spec.rb +7 -2
  581. data/spec/unit/configurer/downloader_spec.rb +6 -0
  582. data/spec/unit/configurer_spec.rb +23 -0
  583. data/spec/unit/file_bucket/dipper_spec.rb +1 -1
  584. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  585. data/spec/unit/gettext/config_spec.rb +12 -0
  586. data/spec/unit/http/service/compiler_spec.rb +123 -0
  587. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  588. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  589. data/spec/unit/pops/lookup/context_spec.rb +1 -1
  590. data/spec/unit/provider/package/dnfmodule_spec.rb +3 -3
  591. data/spec/unit/provider/package/gem_spec.rb +3 -1
  592. data/spec/unit/provider/package/pip2_spec.rb +3 -1
  593. data/spec/unit/provider/package/pip3_spec.rb +3 -1
  594. data/spec/unit/provider/package/pip_spec.rb +3 -1
  595. data/spec/unit/provider/package/pkg_spec.rb +44 -44
  596. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -1
  597. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -0
  598. data/spec/unit/provider/service/base_spec.rb +8 -8
  599. data/spec/unit/provider/service/bsd_spec.rb +0 -4
  600. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  601. data/spec/unit/provider/service/debian_spec.rb +15 -17
  602. data/spec/unit/provider/service/gentoo_spec.rb +19 -14
  603. data/spec/unit/provider/service/init_spec.rb +29 -20
  604. data/spec/unit/provider/service/launchd_spec.rb +10 -12
  605. data/spec/unit/provider/service/openbsd_spec.rb +21 -35
  606. data/spec/unit/provider/service/openrc_spec.rb +15 -14
  607. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  608. data/spec/unit/provider/service/redhat_spec.rb +20 -19
  609. data/spec/unit/provider/service/smf_spec.rb +6 -5
  610. data/spec/unit/provider/service/src_spec.rb +5 -10
  611. data/spec/unit/provider/service/systemd_spec.rb +57 -29
  612. data/spec/unit/provider/service/upstart_spec.rb +25 -20
  613. data/spec/unit/provider/service/windows_spec.rb +202 -0
  614. data/spec/unit/resource/catalog_spec.rb +1 -1
  615. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  616. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  617. data/spec/unit/transaction_spec.rb +18 -20
  618. data/spec/unit/type/file/selinux_spec.rb +3 -3
  619. data/spec/unit/type/service_spec.rb +10 -154
  620. data/spec/unit/type/tidy_spec.rb +17 -7
  621. data/spec/unit/util/at_fork_spec.rb +9 -9
  622. data/spec/unit/util/posix_spec.rb +1 -1
  623. data/spec/unit/util/selinux_spec.rb +87 -16
  624. data/tasks/generate_cert_fixtures.rake +2 -2
  625. metadata +4 -2
@@ -468,13 +468,15 @@ context Puppet::Type.type(:package).provider(:gem) do
468
468
  end
469
469
 
470
470
  context 'calculated specificity' do
471
+ include_context 'provider specificity'
472
+
471
473
  context 'when is not defaultfor' do
472
474
  subject { described_class.specificity }
473
475
  it { is_expected.to eql 1 }
474
476
  end
475
477
 
476
478
  context 'when is defaultfor' do
477
- let(:os) { Facter.value(:operatingsystem) }
479
+ let(:os) { Facter.value(:operatingsystem) }
478
480
  subject do
479
481
  described_class.defaultfor(operatingsystem: os)
480
482
  described_class.specificity
@@ -18,13 +18,15 @@ describe Puppet::Type.type(:package).provider(:pip2) do
18
18
  end
19
19
 
20
20
  context 'calculated specificity' do
21
+ include_context 'provider specificity'
22
+
21
23
  context 'when is not defaultfor' do
22
24
  subject { described_class.specificity }
23
25
  it { is_expected.to eql 1 }
24
26
  end
25
27
 
26
28
  context 'when is defaultfor' do
27
- let(:os) { Facter.value(:operatingsystem) }
29
+ let(:os) { Facter.value(:operatingsystem) }
28
30
  subject do
29
31
  described_class.defaultfor(operatingsystem: os)
30
32
  described_class.specificity
@@ -18,13 +18,15 @@ describe Puppet::Type.type(:package).provider(:pip3) do
18
18
  end
19
19
 
20
20
  context 'calculated specificity' do
21
+ include_context 'provider specificity'
22
+
21
23
  context 'when is not defaultfor' do
22
24
  subject { described_class.specificity }
23
25
  it { is_expected.to eql 1 }
24
26
  end
25
27
 
26
28
  context 'when is defaultfor' do
27
- let(:os) { Facter.value(:operatingsystem) }
29
+ let(:os) { Facter.value(:operatingsystem) }
28
30
  subject do
29
31
  described_class.defaultfor(operatingsystem: os)
30
32
  described_class.specificity
@@ -448,13 +448,15 @@ describe Puppet::Type.type(:package).provider(:pip) do
448
448
  end
449
449
 
450
450
  context 'calculated specificity' do
451
+ include_context 'provider specificity'
452
+
451
453
  context 'when is not defaultfor' do
452
454
  subject { described_class.specificity }
453
455
  it { is_expected.to eql 1 }
454
456
  end
455
457
 
456
458
  context 'when is defaultfor' do
457
- let(:os) { Facter.value(:operatingsystem) }
459
+ let(:os) { Facter.value(:operatingsystem) }
458
460
  subject do
459
461
  described_class.defaultfor(operatingsystem: os)
460
462
  described_class.specificity
@@ -4,16 +4,6 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
4
4
  let (:resource) { Puppet::Resource.new(:package, 'dummy', :parameters => {:name => 'dummy', :ensure => :latest}) }
5
5
  let (:provider) { described_class.new(resource) }
6
6
 
7
- before(:all) do
8
- if Puppet::Util::Platform.windows?
9
- # Get a pid for $CHILD_STATUS to latch on to
10
- command = "cmd.exe /c \"exit 0\""
11
- Puppet::Util::Execution.execute(command, {:failonfail => false})
12
- else
13
- Puppet::Util::Execution.execute('exit 0', {:failonfail => false})
14
- end
15
- end
16
-
17
7
  before :each do
18
8
  allow(described_class).to receive(:command).with(:pkg).and_return('/bin/pkg')
19
9
  end
@@ -120,7 +110,6 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
120
110
  expect(Puppet::Util::Execution).to receive(:execute)
121
111
  .with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true})
122
112
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
123
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
124
113
 
125
114
  expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.known')))
126
115
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
@@ -132,8 +121,9 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
132
121
  end
133
122
 
134
123
  it "should work correctly for ensure latest on solaris 11(known IFO)" do
135
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true}).and_return('')
136
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
124
+ expect(Puppet::Util::Execution).to receive(:execute)
125
+ .with(['/bin/pkg', 'update', '-n', 'dummy'], {:failonfail => false, :combine => true})
126
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
137
127
 
138
128
  expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.ifo.known')))
139
129
  expect(provider.latest).to eq('1.0.6,5.11-0.175.0.0.0.2.537:20131230T130000Z')
@@ -158,7 +148,8 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
158
148
  resource[:install_options] = ['--foo', {'--bar' => 'baz'}]
159
149
  expect(described_class).to receive(:pkg).with(:list,'-Hvn','dummy').and_return(File.read(my_fixture('dummy_solaris11.known')))
160
150
  expect(Puppet::Util::Execution).to receive(:execute)
161
- .with(['/bin/pkg', 'update', '-n', '--foo', '--bar=baz', 'dummy'], {failonfail: false, combine: true})
151
+ .with(['/bin/pkg', 'update', '-n', '--foo', '--bar=baz', 'dummy'], {failonfail: false, combine: true})
152
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
162
153
  provider.latest
163
154
  end
164
155
  end
@@ -195,7 +186,6 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
195
186
  expect(Puppet::Util::Execution).to receive(:execute)
196
187
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
197
188
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris10')), 0))
198
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
199
189
  expect(provider.query).to eq({
200
190
  :name => 'dummy',
201
191
  :ensure => '2.5.5,5.10-0.111:20131230T130000Z',
@@ -208,15 +198,13 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
208
198
  it "should return :absent when the package is not found" do
209
199
  expect(Puppet::Util::Execution).to receive(:execute)
210
200
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
211
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
212
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
201
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
213
202
  expect(provider.query).to eq({:ensure => :absent, :name => "dummy"})
214
203
  end
215
204
  end
216
205
 
217
206
  context "on solaris 11" do
218
207
  it "should find the package" do
219
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
220
208
  expect(Puppet::Util::Execution).to receive(:execute)
221
209
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
222
210
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_solaris11.installed')), 0))
@@ -232,8 +220,7 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
232
220
  it "should return :absent when the package is not found" do
233
221
  expect(Puppet::Util::Execution).to receive(:execute)
234
222
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
235
- .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
236
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
223
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
237
224
  expect(provider.query).to eq({:ensure => :absent, :name => "dummy"})
238
225
  end
239
226
  end
@@ -242,7 +229,6 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
242
229
  expect(Puppet::Util::Execution).to receive(:execute)
243
230
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
244
231
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('incomplete')), 0))
245
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
246
232
  expect {
247
233
  provider.query
248
234
  }.to raise_error(ArgumentError, /Unknown line format/)
@@ -266,7 +252,7 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
266
252
  expect(provider).to receive(:unhold)
267
253
  expect(Puppet::Util::Execution).to receive(:execute)
268
254
  .with(['/bin/pkg', 'install', *hash[:flags], '--foo', '--bar=baz', 'dummy'], {:failonfail => false, :combine => true})
269
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
255
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
270
256
  provider.install
271
257
  end
272
258
 
@@ -279,16 +265,16 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
279
265
  expect(Puppet::Util::Execution).to receive(:execute)
280
266
  .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
281
267
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
282
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
283
268
  provider.install
284
269
  end
285
270
 
286
271
  it "should install specific version(1)" do
287
272
  # Should install also check if the version installed is the same version we are asked to install? or should we rely on puppet for that?
288
273
  resource[:ensure] = '0.0.7,5.11-0.151006:20131230T130000Z'
289
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
290
274
  expect(provider).to receive(:properties).and_return({:mark => :hold})
291
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
275
+ expect(Puppet::Util::Execution).to receive(:execute)
276
+ .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
277
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
292
278
  expect(Puppet::Util::Execution).to receive(:execute)
293
279
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
294
280
  .and_return(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.6,5.11-0.151006:20131230T130000Z installed -----', 0))
@@ -301,14 +287,15 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
301
287
  it "should install specific version(2)" do
302
288
  resource[:ensure] = '0.0.8'
303
289
  expect(provider).to receive(:properties).and_return({:mark => :hold})
304
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
290
+ expect(Puppet::Util::Execution).to receive(:execute)
291
+ .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
292
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
305
293
  expect(Puppet::Util::Execution).to receive(:execute)
306
294
  .with(['/bin/pkg', 'list', '-Hv', 'dummy'], {:failonfail => false, :combine => true})
307
295
  .and_return(Puppet::Util::Execution::ProcessOutput.new('pkg://foo/dummy@0.0.7,5.11-0.151006:20131230T130000Z installed -----', 0))
308
296
  expect(Puppet::Util::Execution).to receive(:execute)
309
297
  .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@0.0.8'], {:failonfail => false, :combine => true})
310
298
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
311
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
312
299
  provider.install
313
300
  end
314
301
 
@@ -316,8 +303,9 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
316
303
  resource[:ensure] = '0.0.7'
317
304
  expect(provider).to receive(:properties).and_return({:mark => :hold})
318
305
  expect(provider).to receive(:query).with(no_args).and_return({:ensure => '0.0.8,5.11-0.151106:20131230T130000Z'})
319
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
320
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
306
+ expect(Puppet::Util::Execution).to receive(:execute)
307
+ .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
308
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
321
309
  expect(Puppet::Util::Execution).to receive(:execute)
322
310
  .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@0.0.7'], {:failonfail => false, :combine => true})
323
311
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
@@ -331,8 +319,9 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
331
319
  expect(Puppet::Util::Execution).to receive(:execute)
332
320
  .with(['/bin/pkg', 'install', *hash[:flags], 'dummy'], {:failonfail => false, :combine => true})
333
321
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
334
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
335
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
322
+ expect(Puppet::Util::Execution).to receive(:execute)
323
+ .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
324
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
336
325
  provider.install
337
326
  end
338
327
 
@@ -340,11 +329,12 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
340
329
  resource[:ensure] = '0.0.7'
341
330
  expect(provider).to receive(:properties).and_return({:mark => :hold})
342
331
  expect(provider).to receive(:query).with(no_args).and_return({:ensure => :absent})
343
- expect(Puppet::Util::Execution).to receive(:execute).with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
332
+ expect(Puppet::Util::Execution).to receive(:execute)
333
+ .with(['/bin/pkg', 'unfreeze', 'dummy'], {:failonfail => false, :combine => true})
334
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
344
335
  expect(Puppet::Util::Execution).to receive(:execute)
345
336
  .with(['/bin/pkg', 'install', *hash[:flags], 'dummy@0.0.7'], {:failonfail => false, :combine => true})
346
337
  .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
347
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
348
338
  provider.install
349
339
  end
350
340
 
@@ -356,10 +346,13 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
356
346
  expect(described_class).to receive(:pkg)
357
347
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
358
348
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
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})
349
+ expect(Puppet::Util::Execution).to receive(:execute)
350
+ .with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
351
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
360
352
  expect(provider).to receive(:unhold).with(no_args)
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})
362
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
353
+ expect(Puppet::Util::Execution).to receive(:execute)
354
+ .with(['/bin/pkg', 'install', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
355
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
363
356
  provider.insync?(is)
364
357
  provider.install
365
358
  end
@@ -370,10 +363,13 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
370
363
  expect(provider).to receive(:query).with(no_args).and_return({:ensure => is})
371
364
  expect(provider).to receive(:properties).and_return({:mark => :hold})
372
365
  expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
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})
366
+ expect(Puppet::Util::Execution).to receive(:execute)
367
+ .with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
368
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
374
369
  expect(provider).to receive(:unhold).with(no_args)
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})
376
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
370
+ expect(Puppet::Util::Execution).to receive(:execute)
371
+ .with(['/bin/pkg', 'update', *hash[:flags], 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
372
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
377
373
  provider.insync?(is)
378
374
  provider.install
379
375
  end
@@ -385,8 +381,9 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
385
381
  expect(described_class).to receive(:pkg)
386
382
  .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
387
383
  .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
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})
389
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(4)
384
+ expect(Puppet::Util::Execution).to receive(:execute)
385
+ .with(['/bin/pkg', 'update', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
386
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 4))
390
387
  provider.insync?(is)
391
388
  end
392
389
 
@@ -395,9 +392,12 @@ describe Puppet::Type.type(:package).provider(:pkg), unless: Puppet::Util::Platf
395
392
  is = :absent
396
393
  expect(provider).to receive(:warning).with("Implicit version 1.0-0.151006 has 3 possible matches")
397
394
  expect(provider).to receive(:warning).with("Selecting version '1.0,5.11-0.151006:20140220T084443Z' for implicit '1.0-0.151006'")
398
- expect(described_class).to receive(:pkg).with(:list, '-Hvfa', 'dummy@1.0-0.151006').and_return(File.read(my_fixture('dummy_implicit_version')))
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})
400
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
395
+ expect(described_class).to receive(:pkg)
396
+ .with(:list, '-Hvfa', 'dummy@1.0-0.151006')
397
+ .and_return(Puppet::Util::Execution::ProcessOutput.new(File.read(my_fixture('dummy_implicit_version')), 0))
398
+ expect(Puppet::Util::Execution).to receive(:execute)
399
+ .with(['/bin/pkg', 'install', '-n', 'dummy@1.0,5.11-0.151006:20140220T084443Z'], {:failonfail => false, :combine => true})
400
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
401
401
  provider.insync?(is)
402
402
  end
403
403
  end
@@ -110,13 +110,15 @@ describe Puppet::Type.type(:package).provider(:puppet_gem) do
110
110
  end
111
111
 
112
112
  context 'calculated specificity' do
113
+ include_context 'provider specificity'
114
+
113
115
  context 'when is not defaultfor' do
114
116
  subject { described_class.specificity }
115
117
  it { is_expected.to eql 1 }
116
118
  end
117
119
 
118
120
  context 'when is defaultfor' do
119
- let(:os) { Facter.value(:operatingsystem) }
121
+ let(:os) { Facter.value(:operatingsystem) }
120
122
  subject do
121
123
  described_class.defaultfor(operatingsystem: os)
122
124
  described_class.specificity
@@ -119,6 +119,8 @@ describe Puppet::Type.type(:package).provider(:puppetserver_gem) do
119
119
  end
120
120
 
121
121
  context 'calculated specificity' do
122
+ include_context 'provider specificity'
123
+
122
124
  context 'when is not defaultfor' do
123
125
  subject { described_class.specificity }
124
126
  it { is_expected.to eql 1 }
@@ -14,10 +14,6 @@ describe "base service provider" do
14
14
 
15
15
  subject { provider }
16
16
 
17
- before(:all) do
18
- `exit 0`
19
- end
20
-
21
17
  context "basic operations" do
22
18
  subject do
23
19
  type.new(
@@ -35,16 +31,19 @@ describe "base service provider" do
35
31
  expect(options[:failonfail]).to eq(true)
36
32
  raise(Puppet::ExecutionFailure, 'failed to start') if @running
37
33
  @running = true
38
- return 'started'
34
+ Puppet::Util::Execution::ProcessOutput.new('started', 0)
39
35
  when status_command
40
36
  expect(options[:failonfail]).to eq(false)
41
- allow($CHILD_STATUS).to receive(:exitstatus) {@running ? 0 : 1}
42
- return @running ? 'running' : 'not running'
37
+ if @running
38
+ Puppet::Util::Execution::ProcessOutput.new('running', 0)
39
+ else
40
+ Puppet::Util::Execution::ProcessOutput.new('not running', 1)
41
+ end
43
42
  when stop_command
44
43
  expect(options[:failonfail]).to eq(true)
45
44
  raise(Puppet::ExecutionFailure, 'failed to stop') unless @running
46
45
  @running = false
47
- return 'stopped'
46
+ Puppet::Util::Execution::ProcessOutput.new('stopped', 0)
48
47
  else
49
48
  raise "unexpected command execution: #{command}"
50
49
  end
@@ -98,6 +97,7 @@ describe "base service provider" do
98
97
  end
99
98
 
100
99
  it "retrieves a PID from the process table" do
100
+ allow(Facter).to receive(:value).and_call_original
101
101
  allow(Facter).to receive(:value).with(:operatingsystem).and_return("CentOS")
102
102
  ps_output = File.binread(my_fixture("ps_ef.mixed_encoding")).force_encoding(Encoding::UTF_8)
103
103
 
@@ -4,10 +4,6 @@ describe 'Puppet::Type::Service::Provider::Bsd',
4
4
  unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
5
5
  let(:provider_class) { Puppet::Type.type(:service).provider(:bsd) }
6
6
 
7
- before(:all) do
8
- `exit 0`
9
- end
10
-
11
7
  before :each do
12
8
  allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class)
13
9
  allow(Facter).to receive(:value).with(:operatingsystem).and_return(:netbsd)
@@ -109,7 +109,7 @@ describe 'Puppet::Type::Service::Provider::Daemontools',
109
109
  path = File.join(@servicedir,"myservice")
110
110
  expect(Puppet::FileSystem).to receive(:symlink?).with(path).and_return(true)
111
111
  expect(Puppet::FileSystem).to receive(:unlink).with(path)
112
- allow(@provider).to receive(:texecute).and_return("")
112
+ allow(@provider).to receive(:execute).and_return("")
113
113
  @provider.disable
114
114
  end
115
115
 
@@ -4,10 +4,6 @@ describe 'Puppet::Type::Service::Provider::Debian',
4
4
  unless: Puppet::Util::Platform.jruby? || Puppet::Util::Platform.windows? do
5
5
  let(:provider_class) { Puppet::Type.type(:service).provider(:debian) }
6
6
 
7
- before(:all) do
8
- `exit 0`
9
- end
10
-
11
7
  before(:each) do
12
8
  # Create a mock resource
13
9
  @resource = double('resource')
@@ -90,34 +86,37 @@ describe 'Puppet::Type::Service::Provider::Debian',
90
86
  end
91
87
 
92
88
  context "when checking whether it is enabled" do
93
- it "should call Kernel.system() with the appropriate parameters" do
94
- expect(@provider).to receive(:system).with("/usr/sbin/invoke-rc.d", "--quiet", "--query", @resource[:name], "start").once
95
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
89
+ it "should execute the query command" do
90
+ expect(@provider).to receive(:execute).with(["/usr/sbin/invoke-rc.d", "--quiet", "--query", @resource[:name], "start"], :failonfail => false)
91
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
96
92
  @provider.enabled?
97
93
  end
98
94
 
99
95
  it "should return true when invoke-rc.d exits with 104 status" do
100
- allow(@provider).to receive(:system)
101
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(104)
96
+ expect(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', 104))
102
97
  expect(@provider.enabled?).to eq(:true)
103
98
  end
104
99
 
105
100
  it "should return true when invoke-rc.d exits with 106 status" do
106
- allow(@provider).to receive(:system)
107
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(106)
101
+ expect(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', 106))
108
102
  expect(@provider.enabled?).to eq(:true)
109
103
  end
110
104
 
105
+ it "should consider nonexistent services to be disabled" do
106
+ @provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'doesnotexist'))
107
+ expect(@provider).to receive(:execute).with(["/usr/sbin/invoke-rc.d", "--quiet", "--query", "doesnotexist", "start"], :failonfail => false)
108
+ .and_return(Puppet::Util::Execution::ProcessOutput.new("", 1))
109
+ expect(@provider.enabled?).to be(:false)
110
+ end
111
+
111
112
  shared_examples "manually queries service status" do |status|
112
113
  it "links count is 4" do
113
- allow(@provider).to receive(:system)
114
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(status)
114
+ allow(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', status))
115
115
  allow(@provider).to receive(:get_start_link_count).and_return(4)
116
116
  expect(@provider.enabled?).to eq(:true)
117
117
  end
118
118
  it "links count is less than 4" do
119
- allow(@provider).to receive(:system)
120
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(status)
119
+ allow(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', status))
121
120
  allow(@provider).to receive(:get_start_link_count).and_return(3)
122
121
  expect(@provider.enabled?).to eq(:false)
123
122
  end
@@ -142,8 +141,7 @@ describe 'Puppet::Type::Service::Provider::Debian',
142
141
  # pick a range of non-[104.106] numbers, strings and booleans to test with.
143
142
  [-100, -1, 0, 1, 100, "foo", "", :true, :false].each do |exitstatus|
144
143
  it "should return false when invoke-rc.d exits with #{exitstatus} status" do
145
- allow(@provider).to receive(:system)
146
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(exitstatus)
144
+ allow(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', exitstatus))
147
145
  expect(@provider.enabled?).to eq(:false)
148
146
  end
149
147
  end