chef 16.17.18 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (646) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -13
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +6 -8
  7. data/lib/chef/action_collection.rb +1 -1
  8. data/lib/chef/application/base.rb +1 -1
  9. data/lib/chef/application.rb +1 -1
  10. data/lib/chef/applications.rb +0 -1
  11. data/lib/chef/chef_fs/command_line.rb +5 -2
  12. data/lib/chef/chef_fs/file_system.rb +9 -10
  13. data/lib/chef/client.rb +2 -2
  14. data/lib/chef/compliance/default_attributes.rb +4 -3
  15. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  16. data/lib/chef/compliance/reporter/automate.rb +17 -7
  17. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  18. data/lib/chef/compliance/reporter/cli.rb +77 -0
  19. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  20. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  21. data/lib/chef/compliance/runner.rb +65 -27
  22. data/lib/chef/cookbook/gem_installer.rb +1 -5
  23. data/lib/chef/cookbook/synchronizer.rb +3 -5
  24. data/lib/chef/cookbook_loader.rb +2 -4
  25. data/lib/chef/cookbook_uploader.rb +0 -1
  26. data/lib/chef/cookbook_version.rb +4 -26
  27. data/lib/chef/data_bag_item.rb +11 -2
  28. data/lib/chef/data_collector/run_end_message.rb +2 -2
  29. data/lib/chef/delayed_evaluator.rb +4 -0
  30. data/lib/chef/deprecated.rb +6 -12
  31. data/lib/chef/dsl/chef_vault.rb +6 -6
  32. data/lib/chef/dsl/reboot_pending.rb +1 -2
  33. data/lib/chef/exceptions.rb +0 -3
  34. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  35. data/lib/chef/formatters/error_mapper.rb +2 -2
  36. data/lib/chef/group.rb +75 -0
  37. data/lib/chef/http.rb +5 -5
  38. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  39. data/lib/chef/node/attribute.rb +6 -4
  40. data/lib/chef/node/immutable_collections.rb +13 -0
  41. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  42. data/lib/chef/node.rb +19 -20
  43. data/lib/chef/org.rb +3 -2
  44. data/lib/chef/policy_builder/policyfile.rb +0 -5
  45. data/lib/chef/property.rb +18 -0
  46. data/lib/chef/provider/cron.rb +1 -1
  47. data/lib/chef/provider/execute.rb +2 -1
  48. data/lib/chef/provider/file.rb +1 -1
  49. data/lib/chef/provider/git.rb +5 -7
  50. data/lib/chef/provider/group/dscl.rb +1 -1
  51. data/lib/chef/provider/group/groupadd.rb +3 -3
  52. data/lib/chef/provider/group/groupmod.rb +3 -3
  53. data/lib/chef/provider/group/pw.rb +3 -3
  54. data/lib/chef/provider/ifconfig.rb +2 -2
  55. data/lib/chef/provider/link.rb +2 -2
  56. data/lib/chef/provider/mount/aix.rb +3 -3
  57. data/lib/chef/provider/mount/mount.rb +5 -5
  58. data/lib/chef/provider/mount/windows.rb +1 -1
  59. data/lib/chef/provider/mount.rb +5 -5
  60. data/lib/chef/provider/package/apt.rb +27 -1
  61. data/lib/chef/provider/package/deb.rb +3 -3
  62. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  63. data/lib/chef/provider/package/portage.rb +2 -2
  64. data/lib/chef/provider/package/powershell.rb +0 -5
  65. data/lib/chef/provider/package/rubygems.rb +9 -15
  66. data/lib/chef/provider/package/windows.rb +2 -4
  67. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  68. data/lib/chef/provider/package.rb +17 -21
  69. data/lib/chef/provider/route.rb +2 -2
  70. data/lib/chef/provider/service/aixinit.rb +1 -1
  71. data/lib/chef/provider/service/debian.rb +1 -1
  72. data/lib/chef/provider/service/freebsd.rb +15 -21
  73. data/lib/chef/provider/service/macosx.rb +4 -4
  74. data/lib/chef/provider/service/systemd.rb +43 -14
  75. data/lib/chef/provider/service/upstart.rb +2 -13
  76. data/lib/chef/provider/service/windows.rb +12 -12
  77. data/lib/chef/provider/service.rb +6 -6
  78. data/lib/chef/provider/subversion.rb +10 -12
  79. data/lib/chef/provider/systemd_unit.rb +36 -10
  80. data/lib/chef/provider/template/content.rb +3 -7
  81. data/lib/chef/provider/user/dscl.rb +1 -1
  82. data/lib/chef/provider/user/mac.rb +17 -20
  83. data/lib/chef/provider/user/pw.rb +1 -1
  84. data/lib/chef/provider/user/windows.rb +1 -1
  85. data/lib/chef/provider/user.rb +2 -2
  86. data/lib/chef/provider/zypper_repository.rb +2 -2
  87. data/lib/chef/provider.rb +1 -1
  88. data/lib/chef/providers.rb +0 -1
  89. data/lib/chef/resource/alternatives.rb +6 -6
  90. data/lib/chef/resource/apt_package.rb +1 -1
  91. data/lib/chef/resource/apt_preference.rb +2 -2
  92. data/lib/chef/resource/apt_repository.rb +6 -6
  93. data/lib/chef/resource/apt_update.rb +3 -2
  94. data/lib/chef/resource/archive_file.rb +2 -3
  95. data/lib/chef/resource/breakpoint.rb +1 -1
  96. data/lib/chef/resource/build_essential.rb +2 -6
  97. data/lib/chef/resource/chef_client_config.rb +2 -2
  98. data/lib/chef/resource/chef_client_cron.rb +4 -4
  99. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  100. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  101. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  102. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  103. data/lib/chef/resource/chef_handler.rb +3 -7
  104. data/lib/chef/resource/chef_sleep.rb +1 -1
  105. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  106. data/lib/chef/resource/chocolatey_config.rb +2 -6
  107. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  108. data/lib/chef/resource/chocolatey_source.rb +4 -10
  109. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  110. data/lib/chef/resource/cron_access.rb +2 -4
  111. data/lib/chef/resource/dmg_package.rb +6 -10
  112. data/lib/chef/resource/dpkg_package.rb +1 -1
  113. data/lib/chef/resource/execute.rb +6 -1
  114. data/lib/chef/resource/file.rb +1 -1
  115. data/lib/chef/resource/group.rb +2 -2
  116. data/lib/chef/resource/homebrew_cask.rb +5 -15
  117. data/lib/chef/resource/homebrew_tap.rb +2 -6
  118. data/lib/chef/resource/hostname.rb +21 -17
  119. data/lib/chef/resource/http_request.rb +1 -1
  120. data/lib/chef/resource/kernel_module.rb +6 -17
  121. data/lib/chef/resource/locale.rb +2 -3
  122. data/lib/chef/resource/lwrp_base.rb +4 -0
  123. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  124. data/lib/chef/resource/mdadm.rb +53 -7
  125. data/lib/chef/resource/mount.rb +3 -2
  126. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  127. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  128. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  129. data/lib/chef/resource/plist.rb +7 -7
  130. data/lib/chef/resource/powershell_script.rb +1 -1
  131. data/lib/chef/resource/remote_file.rb +1 -1
  132. data/lib/chef/resource/rhsm_errata.rb +16 -1
  133. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  134. data/lib/chef/resource/rhsm_register.rb +12 -6
  135. data/lib/chef/resource/rhsm_repo.rb +2 -6
  136. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  137. data/lib/chef/resource/scm/git.rb +1 -1
  138. data/lib/chef/resource/sudo.rb +6 -6
  139. data/lib/chef/resource/support/client.erb +0 -6
  140. data/lib/chef/resource/sysctl.rb +2 -6
  141. data/lib/chef/resource/systemd_unit.rb +3 -3
  142. data/lib/chef/resource/template.rb +1 -1
  143. data/lib/chef/resource/timezone.rb +1 -3
  144. data/lib/chef/resource/user/mac_user.rb +1 -1
  145. data/lib/chef/resource/user_ulimit.rb +2 -3
  146. data/lib/chef/resource/windows_ad_join.rb +2 -6
  147. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  148. data/lib/chef/resource/windows_auto_run.rb +2 -5
  149. data/lib/chef/resource/windows_certificate.rb +207 -73
  150. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  151. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  152. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  153. data/lib/chef/resource/windows_dns_record.rb +2 -6
  154. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  155. data/lib/chef/resource/windows_env.rb +5 -4
  156. data/lib/chef/resource/windows_feature.rb +3 -9
  157. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  158. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  159. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  160. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  161. data/lib/chef/resource/windows_font.rb +2 -4
  162. data/lib/chef/resource/windows_pagefile.rb +2 -6
  163. data/lib/chef/resource/windows_path.rb +2 -2
  164. data/lib/chef/resource/windows_printer.rb +4 -4
  165. data/lib/chef/resource/windows_printer_port.rb +6 -6
  166. data/lib/chef/resource/windows_security_policy.rb +9 -12
  167. data/lib/chef/resource/windows_share.rb +14 -21
  168. data/lib/chef/resource/windows_shortcut.rb +4 -6
  169. data/lib/chef/resource/windows_task.rb +17 -5
  170. data/lib/chef/resource/windows_uac.rb +2 -4
  171. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  172. data/lib/chef/resource/windows_workgroup.rb +1 -2
  173. data/lib/chef/resource.rb +1 -1
  174. data/lib/chef/resource_reporter.rb +1 -1
  175. data/lib/chef/resources.rb +0 -1
  176. data/lib/chef/shell/ext.rb +3 -3
  177. data/lib/chef/user.rb +0 -1
  178. data/lib/chef/user_v1.rb +3 -4
  179. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  180. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  181. data/lib/chef/version.rb +1 -1
  182. data/lib/chef/win32/api.rb +2 -9
  183. data/lib/chef/win32/registry.rb +4 -2
  184. data/lib/chef/win32/version.rb +1 -2
  185. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  186. data/spec/data/lwrp/resources/bar.rb +2 -0
  187. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  188. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  189. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  190. data/spec/data/lwrp/resources/foo.rb +2 -0
  191. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  192. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  193. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  194. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  195. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  196. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  197. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  198. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  199. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  200. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  201. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  202. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  203. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  206. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  207. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  208. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  209. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  210. data/spec/functional/resource/apt_package_spec.rb +1 -1
  211. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  212. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  213. data/spec/functional/resource/group_spec.rb +1 -5
  214. data/spec/functional/resource/link_spec.rb +0 -8
  215. data/spec/functional/resource/registry_spec.rb +8 -8
  216. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  217. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  218. data/spec/functional/version_spec.rb +1 -1
  219. data/spec/functional/win32/registry_spec.rb +1 -1
  220. data/spec/integration/client/client_spec.rb +5 -2
  221. data/spec/integration/client/exit_code_spec.rb +1 -1
  222. data/spec/integration/client/ipv6_spec.rb +1 -1
  223. data/spec/integration/compliance/compliance_spec.rb +1 -1
  224. data/spec/integration/ohai/ohai_spec.rb +7 -6
  225. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  226. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  227. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  228. data/spec/integration/recipes/notifies_spec.rb +15 -1
  229. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  230. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  231. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  232. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  233. data/spec/spec_helper.rb +10 -13
  234. data/spec/support/chef_helpers.rb +0 -16
  235. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  236. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  237. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  238. data/spec/support/matchers/leak.rb +7 -9
  239. data/spec/support/platform_helpers.rb +1 -8
  240. data/spec/support/shared/integration/integration_helper.rb +0 -1
  241. data/spec/support/shared/unit/script_resource.rb +2 -2
  242. data/spec/unit/application/solo_spec.rb +2 -2
  243. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  244. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  245. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  246. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  247. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  248. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  249. data/spec/unit/compliance/runner_spec.rb +30 -4
  250. data/spec/unit/cookbook_version_spec.rb +0 -52
  251. data/spec/unit/data_bag_item_spec.rb +1 -6
  252. data/spec/unit/data_collector_spec.rb +2 -71
  253. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  254. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  255. data/spec/unit/lwrp_spec.rb +1 -1
  256. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  257. data/spec/unit/node/attribute_spec.rb +1 -1
  258. data/spec/unit/node_spec.rb +78 -0
  259. data/spec/unit/org_group_spec.rb +45 -0
  260. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  261. data/spec/unit/property_spec.rb +23 -22
  262. data/spec/unit/provider/cron_spec.rb +1 -1
  263. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  264. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  265. data/spec/unit/provider/group/pw_spec.rb +2 -2
  266. data/spec/unit/provider/group_spec.rb +1 -1
  267. data/spec/unit/provider/package/apt_spec.rb +84 -18
  268. data/spec/unit/provider/package/deb_spec.rb +3 -3
  269. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  270. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  271. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  272. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  273. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  274. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  275. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  276. data/spec/unit/provider/service/windows_spec.rb +2 -2
  277. data/spec/unit/provider/subversion_spec.rb +2 -2
  278. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  279. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  280. data/spec/unit/provider_spec.rb +0 -8
  281. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  282. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  283. data/spec/unit/resource/mount_spec.rb +0 -10
  284. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  285. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  286. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  287. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  288. data/spec/unit/resource/windows_task_spec.rb +1 -1
  289. data/spec/unit/resource_spec.rb +0 -5
  290. data/spec/unit/user_spec.rb +1 -1
  291. data/spec/unit/user_v1_spec.rb +6 -4
  292. data/tasks/rspec.rb +15 -7
  293. metadata +17 -380
  294. data/bin/knife +0 -24
  295. data/lib/chef/application/knife.rb +0 -234
  296. data/lib/chef/application/windows_service.rb +0 -338
  297. data/lib/chef/application/windows_service_manager.rb +0 -205
  298. data/lib/chef/chef_fs/knife.rb +0 -160
  299. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  300. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  301. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  302. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  303. data/lib/chef/knife/acl_add.rb +0 -57
  304. data/lib/chef/knife/acl_base.rb +0 -183
  305. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  306. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  307. data/lib/chef/knife/acl_remove.rb +0 -62
  308. data/lib/chef/knife/acl_show.rb +0 -56
  309. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  310. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  311. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  312. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  313. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  314. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  315. data/lib/chef/knife/bootstrap.rb +0 -1192
  316. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  317. data/lib/chef/knife/client_create.rb +0 -101
  318. data/lib/chef/knife/client_delete.rb +0 -62
  319. data/lib/chef/knife/client_edit.rb +0 -52
  320. data/lib/chef/knife/client_key_create.rb +0 -73
  321. data/lib/chef/knife/client_key_delete.rb +0 -80
  322. data/lib/chef/knife/client_key_edit.rb +0 -83
  323. data/lib/chef/knife/client_key_list.rb +0 -73
  324. data/lib/chef/knife/client_key_show.rb +0 -80
  325. data/lib/chef/knife/client_list.rb +0 -41
  326. data/lib/chef/knife/client_reregister.rb +0 -58
  327. data/lib/chef/knife/client_show.rb +0 -48
  328. data/lib/chef/knife/config_get.rb +0 -39
  329. data/lib/chef/knife/config_get_profile.rb +0 -37
  330. data/lib/chef/knife/config_list.rb +0 -139
  331. data/lib/chef/knife/config_list_profiles.rb +0 -37
  332. data/lib/chef/knife/config_show.rb +0 -127
  333. data/lib/chef/knife/config_use.rb +0 -61
  334. data/lib/chef/knife/config_use_profile.rb +0 -47
  335. data/lib/chef/knife/configure.rb +0 -150
  336. data/lib/chef/knife/configure_client.rb +0 -48
  337. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  338. data/lib/chef/knife/cookbook_delete.rb +0 -151
  339. data/lib/chef/knife/cookbook_download.rb +0 -142
  340. data/lib/chef/knife/cookbook_list.rb +0 -47
  341. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  342. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  343. data/lib/chef/knife/cookbook_show.rb +0 -98
  344. data/lib/chef/knife/cookbook_upload.rb +0 -292
  345. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  346. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  347. data/lib/chef/knife/core/formatting_options.rb +0 -49
  348. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  349. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  350. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  351. data/lib/chef/knife/core/node_editor.rb +0 -130
  352. data/lib/chef/knife/core/node_presenter.rb +0 -133
  353. data/lib/chef/knife/core/object_loader.rb +0 -115
  354. data/lib/chef/knife/core/status_presenter.rb +0 -147
  355. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  356. data/lib/chef/knife/core/text_formatter.rb +0 -85
  357. data/lib/chef/knife/core/ui.rb +0 -338
  358. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  359. data/lib/chef/knife/data_bag_create.rb +0 -81
  360. data/lib/chef/knife/data_bag_delete.rb +0 -49
  361. data/lib/chef/knife/data_bag_edit.rb +0 -74
  362. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  363. data/lib/chef/knife/data_bag_list.rb +0 -42
  364. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  365. data/lib/chef/knife/data_bag_show.rb +0 -69
  366. data/lib/chef/knife/delete.rb +0 -125
  367. data/lib/chef/knife/deps.rb +0 -156
  368. data/lib/chef/knife/diff.rb +0 -83
  369. data/lib/chef/knife/download.rb +0 -84
  370. data/lib/chef/knife/edit.rb +0 -88
  371. data/lib/chef/knife/environment_compare.rb +0 -128
  372. data/lib/chef/knife/environment_create.rb +0 -52
  373. data/lib/chef/knife/environment_delete.rb +0 -44
  374. data/lib/chef/knife/environment_edit.rb +0 -44
  375. data/lib/chef/knife/environment_from_file.rb +0 -84
  376. data/lib/chef/knife/environment_list.rb +0 -41
  377. data/lib/chef/knife/environment_show.rb +0 -47
  378. data/lib/chef/knife/exec.rb +0 -99
  379. data/lib/chef/knife/group_add.rb +0 -55
  380. data/lib/chef/knife/group_create.rb +0 -49
  381. data/lib/chef/knife/group_destroy.rb +0 -53
  382. data/lib/chef/knife/group_list.rb +0 -43
  383. data/lib/chef/knife/group_remove.rb +0 -56
  384. data/lib/chef/knife/group_show.rb +0 -49
  385. data/lib/chef/knife/key_create.rb +0 -112
  386. data/lib/chef/knife/key_create_base.rb +0 -50
  387. data/lib/chef/knife/key_delete.rb +0 -55
  388. data/lib/chef/knife/key_edit.rb +0 -118
  389. data/lib/chef/knife/key_edit_base.rb +0 -55
  390. data/lib/chef/knife/key_list.rb +0 -90
  391. data/lib/chef/knife/key_list_base.rb +0 -45
  392. data/lib/chef/knife/key_show.rb +0 -53
  393. data/lib/chef/knife/list.rb +0 -177
  394. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  395. data/lib/chef/knife/node_create.rb +0 -47
  396. data/lib/chef/knife/node_delete.rb +0 -46
  397. data/lib/chef/knife/node_edit.rb +0 -70
  398. data/lib/chef/knife/node_environment_set.rb +0 -53
  399. data/lib/chef/knife/node_from_file.rb +0 -51
  400. data/lib/chef/knife/node_list.rb +0 -44
  401. data/lib/chef/knife/node_policy_set.rb +0 -79
  402. data/lib/chef/knife/node_run_list_add.rb +0 -104
  403. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  404. data/lib/chef/knife/node_run_list_set.rb +0 -66
  405. data/lib/chef/knife/node_show.rb +0 -63
  406. data/lib/chef/knife/null.rb +0 -12
  407. data/lib/chef/knife/raw.rb +0 -123
  408. data/lib/chef/knife/recipe_list.rb +0 -32
  409. data/lib/chef/knife/rehash.rb +0 -50
  410. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  411. data/lib/chef/knife/role_create.rb +0 -53
  412. data/lib/chef/knife/role_delete.rb +0 -46
  413. data/lib/chef/knife/role_edit.rb +0 -45
  414. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  415. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  416. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  417. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  418. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  419. data/lib/chef/knife/role_from_file.rb +0 -51
  420. data/lib/chef/knife/role_list.rb +0 -42
  421. data/lib/chef/knife/role_run_list_add.rb +0 -87
  422. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  423. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  424. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  425. data/lib/chef/knife/role_run_list_set.rb +0 -69
  426. data/lib/chef/knife/role_show.rb +0 -48
  427. data/lib/chef/knife/search.rb +0 -194
  428. data/lib/chef/knife/serve.rb +0 -65
  429. data/lib/chef/knife/show.rb +0 -72
  430. data/lib/chef/knife/ssh.rb +0 -645
  431. data/lib/chef/knife/ssl_check.rb +0 -284
  432. data/lib/chef/knife/ssl_fetch.rb +0 -161
  433. data/lib/chef/knife/status.rb +0 -95
  434. data/lib/chef/knife/supermarket_download.rb +0 -121
  435. data/lib/chef/knife/supermarket_install.rb +0 -192
  436. data/lib/chef/knife/supermarket_list.rb +0 -76
  437. data/lib/chef/knife/supermarket_search.rb +0 -53
  438. data/lib/chef/knife/supermarket_share.rb +0 -166
  439. data/lib/chef/knife/supermarket_show.rb +0 -66
  440. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  441. data/lib/chef/knife/tag_create.rb +0 -52
  442. data/lib/chef/knife/tag_delete.rb +0 -60
  443. data/lib/chef/knife/tag_list.rb +0 -47
  444. data/lib/chef/knife/upload.rb +0 -86
  445. data/lib/chef/knife/user_create.rb +0 -107
  446. data/lib/chef/knife/user_delete.rb +0 -44
  447. data/lib/chef/knife/user_dissociate.rb +0 -42
  448. data/lib/chef/knife/user_edit.rb +0 -52
  449. data/lib/chef/knife/user_invite_add.rb +0 -43
  450. data/lib/chef/knife/user_invite_list.rb +0 -34
  451. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  452. data/lib/chef/knife/user_key_create.rb +0 -73
  453. data/lib/chef/knife/user_key_delete.rb +0 -80
  454. data/lib/chef/knife/user_key_edit.rb +0 -83
  455. data/lib/chef/knife/user_key_list.rb +0 -73
  456. data/lib/chef/knife/user_key_show.rb +0 -80
  457. data/lib/chef/knife/user_list.rb +0 -42
  458. data/lib/chef/knife/user_reregister.rb +0 -59
  459. data/lib/chef/knife/user_show.rb +0 -48
  460. data/lib/chef/knife/xargs.rb +0 -282
  461. data/lib/chef/knife/yaml_convert.rb +0 -91
  462. data/lib/chef/knife.rb +0 -665
  463. data/lib/chef/resource/user/dscl_user.rb +0 -35
  464. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  465. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  466. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  467. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  468. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  469. data/spec/functional/knife/configure_spec.rb +0 -33
  470. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  471. data/spec/functional/knife/exec_spec.rb +0 -55
  472. data/spec/functional/knife/rehash_spec.rb +0 -39
  473. data/spec/functional/knife/smoke_test.rb +0 -42
  474. data/spec/functional/knife/ssh_spec.rb +0 -352
  475. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  476. data/spec/functional/resource/windows_service_spec.rb +0 -105
  477. data/spec/functional/win32/service_manager_spec.rb +0 -220
  478. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  479. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  480. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  481. data/spec/integration/knife/chefignore_spec.rb +0 -301
  482. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  483. data/spec/integration/knife/client_create_spec.rb +0 -70
  484. data/spec/integration/knife/client_delete_spec.rb +0 -64
  485. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  486. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  487. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  488. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  489. data/spec/integration/knife/client_list_spec.rb +0 -49
  490. data/spec/integration/knife/client_show_spec.rb +0 -37
  491. data/spec/integration/knife/common_options_spec.rb +0 -174
  492. data/spec/integration/knife/config_list_spec.rb +0 -220
  493. data/spec/integration/knife/config_show_spec.rb +0 -192
  494. data/spec/integration/knife/config_use_spec.rb +0 -198
  495. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  496. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  497. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  498. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  499. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  500. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  501. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  502. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  503. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  504. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  505. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  506. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  507. data/spec/integration/knife/delete_spec.rb +0 -1018
  508. data/spec/integration/knife/deps_spec.rb +0 -703
  509. data/spec/integration/knife/diff_spec.rb +0 -605
  510. data/spec/integration/knife/download_spec.rb +0 -1336
  511. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  512. data/spec/integration/knife/environment_create_spec.rb +0 -41
  513. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  514. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  515. data/spec/integration/knife/environment_list_spec.rb +0 -42
  516. data/spec/integration/knife/environment_show_spec.rb +0 -77
  517. data/spec/integration/knife/list_spec.rb +0 -1060
  518. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  519. data/spec/integration/knife/node_create_spec.rb +0 -47
  520. data/spec/integration/knife/node_delete_spec.rb +0 -48
  521. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  522. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  523. data/spec/integration/knife/node_list_spec.rb +0 -45
  524. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  525. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  526. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  527. data/spec/integration/knife/node_show_spec.rb +0 -36
  528. data/spec/integration/knife/raw_spec.rb +0 -297
  529. data/spec/integration/knife/redirection_spec.rb +0 -64
  530. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  531. data/spec/integration/knife/role_create_spec.rb +0 -41
  532. data/spec/integration/knife/role_delete_spec.rb +0 -48
  533. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  534. data/spec/integration/knife/role_list_spec.rb +0 -45
  535. data/spec/integration/knife/role_show_spec.rb +0 -51
  536. data/spec/integration/knife/search_node_spec.rb +0 -40
  537. data/spec/integration/knife/serve_spec.rb +0 -92
  538. data/spec/integration/knife/show_spec.rb +0 -197
  539. data/spec/integration/knife/upload_spec.rb +0 -1616
  540. data/spec/support/shared/functional/knife.rb +0 -37
  541. data/spec/support/shared/functional/win32_service.rb +0 -57
  542. data/spec/support/shared/integration/knife_support.rb +0 -192
  543. data/spec/support/shared/unit/knife_shared.rb +0 -39
  544. data/spec/unit/application/knife_spec.rb +0 -241
  545. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  546. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  547. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  548. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  549. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  550. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  551. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  552. data/spec/unit/knife/client_create_spec.rb +0 -169
  553. data/spec/unit/knife/client_delete_spec.rb +0 -99
  554. data/spec/unit/knife/client_edit_spec.rb +0 -53
  555. data/spec/unit/knife/client_list_spec.rb +0 -34
  556. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  557. data/spec/unit/knife/client_show_spec.rb +0 -52
  558. data/spec/unit/knife/configure_client_spec.rb +0 -81
  559. data/spec/unit/knife/configure_spec.rb +0 -190
  560. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  561. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  562. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  563. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  564. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  565. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  566. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  567. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  568. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  569. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  570. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  571. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  572. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  573. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  574. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  575. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  576. data/spec/unit/knife/core/ui_spec.rb +0 -656
  577. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  578. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  579. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  580. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  581. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  582. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  583. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  584. data/spec/unit/knife/environment_create_spec.rb +0 -91
  585. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  586. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  587. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  588. data/spec/unit/knife/environment_list_spec.rb +0 -54
  589. data/spec/unit/knife/environment_show_spec.rb +0 -52
  590. data/spec/unit/knife/key_create_spec.rb +0 -223
  591. data/spec/unit/knife/key_delete_spec.rb +0 -133
  592. data/spec/unit/knife/key_edit_spec.rb +0 -264
  593. data/spec/unit/knife/key_helper.rb +0 -74
  594. data/spec/unit/knife/key_list_spec.rb +0 -216
  595. data/spec/unit/knife/key_show_spec.rb +0 -126
  596. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  597. data/spec/unit/knife/node_delete_spec.rb +0 -77
  598. data/spec/unit/knife/node_edit_spec.rb +0 -116
  599. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  600. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  601. data/spec/unit/knife/node_list_spec.rb +0 -62
  602. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  603. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  604. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  605. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  606. data/spec/unit/knife/node_show_spec.rb +0 -65
  607. data/spec/unit/knife/raw_spec.rb +0 -43
  608. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  609. data/spec/unit/knife/role_create_spec.rb +0 -80
  610. data/spec/unit/knife/role_delete_spec.rb +0 -67
  611. data/spec/unit/knife/role_edit_spec.rb +0 -77
  612. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  613. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  614. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  615. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  616. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  617. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  618. data/spec/unit/knife/role_list_spec.rb +0 -54
  619. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  620. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  621. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  622. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  623. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  624. data/spec/unit/knife/role_show_spec.rb +0 -59
  625. data/spec/unit/knife/ssh_spec.rb +0 -403
  626. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  627. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  628. data/spec/unit/knife/status_spec.rb +0 -112
  629. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  630. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  631. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  632. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  633. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  634. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  635. data/spec/unit/knife/tag_create_spec.rb +0 -23
  636. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  637. data/spec/unit/knife/tag_list_spec.rb +0 -23
  638. data/spec/unit/knife/user_create_spec.rb +0 -184
  639. data/spec/unit/knife/user_delete_spec.rb +0 -46
  640. data/spec/unit/knife/user_edit_spec.rb +0 -48
  641. data/spec/unit/knife/user_list_spec.rb +0 -36
  642. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  643. data/spec/unit/knife/user_show_spec.rb +0 -46
  644. data/spec/unit/knife_spec.rb +0 -634
  645. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  646. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,7 +1,9 @@
