puppet 7.5.0-x64-mingw32 → 7.9.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 (712) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +7 -7
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +20 -20
  5. data/README.md +4 -4
  6. data/ext/osx/puppet.plist +2 -0
  7. data/ext/project_data.yaml +1 -0
  8. data/install.rb +11 -15
  9. data/lib/hiera_puppet.rb +1 -1
  10. data/lib/puppet.rb +40 -40
  11. data/lib/puppet/agent.rb +6 -6
  12. data/lib/puppet/agent/disabler.rb +1 -1
  13. data/lib/puppet/agent/locker.rb +2 -2
  14. data/lib/puppet/application.rb +6 -6
  15. data/lib/puppet/application/agent.rb +18 -11
  16. data/lib/puppet/application/apply.rb +6 -5
  17. data/lib/puppet/application/catalog.rb +1 -1
  18. data/lib/puppet/application/config.rb +1 -1
  19. data/lib/puppet/application/describe.rb +1 -1
  20. data/lib/puppet/application/device.rb +8 -7
  21. data/lib/puppet/application/doc.rb +7 -7
  22. data/lib/puppet/application/epp.rb +2 -2
  23. data/lib/puppet/application/face_base.rb +2 -2
  24. data/lib/puppet/application/facts.rb +1 -1
  25. data/lib/puppet/application/filebucket.rb +3 -2
  26. data/lib/puppet/application/generate.rb +1 -1
  27. data/lib/puppet/application/help.rb +1 -1
  28. data/lib/puppet/application/indirection_base.rb +1 -1
  29. data/lib/puppet/application/lookup.rb +6 -6
  30. data/lib/puppet/application/module.rb +1 -1
  31. data/lib/puppet/application/node.rb +1 -1
  32. data/lib/puppet/application/parser.rb +2 -2
  33. data/lib/puppet/application/plugin.rb +1 -1
  34. data/lib/puppet/application/report.rb +1 -1
  35. data/lib/puppet/application/resource.rb +18 -4
  36. data/lib/puppet/application/script.rb +6 -5
  37. data/lib/puppet/application/ssl.rb +3 -2
  38. data/lib/puppet/application_support.rb +4 -4
  39. data/lib/puppet/compilable_resource_type.rb +1 -1
  40. data/lib/puppet/concurrent/lock.rb +1 -1
  41. data/lib/puppet/configurer.rb +4 -4
  42. data/lib/puppet/configurer/downloader.rb +4 -3
  43. data/lib/puppet/configurer/fact_handler.rb +3 -3
  44. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  45. data/lib/puppet/confine.rb +1 -1
  46. data/lib/puppet/confine/boolean.rb +1 -1
  47. data/lib/puppet/confine/exists.rb +1 -1
  48. data/lib/puppet/confine/false.rb +1 -1
  49. data/lib/puppet/confine/feature.rb +1 -1
  50. data/lib/puppet/confine/true.rb +1 -1
  51. data/lib/puppet/confine/variable.rb +1 -1
  52. data/lib/puppet/confine_collection.rb +1 -1
  53. data/lib/puppet/confiner.rb +1 -1
  54. data/lib/puppet/context.rb +2 -2
  55. data/lib/puppet/context/trusted_information.rb +1 -1
  56. data/lib/puppet/daemon.rb +2 -2
  57. data/lib/puppet/data_binding.rb +1 -1
  58. data/lib/puppet/datatypes/error.rb +1 -1
  59. data/lib/puppet/defaults.rb +17 -12
  60. data/lib/puppet/environments.rb +11 -1
  61. data/lib/puppet/etc.rb +1 -1
  62. data/lib/puppet/external/pson/common.rb +1 -1
  63. data/lib/puppet/external/pson/pure.rb +3 -3
  64. data/lib/puppet/face.rb +1 -1
  65. data/lib/puppet/face/catalog.rb +1 -1
  66. data/lib/puppet/face/config.rb +2 -2
  67. data/lib/puppet/face/epp.rb +6 -6
  68. data/lib/puppet/face/facts.rb +2 -2
  69. data/lib/puppet/face/generate.rb +2 -2
  70. data/lib/puppet/face/help.rb +3 -3
  71. data/lib/puppet/face/help/action.erb +1 -0
  72. data/lib/puppet/face/help/face.erb +1 -0
  73. data/lib/puppet/face/module.rb +3 -3
  74. data/lib/puppet/face/module/install.rb +2 -2
  75. data/lib/puppet/face/node.rb +1 -1
  76. data/lib/puppet/face/node/clean.rb +1 -1
  77. data/lib/puppet/face/parser.rb +4 -4
  78. data/lib/puppet/face/plugin.rb +2 -2
  79. data/lib/puppet/face/report.rb +1 -1
  80. data/lib/puppet/face/resource.rb +1 -1
  81. data/lib/puppet/feature/base.rb +2 -2
  82. data/lib/puppet/feature/bolt.rb +1 -1
  83. data/lib/puppet/feature/cfpropertylist.rb +1 -1
  84. data/lib/puppet/feature/eventlog.rb +1 -1
  85. data/lib/puppet/feature/hiera_eyaml.rb +1 -1
  86. data/lib/puppet/feature/hocon.rb +1 -1
  87. data/lib/puppet/feature/libuser.rb +2 -2
  88. data/lib/puppet/feature/msgpack.rb +1 -1
  89. data/lib/puppet/feature/pe_license.rb +1 -1
  90. data/lib/puppet/feature/selinux.rb +1 -1
  91. data/lib/puppet/feature/ssh.rb +1 -1
  92. data/lib/puppet/feature/telnet.rb +1 -1
  93. data/lib/puppet/feature/zlib.rb +1 -1
  94. data/lib/puppet/ffi/posix.rb +2 -2
  95. data/lib/puppet/ffi/posix/constants.rb +1 -1
  96. data/lib/puppet/ffi/posix/functions.rb +1 -1
  97. data/lib/puppet/ffi/windows.rb +4 -4
  98. data/lib/puppet/ffi/windows/api_types.rb +2 -2
  99. data/lib/puppet/ffi/windows/constants.rb +1 -1
  100. data/lib/puppet/ffi/windows/functions.rb +1 -1
  101. data/lib/puppet/ffi/windows/structs.rb +1 -1
  102. data/lib/puppet/file_bucket/dipper.rb +4 -4
  103. data/lib/puppet/file_bucket/file.rb +3 -3
  104. data/lib/puppet/file_serving/base.rb +2 -2
  105. data/lib/puppet/file_serving/configuration.rb +10 -10
  106. data/lib/puppet/file_serving/configuration/parser.rb +2 -2
  107. data/lib/puppet/file_serving/content.rb +3 -3
  108. data/lib/puppet/file_serving/fileset.rb +16 -4
  109. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  110. data/lib/puppet/file_serving/metadata.rb +6 -6
  111. data/lib/puppet/file_serving/mount.rb +4 -4
  112. data/lib/puppet/file_serving/mount/file.rb +1 -1
  113. data/lib/puppet/file_serving/mount/locales.rb +1 -1
  114. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  115. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  116. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  117. data/lib/puppet/file_serving/mount/tasks.rb +1 -1
  118. data/lib/puppet/file_serving/terminus_helper.rb +2 -2
  119. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  120. data/lib/puppet/file_system.rb +9 -9
  121. data/lib/puppet/file_system/file_impl.rb +1 -1
  122. data/lib/puppet/file_system/jruby.rb +1 -1
  123. data/lib/puppet/file_system/path_pattern.rb +1 -1
  124. data/lib/puppet/file_system/uniquefile.rb +1 -1
  125. data/lib/puppet/file_system/windows.rb +4 -4
  126. data/lib/puppet/forge.rb +8 -8
  127. data/lib/puppet/forge/cache.rb +2 -2
  128. data/lib/puppet/forge/errors.rb +3 -3
  129. data/lib/puppet/forge/repository.rb +4 -4
  130. data/lib/puppet/functions.rb +1 -1
  131. data/lib/puppet/functions/all.rb +1 -1
  132. data/lib/puppet/functions/camelcase.rb +1 -1
  133. data/lib/puppet/functions/capitalize.rb +2 -2
  134. data/lib/puppet/functions/downcase.rb +2 -2
  135. data/lib/puppet/functions/empty.rb +8 -0
  136. data/lib/puppet/functions/get.rb +5 -5
  137. data/lib/puppet/functions/group_by.rb +13 -5
  138. data/lib/puppet/functions/lest.rb +1 -1
  139. data/lib/puppet/functions/new.rb +100 -100
  140. data/lib/puppet/functions/partition.rb +12 -4
  141. data/lib/puppet/functions/require.rb +5 -5
  142. data/lib/puppet/functions/sort.rb +3 -3
  143. data/lib/puppet/functions/strftime.rb +1 -0
  144. data/lib/puppet/functions/tree_each.rb +7 -9
  145. data/lib/puppet/functions/type.rb +4 -4
  146. data/lib/puppet/functions/unwrap.rb +17 -2
  147. data/lib/puppet/functions/upcase.rb +2 -2
  148. data/lib/puppet/functions/versioncmp.rb +1 -1
  149. data/lib/puppet/generate/models/type/type.rb +1 -1
  150. data/lib/puppet/generate/type.rb +2 -2
  151. data/lib/puppet/gettext/config.rb +3 -3
  152. data/lib/puppet/gettext/module_translations.rb +1 -1
  153. data/lib/puppet/graph.rb +6 -6
  154. data/lib/puppet/graph/simple_graph.rb +2 -2
  155. data/lib/puppet/http.rb +26 -26
  156. data/lib/puppet/http/factory.rb +2 -2
  157. data/lib/puppet/http/proxy.rb +1 -1
  158. data/lib/puppet/http/resolver/server_list.rb +15 -4
  159. data/lib/puppet/http/service/compiler.rb +73 -1
  160. data/lib/puppet/http/service/file_server.rb +3 -2
  161. data/lib/puppet/indirector.rb +5 -5
  162. data/lib/puppet/indirector/catalog/compiler.rb +7 -6
  163. data/lib/puppet/indirector/catalog/json.rb +2 -2
  164. data/lib/puppet/indirector/catalog/msgpack.rb +2 -2
  165. data/lib/puppet/indirector/catalog/rest.rb +2 -2
  166. data/lib/puppet/indirector/catalog/store_configs.rb +2 -2
  167. data/lib/puppet/indirector/catalog/yaml.rb +2 -2
  168. data/lib/puppet/indirector/code.rb +1 -1
  169. data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
  170. data/lib/puppet/indirector/data_binding/none.rb +1 -1
  171. data/lib/puppet/indirector/direct_file_server.rb +2 -2
  172. data/lib/puppet/indirector/envelope.rb +1 -1
  173. data/lib/puppet/indirector/errors.rb +1 -1
  174. data/lib/puppet/indirector/exec.rb +2 -2
  175. data/lib/puppet/indirector/face.rb +1 -1
  176. data/lib/puppet/indirector/facts/facter.rb +2 -2
  177. data/lib/puppet/indirector/facts/json.rb +3 -3
  178. data/lib/puppet/indirector/facts/memory.rb +2 -2
  179. data/lib/puppet/indirector/facts/network_device.rb +2 -2
  180. data/lib/puppet/indirector/facts/rest.rb +2 -2
  181. data/lib/puppet/indirector/facts/store_configs.rb +2 -2
  182. data/lib/puppet/indirector/facts/yaml.rb +3 -3
  183. data/lib/puppet/indirector/file_bucket_file/file.rb +4 -4
  184. data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -2
  185. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -1
  186. data/lib/puppet/indirector/file_content.rb +1 -1
  187. data/lib/puppet/indirector/file_content/file.rb +3 -3
  188. data/lib/puppet/indirector/file_content/file_server.rb +3 -3
  189. data/lib/puppet/indirector/file_content/rest.rb +3 -3
  190. data/lib/puppet/indirector/file_content/selector.rb +4 -4
  191. data/lib/puppet/indirector/file_metadata.rb +1 -1
  192. data/lib/puppet/indirector/file_metadata/file.rb +3 -3
  193. data/lib/puppet/indirector/file_metadata/file_server.rb +3 -3
  194. data/lib/puppet/indirector/file_metadata/http.rb +3 -3
  195. data/lib/puppet/indirector/file_metadata/rest.rb +4 -3
  196. data/lib/puppet/indirector/file_metadata/selector.rb +4 -4
  197. data/lib/puppet/indirector/file_server.rb +4 -4
  198. data/lib/puppet/indirector/generic_http.rb +1 -1
  199. data/lib/puppet/indirector/hiera.rb +1 -1
  200. data/lib/puppet/indirector/indirection.rb +5 -5
  201. data/lib/puppet/indirector/json.rb +2 -2
  202. data/lib/puppet/indirector/memory.rb +1 -1
  203. data/lib/puppet/indirector/msgpack.rb +2 -2
  204. data/lib/puppet/indirector/node/exec.rb +2 -2
  205. data/lib/puppet/indirector/node/json.rb +2 -2
  206. data/lib/puppet/indirector/node/memory.rb +2 -2
  207. data/lib/puppet/indirector/node/msgpack.rb +2 -2
  208. data/lib/puppet/indirector/node/plain.rb +2 -2
  209. data/lib/puppet/indirector/node/rest.rb +2 -2
  210. data/lib/puppet/indirector/node/store_configs.rb +2 -2
  211. data/lib/puppet/indirector/node/yaml.rb +2 -2
  212. data/lib/puppet/indirector/none.rb +1 -1
  213. data/lib/puppet/indirector/plain.rb +1 -1
  214. data/lib/puppet/indirector/report/json.rb +2 -2
  215. data/lib/puppet/indirector/report/msgpack.rb +2 -2
  216. data/lib/puppet/indirector/report/processor.rb +3 -3
  217. data/lib/puppet/indirector/report/rest.rb +1 -1
  218. data/lib/puppet/indirector/report/yaml.rb +2 -2
  219. data/lib/puppet/indirector/request.rb +3 -3
  220. data/lib/puppet/indirector/resource/ral.rb +7 -2
  221. data/lib/puppet/indirector/resource/store_configs.rb +2 -2
  222. data/lib/puppet/indirector/terminus.rb +5 -5
  223. data/lib/puppet/indirector/yaml.rb +2 -2
  224. data/lib/puppet/info_service.rb +3 -3
  225. data/lib/puppet/info_service/class_information_service.rb +3 -3
  226. data/lib/puppet/info_service/plan_information_service.rb +1 -1
  227. data/lib/puppet/info_service/task_information_service.rb +1 -1
  228. data/lib/puppet/interface.rb +10 -10
  229. data/lib/puppet/interface/documentation.rb +2 -1
  230. data/lib/puppet/loaders.rb +21 -25
  231. data/lib/puppet/metatype/manager.rb +3 -3
  232. data/lib/puppet/module.rb +5 -4
  233. data/lib/puppet/module/plan.rb +1 -1
  234. data/lib/puppet/module/task.rb +1 -1
  235. data/lib/puppet/module_tool.rb +10 -10
  236. data/lib/puppet/module_tool/applications.rb +7 -7
  237. data/lib/puppet/module_tool/applications/application.rb +2 -2
  238. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  239. data/lib/puppet/module_tool/applications/installer.rb +11 -7
  240. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  241. data/lib/puppet/module_tool/applications/upgrader.rb +5 -5
  242. data/lib/puppet/module_tool/checksums.rb +1 -1
  243. data/lib/puppet/module_tool/contents_description.rb +1 -1
  244. data/lib/puppet/module_tool/dependency.rb +2 -2
  245. data/lib/puppet/module_tool/errors.rb +6 -6
  246. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  247. data/lib/puppet/module_tool/install_directory.rb +2 -2
  248. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  249. data/lib/puppet/module_tool/local_tarball.rb +2 -2
  250. data/lib/puppet/module_tool/metadata.rb +3 -3
  251. data/lib/puppet/module_tool/tar.rb +4 -4
  252. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  253. data/lib/puppet/network/format.rb +1 -1
  254. data/lib/puppet/network/format_handler.rb +3 -3
  255. data/lib/puppet/network/format_support.rb +1 -1
  256. data/lib/puppet/network/formats.rb +2 -2
  257. data/lib/puppet/network/http.rb +12 -12
  258. data/lib/puppet/network/http/api.rb +1 -1
  259. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  260. data/lib/puppet/network/http/api/master.rb +1 -1
  261. data/lib/puppet/network/http/api/master/v3.rb +2 -2
  262. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  263. data/lib/puppet/network/http/api/server/v3.rb +2 -2
  264. data/lib/puppet/network/http/api/server/v3/environments.rb +1 -1
  265. data/lib/puppet/network/http/connection.rb +1 -1
  266. data/lib/puppet/network/http/error.rb +1 -1
  267. data/lib/puppet/network/http/handler.rb +3 -3
  268. data/lib/puppet/network/http_pool.rb +1 -1
  269. data/lib/puppet/node.rb +3 -3
  270. data/lib/puppet/node/environment.rb +15 -8
  271. data/lib/puppet/node/facts.rb +3 -3
  272. data/lib/puppet/pal/pal_api.rb +10 -10
  273. data/lib/puppet/pal/pal_impl.rb +3 -3
  274. data/lib/puppet/parameter.rb +4 -4
  275. data/lib/puppet/parameter/boolean.rb +1 -1
  276. data/lib/puppet/parameter/package_options.rb +1 -1
  277. data/lib/puppet/parameter/path.rb +1 -1
  278. data/lib/puppet/parameter/value.rb +1 -1
  279. data/lib/puppet/parameter/value_collection.rb +1 -1
  280. data/lib/puppet/parser.rb +10 -10
  281. data/lib/puppet/parser/ast.rb +8 -8
  282. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  283. data/lib/puppet/parser/ast/pops_bridge.rb +2 -2
  284. data/lib/puppet/parser/catalog_compiler.rb +2 -2
  285. data/lib/puppet/parser/compiler.rb +5 -5
  286. data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
  287. data/lib/puppet/parser/functions.rb +4 -4
  288. data/lib/puppet/parser/functions/digest.rb +1 -1
  289. data/lib/puppet/parser/functions/file.rb +1 -1
  290. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  291. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  292. data/lib/puppet/parser/parser_factory.rb +2 -2
  293. data/lib/puppet/parser/resource.rb +3 -3
  294. data/lib/puppet/parser/scope.rb +3 -3
  295. data/lib/puppet/parser/script_compiler.rb +2 -2
  296. data/lib/puppet/parser/templatewrapper.rb +2 -2
  297. data/lib/puppet/parser/type_loader.rb +1 -1
  298. data/lib/puppet/plugins/configuration.rb +5 -5
  299. data/lib/puppet/pops.rb +57 -57
  300. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  301. data/lib/puppet/pops/evaluator/evaluator_impl.rb +7 -7
  302. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  303. data/lib/puppet/pops/loader/base_loader.rb +42 -32
  304. data/lib/puppet/pops/loader/dependency_loader.rb +2 -2
  305. data/lib/puppet/pops/loader/loader.rb +15 -5
  306. data/lib/puppet/pops/loader/module_loaders.rb +8 -8
  307. data/lib/puppet/pops/loader/predefined_loader.rb +4 -0
  308. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -1
  309. data/lib/puppet/pops/loader/static_loader.rb +4 -0
  310. data/lib/puppet/pops/loader/task_instantiator.rb +1 -1
  311. data/lib/puppet/pops/loaders.rb +4 -4
  312. data/lib/puppet/pops/lookup/invocation.rb +1 -1
  313. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  314. data/lib/puppet/pops/model/pn_transformer.rb +1 -1
  315. data/lib/puppet/pops/parser/eparser.rb +2 -2
  316. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  317. data/lib/puppet/pops/parser/lexer2.rb +5 -5
  318. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  319. data/lib/puppet/pops/parser/parser_support.rb +4 -4
  320. data/lib/puppet/pops/puppet_stack.rb +1 -1
  321. data/lib/puppet/pops/serialization/json.rb +1 -1
  322. data/lib/puppet/pops/serialization/json_path.rb +1 -1
  323. data/lib/puppet/pops/time/timespan.rb +1 -1
  324. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  325. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  326. data/lib/puppet/pops/types/p_type_set_type.rb +1 -1
  327. data/lib/puppet/pops/types/string_converter.rb +1 -1
  328. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  329. data/lib/puppet/pops/types/type_formatter.rb +1 -1
  330. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  331. data/lib/puppet/pops/types/type_parser.rb +1 -1
  332. data/lib/puppet/pops/types/types.rb +1 -1
  333. data/lib/puppet/pops/validation/checker4_0.rb +1 -1
  334. data/lib/puppet/property.rb +3 -3
  335. data/lib/puppet/property/boolean.rb +1 -1
  336. data/lib/puppet/property/ensure.rb +1 -1
  337. data/lib/puppet/property/keyvalue.rb +1 -1
  338. data/lib/puppet/property/list.rb +1 -1
  339. data/lib/puppet/property/ordered_list.rb +1 -1
  340. data/lib/puppet/provider.rb +2 -2
  341. data/lib/puppet/provider/confine.rb +2 -2
  342. data/lib/puppet/provider/exec.rb +2 -2
  343. data/lib/puppet/provider/exec/posix.rb +17 -5
  344. data/lib/puppet/provider/exec/windows.rb +1 -1
  345. data/lib/puppet/provider/file/posix.rb +1 -1
  346. data/lib/puppet/provider/file/windows.rb +1 -1
  347. data/lib/puppet/provider/group/aix.rb +1 -1
  348. data/lib/puppet/provider/group/directoryservice.rb +1 -1
  349. data/lib/puppet/provider/group/groupadd.rb +2 -2
  350. data/lib/puppet/provider/group/ldap.rb +1 -1
  351. data/lib/puppet/provider/group/pw.rb +1 -1
  352. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  353. data/lib/puppet/provider/ldap.rb +2 -2
  354. data/lib/puppet/provider/nameservice.rb +1 -1
  355. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  356. data/lib/puppet/provider/nameservice/objectadd.rb +1 -1
  357. data/lib/puppet/provider/nameservice/pw.rb +1 -1
  358. data/lib/puppet/provider/package.rb +1 -1
  359. data/lib/puppet/provider/package/aix.rb +2 -2
  360. data/lib/puppet/provider/package/appdmg.rb +2 -2
  361. data/lib/puppet/provider/package/apple.rb +1 -1
  362. data/lib/puppet/provider/package/apt.rb +5 -5
  363. data/lib/puppet/provider/package/dnfmodule.rb +2 -2
  364. data/lib/puppet/provider/package/dpkg.rb +1 -1
  365. data/lib/puppet/provider/package/gem.rb +3 -3
  366. data/lib/puppet/provider/package/hpux.rb +1 -1
  367. data/lib/puppet/provider/package/macports.rb +2 -2
  368. data/lib/puppet/provider/package/nim.rb +13 -8
  369. data/lib/puppet/provider/package/openbsd.rb +1 -1
  370. data/lib/puppet/provider/package/opkg.rb +1 -1
  371. data/lib/puppet/provider/package/pacman.rb +1 -1
  372. data/lib/puppet/provider/package/pip.rb +18 -6
  373. data/lib/puppet/provider/package/pkg.rb +2 -2
  374. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  375. data/lib/puppet/provider/package/pkgin.rb +1 -1
  376. data/lib/puppet/provider/package/pkgng.rb +1 -1
  377. data/lib/puppet/provider/package/portage.rb +1 -1
  378. data/lib/puppet/provider/package/portupgrade.rb +1 -1
  379. data/lib/puppet/provider/package/puppet_gem.rb +12 -1
  380. data/lib/puppet/provider/package/puppetserver_gem.rb +0 -0
  381. data/lib/puppet/provider/package/rpm.rb +2 -2
  382. data/lib/puppet/provider/package/sun.rb +1 -1
  383. data/lib/puppet/provider/package/windows.rb +17 -4
  384. data/lib/puppet/provider/package/windows/exe_package.rb +31 -2
  385. data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
  386. data/lib/puppet/provider/package/windows/package.rb +6 -5
  387. data/lib/puppet/provider/package/yum.rb +6 -6
  388. data/lib/puppet/provider/package/zypper.rb +3 -3
  389. data/lib/puppet/provider/package_targetable.rb +1 -1
  390. data/lib/puppet/provider/parsedfile.rb +6 -3
  391. data/lib/puppet/provider/service/base.rb +6 -4
  392. data/lib/puppet/provider/service/daemontools.rb +0 -1
  393. data/lib/puppet/provider/service/debian.rb +3 -5
  394. data/lib/puppet/provider/service/freebsd.rb +1 -1
  395. data/lib/puppet/provider/service/init.rb +1 -1
  396. data/lib/puppet/provider/service/launchd.rb +9 -3
  397. data/lib/puppet/provider/service/service.rb +28 -3
  398. data/lib/puppet/provider/service/smf.rb +0 -24
  399. data/lib/puppet/provider/service/src.rb +2 -2
  400. data/lib/puppet/provider/service/systemd.rb +18 -8
  401. data/lib/puppet/provider/service/windows.rb +38 -0
  402. data/lib/puppet/provider/user/aix.rb +2 -2
  403. data/lib/puppet/provider/user/directoryservice.rb +26 -13
  404. data/lib/puppet/provider/user/ldap.rb +1 -1
  405. data/lib/puppet/provider/user/openbsd.rb +1 -1
  406. data/lib/puppet/provider/user/pw.rb +1 -1
  407. data/lib/puppet/provider/user/user_role_add.rb +2 -2
  408. data/lib/puppet/provider/user/useradd.rb +4 -4
  409. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  410. data/lib/puppet/reference/configuration.rb +1 -1
  411. data/lib/puppet/reference/indirection.rb +4 -4
  412. data/lib/puppet/reference/report.rb +1 -1
  413. data/lib/puppet/reports.rb +1 -1
  414. data/lib/puppet/reports/http.rb +2 -2
  415. data/lib/puppet/reports/log.rb +1 -1
  416. data/lib/puppet/reports/store.rb +2 -2
  417. data/lib/puppet/resource.rb +4 -4
  418. data/lib/puppet/resource/catalog.rb +5 -5
  419. data/lib/puppet/resource/status.rb +2 -2
  420. data/lib/puppet/resource/type.rb +4 -4
  421. data/lib/puppet/resource/type_collection.rb +6 -4
  422. data/lib/puppet/runtime.rb +1 -1
  423. data/lib/puppet/scheduler.rb +4 -4
  424. data/lib/puppet/settings.rb +61 -37
  425. data/lib/puppet/settings/autosign_setting.rb +1 -1
  426. data/lib/puppet/settings/base_setting.rb +2 -2
  427. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
  428. data/lib/puppet/settings/config_file.rb +2 -9
  429. data/lib/puppet/settings/errors.rb +1 -1
  430. data/lib/puppet/settings/priority_setting.rb +3 -3
  431. data/lib/puppet/settings/value_translator.rb +0 -1
  432. data/lib/puppet/ssl.rb +11 -11
  433. data/lib/puppet/ssl/base.rb +3 -3
  434. data/lib/puppet/ssl/certificate.rb +1 -1
  435. data/lib/puppet/ssl/certificate_request.rb +2 -2
  436. data/lib/puppet/ssl/certificate_request_attributes.rb +2 -2
  437. data/lib/puppet/ssl/oids.rb +1 -1
  438. data/lib/puppet/ssl/openssl_loader.rb +1 -1
  439. data/lib/puppet/ssl/ssl_context.rb +1 -1
  440. data/lib/puppet/ssl/ssl_provider.rb +1 -1
  441. data/lib/puppet/ssl/state_machine.rb +2 -2
  442. data/lib/puppet/ssl/verifier.rb +5 -1
  443. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  444. data/lib/puppet/syntax_checkers/epp.rb +1 -1
  445. data/lib/puppet/syntax_checkers/json.rb +1 -1
  446. data/lib/puppet/syntax_checkers/pp.rb +1 -1
  447. data/lib/puppet/transaction.rb +11 -11
  448. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  449. data/lib/puppet/transaction/event.rb +4 -4
  450. data/lib/puppet/transaction/event_manager.rb +1 -1
  451. data/lib/puppet/transaction/persistence.rb +1 -1
  452. data/lib/puppet/transaction/report.rb +2 -2
  453. data/lib/puppet/transaction/resource_harness.rb +1 -1
  454. data/lib/puppet/type.rb +14 -14
  455. data/lib/puppet/type/component.rb +3 -3
  456. data/lib/puppet/type/exec.rb +16 -3
  457. data/lib/puppet/type/file.rb +37 -19
  458. data/lib/puppet/type/file/checksum.rb +1 -1
  459. data/lib/puppet/type/file/checksum_value.rb +2 -2
  460. data/lib/puppet/type/file/content.rb +2 -2
  461. data/lib/puppet/type/file/data_sync.rb +2 -2
  462. data/lib/puppet/type/file/ensure.rb +1 -1
  463. data/lib/puppet/type/file/group.rb +1 -1
  464. data/lib/puppet/type/file/mode.rb +7 -1
  465. data/lib/puppet/type/file/selcontext.rb +2 -2
  466. data/lib/puppet/type/file/source.rb +4 -4
  467. data/lib/puppet/type/filebucket.rb +1 -1
  468. data/lib/puppet/type/group.rb +2 -2
  469. data/lib/puppet/type/package.rb +2 -2
  470. data/lib/puppet/type/resources.rb +2 -2
  471. data/lib/puppet/type/service.rb +18 -38
  472. data/lib/puppet/type/tidy.rb +25 -6
  473. data/lib/puppet/type/user.rb +43 -25
  474. data/lib/puppet/util.rb +43 -34
  475. data/lib/puppet/util/at_fork.rb +3 -3
  476. data/lib/puppet/util/at_fork/solaris.rb +1 -1
  477. data/lib/puppet/util/autoload.rb +4 -4
  478. data/lib/puppet/util/checksums.rb +3 -3
  479. data/lib/puppet/util/colors.rb +1 -1
  480. data/lib/puppet/util/command_line.rb +6 -6
  481. data/lib/puppet/util/command_line/puppet_option_parser.rb +2 -2
  482. data/lib/puppet/util/execution.rb +2 -2
  483. data/lib/puppet/util/feature.rb +2 -2
  484. data/lib/puppet/util/filetype.rb +1 -1
  485. data/lib/puppet/util/http_proxy.rb +1 -1
  486. data/lib/puppet/util/inifile.rb +2 -2
  487. data/lib/puppet/util/instance_loader.rb +3 -3
  488. data/lib/puppet/util/json_lockfile.rb +1 -1
  489. data/lib/puppet/util/ldap/connection.rb +1 -1
  490. data/lib/puppet/util/ldap/generator.rb +1 -1
  491. data/lib/puppet/util/ldap/manager.rb +3 -3
  492. data/lib/puppet/util/limits.rb +1 -1
  493. data/lib/puppet/util/log.rb +6 -6
  494. data/lib/puppet/util/log/destinations.rb +1 -1
  495. data/lib/puppet/util/logging.rb +2 -2
  496. data/lib/puppet/util/metric.rb +2 -2
  497. data/lib/puppet/util/monkey_patches.rb +9 -20
  498. data/lib/puppet/util/network_device/base.rb +3 -3
  499. data/lib/puppet/util/network_device/config.rb +2 -2
  500. data/lib/puppet/util/network_device/transport.rb +1 -1
  501. data/lib/puppet/util/network_device/transport/base.rb +2 -2
  502. data/lib/puppet/util/package/version/range.rb +6 -6
  503. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  504. data/lib/puppet/util/package/version/range/gt.rb +1 -1
  505. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -1
  506. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  507. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -1
  508. data/lib/puppet/util/package/version/range/min_max.rb +1 -1
  509. data/lib/puppet/util/package/version/range/simple.rb +1 -1
  510. data/lib/puppet/util/package/version/rpm.rb +1 -1
  511. data/lib/puppet/util/pidlock.rb +1 -1
  512. data/lib/puppet/util/plist.rb +1 -1
  513. data/lib/puppet/util/posix.rb +1 -1
  514. data/lib/puppet/util/profiler.rb +3 -3
  515. data/lib/puppet/util/profiler/aggregate.rb +2 -2
  516. data/lib/puppet/util/profiler/object_counts.rb +1 -1
  517. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  518. data/lib/puppet/util/provider_features.rb +2 -2
  519. data/lib/puppet/util/rdoc.rb +2 -2
  520. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  521. data/lib/puppet/util/rdoc/parser.rb +6 -6
  522. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  523. data/lib/puppet/util/reference.rb +1 -1
  524. data/lib/puppet/util/resource_template.rb +2 -2
  525. data/lib/puppet/util/rubygems.rb +1 -1
  526. data/lib/puppet/util/selinux.rb +30 -4
  527. data/lib/puppet/util/skip_tags.rb +1 -1
  528. data/lib/puppet/util/storage.rb +1 -1
  529. data/lib/puppet/util/suidmanager.rb +2 -2
  530. data/lib/puppet/util/symbolic_file_mode.rb +30 -18
  531. data/lib/puppet/util/tag_set.rb +1 -1
  532. data/lib/puppet/util/tagging.rb +1 -1
  533. data/lib/puppet/util/watched_file.rb +1 -1
  534. data/lib/puppet/util/watcher.rb +3 -3
  535. data/lib/puppet/util/windows.rb +20 -20
  536. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  537. data/lib/puppet/util/windows/adsi.rb +1 -1
  538. data/lib/puppet/util/windows/daemon.rb +1 -1
  539. data/lib/puppet/util/windows/error.rb +2 -2
  540. data/lib/puppet/util/windows/file.rb +1 -1
  541. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -2
  542. data/lib/puppet/util/windows/principal.rb +1 -1
  543. data/lib/puppet/util/windows/process.rb +2 -2
  544. data/lib/puppet/util/windows/registry.rb +1 -1
  545. data/lib/puppet/util/windows/root_certs.rb +2 -2
  546. data/lib/puppet/util/windows/security.rb +1 -1
  547. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  548. data/lib/puppet/util/windows/service.rb +1 -1
  549. data/lib/puppet/util/windows/sid.rb +4 -2
  550. data/lib/puppet/util/windows/user.rb +1 -1
  551. data/lib/puppet/vendor.rb +1 -1
  552. data/lib/puppet/version.rb +1 -1
  553. data/lib/puppet/x509.rb +4 -4
  554. data/lib/puppet/x509/cert_provider.rb +4 -22
  555. data/lib/puppet/x509/pem_store.rb +1 -1
  556. data/lib/puppet_pal.rb +2 -2
  557. data/locales/puppet.pot +349 -305
  558. data/man/man5/puppet.conf.5 +259 -241
  559. data/man/man8/puppet-agent.8 +1 -1
  560. data/man/man8/puppet-apply.8 +1 -1
  561. data/man/man8/puppet-catalog.8 +9 -9
  562. data/man/man8/puppet-config.8 +1 -1
  563. data/man/man8/puppet-describe.8 +1 -1
  564. data/man/man8/puppet-device.8 +1 -1
  565. data/man/man8/puppet-doc.8 +1 -1
  566. data/man/man8/puppet-epp.8 +1 -1
  567. data/man/man8/puppet-facts.8 +7 -7
  568. data/man/man8/puppet-filebucket.8 +1 -1
  569. data/man/man8/puppet-generate.8 +1 -1
  570. data/man/man8/puppet-help.8 +1 -1
  571. data/man/man8/puppet-lookup.8 +1 -1
  572. data/man/man8/puppet-module.8 +1 -1
  573. data/man/man8/puppet-node.8 +5 -5
  574. data/man/man8/puppet-parser.8 +1 -1
  575. data/man/man8/puppet-plugin.8 +1 -1
  576. data/man/man8/puppet-report.8 +5 -5
  577. data/man/man8/puppet-resource.8 +1 -1
  578. data/man/man8/puppet-script.8 +1 -1
  579. data/man/man8/puppet-ssl.8 +1 -1
  580. data/man/man8/puppet.8 +2 -2
  581. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  582. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  583. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  584. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  585. data/spec/fixtures/ssl/ca.pem +57 -35
  586. data/spec/fixtures/ssl/crl.pem +28 -18
  587. data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
  588. data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
  589. data/spec/fixtures/ssl/ec-key.pem +11 -11
  590. data/spec/fixtures/ssl/ec.pem +33 -24
  591. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  592. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  593. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  594. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  595. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  596. data/spec/fixtures/ssl/intermediate.pem +57 -36
  597. data/spec/fixtures/ssl/oid-key.pem +117 -0
  598. data/spec/fixtures/ssl/oid.pem +69 -0
  599. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  600. data/spec/fixtures/ssl/pluto.pem +52 -30
  601. data/spec/fixtures/ssl/request-key.pem +107 -57
  602. data/spec/fixtures/ssl/request.pem +47 -26
  603. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  604. data/spec/fixtures/ssl/revoked.pem +52 -30
  605. data/spec/fixtures/ssl/signed-key.pem +107 -57
  606. data/spec/fixtures/ssl/signed.pem +52 -30
  607. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  608. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  609. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  610. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  611. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  612. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  613. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  614. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  615. data/spec/integration/application/filebucket_spec.rb +11 -0
  616. data/spec/integration/application/module_spec.rb +21 -0
  617. data/spec/integration/application/resource_spec.rb +64 -0
  618. data/spec/integration/application/ssl_spec.rb +20 -0
  619. data/spec/integration/defaults_spec.rb +5 -0
  620. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  621. data/spec/integration/http/client_spec.rb +1 -1
  622. data/spec/integration/indirector/facts/facter_spec.rb +90 -36
  623. data/spec/integration/type/exec_spec.rb +70 -45
  624. data/spec/integration/type/file_spec.rb +5 -5
  625. data/spec/lib/puppet/test_ca.rb +7 -2
  626. data/spec/lib/puppet_spec/files.rb +1 -1
  627. data/spec/lib/puppet_spec/settings.rb +1 -0
  628. data/spec/shared_contexts/provider.rb +16 -0
  629. data/spec/spec_helper.rb +11 -1
  630. data/spec/unit/application/agent_spec.rb +7 -2
  631. data/spec/unit/configurer/downloader_spec.rb +6 -0
  632. data/spec/unit/configurer_spec.rb +23 -0
  633. data/spec/unit/environments_spec.rb +35 -0
  634. data/spec/unit/file_bucket/dipper_spec.rb +1 -1
  635. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  636. data/spec/unit/file_system_spec.rb +6 -0
  637. data/spec/unit/functions/assert_type_spec.rb +1 -1
  638. data/spec/unit/functions/empty_spec.rb +10 -0
  639. data/spec/unit/functions/lookup_spec.rb +23 -0
  640. data/spec/unit/functions/unwrap_spec.rb +8 -0
  641. data/spec/unit/functions4_spec.rb +19 -10
  642. data/spec/unit/gettext/config_spec.rb +12 -0
  643. data/spec/unit/http/service/compiler_spec.rb +123 -0
  644. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  645. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  646. data/spec/unit/module_spec.rb +1 -1
  647. data/spec/unit/module_tool/applications/installer_spec.rb +13 -2
  648. data/spec/unit/parser/compiler_spec.rb +29 -0
  649. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  650. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  651. data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -10
  652. data/spec/unit/pops/lookup/context_spec.rb +1 -1
  653. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  654. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  655. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  656. data/spec/unit/pops/types/type_parser_spec.rb +2 -1
  657. data/spec/unit/provider/package/dnfmodule_spec.rb +13 -4
  658. data/spec/unit/provider/package/gem_spec.rb +3 -1
  659. data/spec/unit/provider/package/nim_spec.rb +42 -0
  660. data/spec/unit/provider/package/pip2_spec.rb +3 -1
  661. data/spec/unit/provider/package/pip3_spec.rb +3 -1
  662. data/spec/unit/provider/package/pip_spec.rb +40 -1
  663. data/spec/unit/provider/package/pkg_spec.rb +44 -44
  664. data/spec/unit/provider/package/puppet_gem_spec.rb +31 -1
  665. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -0
  666. data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
  667. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  668. data/spec/unit/provider/service/base_spec.rb +8 -8
  669. data/spec/unit/provider/service/bsd_spec.rb +0 -4
  670. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  671. data/spec/unit/provider/service/debian_spec.rb +15 -17
  672. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  673. data/spec/unit/provider/service/gentoo_spec.rb +19 -14
  674. data/spec/unit/provider/service/init_spec.rb +29 -20
  675. data/spec/unit/provider/service/launchd_spec.rb +10 -12
  676. data/spec/unit/provider/service/openbsd_spec.rb +21 -35
  677. data/spec/unit/provider/service/openrc_spec.rb +15 -14
  678. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  679. data/spec/unit/provider/service/redhat_spec.rb +20 -19
  680. data/spec/unit/provider/service/smf_spec.rb +6 -5
  681. data/spec/unit/provider/service/src_spec.rb +5 -10
  682. data/spec/unit/provider/service/systemd_spec.rb +80 -29
  683. data/spec/unit/provider/service/upstart_spec.rb +25 -20
  684. data/spec/unit/provider/service/windows_spec.rb +202 -0
  685. data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
  686. data/spec/unit/provider/user/useradd_spec.rb +18 -3
  687. data/spec/unit/resource/catalog_spec.rb +1 -1
  688. data/spec/unit/resource/type_collection_spec.rb +16 -0
  689. data/spec/unit/resource/type_spec.rb +2 -2
  690. data/spec/unit/settings/config_file_spec.rb +1 -11
  691. data/spec/unit/settings/value_translator_spec.rb +4 -5
  692. data/spec/unit/settings_spec.rb +120 -79
  693. data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
  694. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  695. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  696. data/spec/unit/transaction_spec.rb +18 -20
  697. data/spec/unit/type/exec_spec.rb +76 -29
  698. data/spec/unit/type/file/selinux_spec.rb +3 -3
  699. data/spec/unit/type/file/source_spec.rb +4 -4
  700. data/spec/unit/type/service_spec.rb +59 -188
  701. data/spec/unit/type/tidy_spec.rb +24 -7
  702. data/spec/unit/type/user_spec.rb +45 -0
  703. data/spec/unit/util/at_fork_spec.rb +9 -9
  704. data/spec/unit/util/ldap/connection_spec.rb +10 -10
  705. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  706. data/spec/unit/util/posix_spec.rb +1 -1
  707. data/spec/unit/util/selinux_spec.rb +87 -16
  708. data/spec/unit/util/windows/sid_spec.rb +39 -4
  709. data/spec/unit/util_spec.rb +1 -3
  710. data/spec/unit/x509/cert_provider_spec.rb +9 -1
  711. data/tasks/generate_cert_fixtures.rake +12 -3
  712. metadata +22 -3
