puppet 7.4.0-x64-mingw32 → 7.8.0-x64-mingw32

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

Potentially problematic release.


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

Files changed (685) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +2 -2
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +30 -24
  5. data/ext/osx/puppet.plist +2 -0
  6. data/install.rb +11 -11
  7. data/lib/hiera_puppet.rb +1 -1
  8. data/lib/puppet.rb +37 -37
  9. data/lib/puppet/agent.rb +6 -6
  10. data/lib/puppet/agent/disabler.rb +1 -1
  11. data/lib/puppet/agent/locker.rb +2 -2
  12. data/lib/puppet/application.rb +6 -6
  13. data/lib/puppet/application/agent.rb +18 -11
  14. data/lib/puppet/application/apply.rb +6 -5
  15. data/lib/puppet/application/catalog.rb +1 -1
  16. data/lib/puppet/application/config.rb +1 -1
  17. data/lib/puppet/application/describe.rb +1 -1
  18. data/lib/puppet/application/device.rb +8 -7
  19. data/lib/puppet/application/doc.rb +7 -7
  20. data/lib/puppet/application/epp.rb +2 -2
  21. data/lib/puppet/application/face_base.rb +2 -2
  22. data/lib/puppet/application/facts.rb +1 -1
  23. data/lib/puppet/application/filebucket.rb +2 -2
  24. data/lib/puppet/application/generate.rb +1 -1
  25. data/lib/puppet/application/help.rb +1 -1
  26. data/lib/puppet/application/indirection_base.rb +1 -1
  27. data/lib/puppet/application/lookup.rb +6 -6
  28. data/lib/puppet/application/module.rb +1 -1
  29. data/lib/puppet/application/node.rb +1 -1
  30. data/lib/puppet/application/parser.rb +2 -2
  31. data/lib/puppet/application/plugin.rb +1 -1
  32. data/lib/puppet/application/report.rb +1 -1
  33. data/lib/puppet/application/resource.rb +3 -2
  34. data/lib/puppet/application/script.rb +6 -5
  35. data/lib/puppet/application/ssl.rb +13 -2
  36. data/lib/puppet/application_support.rb +4 -4
  37. data/lib/puppet/compilable_resource_type.rb +1 -1
  38. data/lib/puppet/concurrent/lock.rb +1 -1
  39. data/lib/puppet/configurer.rb +4 -4
  40. data/lib/puppet/configurer/downloader.rb +4 -3
  41. data/lib/puppet/configurer/fact_handler.rb +3 -3
  42. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  43. data/lib/puppet/confine.rb +1 -1
  44. data/lib/puppet/confine/boolean.rb +1 -1
  45. data/lib/puppet/confine/exists.rb +1 -1
  46. data/lib/puppet/confine/false.rb +1 -1
  47. data/lib/puppet/confine/feature.rb +1 -1
  48. data/lib/puppet/confine/true.rb +1 -1
  49. data/lib/puppet/confine/variable.rb +1 -1
  50. data/lib/puppet/confine_collection.rb +1 -1
  51. data/lib/puppet/confiner.rb +1 -1
  52. data/lib/puppet/context.rb +2 -2
  53. data/lib/puppet/context/trusted_information.rb +1 -1
  54. data/lib/puppet/daemon.rb +2 -2
  55. data/lib/puppet/data_binding.rb +1 -1
  56. data/lib/puppet/datatypes/error.rb +1 -1
  57. data/lib/puppet/defaults.rb +18 -12
  58. data/lib/puppet/environments.rb +17 -2
  59. data/lib/puppet/etc.rb +1 -1
  60. data/lib/puppet/external/pson/common.rb +1 -1
  61. data/lib/puppet/external/pson/pure.rb +3 -3
  62. data/lib/puppet/face.rb +1 -1
  63. data/lib/puppet/face/catalog.rb +1 -1
  64. data/lib/puppet/face/config.rb +2 -2
  65. data/lib/puppet/face/epp.rb +6 -6
  66. data/lib/puppet/face/facts.rb +2 -2
  67. data/lib/puppet/face/generate.rb +2 -2
  68. data/lib/puppet/face/help.rb +3 -3
  69. data/lib/puppet/face/module.rb +3 -3
  70. data/lib/puppet/face/module/install.rb +2 -2
  71. data/lib/puppet/face/node.rb +1 -1
  72. data/lib/puppet/face/parser.rb +4 -4
  73. data/lib/puppet/face/plugin.rb +2 -2
  74. data/lib/puppet/face/report.rb +1 -1
  75. data/lib/puppet/face/resource.rb +1 -1
  76. data/lib/puppet/feature/base.rb +2 -2
  77. data/lib/puppet/feature/bolt.rb +1 -1
  78. data/lib/puppet/feature/cfpropertylist.rb +1 -1
  79. data/lib/puppet/feature/eventlog.rb +1 -1
  80. data/lib/puppet/feature/hiera_eyaml.rb +1 -1
  81. data/lib/puppet/feature/hocon.rb +1 -1
  82. data/lib/puppet/feature/libuser.rb +2 -2
  83. data/lib/puppet/feature/msgpack.rb +1 -1
  84. data/lib/puppet/feature/pe_license.rb +1 -1
  85. data/lib/puppet/feature/selinux.rb +1 -1
  86. data/lib/puppet/feature/ssh.rb +1 -1
  87. data/lib/puppet/feature/telnet.rb +1 -1
  88. data/lib/puppet/feature/zlib.rb +1 -1
  89. data/lib/puppet/ffi/posix.rb +2 -2
  90. data/lib/puppet/ffi/posix/constants.rb +1 -1
  91. data/lib/puppet/ffi/posix/functions.rb +1 -1
  92. data/lib/puppet/ffi/windows.rb +4 -4
  93. data/lib/puppet/ffi/windows/api_types.rb +3 -3
  94. data/lib/puppet/ffi/windows/constants.rb +1 -1
  95. data/lib/puppet/ffi/windows/functions.rb +1 -1
  96. data/lib/puppet/ffi/windows/structs.rb +1 -1
  97. data/lib/puppet/file_bucket/dipper.rb +4 -4
  98. data/lib/puppet/file_bucket/file.rb +3 -3
  99. data/lib/puppet/file_serving/base.rb +2 -2
  100. data/lib/puppet/file_serving/configuration.rb +10 -10
  101. data/lib/puppet/file_serving/configuration/parser.rb +2 -2
  102. data/lib/puppet/file_serving/content.rb +3 -3
  103. data/lib/puppet/file_serving/fileset.rb +16 -4
  104. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  105. data/lib/puppet/file_serving/metadata.rb +6 -6
  106. data/lib/puppet/file_serving/mount.rb +4 -4
  107. data/lib/puppet/file_serving/mount/file.rb +1 -1
  108. data/lib/puppet/file_serving/mount/locales.rb +1 -1
  109. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  110. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  111. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  112. data/lib/puppet/file_serving/mount/tasks.rb +1 -1
  113. data/lib/puppet/file_serving/terminus_helper.rb +2 -2
  114. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  115. data/lib/puppet/file_system.rb +9 -9
  116. data/lib/puppet/file_system/jruby.rb +1 -1
  117. data/lib/puppet/file_system/memory_file.rb +8 -1
  118. data/lib/puppet/file_system/path_pattern.rb +1 -1
  119. data/lib/puppet/file_system/uniquefile.rb +1 -1
  120. data/lib/puppet/file_system/windows.rb +4 -2
  121. data/lib/puppet/forge.rb +5 -5
  122. data/lib/puppet/forge/cache.rb +1 -1
  123. data/lib/puppet/forge/errors.rb +3 -3
  124. data/lib/puppet/forge/repository.rb +4 -4
  125. data/lib/puppet/functions.rb +1 -1
  126. data/lib/puppet/functions/all.rb +1 -1
  127. data/lib/puppet/functions/camelcase.rb +1 -1
  128. data/lib/puppet/functions/capitalize.rb +2 -2
  129. data/lib/puppet/functions/downcase.rb +2 -2
  130. data/lib/puppet/functions/get.rb +5 -5
  131. data/lib/puppet/functions/group_by.rb +13 -5
  132. data/lib/puppet/functions/lest.rb +1 -1
  133. data/lib/puppet/functions/new.rb +100 -100
  134. data/lib/puppet/functions/partition.rb +12 -4
  135. data/lib/puppet/functions/require.rb +5 -5
  136. data/lib/puppet/functions/sort.rb +3 -3
  137. data/lib/puppet/functions/tree_each.rb +7 -9
  138. data/lib/puppet/functions/type.rb +4 -4
  139. data/lib/puppet/functions/upcase.rb +2 -2
  140. data/lib/puppet/functions/versioncmp.rb +1 -1
  141. data/lib/puppet/generate/models/type/type.rb +1 -1
  142. data/lib/puppet/generate/type.rb +2 -2
  143. data/lib/puppet/gettext/config.rb +3 -3
  144. data/lib/puppet/gettext/module_translations.rb +1 -1
  145. data/lib/puppet/graph.rb +6 -6
  146. data/lib/puppet/graph/simple_graph.rb +2 -2
  147. data/lib/puppet/http.rb +26 -26
  148. data/lib/puppet/http/factory.rb +6 -2
  149. data/lib/puppet/http/proxy.rb +1 -1
  150. data/lib/puppet/http/resolver/server_list.rb +15 -4
  151. data/lib/puppet/http/service/compiler.rb +73 -1
  152. data/lib/puppet/http/service/file_server.rb +3 -2
  153. data/lib/puppet/indirector.rb +5 -5
  154. data/lib/puppet/indirector/catalog/compiler.rb +7 -6
  155. data/lib/puppet/indirector/catalog/json.rb +2 -2
  156. data/lib/puppet/indirector/catalog/msgpack.rb +2 -2
  157. data/lib/puppet/indirector/catalog/rest.rb +2 -2
  158. data/lib/puppet/indirector/catalog/store_configs.rb +2 -2
  159. data/lib/puppet/indirector/catalog/yaml.rb +2 -2
  160. data/lib/puppet/indirector/code.rb +1 -1
  161. data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
  162. data/lib/puppet/indirector/data_binding/none.rb +1 -1
  163. data/lib/puppet/indirector/direct_file_server.rb +2 -2
  164. data/lib/puppet/indirector/envelope.rb +1 -1
  165. data/lib/puppet/indirector/errors.rb +1 -1
  166. data/lib/puppet/indirector/exec.rb +2 -2
  167. data/lib/puppet/indirector/face.rb +1 -1
  168. data/lib/puppet/indirector/facts/facter.rb +2 -2
  169. data/lib/puppet/indirector/facts/json.rb +3 -3
  170. data/lib/puppet/indirector/facts/memory.rb +2 -2
  171. data/lib/puppet/indirector/facts/network_device.rb +2 -2
  172. data/lib/puppet/indirector/facts/rest.rb +2 -2
  173. data/lib/puppet/indirector/facts/store_configs.rb +2 -2
  174. data/lib/puppet/indirector/facts/yaml.rb +3 -3
  175. data/lib/puppet/indirector/file_bucket_file/file.rb +4 -4
  176. data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -2
  177. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -1
  178. data/lib/puppet/indirector/file_content.rb +1 -1
  179. data/lib/puppet/indirector/file_content/file.rb +3 -3
  180. data/lib/puppet/indirector/file_content/file_server.rb +3 -3
  181. data/lib/puppet/indirector/file_content/rest.rb +3 -3
  182. data/lib/puppet/indirector/file_content/selector.rb +4 -4
  183. data/lib/puppet/indirector/file_metadata.rb +1 -1
  184. data/lib/puppet/indirector/file_metadata/file.rb +3 -3
  185. data/lib/puppet/indirector/file_metadata/file_server.rb +3 -3
  186. data/lib/puppet/indirector/file_metadata/http.rb +3 -3
  187. data/lib/puppet/indirector/file_metadata/rest.rb +4 -3
  188. data/lib/puppet/indirector/file_metadata/selector.rb +4 -4
  189. data/lib/puppet/indirector/file_server.rb +4 -4
  190. data/lib/puppet/indirector/generic_http.rb +1 -1
  191. data/lib/puppet/indirector/hiera.rb +1 -1
  192. data/lib/puppet/indirector/indirection.rb +5 -5
  193. data/lib/puppet/indirector/json.rb +2 -2
  194. data/lib/puppet/indirector/memory.rb +1 -1
  195. data/lib/puppet/indirector/msgpack.rb +2 -2
  196. data/lib/puppet/indirector/node/exec.rb +2 -2
  197. data/lib/puppet/indirector/node/json.rb +2 -2
  198. data/lib/puppet/indirector/node/memory.rb +2 -2
  199. data/lib/puppet/indirector/node/msgpack.rb +2 -2
  200. data/lib/puppet/indirector/node/plain.rb +2 -2
  201. data/lib/puppet/indirector/node/rest.rb +2 -2
  202. data/lib/puppet/indirector/node/store_configs.rb +2 -2
  203. data/lib/puppet/indirector/node/yaml.rb +2 -2
  204. data/lib/puppet/indirector/none.rb +1 -1
  205. data/lib/puppet/indirector/plain.rb +1 -1
  206. data/lib/puppet/indirector/report/json.rb +2 -2
  207. data/lib/puppet/indirector/report/msgpack.rb +2 -2
  208. data/lib/puppet/indirector/report/processor.rb +3 -3
  209. data/lib/puppet/indirector/report/rest.rb +1 -1
  210. data/lib/puppet/indirector/report/yaml.rb +2 -2
  211. data/lib/puppet/indirector/request.rb +3 -3
  212. data/lib/puppet/indirector/resource/ral.rb +1 -1
  213. data/lib/puppet/indirector/resource/store_configs.rb +2 -2
  214. data/lib/puppet/indirector/terminus.rb +5 -5
  215. data/lib/puppet/indirector/yaml.rb +2 -2
  216. data/lib/puppet/info_service.rb +3 -3
  217. data/lib/puppet/info_service/class_information_service.rb +3 -3
  218. data/lib/puppet/info_service/plan_information_service.rb +1 -1
  219. data/lib/puppet/info_service/task_information_service.rb +1 -1
  220. data/lib/puppet/interface.rb +10 -10
  221. data/lib/puppet/interface/documentation.rb +1 -1
  222. data/lib/puppet/loaders.rb +21 -25
  223. data/lib/puppet/metatype/manager.rb +3 -3
  224. data/lib/puppet/module.rb +5 -4
  225. data/lib/puppet/module/plan.rb +1 -1
  226. data/lib/puppet/module/task.rb +1 -1
  227. data/lib/puppet/module_tool.rb +10 -10
  228. data/lib/puppet/module_tool/applications.rb +7 -7
  229. data/lib/puppet/module_tool/applications/application.rb +2 -2
  230. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  231. data/lib/puppet/module_tool/applications/installer.rb +7 -7
  232. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  233. data/lib/puppet/module_tool/applications/upgrader.rb +5 -5
  234. data/lib/puppet/module_tool/checksums.rb +1 -1
  235. data/lib/puppet/module_tool/contents_description.rb +1 -1
  236. data/lib/puppet/module_tool/dependency.rb +2 -2
  237. data/lib/puppet/module_tool/errors.rb +6 -6
  238. data/lib/puppet/module_tool/install_directory.rb +2 -2
  239. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  240. data/lib/puppet/module_tool/local_tarball.rb +2 -2
  241. data/lib/puppet/module_tool/metadata.rb +3 -3
  242. data/lib/puppet/module_tool/tar.rb +4 -4
  243. data/lib/puppet/network/format.rb +1 -1
  244. data/lib/puppet/network/format_handler.rb +3 -3
  245. data/lib/puppet/network/format_support.rb +1 -1
  246. data/lib/puppet/network/formats.rb +2 -2
  247. data/lib/puppet/network/http.rb +17 -14
  248. data/lib/puppet/network/http/api.rb +11 -7
  249. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  250. data/lib/puppet/network/http/api/master.rb +3 -2
  251. data/lib/puppet/network/http/api/master/v3.rb +2 -25
  252. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -33
  253. data/lib/puppet/network/http/api/server.rb +10 -0
  254. data/lib/puppet/network/http/api/server/v3.rb +39 -0
  255. data/lib/puppet/network/http/api/server/v3/environments.rb +48 -0
  256. data/lib/puppet/network/http/connection.rb +1 -1
  257. data/lib/puppet/network/http/error.rb +1 -1
  258. data/lib/puppet/network/http/handler.rb +3 -3
  259. data/lib/puppet/network/http_pool.rb +1 -1
  260. data/lib/puppet/node.rb +3 -3
  261. data/lib/puppet/node/environment.rb +15 -8
  262. data/lib/puppet/node/facts.rb +3 -3
  263. data/lib/puppet/pal/pal_api.rb +10 -10
  264. data/lib/puppet/pal/pal_impl.rb +3 -3
  265. data/lib/puppet/parameter.rb +4 -4
  266. data/lib/puppet/parameter/boolean.rb +1 -1
  267. data/lib/puppet/parameter/package_options.rb +1 -1
  268. data/lib/puppet/parameter/path.rb +1 -1
  269. data/lib/puppet/parameter/value.rb +1 -1
  270. data/lib/puppet/parameter/value_collection.rb +1 -1
  271. data/lib/puppet/parser.rb +10 -10
  272. data/lib/puppet/parser/ast.rb +8 -8
  273. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  274. data/lib/puppet/parser/ast/pops_bridge.rb +2 -2
  275. data/lib/puppet/parser/catalog_compiler.rb +2 -2
  276. data/lib/puppet/parser/compiler.rb +5 -5
  277. data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
  278. data/lib/puppet/parser/functions.rb +4 -4
  279. data/lib/puppet/parser/functions/digest.rb +1 -1
  280. data/lib/puppet/parser/functions/file.rb +1 -1
  281. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  282. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  283. data/lib/puppet/parser/parser_factory.rb +2 -2
  284. data/lib/puppet/parser/resource.rb +3 -3
  285. data/lib/puppet/parser/scope.rb +3 -3
  286. data/lib/puppet/parser/script_compiler.rb +2 -2
  287. data/lib/puppet/parser/templatewrapper.rb +2 -2
  288. data/lib/puppet/parser/type_loader.rb +1 -1
  289. data/lib/puppet/plugins/configuration.rb +5 -5
  290. data/lib/puppet/pops.rb +57 -57
  291. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  292. data/lib/puppet/pops/evaluator/evaluator_impl.rb +7 -7
  293. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  294. data/lib/puppet/pops/loader/base_loader.rb +42 -32
  295. data/lib/puppet/pops/loader/dependency_loader.rb +2 -2
  296. data/lib/puppet/pops/loader/loader.rb +15 -5
  297. data/lib/puppet/pops/loader/module_loaders.rb +8 -8
  298. data/lib/puppet/pops/loader/predefined_loader.rb +4 -0
  299. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -1
  300. data/lib/puppet/pops/loader/static_loader.rb +4 -0
  301. data/lib/puppet/pops/loader/task_instantiator.rb +1 -1
  302. data/lib/puppet/pops/loaders.rb +4 -4
  303. data/lib/puppet/pops/lookup/invocation.rb +1 -1
  304. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  305. data/lib/puppet/pops/model/pn_transformer.rb +1 -1
  306. data/lib/puppet/pops/parser/eparser.rb +2 -2
  307. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  308. data/lib/puppet/pops/parser/lexer2.rb +5 -9
  309. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  310. data/lib/puppet/pops/parser/parser_support.rb +4 -4
  311. data/lib/puppet/pops/puppet_stack.rb +1 -1
  312. data/lib/puppet/pops/serialization/json.rb +1 -1
  313. data/lib/puppet/pops/serialization/json_path.rb +1 -1
  314. data/lib/puppet/pops/time/timespan.rb +1 -1
  315. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  316. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  317. data/lib/puppet/pops/types/p_type_set_type.rb +1 -1
  318. data/lib/puppet/pops/types/string_converter.rb +1 -1
  319. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  320. data/lib/puppet/pops/types/type_formatter.rb +1 -1
  321. data/lib/puppet/pops/types/type_parser.rb +1 -1
  322. data/lib/puppet/pops/types/types.rb +1 -1
  323. data/lib/puppet/pops/validation/checker4_0.rb +1 -2
  324. data/lib/puppet/property.rb +3 -3
  325. data/lib/puppet/property/boolean.rb +1 -1
  326. data/lib/puppet/property/ensure.rb +1 -1
  327. data/lib/puppet/property/keyvalue.rb +1 -1
  328. data/lib/puppet/property/list.rb +1 -1
  329. data/lib/puppet/property/ordered_list.rb +1 -1
  330. data/lib/puppet/provider.rb +2 -2
  331. data/lib/puppet/provider/confine.rb +2 -2
  332. data/lib/puppet/provider/exec.rb +2 -2
  333. data/lib/puppet/provider/exec/posix.rb +1 -1
  334. data/lib/puppet/provider/exec/windows.rb +1 -1
  335. data/lib/puppet/provider/file/posix.rb +1 -1
  336. data/lib/puppet/provider/file/windows.rb +1 -1
  337. data/lib/puppet/provider/group/aix.rb +1 -1
  338. data/lib/puppet/provider/group/directoryservice.rb +1 -1
  339. data/lib/puppet/provider/group/groupadd.rb +2 -2
  340. data/lib/puppet/provider/group/ldap.rb +1 -1
  341. data/lib/puppet/provider/group/pw.rb +1 -1
  342. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  343. data/lib/puppet/provider/ldap.rb +2 -2
  344. data/lib/puppet/provider/nameservice.rb +1 -1
  345. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  346. data/lib/puppet/provider/nameservice/objectadd.rb +1 -1
  347. data/lib/puppet/provider/nameservice/pw.rb +1 -1
  348. data/lib/puppet/provider/package.rb +1 -1
  349. data/lib/puppet/provider/package/aix.rb +2 -2
  350. data/lib/puppet/provider/package/appdmg.rb +2 -2
  351. data/lib/puppet/provider/package/apple.rb +1 -1
  352. data/lib/puppet/provider/package/apt.rb +5 -5
  353. data/lib/puppet/provider/package/dnfmodule.rb +2 -2
  354. data/lib/puppet/provider/package/dpkg.rb +1 -1
  355. data/lib/puppet/provider/package/gem.rb +3 -3
  356. data/lib/puppet/provider/package/hpux.rb +1 -1
  357. data/lib/puppet/provider/package/macports.rb +2 -2
  358. data/lib/puppet/provider/package/nim.rb +13 -8
  359. data/lib/puppet/provider/package/openbsd.rb +1 -1
  360. data/lib/puppet/provider/package/opkg.rb +1 -1
  361. data/lib/puppet/provider/package/pacman.rb +1 -1
  362. data/lib/puppet/provider/package/pip.rb +3 -3
  363. data/lib/puppet/provider/package/pkg.rb +2 -2
  364. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  365. data/lib/puppet/provider/package/pkgin.rb +1 -1
  366. data/lib/puppet/provider/package/pkgng.rb +1 -1
  367. data/lib/puppet/provider/package/portage.rb +1 -1
  368. data/lib/puppet/provider/package/portupgrade.rb +1 -1
  369. data/lib/puppet/provider/package/puppet_gem.rb +12 -1
  370. data/lib/puppet/provider/package/puppetserver_gem.rb +0 -0
  371. data/lib/puppet/provider/package/rpm.rb +2 -2
  372. data/lib/puppet/provider/package/sun.rb +1 -1
  373. data/lib/puppet/provider/package/windows.rb +3 -3
  374. data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
  375. data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
  376. data/lib/puppet/provider/package/windows/package.rb +4 -4
  377. data/lib/puppet/provider/package/yum.rb +6 -6
  378. data/lib/puppet/provider/package/zypper.rb +3 -3
  379. data/lib/puppet/provider/package_targetable.rb +1 -1
  380. data/lib/puppet/provider/parsedfile.rb +3 -3
  381. data/lib/puppet/provider/service/base.rb +6 -4
  382. data/lib/puppet/provider/service/daemontools.rb +0 -1
  383. data/lib/puppet/provider/service/debian.rb +3 -5
  384. data/lib/puppet/provider/service/freebsd.rb +1 -1
  385. data/lib/puppet/provider/service/init.rb +1 -1
  386. data/lib/puppet/provider/service/launchd.rb +9 -3
  387. data/lib/puppet/provider/service/service.rb +28 -3
  388. data/lib/puppet/provider/service/smf.rb +0 -24
  389. data/lib/puppet/provider/service/src.rb +2 -2
  390. data/lib/puppet/provider/service/systemd.rb +18 -8
  391. data/lib/puppet/provider/service/windows.rb +38 -0
  392. data/lib/puppet/provider/user/aix.rb +2 -2
  393. data/lib/puppet/provider/user/directoryservice.rb +26 -13
  394. data/lib/puppet/provider/user/ldap.rb +1 -1
  395. data/lib/puppet/provider/user/openbsd.rb +1 -1
  396. data/lib/puppet/provider/user/pw.rb +1 -1
  397. data/lib/puppet/provider/user/user_role_add.rb +2 -2
  398. data/lib/puppet/provider/user/useradd.rb +12 -5
  399. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  400. data/lib/puppet/reference/configuration.rb +1 -1
  401. data/lib/puppet/reference/indirection.rb +4 -4
  402. data/lib/puppet/reference/report.rb +1 -1
  403. data/lib/puppet/reports.rb +1 -1
  404. data/lib/puppet/reports/http.rb +2 -2
  405. data/lib/puppet/reports/log.rb +1 -1
  406. data/lib/puppet/reports/store.rb +2 -2
  407. data/lib/puppet/resource.rb +4 -4
  408. data/lib/puppet/resource/catalog.rb +5 -5
  409. data/lib/puppet/resource/status.rb +2 -2
  410. data/lib/puppet/resource/type.rb +4 -4
  411. data/lib/puppet/resource/type_collection.rb +4 -4
  412. data/lib/puppet/runtime.rb +1 -1
  413. data/lib/puppet/scheduler.rb +4 -4
  414. data/lib/puppet/settings.rb +31 -30
  415. data/lib/puppet/settings/autosign_setting.rb +1 -1
  416. data/lib/puppet/settings/base_setting.rb +2 -2
  417. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
  418. data/lib/puppet/settings/config_file.rb +1 -1
  419. data/lib/puppet/settings/environment_conf.rb +1 -0
  420. data/lib/puppet/settings/errors.rb +1 -1
  421. data/lib/puppet/settings/priority_setting.rb +3 -3
  422. data/lib/puppet/ssl.rb +11 -11
  423. data/lib/puppet/ssl/base.rb +3 -3
  424. data/lib/puppet/ssl/certificate.rb +1 -1
  425. data/lib/puppet/ssl/certificate_request.rb +2 -2
  426. data/lib/puppet/ssl/certificate_request_attributes.rb +2 -2
  427. data/lib/puppet/ssl/oids.rb +1 -1
  428. data/lib/puppet/ssl/openssl_loader.rb +1 -1
  429. data/lib/puppet/ssl/ssl_context.rb +1 -1
  430. data/lib/puppet/ssl/ssl_provider.rb +1 -1
  431. data/lib/puppet/ssl/state_machine.rb +2 -2
  432. data/lib/puppet/ssl/verifier.rb +5 -1
  433. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  434. data/lib/puppet/syntax_checkers/epp.rb +1 -1
  435. data/lib/puppet/syntax_checkers/json.rb +1 -1
  436. data/lib/puppet/syntax_checkers/pp.rb +1 -1
  437. data/lib/puppet/transaction.rb +11 -11
  438. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  439. data/lib/puppet/transaction/event.rb +4 -4
  440. data/lib/puppet/transaction/event_manager.rb +1 -1
  441. data/lib/puppet/transaction/persistence.rb +1 -1
  442. data/lib/puppet/transaction/report.rb +2 -2
  443. data/lib/puppet/transaction/resource_harness.rb +1 -1
  444. data/lib/puppet/type.rb +14 -14
  445. data/lib/puppet/type/component.rb +3 -3
  446. data/lib/puppet/type/file.rb +37 -19
  447. data/lib/puppet/type/file/checksum.rb +1 -1
  448. data/lib/puppet/type/file/checksum_value.rb +2 -2
  449. data/lib/puppet/type/file/content.rb +2 -2
  450. data/lib/puppet/type/file/data_sync.rb +2 -2
  451. data/lib/puppet/type/file/ensure.rb +1 -1
  452. data/lib/puppet/type/file/group.rb +1 -1
  453. data/lib/puppet/type/file/mode.rb +1 -1
  454. data/lib/puppet/type/file/selcontext.rb +2 -2
  455. data/lib/puppet/type/file/source.rb +4 -4
  456. data/lib/puppet/type/filebucket.rb +1 -1
  457. data/lib/puppet/type/group.rb +2 -2
  458. data/lib/puppet/type/package.rb +2 -2
  459. data/lib/puppet/type/resources.rb +2 -2
  460. data/lib/puppet/type/service.rb +18 -38
  461. data/lib/puppet/type/tidy.rb +24 -5
  462. data/lib/puppet/type/user.rb +42 -24
  463. data/lib/puppet/util.rb +43 -34
  464. data/lib/puppet/util/at_fork.rb +3 -3
  465. data/lib/puppet/util/at_fork/solaris.rb +1 -1
  466. data/lib/puppet/util/autoload.rb +4 -4
  467. data/lib/puppet/util/checksums.rb +3 -3
  468. data/lib/puppet/util/colors.rb +1 -1
  469. data/lib/puppet/util/command_line.rb +6 -6
  470. data/lib/puppet/util/command_line/puppet_option_parser.rb +2 -2
  471. data/lib/puppet/util/execution.rb +2 -2
  472. data/lib/puppet/util/feature.rb +2 -2
  473. data/lib/puppet/util/filetype.rb +1 -1
  474. data/lib/puppet/util/http_proxy.rb +1 -1
  475. data/lib/puppet/util/inifile.rb +2 -2
  476. data/lib/puppet/util/instance_loader.rb +3 -3
  477. data/lib/puppet/util/json_lockfile.rb +1 -1
  478. data/lib/puppet/util/ldap/connection.rb +1 -1
  479. data/lib/puppet/util/ldap/generator.rb +1 -1
  480. data/lib/puppet/util/ldap/manager.rb +3 -3
  481. data/lib/puppet/util/limits.rb +1 -1
  482. data/lib/puppet/util/log.rb +6 -6
  483. data/lib/puppet/util/log/destinations.rb +1 -1
  484. data/lib/puppet/util/logging.rb +2 -2
  485. data/lib/puppet/util/metric.rb +2 -2
  486. data/lib/puppet/util/monkey_patches.rb +14 -3
  487. data/lib/puppet/util/network_device/base.rb +3 -3
  488. data/lib/puppet/util/network_device/config.rb +2 -2
  489. data/lib/puppet/util/network_device/transport.rb +1 -1
  490. data/lib/puppet/util/network_device/transport/base.rb +2 -2
  491. data/lib/puppet/util/package/version/range.rb +6 -6
  492. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  493. data/lib/puppet/util/package/version/range/gt.rb +1 -1
  494. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -1
  495. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  496. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -1
  497. data/lib/puppet/util/package/version/range/min_max.rb +1 -1
  498. data/lib/puppet/util/package/version/range/simple.rb +1 -1
  499. data/lib/puppet/util/package/version/rpm.rb +1 -1
  500. data/lib/puppet/util/pidlock.rb +1 -1
  501. data/lib/puppet/util/plist.rb +1 -1
  502. data/lib/puppet/util/posix.rb +1 -1
  503. data/lib/puppet/util/profiler.rb +3 -3
  504. data/lib/puppet/util/profiler/aggregate.rb +2 -2
  505. data/lib/puppet/util/profiler/object_counts.rb +1 -1
  506. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  507. data/lib/puppet/util/provider_features.rb +2 -2
  508. data/lib/puppet/util/rdoc.rb +2 -2
  509. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  510. data/lib/puppet/util/rdoc/parser.rb +6 -6
  511. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  512. data/lib/puppet/util/reference.rb +1 -1
  513. data/lib/puppet/util/resource_template.rb +2 -2
  514. data/lib/puppet/util/rubygems.rb +1 -1
  515. data/lib/puppet/util/selinux.rb +30 -4
  516. data/lib/puppet/util/skip_tags.rb +1 -1
  517. data/lib/puppet/util/storage.rb +1 -1
  518. data/lib/puppet/util/suidmanager.rb +2 -2
  519. data/lib/puppet/util/symbolic_file_mode.rb +1 -1
  520. data/lib/puppet/util/tag_set.rb +1 -1
  521. data/lib/puppet/util/tagging.rb +1 -1
  522. data/lib/puppet/util/watched_file.rb +1 -1
  523. data/lib/puppet/util/watcher.rb +3 -3
  524. data/lib/puppet/util/windows.rb +20 -20
  525. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  526. data/lib/puppet/util/windows/adsi.rb +47 -1
  527. data/lib/puppet/util/windows/daemon.rb +1 -1
  528. data/lib/puppet/util/windows/error.rb +2 -2
  529. data/lib/puppet/util/windows/file.rb +1 -1
  530. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -2
  531. data/lib/puppet/util/windows/principal.rb +10 -3
  532. data/lib/puppet/util/windows/process.rb +2 -2
  533. data/lib/puppet/util/windows/registry.rb +1 -1
  534. data/lib/puppet/util/windows/root_certs.rb +2 -2
  535. data/lib/puppet/util/windows/security.rb +1 -1
  536. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  537. data/lib/puppet/util/windows/service.rb +1 -1
  538. data/lib/puppet/util/windows/sid.rb +5 -3
  539. data/lib/puppet/util/windows/user.rb +1 -1
  540. data/lib/puppet/vendor.rb +1 -1
  541. data/lib/puppet/version.rb +1 -1
  542. data/lib/puppet/x509.rb +4 -4
  543. data/lib/puppet/x509/cert_provider.rb +1 -1
  544. data/lib/puppet/x509/pem_store.rb +1 -1
  545. data/lib/puppet_pal.rb +2 -2
  546. data/locales/puppet.pot +183 -175
  547. data/man/man5/puppet.conf.5 +266 -240
  548. data/man/man8/puppet-agent.8 +1 -1
  549. data/man/man8/puppet-apply.8 +1 -1
  550. data/man/man8/puppet-catalog.8 +1 -1
  551. data/man/man8/puppet-config.8 +1 -1
  552. data/man/man8/puppet-describe.8 +1 -1
  553. data/man/man8/puppet-device.8 +1 -1
  554. data/man/man8/puppet-doc.8 +1 -1
  555. data/man/man8/puppet-epp.8 +1 -1
  556. data/man/man8/puppet-facts.8 +1 -1
  557. data/man/man8/puppet-filebucket.8 +1 -1
  558. data/man/man8/puppet-generate.8 +1 -1
  559. data/man/man8/puppet-help.8 +1 -1
  560. data/man/man8/puppet-lookup.8 +1 -1
  561. data/man/man8/puppet-module.8 +1 -1
  562. data/man/man8/puppet-node.8 +1 -1
  563. data/man/man8/puppet-parser.8 +1 -1
  564. data/man/man8/puppet-plugin.8 +1 -1
  565. data/man/man8/puppet-report.8 +1 -1
  566. data/man/man8/puppet-resource.8 +1 -1
  567. data/man/man8/puppet-script.8 +1 -1
  568. data/man/man8/puppet-ssl.8 +5 -1
  569. data/man/man8/puppet.8 +2 -2
  570. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  571. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  572. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  573. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  574. data/spec/fixtures/ssl/ca.pem +57 -35
  575. data/spec/fixtures/ssl/crl.pem +28 -18
  576. data/spec/fixtures/ssl/ec-key.pem +11 -11
  577. data/spec/fixtures/ssl/ec.pem +33 -24
  578. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  579. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  580. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  581. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  582. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  583. data/spec/fixtures/ssl/intermediate.pem +57 -36
  584. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  585. data/spec/fixtures/ssl/pluto.pem +52 -30
  586. data/spec/fixtures/ssl/request-key.pem +107 -57
  587. data/spec/fixtures/ssl/request.pem +47 -26
  588. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  589. data/spec/fixtures/ssl/revoked.pem +52 -30
  590. data/spec/fixtures/ssl/signed-key.pem +107 -57
  591. data/spec/fixtures/ssl/signed.pem +52 -30
  592. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  593. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  594. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  595. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  596. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  597. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  598. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  599. data/spec/integration/application/plugin_spec.rb +1 -1
  600. data/spec/integration/application/resource_spec.rb +30 -0
  601. data/spec/integration/http/client_spec.rb +12 -0
  602. data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
  603. data/spec/integration/parser/collection_spec.rb +10 -0
  604. data/spec/integration/type/file_spec.rb +5 -5
  605. data/spec/integration/util/windows/adsi_spec.rb +18 -0
  606. data/spec/integration/util/windows/principal_spec.rb +21 -0
  607. data/spec/integration/util/windows/registry_spec.rb +6 -0
  608. data/spec/lib/puppet/test_ca.rb +2 -2
  609. data/spec/lib/puppet_spec/files.rb +1 -1
  610. data/spec/shared_contexts/provider.rb +16 -0
  611. data/spec/spec_helper.rb +11 -1
  612. data/spec/unit/application/agent_spec.rb +7 -2
  613. data/spec/unit/application/facts_spec.rb +5 -5
  614. data/spec/unit/application/ssl_spec.rb +23 -0
  615. data/spec/unit/configurer/downloader_spec.rb +6 -0
  616. data/spec/unit/configurer_spec.rb +23 -0
  617. data/spec/unit/environments_spec.rb +164 -88
  618. data/spec/unit/file_bucket/dipper_spec.rb +1 -1
  619. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  620. data/spec/unit/file_system_spec.rb +9 -0
  621. data/spec/unit/functions4_spec.rb +17 -8
  622. data/spec/unit/gettext/config_spec.rb +12 -0
  623. data/spec/unit/http/factory_spec.rb +19 -0
  624. data/spec/unit/http/service/compiler_spec.rb +123 -0
  625. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  626. data/spec/unit/module_spec.rb +1 -1
  627. data/spec/unit/network/http/api/master_spec.rb +38 -0
  628. data/spec/unit/network/http/api/{master → server}/v3/environments_spec.rb +2 -2
  629. data/spec/unit/network/http/api/{master → server}/v3_spec.rb +19 -19
  630. data/spec/unit/network/http/api_spec.rb +11 -11
  631. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  632. data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
  633. data/spec/unit/pops/lookup/context_spec.rb +1 -1
  634. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  635. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  636. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  637. data/spec/unit/pops/types/type_parser_spec.rb +2 -1
  638. data/spec/unit/pops/validator/validator_spec.rb +20 -43
  639. data/spec/unit/provider/package/dnfmodule_spec.rb +13 -4
  640. data/spec/unit/provider/package/gem_spec.rb +3 -1
  641. data/spec/unit/provider/package/nim_spec.rb +42 -0
  642. data/spec/unit/provider/package/pip2_spec.rb +3 -1
  643. data/spec/unit/provider/package/pip3_spec.rb +3 -1
  644. data/spec/unit/provider/package/pip_spec.rb +3 -1
  645. data/spec/unit/provider/package/pkg_spec.rb +44 -44
  646. data/spec/unit/provider/package/puppet_gem_spec.rb +31 -1
  647. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -0
  648. data/spec/unit/provider/service/base_spec.rb +8 -8
  649. data/spec/unit/provider/service/bsd_spec.rb +0 -4
  650. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  651. data/spec/unit/provider/service/debian_spec.rb +15 -17
  652. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  653. data/spec/unit/provider/service/gentoo_spec.rb +19 -14
  654. data/spec/unit/provider/service/init_spec.rb +29 -20
  655. data/spec/unit/provider/service/launchd_spec.rb +10 -12
  656. data/spec/unit/provider/service/openbsd_spec.rb +21 -35
  657. data/spec/unit/provider/service/openrc_spec.rb +15 -14
  658. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  659. data/spec/unit/provider/service/redhat_spec.rb +20 -19
  660. data/spec/unit/provider/service/smf_spec.rb +6 -5
  661. data/spec/unit/provider/service/src_spec.rb +5 -10
  662. data/spec/unit/provider/service/systemd_spec.rb +80 -29
  663. data/spec/unit/provider/service/upstart_spec.rb +25 -20
  664. data/spec/unit/provider/service/windows_spec.rb +202 -0
  665. data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
  666. data/spec/unit/provider/user/useradd_spec.rb +21 -6
  667. data/spec/unit/resource/catalog_spec.rb +1 -1
  668. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  669. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  670. data/spec/unit/transaction_spec.rb +18 -20
  671. data/spec/unit/type/file/selinux_spec.rb +3 -3
  672. data/spec/unit/type/service_spec.rb +59 -188
  673. data/spec/unit/type/tidy_spec.rb +17 -7
  674. data/spec/unit/type/user_spec.rb +45 -0
  675. data/spec/unit/util/at_fork_spec.rb +9 -9
  676. data/spec/unit/util/posix_spec.rb +1 -1
  677. data/spec/unit/util/selinux_spec.rb +87 -16
  678. data/spec/unit/util/windows/sid_spec.rb +6 -0
  679. data/tasks/generate_cert_fixtures.rake +2 -2
  680. metadata +17 -16
  681. data/spec/lib/matchers/include.rb +0 -27
  682. data/spec/lib/matchers/include_spec.rb +0 -32
  683. data/spec/unit/pops/parser/parse_application_spec.rb +0 -13
  684. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -23
  685. data/spec/unit/pops/parser/parse_site_spec.rb +0 -43