1
1
  require "spec_helper"
2
+ require "chef/compliance/reporter/chef_server_automate"
2
3
 
3
4
  describe Chef::Compliance::Reporter::ChefServerAutomate do
4
5
  before do
6
+ # Isn't this already done globally in
5
7
  WebMock.disable_net_connect!
6
8
 
7
9
  Chef::Config[:client_key] = File.expand_path("../../../data/ssl/private_key.pem", __dir__)
@@ -174,4 +176,22 @@ describe Chef::Compliance::Reporter::ChefServerAutomate do
174
176
 
175
177
  expect(report_stub).to have_been_requested
176
178
  end
179
+
180
+ describe "#validate_config!" do
181
+ it "raises CMPL007 when entity_uuid is not present" do
182
+ opts.delete(:entity_uuid)
183
+ expect { reporter.validate_config! }.to raise_error(/^CMPL007/)
184
+ end
185
+
186
+ it "raises CMPL008 when run_id is not present" do
187
+ opts.delete(:run_id)
188
+ expect { reporter.validate_config! }.to raise_error(/^CMPL008/)
189
+ end
190
+
191
+ it "otherwise passes" do
192
+ reporter.validate_config!
193
+ end
194
+
195
+ end
196
+
177
197
  end
@@ -1,4 +1,5 @@
1
1
  require "spec_helper"