@@ -210,7 +210,8 @@ describe TypeParser do
210
210
  end
211
211
 
212
212
  context 'with loader context' do
213
- let(:loader) { Puppet::Pops::Loader::BaseLoader.new(nil, "type_parser_unit_test_loader") }
213
+ let(:environment) { Puppet::Node::Environment.create(:testing, []) }
214
+ let(:loader) { Puppet::Pops::Loader::BaseLoader.new(nil, "type_parser_unit_test_loader", environment) }
214
215
 
215
216
  it 'interprets anything that is not found by the loader to be a type reference' do
216
217
  expect(loader).to receive(:load).with(:type, 'nonesuch').and_return(nil)
@@ -45,12 +45,14 @@ describe Puppet::Type.type(:package).provider(:dnfmodule) do
45
45
  before(:each) do
46
46
  expect(Puppet::Type::Package::ProviderDnfmodule).to receive(:execute)
47
47
  .with(["/usr/bin/dnf", "--version"])
48
- .and_return(dnf_version).at_most(:once)
48
+ .and_return(Puppet::Util::Execution::ProcessOutput.new(dnf_version, 0)).at_most(:once)
49
49
  expect(Puppet::Util::Execution).to receive(:execute)
50
50
  .with(["/usr/bin/dnf", "--version"], execute_options)