@@ -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
@@ -82,7 +82,7 @@ OUTPUT
82
82
  allow(Puppet::FileSystem).to receive(:exist?).with('/etc/rc.conf').and_return(true)
83
83
  allow(File).to receive(:read).with('/etc/rc.conf').and_return("openntpd_enable=\"NO\"\nntpd_enable=\"NO\"\n")
84
84
  fh = double('fh')
85
- allow(File).to receive(:open).with('/etc/rc.conf', File::WRONLY).and_yield(fh)
85
+ allow(Puppet::FileSystem).to receive(:replace_file).with('/etc/rc.conf').and_yield(fh)
86
86
  expect(fh).to receive(:<<).with("openntpd_enable=\"NO\"\nntpd_enable=\"YES\"\n")
87
87
  allow(Puppet::FileSystem).to receive(:exist?).with('/etc/rc.conf.local').and_return(false)
88
88
  allow(Puppet::FileSystem).to receive(:exist?).with('/etc/rc.conf.d/ntpd').and_return(false)
@@ -4,10 +4,6 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
4
4
  unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
5
5
  let(:provider_class) { Puppet::Type.type(:service).provider(:gentoo) }
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(FileTest).to receive(:file?).with('/sbin/rc-update').and_return(true)
@@ -46,6 +42,10 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
46
42
  ]