2
+ require "chef/compliance/reporter/compliance_enforcer"
2
3
 
3
4
  describe Chef::Compliance::Reporter::AuditEnforcer do
4
5
  let(:reporter) { Chef::Compliance::Reporter::AuditEnforcer.new }
@@ -12,6 +12,12 @@ describe Chef::Compliance::Runner do
12
12
  end
13
13
 
14
14
  describe "#enabled?" do
15
+ context "when the node is not available" do
16
+ let(:runner) { described_class.new }
17
+ it "is false because it needs the node to answer that question" do
18
+ expect(runner).not_to be_enabled
19
+ end
20
+ end
15
21
 
16
22
  it "is true if the node attributes have audit profiles and the audit cookbook is not present, and the compliance mode attribute is nil" do
17
23
  node.normal["audit"]["profiles"]["ssh"] = { 'compliance': "base/ssh" }
@@ -124,7 +130,7 @@ describe Chef::Compliance::Runner do
124
130
  expect(runner.inspec_profiles).to eq(expected)
125
131
  end
126
132
 
127
- it "raises an error when the profiles are in the old audit-cookbook format" do
133
+ it "raises a CMPL010 message when the profiles are in the old audit-cookbook format" do
128
134
  node.normal["audit"]["profiles"] = [
129
135
  {
130
136
  name: "Windows 2019 Baseline",
@@ -132,7 +138,7 @@ describe Chef::Compliance::Runner do
132
138
  },
133
139
  ]