51
51
  .and_return(Puppet::Util::Execution::ProcessOutput.new(dnf_version, 0))
52
52
  end
53
53
 
54
+ before(:each) { described_class.instance_variable_set("@current_version", nil) }
55
+
54
56
  describe "with a supported dnf version" do
55
57
  it "correctly parses the version" do
56
58
  expect(described_class.current_version).to eq('4.0.9')
@@ -69,8 +71,6 @@ describe Puppet::Type.type(:package).provider(:dnfmodule) do
69
71
  DNF_OUTPUT
70
72
  end
71
73
 
72
- before(:each) { described_class.instance_variable_set("@current_version", nil) }
73
-
74
74
  it "correctly parses the version" do
75
75
  expect(described_class.current_version).to eq('2.7.5')
76
76
  end
@@ -123,7 +123,7 @@ describe Puppet::Type.type(:package).provider(:dnfmodule) do
123
123
  provider.install
124
124
  end
125
125
 
126
- it "should just enable the module if it has no default profile" do
126
+ it "should just enable the module if it has no default profile(missing groups or modules)" do
127
127
  dnf_exception = Puppet::ExecutionFailure.new("Error: Problems in request:\nmissing groups or modules: #{resource[:name]}")
128
128
  allow(provider).to receive(:execute).with(array_including('install')).and_raise(dnf_exception)