47
43
  end
48
44
 
45
+ let :process_output do
46
+ Puppet::Util::Execution::ProcessOutput.new('', 0)
47
+ end
48
+
49
49
  describe ".instances" do
50
50
  it "should have an instances method" do
51
51
  expect(provider_class).to respond_to(:instances)
@@ -160,24 +160,27 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
160
160
  it "should use the status command from the resource" do
161
161
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
162
162
  expect(provider).not_to receive(:execute).with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
163
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
164
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
163
+ expect(provider).to receive(:execute)
164
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
165
+ .and_return(process_output)
165
166
  provider.status
166
167
  end
167
168
 
168
169
  it "should return :stopped when the status command returns with a non-zero exitcode" do
169
170
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
170
171
  expect(provider).not_to receive(:execute).with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
171
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
172
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(3)
172
+ expect(provider).to receive(:execute)
173
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
174
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 3))
173
175
  expect(provider.status).to eq(:stopped)
174
176
  end
175
177
 
176
178
  it "should return :running when the status command returns with a zero exitcode" do
177
179
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
178
180
  expect(provider).not_to receive(:execute).with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
179
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
180
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
181
+ expect(provider).to receive(:execute)
182
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
183
+ .and_return(process_output)
181
184
  expect(provider.status).to eq(:running)