134
140
 
135
- expect { runner.inspec_profiles }.to raise_error(/profiles specified in an unrecognized format, expected a hash of hashes./)
141
+ expect { runner.inspec_profiles }.to raise_error(/CMPL010:/)
136
142
  end
137
143
  end
138
144
 
@@ -180,9 +186,29 @@ describe Chef::Compliance::Runner do
180
186
  end
181
187
  end
182
188
 
183
- it "fails with unexpected reporter value" do
184
- expect { runner.reporter("tacos") }.to raise_error(/'tacos' is not a supported reporter for Compliance Phase/)
189
+ end
190
+
191
+ describe "#load_and_validate! when compliance is enabled" do
192
+ before do
193
+ allow(runner).to receive(:enabled?).and_return(true)
194
+ end
195
+
196
+ it "raises CMPL003 when the reporter is not a supported reporter type" do
197
+ node.normal["audit"]["reporter"] = [ "invalid" ]
198
+ expect { runner.load_and_validate! }.to raise_error(/^CMPL003:/)
199
+ end
200
+ it "raises CMPL002 if the configured fetcher is not supported" do
201
+ node.normal["audit"]["fetcher"] = "invalid"
202
+ expect { runner.load_and_validate! }.to raise_error(/^CMPL002:/)
185
203
  end