129
129
  resource[:ensure] = :present
@@ -132,6 +132,15 @@ describe Puppet::Type.type(:package).provider(:dnfmodule) do
132
132
  provider.install
133
133
  end
134
134
 
135
+ it "should just enable the module if it has no default profile(broken groups or modules)" do
136
+ dnf_exception = Puppet::ExecutionFailure.new("Error: Problems in request:\nbroken groups or modules: #{resource[:name]}")
137
+ allow(provider).to receive(:execute).with(array_including('install')).and_raise(dnf_exception)
138
+ resource[:ensure] = :present
139
+ expect(provider).to receive(:execute).with(array_including('install')).ordered
140
+ expect(provider).to receive(:execute).with(array_including('enable')).ordered
141
+ provider.install
142
+ end
143
+
135
144
  it "should just enable the module if enable_only = true" do
136
145
  resource[:ensure] = :present
137
146
  resource[:enable_only] = true
@@ -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
@@ -191,6 +191,27 @@ OUTPUT
191
191
  expect(versions[version]).to eq(:rpm)
192
192
  end
193
193
  end
194
+
195
+ it "should be able to parse RPM package listings with letters in version" do
196
+ showres_output = <<END
197
+ cairo ALL @@R:cairo _all_filesets
198
+ @@R:cairo-1.14.6-2waixX11 1.14.6-2waixX11
199
+ END
200
+ packages = subject.send(:parse_showres_output, showres_output)
201
+ expect(Set.new(packages.keys)).to eq(Set.new(['cairo']))
202
+ versions = packages['cairo']
203
+ expect(versions.has_key?('1.14.6-2waixX11')).to eq(true)
204
+ expect(versions['1.14.6-2waixX11']).to eq(:rpm)
205
+ end
206
+
207
+ it "should raise error when parsing invalid RPM package listings" do
208
+ showres_output = <<END
209
+ cairo ALL @@R:cairo _all_filesets
210
+ @@R:cairo-invalid_version invalid_version
211
+ END
212
+ expect{ subject.send(:parse_showres_output, showres_output) }.to raise_error(Puppet::Error,
213
+ /Unable to parse output from nimclient showres: package string does not match expected rpm package string format/)
214
+ end
194
215
  end