182
185
  end
183
186
  end
@@ -202,16 +205,18 @@ describe 'Puppet::Type::Service::Provider::Gentoo',
202
205
  it "should return running if <initscript> status exits with a zero exitcode" do
203
206
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :hasstatus => true))
204
207
  expect(provider).to receive(:search).with('sshd').and_return('/etc/init.d/sshd')
205
- expect(provider).to receive(:execute).with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
206
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
208
+ expect(provider).to receive(:execute)
209
+ .with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
210
+ .and_return(process_output)
207
211
  expect(provider.status).to eq(:running)
208
212
  end
209
213
 
210
214
  it "should return stopped if <initscript> status exits with a non-zero exitcode" do
211
215
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :hasstatus => true))
212
216
  expect(provider).to receive(:search).with('sshd').and_return('/etc/init.d/sshd')
213
- expect(provider).to receive(:execute).with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
214
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(3)
217
+ expect(provider).to receive(:execute)
218
+ .with(['/etc/init.d/sshd',:status], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
219
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 3))
215
220
  expect(provider.status).to eq(:stopped)
216
221
  end
217
222
  end
@@ -4,10 +4,6 @@ describe 'Puppet::Type::Service::Provider::Init',
4
4
  unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
5
5
  let(:provider_class) { Puppet::Type.type(:service).provider(:init) }