204
+
205
+ it "validates configured reporters" do
206
+ node.normal["audit"]["reporter"] = [ "chef-automate" ]
207
+ reporter_double = double("reporter", validate_config!: nil)
208
+ expect(runner).to receive(:reporter).with("chef-automate").and_return(reporter_double)
209
+ runner.load_and_validate!
210
+ end
211
+
186
212
  end
187
213
 
188
214
  describe "#inspec_opts" do
@@ -41,59 +41,7 @@ describe Chef::CookbookVersion do
41
41
  it "has empty metadata" do
42
42
  expect(cookbook_version.metadata).to eq(Chef::Cookbook::Metadata.new)
43
43
  end
44
- end
45
-
46
- describe "#recipe_yml_filenames_by_name" do
47
- let(:cookbook_version) { Chef::CookbookVersion.new("mycb", "/tmp/mycb") }
48
-
49
- def files_for_recipe(extension)
50
- [
51
- { name: "recipes/default.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipes/default.#{extension}" },
52
- { name: "recipes/other.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipes/other.#{extension}" },
53
- ]
54
- end
55
- context "and YAML files present include both a recipes/default.yml and a recipes/default.yaml" do
56
- before(:each) do
57
- allow(cookbook_version).to receive(:files_for).with("recipes").and_return(
58
- [
59
- { name: "recipes/default.yml", full_path: "/home/user/repo/cookbooks/test/recipes/default.yml" },
60
- { name: "recipes/default.yaml", full_path: "/home/user/repo/cookbooks/test/recipes/default.yaml" },
61
- ]
62
- )
63
- end
64
- it "because both are valid and we can't pick, it raises an error that contains the info needed to fix the problem" do
65
- expect { cookbook_version.recipe_yml_filenames_by_name }
66
- .to raise_error(Chef::Exceptions::AmbiguousYAMLFile, /.*default.yml.*default.yaml.*update the cookbook to remove/)
67
- end
68
- end
69
-
70
- %w{yml yaml}.each do |extension|
71
-
72
- context "and YAML files are present including a recipes/default.#{extension}" do
73
- before(:each) do
74
- allow(cookbook_version).to receive(:files_for).with("recipes").and_return(files_for_recipe(extension))
75
- end
76
-
77
- context "and manifest does not include a root_files/recipe.#{extension}" do
78
- it "returns all YAML recipes with a correct default of default.#{extension}" do
79
- expect(cookbook_version.recipe_yml_filenames_by_name).to eq({ "default" => "/home/user/repo/cookbooks/test/recipes/default.#{extension}",
80
- "other" => "/home/user/repo/cookbooks/test/recipes/other.#{extension}" })
81
- end
82
- end
83
-
84
- context "and manifest also includes a root_files/recipe.#{extension}" do
85
- let(:root_files) { [{ name: "root_files/recipe.#{extension}", full_path: "/home/user/repo/cookbooks/test/recipe.#{extension}" } ] }
86
- before(:each) do
87
- allow(cookbook_version.cookbook_manifest).to receive(:root_files).and_return(root_files)
88
- end
89
44
 