195
216
 
196
217
  context "#determine_latest_version" do
@@ -220,6 +241,27 @@ END
220
241
  it "should return :installp for installp/bff packages" do
221
242
  expect(subject.send(:determine_package_type, bff_showres_output, 'mypackage.foo', '1.2.3.4')).to eq(:installp)
222
243
  end
244
+
245
+ it "should return :installp for security updates" do
246
+ nimclient_showres_output = <<END
247
+ bos.net ALL @@S:bos.net _all_filesets
248
+ + 7.2.0.1 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.1
249
+ + 7.2.0.2 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.2
250
+
251
+ END
252
+ expect(subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2')).to eq(:installp)
253
+ end
254
+
255
+ it "should raise error when invalid header format is given" do
256
+ nimclient_showres_output = <<END
257
+ bos.net ALL @@INVALID_TYPE:bos.net _all_filesets
258
+ + 7.2.0.1 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.1
259
+ + 7.2.0.2 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.2
260
+
261
+ END
262
+ expect{ subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2') }.to raise_error(
263
+ Puppet::Error, /Unable to parse output from nimclient showres: line does not match expected package header format/)
264
+ end
223
265
  end
224
266
  end
225
267
  end
@@ -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
@@ -266,6 +266,43 @@ describe Puppet::Type.type(:package).provider(:pip) do
266
266
  let(:pip_version) { '1.5.4' }
267
267
  let(:pip_path) { '/fake/bin/pip' }
268
268
 
269
+ context "with pip version >= 20.3 and < 21.1" do
270
+ let(:pip_version) { '20.3.1' }
271
+ let(:pip_path) { '/fake/bin/pip' }
272
+
273
+ it "should use legacy-resolver argument" do
274
+ p = StringIO.new(
275
+ <<-EOS
276
+ Collecting real-package==versionplease
277
+ Could not find a version that satisfies the requirement real-package==versionplease (from versions: 1.1.3, 1.0, 1.9b1)
278
+ No matching distribution found for real-package==versionplease
279
+ EOS
280
+ )
281
+ expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease",
282
+ "--use-deprecated=legacy-resolver"]).and_yield(p).once
283
+ @resource[:name] = "real_package"
284
+ @provider.latest
285
+ end
286
+ end
287
+
288
+ context "with pip version >= 21.1" do
289
+ let(:pip_version) { '21.1' }
290
+ let(:pip_path) { '/fake/bin/pip' }
291
+
292
+ it "should not use legacy-resolver argument" do
293
+ p = StringIO.new(
294
+ <<-EOS
295
+ Collecting real-package==versionplease
296
+ Could not find a version that satisfies the requirement real-package==versionplease (from versions: 1.1.3, 1.0, 1.9b1)
297
+ No matching distribution found for real-package==versionplease
298
+ EOS
299
+ )
300
+ expect(Puppet::Util::Execution).to receive(:execpipe).with(["/fake/bin/pip", "install", "real_package==versionplease"]).and_yield(p).once
301
+ @resource[:name] = "real_package"
302
+ @provider.latest
303
+ end
304
+ end
305
+
269
306
  it "should find a version number for real_package" do
270
307
  p = StringIO.new(
271
308
  <<-EOS
@@ -448,13 +485,15 @@ describe Puppet::Type.type(:package).provider(:pip) do
448
485
  end
449
486
 
450
487
  context 'calculated specificity' do
488
+ include_context 'provider specificity'
489
+
451
490
  context 'when is not defaultfor' do
452
491
  subject { described_class.specificity }
453
492
  it { is_expected.to eql 1 }
454
493
  end
455
494
 
456
495
  context 'when is defaultfor' do
457
- let(:os) { Facter.value(:operatingsystem) }
496
+ let(:os) { Facter.value(:operatingsystem) }
458
497
  subject do
459
498
  described_class.defaultfor(operatingsystem: os)
460
499
  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