6
6
 
7
- before :all do
8
- `exit 0`
9
- end
10
-
11
7
  before do
12
8
  Puppet::Type.type(:service).defaultprovider = provider_class
13
9
  end
@@ -37,6 +33,10 @@ describe 'Puppet::Type::Service::Provider::Init',
37
33
  %w{functions.sh reboot.sh shutdown.sh functions halt killall single linuxconf reboot boot wait-for-state rcS module-init-tools}
38
34
  end
39
35
 
36
+ let :process_output do
37
+ Puppet::Util::Execution::ProcessOutput.new('', 0)
38
+ end
39
+
40
40
  describe "when running on FreeBSD" do
41
41
  before :each do
42
42
  allow(Facter).to receive(:value).with(:operatingsystem).and_return('FreeBSD')
@@ -83,6 +83,7 @@ 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
86
87
  allow(Dir).to receive(:entries).with('tmp').and_return(@services)
87
88
  expect(FileTest).to receive(:directory?).with('tmp').and_return(true)
88
89
  allow(FileTest).to receive(:executable?).and_return(true)
@@ -203,12 +204,12 @@ describe 'Puppet::Type::Service::Provider::Init',
203
204
 
204
205
  describe "when running #{method}" do
205
206
  before :each do
206
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
207
+ allow(provider).to receive(:execute).and_return(process_output)
207
208
  end