90
- it "returns all YAML recipes with a correct default of recipe.#{extension}" do
91
- expect(cookbook_version.recipe_yml_filenames_by_name).to eq({ "default" => "/home/user/repo/cookbooks/test/recipe.#{extension}",
92
- "other" => "/home/user/repo/cookbooks/test/recipes/other.#{extension}" })
93
- end
94
- end
95
- end
96
- end
97
45
  end
98
46
 
99
47
  describe "with a cookbook directory named tatft" do
@@ -148,12 +148,7 @@ describe Chef::DataBagItem do
148
148
  end
149
149
 
150
150
  it "implements all the methods of Hash" do
151
- methods = %i{rehash to_hash [] fetch []= store default
152
- default= default_proc index size length
153
- empty? each_value each_key each_pair each keys values
154
- values_at delete delete_if reject! clear
155
- invert update replace merge! merge has_key? has_value?
156
- key? value?}
151
+ methods = Hash.public_instance_methods
157
152
  methods.each do |m|
158
153
  expect(data_bag_item).to respond_to(m)
159
154
  end
@@ -142,17 +142,11 @@ describe Chef::DataCollector do
142
142
  def expect_converge_message(keys)
143
143
  keys["message_type"] = "run_converge"
144
144
  keys["message_version"] = "1.1.0"
145
- # if (keys.key?("node") && !keys["node"].empty?)
146
- # expect(rest_client).to receive(:post) do |_a, hash, _b|
147
- # require 'pry'; binding.pry
148
- # end
149
- # else
150
145
  expect(rest_client).to receive(:post).with(
151
146
  nil,
152
147
  hash_including(keys),
153
148
  { "Content-Type" => "application/json" }
154
149
  )
155
- # end
156
150
  end
157
151
 
158
152
  def resource_has_diff(new_resource, status)
@@ -164,7 +158,7 @@ describe Chef::DataCollector do
164
158
  "after" => after_resource&.state_for_resource_reporter || {},
165
159
  "before" => before_resource&.state_for_resource_reporter || {},
166
160
  "cookbook_name" => cookbook_name,
167
- "cookbook_version" => cookbook_version&.version,
161
+ "cookbook_version" => cookbook_version.version,
168
162
  "delta" => resource_has_diff(new_resource, status) ? new_resource.diff : "",
169
163
  "duration" => duration,
170
164
  "id" => new_resource.identity,
@@ -208,7 +202,7 @@ describe Chef::DataCollector do
208
202
  end
209
203
 
210
204
  it "has a node" do
211
- expect_converge_message("node" => expected_node.is_a?(Chef::Node) ? expected_node.data_for_save : expected_node)
205
+ expect_converge_message("node" => expected_node)
212
206
  send_run_failed_or_completed_event
213
207
  end
214
208
 
@@ -567,29 +561,6 @@ describe Chef::DataCollector do
567
561
  it_behaves_like "sends a converge message"
568
562
  end
569
563
 
570
- context "when the run contains a file resource that is up-to-date from a @recipe_files, returns nil for the version" do
571
- let(:total_resource_count) { 1 }
572
- let(:updated_resource_count) { 0 }
573
- let(:cookbook_name) { "@recipe_files" }
574
- let(:resource_record) { [ resource_record_for(new_resource, current_resource, after_resource, :create, "up-to-date", "1234") ] }
575
- let(:status) { "success" }
576
- let(:cookbook_version) { nil }
577
-
578
- before do
579
- allow(new_resource).to receive(:cookbook_version).and_call_original
580
- events.resource_action_start(new_resource, :create)
581
- events.resource_current_state_loaded(new_resource, :create, current_resource)
582
- events.resource_up_to_date(new_resource, :create)
583
- events.resource_after_state_loaded(new_resource, :create, after_resource)
584
- new_resource.instance_variable_set(:@elapsed_time, 1.2345)
585
- events.resource_completed(new_resource)
586
- events.converge_complete
587
- run_status.stop_clock
588
- end
589
-
590
- it_behaves_like "sends a converge message"
591
- end
592
-
593
564
  context "when the run contains a file resource that is updated" do
594
565
  let(:total_resource_count) { 1 }
595
566
  let(:updated_resource_count) { 1 }
@@ -837,46 +808,6 @@ describe Chef::DataCollector do
837
808
  it_behaves_like "sends a converge message"
838
809
  end
839
810
 
840
- context "when node attributes are block-listed" do
841
- let(:status) { "success" }
842
- before do
843
- Chef::Config[:blocked_default_attributes] = [
844
- %w{secret key_to_the_kingdom},
845
- ]
846
- node.default = {
847
- "secret" => { "key_to_the_kingdom" => "under the flower pot to the left of the drawbridge" },
848
- "publicinfo" => { "num_flower_pots" => 18 },
849
- }
850
- end
851
-
852
- it "payload should exclude blocked attributes" do
853
- expect(rest_client).to receive(:post) do |_addr, hash, _headers|
854
- expect(hash["node"]["default"]).to eq({ "secret" => {}, "publicinfo" => { "num_flower_pots" => 18 } })
855
- end
856
- send_run_failed_or_completed_event
857
- end
858
- end
859
-
860
- context "when node attributes are allow-listed" do
861
- let(:status) { "success" }
862
- before do
863
- Chef::Config[:allowed_default_attributes] = [
864
- %w{public entrance},
865
- ]
866
- node.default = {
867
- "public" => { "entrance" => "is the drawbridge" },
868
- "secret" => { "entrance" => "is the tunnel" },
869
- }
870
- end
871
-
872
- it "payload should include only allowed attributes" do
873
- expect(rest_client).to receive(:post) do |_addr, hash, _headers|
874
- expect(hash["node"]["default"]).to eq({ "public" => { "entrance" => "is the drawbridge" } })
875
- end
876
- send_run_failed_or_completed_event
877
- end
878
- end
879
-
880
811
  end
881
812
  end
882
813
 
@@ -51,9 +51,9 @@ describe Chef::DSL::RebootPending do
51
51
  end
52
52
  end
53
53
 
54
- context "platform is ubuntu" do
54
+ context "platform_family is debian" do
55
55
  before do
56
- allow(recipe).to receive(:platform?).with("ubuntu").and_return(true)
56
+ allow(recipe).to receive(:platform_family?).with("debian").and_return(true)
57
57
  end
58
58
 
59
59
  it "should return true if /var/run/reboot-required exists" do
@@ -21,7 +21,7 @@ require "spec_helper"
21
21
 
22
22
  describe Chef::Resource::RegistryKey do
23
23
 
24
- before (:all) do
24
+ before(:all) do
25
25
  events = Chef::EventDispatch::Dispatcher.new
26
26
  node = Chef::Node.new
27
27
  node.consume_external_attrs(OHAI_SYSTEM.data, {})
@@ -576,7 +576,7 @@ describe "LWRP" do
576
576
  @tmpdir = File.join(@tmpparent, "lwrp")
577
577
  Dir.mkdir(@tmpdir)
578
578
  resource_path = File.join(@tmpdir, "once.rb")
579
- IO.write(resource_path, "default_action :create")
579
+ IO.write(resource_path, "unified_mode true\ndefault_action :create")
580
580
  @test_lwrp_class = Chef::Resource::LWRPBase.build_from_file("lwrp", resource_path, nil)
581
581
  end
582
582
 
@@ -359,10 +359,11 @@ describe Chef::Mixin::ParamsValidate do
359
359
  expect(@vo.set_or_return(:test, nil, {}).object_id).to eq(value.object_id)
360
360
  end
361
361
 
362
- it "should set and return a default value when the argument is nil, then return the same value" do
362
+ it "should set and return a default value when the argument is nil, then return a dup of the value" do
363
363
  value = "meow"
364
- expect(@vo.set_or_return(:test, nil, { default: value }).object_id).to eq(value.object_id)
365
- expect(@vo.set_or_return(:test, nil, {}).object_id).to eq(value.object_id)
364
+ expect(@vo.set_or_return(:test, nil, { default: value }).object_id).not_to eq(value.object_id)
365
+ expect(@vo.set_or_return(:test, nil, {}).object_id).not_to eq(value.object_id)
366
+ expect(@vo.set_or_return(:test, nil, {})).to eql(value)
366
367
  end
367
368
 
368
369
  it "should raise an ArgumentError when argument is nil and required is true" do
@@ -898,7 +898,7 @@ describe Chef::Node::Attribute do
898
898
  end
899
899
  end
900
900
 
901
- describe "index" do
901
+ describe "index", ruby: "< 3.0.0" do
902
902
  # Hash#index is deprecated and triggers warnings.
903
903
  def silence
904
904
  old_verbose = $VERBOSE
@@ -1951,4 +1951,82 @@ describe Chef::Node do
1951
1951
  expect(node["foo"]["bar"]["test"]).to eql("right")
1952
1952
  end
1953
1953
  end
1954
+
1955
+ describe "lazy values" do
1956
+ it "supports lazy values in attributes" do
1957
+ node.instance_eval do
1958
+ default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
1959
+ default["fizz"]["buzz"] = "works"
1960
+ end
1961
+ expect(node["foo"]["bar"]).to eql("works")
1962
+ end
1963
+
1964
+ it "lazy values maintain laziness" do
1965
+ node.instance_eval do
1966
+ default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
1967
+ default["fizz"]["buzz"] = "works"
1968
+ end
1969
+ expect(node["foo"]["bar"]).to eql("works")
1970
+ node.default["fizz"]["buzz"] = "still works"
1971
+ expect(node["foo"]["bar"]).to eql("still works")
1972
+ end
1973
+
1974
+ it "supports recursive lazy values in attributes" do
1975
+ node.instance_eval do
1976
+ default["cool"]["beans"] = lazy { node["foo"]["bar"] }
1977
+ default["foo"]["bar"] = lazy { node["fizz"]["buzz"] }
1978
+ default["fizz"]["buzz"] = "works"
1979
+ end
1980
+ expect(node["cool"]["beans"]).to eql("works")
1981
+ node.default["fizz"]["buzz"] = "still works"
1982
+ expect(node["cool"]["beans"]).to eql("still works")
1983
+ end
1984
+
1985
+ it "supports top level lazy values in attributes" do
1986
+ # due to the top level deep merge cache these are special cases
1987
+ node.instance_eval do
1988
+ default["cool"] = lazy { node["foo"] }
1989
+ default["foo"] = lazy { node["fizz"] }
1990
+ default["fizz"] = "works"
1991
+ end
1992
+ expect(node["cool"]).to eql("works")
1993
+ node.default["fizz"] = "still works"
1994
+ expect(node["cool"]).to eql("still works")
1995
+ end
1996
+
1997
+ it "supports deep merged values in attributes" do
1998
+ node.instance_eval do
1999
+ override["bar"]["cool"] = lazy { node["bar"]["foo"] }
2000
+ override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
2001
+ override["bar"]["fizz"] = "works"
2002
+ end
2003
+ expect(node["bar"]["cool"]).to eql("works")
2004
+ node.override["bar"]["fizz"] = "still works"
2005
+ expect(node["bar"]["cool"]).to eql("still works")
2006
+ end
2007
+
2008
+ it "supports overridden deep merged values in attributes (deep_merge)" do
2009
+ node.instance_eval do
2010
+ role_override["bar"] = { "cool" => "bad", "foo" => "bad", "fizz" => "bad" }
2011
+ force_override["bar"]["cool"] = lazy { node["bar"]["foo"] }
2012
+ force_override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
2013
+ force_override["bar"]["fizz"] = "works"
2014
+ end
2015
+ expect(node["bar"]["cool"]).to eql("works")
2016
+ node.force_override["bar"]["fizz"] = "still works"
2017
+ expect(node["bar"]["cool"]).to eql("still works")
2018
+ end
2019
+
2020
+ it "supports overridden deep merged values in attributes (hash_only_merge)" do
2021
+ node.instance_eval do
2022
+ default["bar"] = { "cool" => "bad", "foo" => "bad", "fizz" => "bad" }
2023
+ override["bar"]["cool"] = lazy { node["bar"]["foo"] }
2024
+ override["bar"]["foo"] = lazy { node["bar"]["fizz"] }
2025
+ override["bar"]["fizz"] = "works"
2026
+ end
2027
+ expect(node["bar"]["cool"]).to eql("works")
2028
+ node.override["bar"]["fizz"] = "still works"
2029
+ expect(node["bar"]["cool"]).to eql("still works")
2030
+ end
2031
+ end
1954
2032
  end
@@ -0,0 +1,45 @@
1
+
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ #
14
+
15
+ require "spec_helper"
16
+ require "chef/org"
17
+
18
+ describe Chef::Org do
19
+ let(:org) { Chef::Org.new("myorg") }
20
+
21
+ describe "API Interactions" do
22
+ before(:each) do
23
+ Chef::Config[:chef_server_root] = "http://www.example.com"
24
+ @rest = double("rest")
25
+ allow(Chef::ServerAPI).to receive(:new).and_return(@rest)
26
+ end
27
+
28
+ describe "group" do
29
+ it "should load group data when it's not loaded." do
30
+ expect(@rest).to receive(:get_rest).with("organizations/myorg/groups/admins").and_return({})
31
+ org.group("admins")
32
+ end
33
+
34
+ it "should not load group data a second time when it's already loaded." do
35
+ expect(@rest).to receive(:get_rest)
36
+ .with("organizations/myorg/groups/admins")
37
+ .and_return({ anything: "goes" })
38
+ .exactly(:once)
39
+ admin1 = org.group("admins")
40
+ admin2 = org.group("admins")
41
+ expect(admin1).to eq admin2
42
+ end
43
+ end
44
+ end
45
+ end
@@ -206,7 +206,7 @@ describe Chef::PolicyBuilder::Policyfile do
206
206
  end
207
207
 
208
208
  before do
209
- Chef::Config[:policy_document_native_api] = true
209
+ Chef::Config[:policy_document_native_api] = false
210
210
  Chef::Config[:deployment_group] = "example-policy-stage"
211
211
  allow(policy_builder).to receive(:api_service).and_return(api_service)
212
212
  end
@@ -214,8 +214,6 @@ describe Chef::PolicyBuilder::Policyfile do
214
214
  describe "when using compatibility mode (policy_document_native_api == false)" do
215
215
 
216
216
  before do
217
- Chef::Config[:policy_document_native_api] = false
218
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
219
217
  Chef::Config[:deployment_group] = "example-policy-stage"
220
218
  end
221
219
 
@@ -341,10 +339,6 @@ describe Chef::PolicyBuilder::Policyfile do
341
339
  end
342
340
 
343
341
  describe "validating the Policyfile.lock" do