208
209
 
209
210
  it "should use any provided explicit command" do
210
211
  resource[method] = "/user/specified/command"
211
- expect(provider).to receive(:execute).with(["/user/specified/command"], any_args)
212
+ expect(provider).to receive(:execute).with(["/user/specified/command"], any_args).and_return(process_output)
212
213
 
213
214
  provider.send(method)
214
215
  end
@@ -216,7 +217,7 @@ describe 'Puppet::Type::Service::Provider::Init',
216
217
  it "should pass #{method} to the init script when no explicit command is provided" do
217
218
  resource[:hasrestart] = :true
218
219
  resource[:hasstatus] = :true
219
- expect(provider).to receive(:execute).with(["/service/path/myservice", method], any_args)
220
+ expect(provider).to receive(:execute).with(["/service/path/myservice", method], any_args).and_return(process_output)
220
221
 
221
222
  provider.send(method)
222
223
  end
@@ -230,21 +231,24 @@ describe 'Puppet::Type::Service::Provider::Init',
230
231
  end
231
232
 
232
233
  it "should execute the command" do
233
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
234
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
234
+ expect(provider).to receive(:execute)
235
+ .with(['/service/path/myservice', :status], hash_including(failonfail: false))
236
+ .and_return(process_output)
235
237
  provider.status
236
238
  end
237
239
 
238
240
  it "should consider the process running if the command returns 0" do
239
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
240
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
241
+ expect(provider).to receive(:execute)
242
+ .with(['/service/path/myservice', :status], hash_including(failonfail: false))
243
+ .and_return(process_output)
241
244
  expect(provider.status).to eq(:running)
242
245
  end
243
246
 
244
247
  [-10,-1,1,10].each { |ec|
245
248
  it "should consider the process stopped if the command returns something non-0" do
246
- expect(provider).to receive(:texecute).with(:status, ['/service/path/myservice', :status], false).and_return("")
247
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(ec)
249
+ expect(provider).to receive(:execute)
250
+ .with(['/service/path/myservice', :status], hash_including(failonfail: false))
251
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', ec))
248
252
  expect(provider.status).to eq(:stopped)
249
253
  end
250
254
  }
@@ -273,9 +277,12 @@ describe 'Puppet::Type::Service::Provider::Init',
273
277
  end
274
278
 
275
279
  it "should stop and restart the process" do
276
- expect(provider).to receive(:texecute).with(:stop, ['/service/path/myservice', :stop ], true).and_return("")
277
- expect(provider).to receive(:texecute).with(:start, ['/service/path/myservice', :start], true).and_return("")
278
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
280
+ expect(provider).to receive(:execute)
281
+ .with(['/service/path/myservice', :stop], hash_including(failonfail: true))
282
+ .and_return(process_output)
283
+ expect(provider).to receive(:execute)
284
+ .with(['/service/path/myservice', :start], hash_including(failonfail: true))
285
+ .and_return(process_output)
279
286
  provider.restart
280
287
  end
281
288
  end
@@ -283,8 +290,9 @@ describe 'Puppet::Type::Service::Provider::Init',
283
290
  describe "when starting a service on Solaris" do
284
291
  it "should use ctrun" do
285
292
  allow(Facter).to receive(:value).with(:osfamily).and_return('Solaris')
286
- expect(provider).to receive(:execute).with('/usr/bin/ctrun -l child /service/path/myservice start', {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).and_return("")
287
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
293
+ expect(provider).to receive(:execute)
294
+ .with('/usr/bin/ctrun -l child /service/path/myservice start', {:failonfail => true, :override_locale => false, :squelch => false, :combine => true})
295
+ .and_return(process_output)
288
296
  provider.start
289
297
  end
290
298
  end
@@ -292,8 +300,9 @@ describe 'Puppet::Type::Service::Provider::Init',
292
300
  describe "when starting a service on RedHat" do
293
301
  it "should not use ctrun" do
294
302
  allow(Facter).to receive(:value).with(:osfamily).and_return('RedHat')
295
- expect(provider).to receive(:execute).with(['/service/path/myservice', :start], {:failonfail => true, :override_locale => false, :squelch => false, :combine => true}).and_return("")
296
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
303
+ expect(provider).to receive(:execute)
304
+ .with(['/service/path/myservice', :start], {:failonfail => true, :override_locale => false, :squelch => false, :combine => true})
305
+ .and_return(process_output)
297
306
  provider.start
298
307
  end
299
308
  end
@@ -12,8 +12,8 @@ describe 'Puppet::Type::Service::Provider::Launchd',
12
12
 
13
13
  subject { resource.provider }
14
14
 
15
- before :all do
16
- `exit 0`
15
+ after :each do
16
+ provider.instance_variable_set(:@job_list, nil)
17
17
  end
18
18
 
19
19
  describe "the type interface" do
@@ -41,10 +41,6 @@ describe 'Puppet::Type::Service::Provider::Launchd',
41
41
  expect(provider.prefetch({}).last.status).to eq(:running)
42
42
  end
43
43
 
44
- after :each do
45
- provider.instance_variable_set(:@job_list, nil)
46
- end
47
-
48
44
  describe "when hasstatus is set to false" do
49
45
  before :each do
50
46
  resource[:hasstatus] = :false
@@ -52,15 +48,17 @@ describe 'Puppet::Type::Service::Provider::Launchd',
52
48
 
53
49
  it "should use the user-provided status command if present and return running if true" do
54
50
  resource[:status] = '/bin/true'
55
- expect(subject).to receive(:texecute).with(:status, ["/bin/true"], false).and_return(0)
56
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
51
+ expect(subject).to receive(:execute)
52
+ .with(["/bin/true"], hash_including(failonfail: false))
53
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
57
54
  expect(subject.status).to eq(:running)
58
55
  end
59
56
 
60
57
  it "should use the user-provided status command if present and return stopped if false" do
61
58
  resource[:status] = '/bin/false'
62
- expect(subject).to receive(:texecute).with(:status, ["/bin/false"], false).and_return(nil)
63
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
59
+ expect(subject).to receive(:execute)
60
+ .with(["/bin/false"], hash_including(failonfail: false))
61
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
64
62
  expect(subject.status).to eq(:stopped)
65
63
  end
66
64
 
@@ -130,7 +128,7 @@ describe 'Puppet::Type::Service::Provider::Launchd',
130
128
 
131
129
  it "should call any explicit 'start' command" do
132
130
  resource[:start] = "/bin/false"
133
- expect(subject).to receive(:texecute).with(:start, ["/bin/false"], true)
131
+ expect(subject).to receive(:execute).with(["/bin/false"], hash_including(failonfail: true))
134
132
  subject.start
135
133
  end
136
134
 
@@ -184,7 +182,7 @@ describe 'Puppet::Type::Service::Provider::Launchd',
184
182
  describe "when stopping the service" do
185
183
  it "should call any explicit 'stop' command" do
186
184
  resource[:stop] = "/bin/false"
187
- expect(subject).to receive(:texecute).with(:stop, ["/bin/false"], true)
185
+ expect(subject).to receive(:execute).with(["/bin/false"], hash_including(failonfail: true))
188
186
  subject.stop
189
187
  end
190
188
 
@@ -12,15 +12,6 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
12
12
  allow(FileTest).to receive(:executable?).with('/usr/sbin/rcctl').and_return(true)
13
13
  end
14
14
 
15
- # `execute` and `texecute` start a new process, consequently setting $CHILD_STATUS to a Process::Status instance,
16
- # but because they are mocked, an external process is never executed and $CHILD_STATUS remain nil.
17
- # In order to execute some parts of the code under test and to mock $CHILD_STATUS, we need this variable to be a
18
- # Process::Status instance. We can achieve this by starting a process that does nothing (exit 0). By doing this,
19
- # $CHILD_STATUS will be initialised with a instance of Process::Status and we will be able to mock it.
20
- before(:all) do
21
- `exit 0`
22
- end
23
-
24
15
  context "#instances" do
25
16
  it "should have an instances method" do
26
17
  expect(provider_class).to respond_to :instances
@@ -43,7 +34,7 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
43
34
 
44
35
  it "should start the service otherwise" do
45
36
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
46
- expect(provider).to receive(:texecute).with(:start, ['/usr/sbin/rcctl', '-f', :start, 'sshd'], true)
37
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', '-f', :start, 'sshd'], hash_including(failonfail: true))
47
38
  provider.start
48
39
  end
49
40
  end
@@ -57,7 +48,7 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
57
48
 
58
49
  it "should stop the service otherwise" do
59
50
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
60
- expect(provider).to receive(:texecute).with(:stop, ['/usr/sbin/rcctl', :stop, 'sshd'], true)
51
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', :stop, 'sshd'], hash_including(failonfail: true))
61
52
  provider.stop
62
53
  end
63
54
  end
@@ -66,23 +57,27 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
66
57
  it "should use the status command from the resource" do
67
58
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
68
59
  expect(provider).not_to receive(:execute).with(['/usr/sbin/rcctl', :get, 'sshd', :status], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
69
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
60
+ expect(provider).to receive(:execute)
61
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
62
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
70
63
  provider.status
71
64
  end
72
65
 
73
66
  it "should return :stopped when status command returns with a non-zero exitcode" do
74
67
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
75
68
  expect(provider).not_to receive(:execute).with(['/usr/sbin/rcctl', :get, 'sshd', :status], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
76
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
77
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(3)
69
+ expect(provider).to receive(:execute)
70
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
71
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 3))
78
72
  expect(provider.status).to eq(:stopped)
79
73
  end
80
74
 
81
75
  it "should return :running when status command returns with a zero exitcode" do
82
76
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :status => '/bin/foo'))
83
77
  expect(provider).not_to receive(:execute).with(['/usr/sbin/rcctl', :get, 'sshd', :status], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
84
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
85
- allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
78
+ expect(provider).to receive(:execute)
79
+ .with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
80
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
86
81
  expect(provider.status).to eq(:running)
87
82
  end
88
83
  end
@@ -91,21 +86,23 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
91
86
  it "should use the supplied restart command if specified" do
92
87
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :restart => '/bin/foo'))
93
88
  expect(provider).not_to receive(:execute).with(['/usr/sbin/rcctl', '-f', :restart, 'sshd'], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
94
- expect(provider).to receive(:execute).with(['/bin/foo'], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
89
+ expect(provider).to receive(:execute)
90
+ .with(['/bin/foo'], :failonfail => true, :override_locale => false, :squelch => false, :combine => true)
91
+ .and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
95
92
  provider.restart
96
93
  end
97
94
 
98
95
  it "should restart the service with rcctl restart if hasrestart is true" do
99
96
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :hasrestart => true))
100
- expect(provider).to receive(:texecute).with(:restart, ['/usr/sbin/rcctl', '-f', :restart, 'sshd'], true)
97
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', '-f', :restart, 'sshd'], hash_including(failonfail: true))
101
98
  provider.restart