344
- before do
345
- Chef::Config[:policy_group] = "policy-stage"
346
- Chef::Config[:policy_name] = "example"
347
- end
348
342
 
349
343
  it "errors if the policyfile json contains any non-recipe items" do
350
344
  parsed_policyfile_json["run_list"] = ["role[foo]"]
@@ -812,10 +806,6 @@ describe Chef::PolicyBuilder::Policyfile do
812
806
  context "when using compatibility mode (policy_document_native_api == false)" do
813
807
  let(:cookbook1_url) { "cookbooks/example1/#{example1_xyz_version}" }
814
808
  let(:cookbook2_url) { "cookbooks/example2/#{example2_xyz_version}" }
815
- before do
816
- Chef::Config[:policy_document_native_api] = false
817
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
818
- end
819
809
 
820
810
  context "when the cookbooks don't exist on the server" do
821
811
  include_examples "fetching cookbooks when they don't exist"
@@ -541,13 +541,16 @@ describe "Chef::Resource.property" do
541
541
  it "when x is not set, it returns ''" do
542
542
  expect(resource.x).to eq ""
543
543
  end
544
- it "x is immutable" do
545
- expect { resource.x << "foo" }.to raise_error(FrozenError, /can't modify frozen String/)
544
+ it "setting x does not mutate the default" do
545
+ expect(resource.x).to eq ""
546
+ resource.x << "foo"
547
+ expect(resource.x).to eq "foo"
548
+ expect(resource_class.new("other").x).to eq ""
546
549
  end
547
550
  end
548
551
 
549
552
  with_property ":x, default: lazy { '' }" do
550
- it "x is immutable" do
553
+ it "setting x does not mutate the default" do
551
554
  expect(resource.x).to eq ""
552
555
  resource.x << "foo"
553
556
  expect(resource.x).to eq "foo"
@@ -561,16 +564,14 @@ describe "Chef::Resource.property" do
561
564
  it "when x is not set, it returns {}" do
562
565
  expect(resource.x).to eq({})
563
566
  end
564
- it "x is immutable" do
565
- expect { resource.x["foo"] = "bar" }.to raise_error(FrozenError, /can't modify frozen Hash/)
566
- end
567
- it "The same exact value is returned multiple times in a row" do
568
- value = resource.x
569
- expect(value).to eq({})
570
- expect(resource.x.object_id).to eq(value.object_id)
567
+ it "setting x does not mutate the default" do
568
+ expect(resource.x).to eq({})
569
+ resource.x["plants"] = "zombies"
570
+ expect(resource.x).to eq({ "plants" => "zombies" })
571
+ expect(resource_class.new("other").x).to eq({})
571
572
  end
572
- it "Multiple instances of x receive the exact same value" do
573
- expect(resource.x.object_id).to eq(resource_class.new("blah2").x.object_id)
573
+ it "Multiple instances of x receive different values" do
574
+ expect(resource.x.object_id).not_to eq(resource_class.new("blah2").x.object_id)
574
575
  end
575
576
  end
576
577
 
@@ -594,14 +595,14 @@ describe "Chef::Resource.property" do
594
595
  it "when x is not set, it returns [{foo: 'bar'}]" do
595
596
  expect(resource.x).to eq([{ foo: "bar" }])
596
597
  end
597
- it "x is immutable" do
598
- expect { resource.x << :other }.to raise_error(FrozenError, /can't modify frozen Array/)
599
- end
600
- it "x.first is immutable" do
601
- expect { resource.x.first[:foo] = "other" }.to raise_error(FrozenError, /can't modify frozen Hash/)
598
+ it "setting x does not mutate the default" do
599
+ expect(resource.x).to eq([{ foo: "bar" }])
600
+ resource.x[0][:foo] << "baz"
601
+ expect(resource.x).to eq([{ foo: "barbaz" }])
602
+ expect(resource_class.new("other").x).to eq([{ foo: "bar" }])
602
603
  end
603
- it "x.first[:foo] is immutable" do
604
- expect { resource.x.first[:foo] << "other" }.to raise_error(FrozenError, /can't modify frozen String/)
604
+ it "Multiple instances of x receive different values" do
605
+ expect(resource.x.object_id).not_to eq(resource_class.new("blah2").x.object_id)
605
606
  end
606
607
  end
607
608
  end
@@ -708,10 +709,10 @@ describe "Chef::Resource.property" do
708
709
  expect(resource.x).to eq "hi1"
709
710
  expect(Namer.current_index).to eq 1
710
711
  end
711
- it "when x is retrieved, coercion is run each time" do
712
+ it "when x is retrieved, coercion is run exactly once" do
712
713
  expect(resource.x).to eq "101"
713
- expect(resource.x).to eq "102"
714
- expect(Namer.current_index).to eq 2
714
+ expect(resource.x).to eq "101"
715
+ expect(Namer.current_index).to eq 1
715
716
  end
716
717
  end
717
718
 
@@ -719,7 +719,7 @@ describe Chef::Provider::Cron do
719
719
 
720
720
  it "should log nothing changed" do
721
721
  expect(logger).to receive(:trace).with("Found cron '#{@new_resource.name}'")
722
- expect(logger).to receive(:trace).with("Skipping existing cron entry '#{@new_resource.name}'")
722
+ expect(logger).to receive(:debug).with("#{@new_resource}: Skipping existing cron entry")
723
723
  @provider.run_action(:create)
724
724
  end
725
725
  end
@@ -68,7 +68,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
68
68
  end
69
69
 
70
70
  it "logs a message and sets group's members to 'none'" do
71
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
71
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: none")
72
72
  expect(@provider).to receive(:shell_out_compacted!).with("gpasswd", "-M", "", "wheel")
73
73
  @provider.modify_group_members
74
74
  end
@@ -88,7 +88,7 @@ describe Chef::Provider::Group::Gpasswd, "modify_group_members" do
88
88
 
89
89
  describe "when the resource specifies group members" do
90
90
  it "should log an appropriate debug message" do
91
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: lobster, rage, fist")
91
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: lobster, rage, fist")
92
92
  allow(@provider).to receive(:shell_out_compacted!)
93
93
  @provider.modify_group_members
94
94
  end
@@ -64,7 +64,7 @@ describe Chef::Provider::Group::Groupmod do
64
64
  end
65
65
 
66
66
  it "logs a message and sets group's members to 'none', then removes existing group members" do
67
- expect(logger).to receive(:trace).with("group[wheel] setting group members to: none")
67
+ expect(logger).to receive(:debug).with("group[wheel] setting group members to: none")
68
68
  expect(@provider).to receive(:shell_out_compacted!).with("group", "mod", "-n", "wheel_bak", "wheel")
69
69
  expect(@provider).to receive(:shell_out_compacted!).with("group", "add", "-g", "123", "-o", "wheel")
70
70
  expect(@provider).to receive(:shell_out_compacted!).with("group", "del", "wheel_bak")
@@ -79,7 +79,7 @@ describe Chef::Provider::Group::Groupmod do
79
79
  end
80
80
 
81
81
  it "logs a message and does not modify group membership" do
82
- expect(logger).to receive(:trace).with("group[wheel] not changing group members, the group has no members to add")
82
+ expect(logger).to receive(:debug).with("group[wheel] not changing group members, the group has no members to add")
83
83
  expect(@provider).not_to receive(:shell_out_compacted!)
84
84
  @provider.manage_group
85
85
  end