102
99
  end
103
100
 
104
101
  it "should restart the service with rcctl stop/start if hasrestart is false" do
105
102
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :hasrestart => false))
106
- expect(provider).not_to receive(:texecute).with(:restart, ['/usr/sbin/rcctl', '-f', :restart, 'sshd'], true)
107
- expect(provider).to receive(:texecute).with(:stop, ['/usr/sbin/rcctl', :stop, 'sshd'], true)
108
- expect(provider).to receive(:texecute).with(:start, ['/usr/sbin/rcctl', '-f', :start, 'sshd'], true)
103
+ expect(provider).not_to receive(:execute).with(['/usr/sbin/rcctl', '-f', :restart, 'sshd'], any_args)
104
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', :stop, 'sshd'], hash_including(failonfail: true))
105
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', '-f', :start, 'sshd'], hash_including(failonfail: true))
109
106
  provider.restart
110
107
  end
111
108
  end
@@ -113,15 +110,13 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
113
110
  context "#enabled?" do
114
111
  it "should return :true if the service is enabled" do
115
112
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
116
- allow(provider_class).to receive(:rcctl).with(:get, 'sshd', :status)
117
113
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'status'], :failonfail => false, :combine => false, :squelch => false).and_return(double(:exitstatus => 0))
118
114
  expect(provider.enabled?).to eq(:true)
119
115
  end
120
116
 
121
117
  it "should return :false if the service is disabled" do
122
118
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
123
- allow(provider_class).to receive(:rcctl).with(:get, 'sshd', :status).and_return('NO')
124
- expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'status'], :failonfail => false, :combine => false, :squelch => false).and_return(double(:exitstatus => 1))
119
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'status'], :failonfail => false, :combine => false, :squelch => false).and_return(Puppet::Util::Execution::ProcessOutput.new('NO', 1))
125
120
  expect(provider.enabled?).to eq(:false)
126
121
  end
127
122
  end
@@ -129,15 +124,12 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
129
124
  context "#enable" do
130
125
  it "should run rcctl enable to enable the service" do
131
126
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
132
- allow(provider_class).to receive(:rcctl).with(:enable, 'sshd').and_return('')
133
127
  expect(provider).to receive(:rcctl).with(:enable, 'sshd')
134
128
  provider.enable
135
129
  end
136
130
 
137
131
  it "should run rcctl enable with flags if provided" do
138
132
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :flags => '-6'))
139
- allow(provider_class).to receive(:rcctl).with(:enable, 'sshd').and_return('')
140
- allow(provider_class).to receive(:rcctl).with(:set, 'sshd', :flags, '-6').and_return('')
141
133
  expect(provider).to receive(:rcctl).with(:enable, 'sshd')
142
134
  expect(provider).to receive(:rcctl).with(:set, 'sshd', :flags, '-6')
143
135
  provider.enable
@@ -147,7 +139,6 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
147
139
  context "#disable" do
148
140
  it "should run rcctl disable to disable the service" do
149
141
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
150
- allow(provider_class).to receive(:rcctl).with(:disable, 'sshd').and_return('')
151
142
  expect(provider).to receive(:rcctl).with(:disable, 'sshd')
152
143
  provider.disable
153
144
  end
@@ -156,21 +147,18 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
156
147
  context "#running?" do
157
148
  it "should run rcctl check to check the service" do
158
149
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
159
- allow(provider_class).to receive(:rcctl).with(:check, 'sshd').and_return('sshd(ok)')
160
150
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'check', 'sshd'], :failonfail => false, :combine => false, :squelch => false).and_return('sshd(ok)')
161
151
  expect(provider.running?).to be_truthy
162
152
  end
163
153
 
164
154
  it "should return true if the service is running" do
165
155
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
166
- allow(provider_class).to receive(:rcctl).with(:check, 'sshd').and_return('sshd(ok)')
167
156
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'check', 'sshd'], :failonfail => false, :combine => false, :squelch => false).and_return('sshd(ok)')
168
157
  expect(provider.running?).to be_truthy
169
158
  end
170
159
 
171
160
  it "should return nil if the service is not running" do
172
161
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
173
- allow(provider_class).to receive(:rcctl).with(:check, 'sshd').and_return('sshd(failed)')
174
162
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'check', 'sshd'], :failonfail => false, :combine => false, :squelch => false).and_return('sshd(failed)')
175
163
  expect(provider.running?).to be_nil
176
164
  end
@@ -179,21 +167,18 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
179
167
  context "#flags" do
180
168
  it "should return flags when set" do
181
169
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd', :flags => '-6'))
182
- allow(provider_class).to receive(:rcctl).with('get', 'sshd', 'flags').and_return('-6')
183
170
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'flags'], :failonfail => false, :combine => false, :squelch => false).and_return('-6')
184
171
  provider.flags
185
172
  end
186
173
 
187
174
  it "should return empty flags" do
188
175
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
189
- allow(provider_class).to receive(:rcctl).with('get', 'sshd', 'flags').and_return('')
190
176
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'flags'], :failonfail => false, :combine => false, :squelch => false).and_return('')
191
177
  provider.flags
192
178
  end
193
179
 
194
180
  it "should return flags for special services" do
195
181
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'pf'))
196
- allow(provider_class).to receive(:rcctl).with('get', 'pf', 'flags').and_return('YES')
197
182
  expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'pf', 'flags'], :failonfail => false, :combine => false, :squelch => false).and_return('YES')
198
183
  provider.flags
199
184
  end
@@ -202,8 +187,9 @@ describe 'Puppet::Type::Service::Provider::Openbsd',
202
187
  context "#flags=" do
203
188
  it "should run rcctl to set flags", unless: Puppet::Util::Platform.windows? || RUBY_PLATFORM == 'java' do
204
189
  provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd'))
205
- allow(provider_class).to receive(:rcctl).with(:set, 'sshd', :flags, '-4').and_return('')
190
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'get', 'sshd', 'flags'], any_args).and_return('')
206
191
  expect(provider).to receive(:rcctl).with(:set, 'sshd', :flags, '-4')
192
+ expect(provider).to receive(:execute).with(['/usr/sbin/rcctl', 'check', 'sshd'], any_args).and_return('')
207
193
  provider.flags = '-4'
208
194
  end
209
195
  end