chef 16.15.22 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (637) 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/application/base.rb +1 -1
  8. data/lib/chef/applications.rb +0 -1
  9. data/lib/chef/chef_fs/command_line.rb +5 -2
  10. data/lib/chef/chef_fs/file_system.rb +9 -10
  11. data/lib/chef/client.rb +2 -2
  12. data/lib/chef/compliance/default_attributes.rb +4 -3
  13. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  14. data/lib/chef/compliance/reporter/automate.rb +17 -7
  15. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  16. data/lib/chef/compliance/reporter/cli.rb +77 -0
  17. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  18. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  19. data/lib/chef/compliance/runner.rb +65 -27
  20. data/lib/chef/cookbook/gem_installer.rb +1 -5
  21. data/lib/chef/cookbook/synchronizer.rb +3 -5
  22. data/lib/chef/cookbook_loader.rb +2 -4
  23. data/lib/chef/cookbook_uploader.rb +0 -1
  24. data/lib/chef/cookbook_version.rb +4 -26
  25. data/lib/chef/data_bag_item.rb +11 -2
  26. data/lib/chef/data_collector/run_end_message.rb +1 -1
  27. data/lib/chef/delayed_evaluator.rb +4 -0
  28. data/lib/chef/deprecated.rb +6 -12
  29. data/lib/chef/dsl/chef_vault.rb +6 -6
  30. data/lib/chef/dsl/reboot_pending.rb +1 -2
  31. data/lib/chef/exceptions.rb +0 -3
  32. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  33. data/lib/chef/formatters/error_mapper.rb +2 -2
  34. data/lib/chef/group.rb +75 -0
  35. data/lib/chef/http.rb +5 -5
  36. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  37. data/lib/chef/node/attribute.rb +6 -4
  38. data/lib/chef/node/immutable_collections.rb +13 -0
  39. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  40. data/lib/chef/node.rb +19 -20
  41. data/lib/chef/org.rb +3 -2
  42. data/lib/chef/policy_builder/policyfile.rb +0 -5
  43. data/lib/chef/property.rb +18 -0
  44. data/lib/chef/provider/cron.rb +1 -1
  45. data/lib/chef/provider/execute.rb +2 -1
  46. data/lib/chef/provider/file.rb +1 -1
  47. data/lib/chef/provider/git.rb +5 -7
  48. data/lib/chef/provider/group/dscl.rb +1 -1
  49. data/lib/chef/provider/group/groupadd.rb +3 -3
  50. data/lib/chef/provider/group/groupmod.rb +3 -3
  51. data/lib/chef/provider/group/pw.rb +3 -3
  52. data/lib/chef/provider/ifconfig.rb +2 -2
  53. data/lib/chef/provider/link.rb +2 -2
  54. data/lib/chef/provider/mount/aix.rb +3 -3
  55. data/lib/chef/provider/mount/mount.rb +5 -5
  56. data/lib/chef/provider/mount/windows.rb +1 -1
  57. data/lib/chef/provider/mount.rb +5 -5
  58. data/lib/chef/provider/package/apt.rb +27 -1
  59. data/lib/chef/provider/package/deb.rb +3 -3
  60. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  61. data/lib/chef/provider/package/portage.rb +2 -2
  62. data/lib/chef/provider/package/powershell.rb +0 -5
  63. data/lib/chef/provider/package/rubygems.rb +9 -15
  64. data/lib/chef/provider/package/windows.rb +2 -4
  65. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  66. data/lib/chef/provider/package.rb +17 -21
  67. data/lib/chef/provider/route.rb +2 -2
  68. data/lib/chef/provider/service/aixinit.rb +1 -1
  69. data/lib/chef/provider/service/debian.rb +1 -1
  70. data/lib/chef/provider/service/freebsd.rb +15 -21
  71. data/lib/chef/provider/service/macosx.rb +4 -4
  72. data/lib/chef/provider/service/systemd.rb +43 -14
  73. data/lib/chef/provider/service/upstart.rb +2 -13
  74. data/lib/chef/provider/service/windows.rb +12 -12
  75. data/lib/chef/provider/service.rb +6 -6
  76. data/lib/chef/provider/subversion.rb +10 -12
  77. data/lib/chef/provider/systemd_unit.rb +36 -10
  78. data/lib/chef/provider/template/content.rb +3 -7
  79. data/lib/chef/provider/user/dscl.rb +1 -1
  80. data/lib/chef/provider/user/mac.rb +17 -20
  81. data/lib/chef/provider/user/pw.rb +1 -1
  82. data/lib/chef/provider/user/windows.rb +1 -1
  83. data/lib/chef/provider/user.rb +2 -2
  84. data/lib/chef/provider/zypper_repository.rb +2 -2
  85. data/lib/chef/provider.rb +1 -1
  86. data/lib/chef/providers.rb +0 -1
  87. data/lib/chef/resource/alternatives.rb +6 -6
  88. data/lib/chef/resource/apt_package.rb +1 -1
  89. data/lib/chef/resource/apt_preference.rb +2 -2
  90. data/lib/chef/resource/apt_repository.rb +6 -6
  91. data/lib/chef/resource/apt_update.rb +3 -2
  92. data/lib/chef/resource/archive_file.rb +2 -3
  93. data/lib/chef/resource/breakpoint.rb +1 -1
  94. data/lib/chef/resource/build_essential.rb +2 -6
  95. data/lib/chef/resource/chef_client_config.rb +2 -2
  96. data/lib/chef/resource/chef_client_cron.rb +4 -4
  97. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  98. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  99. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  100. data/lib/chef/resource/chef_handler.rb +3 -7
  101. data/lib/chef/resource/chef_sleep.rb +1 -1
  102. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  103. data/lib/chef/resource/chocolatey_config.rb +2 -6
  104. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  105. data/lib/chef/resource/chocolatey_source.rb +4 -10
  106. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  107. data/lib/chef/resource/cron_access.rb +2 -4
  108. data/lib/chef/resource/dmg_package.rb +6 -10
  109. data/lib/chef/resource/dpkg_package.rb +1 -1
  110. data/lib/chef/resource/execute.rb +6 -1
  111. data/lib/chef/resource/file.rb +1 -1
  112. data/lib/chef/resource/group.rb +2 -2
  113. data/lib/chef/resource/homebrew_cask.rb +5 -15
  114. data/lib/chef/resource/homebrew_tap.rb +2 -6
  115. data/lib/chef/resource/hostname.rb +21 -17
  116. data/lib/chef/resource/http_request.rb +1 -1
  117. data/lib/chef/resource/kernel_module.rb +6 -17
  118. data/lib/chef/resource/locale.rb +2 -3
  119. data/lib/chef/resource/lwrp_base.rb +4 -0
  120. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  121. data/lib/chef/resource/mdadm.rb +53 -7
  122. data/lib/chef/resource/mount.rb +3 -2
  123. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  124. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  125. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  126. data/lib/chef/resource/plist.rb +7 -7
  127. data/lib/chef/resource/powershell_script.rb +1 -1
  128. data/lib/chef/resource/remote_file.rb +1 -1
  129. data/lib/chef/resource/rhsm_errata.rb +16 -1
  130. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  131. data/lib/chef/resource/rhsm_register.rb +12 -6
  132. data/lib/chef/resource/rhsm_repo.rb +2 -6
  133. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  134. data/lib/chef/resource/scm/git.rb +1 -1
  135. data/lib/chef/resource/sudo.rb +6 -6
  136. data/lib/chef/resource/support/client.erb +0 -6
  137. data/lib/chef/resource/sysctl.rb +2 -6
  138. data/lib/chef/resource/systemd_unit.rb +3 -3
  139. data/lib/chef/resource/template.rb +1 -1
  140. data/lib/chef/resource/timezone.rb +1 -3
  141. data/lib/chef/resource/user/mac_user.rb +1 -1
  142. data/lib/chef/resource/user_ulimit.rb +2 -3
  143. data/lib/chef/resource/windows_ad_join.rb +2 -6
  144. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  145. data/lib/chef/resource/windows_auto_run.rb +2 -5
  146. data/lib/chef/resource/windows_certificate.rb +207 -73
  147. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  148. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  149. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  150. data/lib/chef/resource/windows_dns_record.rb +2 -6
  151. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  152. data/lib/chef/resource/windows_env.rb +5 -4
  153. data/lib/chef/resource/windows_feature.rb +3 -9
  154. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  155. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  156. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  157. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  158. data/lib/chef/resource/windows_font.rb +2 -4
  159. data/lib/chef/resource/windows_pagefile.rb +2 -6
  160. data/lib/chef/resource/windows_path.rb +2 -2
  161. data/lib/chef/resource/windows_printer.rb +4 -4
  162. data/lib/chef/resource/windows_printer_port.rb +6 -6
  163. data/lib/chef/resource/windows_security_policy.rb +9 -12
  164. data/lib/chef/resource/windows_share.rb +14 -21
  165. data/lib/chef/resource/windows_shortcut.rb +4 -6
  166. data/lib/chef/resource/windows_task.rb +17 -5
  167. data/lib/chef/resource/windows_uac.rb +2 -4
  168. data/lib/chef/resource/windows_user_privilege.rb +5 -5
  169. data/lib/chef/resource/windows_workgroup.rb +1 -2
  170. data/lib/chef/resources.rb +0 -1
  171. data/lib/chef/user.rb +0 -1
  172. data/lib/chef/user_v1.rb +3 -4
  173. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  174. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  175. data/lib/chef/version.rb +1 -1
  176. data/lib/chef/win32/api.rb +2 -9
  177. data/lib/chef/win32/registry.rb +4 -2
  178. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  179. data/spec/data/lwrp/resources/bar.rb +2 -0
  180. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  181. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  182. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  183. data/spec/data/lwrp/resources/foo.rb +2 -0
  184. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  185. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  186. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  187. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  188. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  189. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  190. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  191. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  192. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  193. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  194. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  195. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  196. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  197. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  198. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  199. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  200. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  201. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  202. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  203. data/spec/functional/resource/apt_package_spec.rb +1 -1
  204. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  205. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  206. data/spec/functional/resource/group_spec.rb +1 -5
  207. data/spec/functional/resource/link_spec.rb +0 -8
  208. data/spec/functional/resource/registry_spec.rb +8 -8
  209. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  210. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  211. data/spec/functional/version_spec.rb +1 -1
  212. data/spec/functional/win32/registry_spec.rb +1 -1
  213. data/spec/integration/client/client_spec.rb +5 -2
  214. data/spec/integration/client/exit_code_spec.rb +1 -1
  215. data/spec/integration/client/ipv6_spec.rb +1 -1
  216. data/spec/integration/compliance/compliance_spec.rb +1 -1
  217. data/spec/integration/ohai/ohai_spec.rb +7 -6
  218. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  219. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  220. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  221. data/spec/integration/recipes/notifies_spec.rb +15 -1
  222. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  223. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  224. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  225. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  226. data/spec/spec_helper.rb +10 -13
  227. data/spec/support/chef_helpers.rb +0 -16
  228. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  229. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  230. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  231. data/spec/support/matchers/leak.rb +7 -9
  232. data/spec/support/platform_helpers.rb +1 -8
  233. data/spec/support/shared/integration/integration_helper.rb +0 -1
  234. data/spec/support/shared/unit/script_resource.rb +2 -2
  235. data/spec/unit/application/solo_spec.rb +2 -2
  236. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  237. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  238. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  239. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  240. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  241. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  242. data/spec/unit/compliance/runner_spec.rb +30 -4
  243. data/spec/unit/cookbook_version_spec.rb +0 -52
  244. data/spec/unit/data_bag_item_spec.rb +1 -6
  245. data/spec/unit/data_collector_spec.rb +1 -47
  246. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  247. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  248. data/spec/unit/lwrp_spec.rb +1 -1
  249. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  250. data/spec/unit/node/attribute_spec.rb +1 -1
  251. data/spec/unit/node_spec.rb +78 -0
  252. data/spec/unit/org_group_spec.rb +45 -0
  253. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  254. data/spec/unit/property_spec.rb +23 -22
  255. data/spec/unit/provider/cron_spec.rb +1 -1
  256. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  257. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  258. data/spec/unit/provider/group/pw_spec.rb +2 -2
  259. data/spec/unit/provider/group_spec.rb +1 -1
  260. data/spec/unit/provider/package/apt_spec.rb +84 -18
  261. data/spec/unit/provider/package/deb_spec.rb +3 -3
  262. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  263. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  264. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  265. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  266. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  267. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  268. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  269. data/spec/unit/provider/service/windows_spec.rb +2 -2
  270. data/spec/unit/provider/subversion_spec.rb +2 -2
  271. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  272. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  273. data/spec/unit/provider_spec.rb +0 -8
  274. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  275. data/spec/unit/resource/mount_spec.rb +0 -10
  276. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  277. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  278. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  279. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  280. data/spec/unit/resource/windows_task_spec.rb +1 -1
  281. data/spec/unit/user_spec.rb +1 -1
  282. data/spec/unit/user_v1_spec.rb +6 -4
  283. data/tasks/rspec.rb +15 -7
  284. metadata +17 -380
  285. data/bin/knife +0 -24
  286. data/lib/chef/application/knife.rb +0 -234
  287. data/lib/chef/application/windows_service.rb +0 -338
  288. data/lib/chef/application/windows_service_manager.rb +0 -205
  289. data/lib/chef/chef_fs/knife.rb +0 -160
  290. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  291. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  292. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  293. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  294. data/lib/chef/knife/acl_add.rb +0 -57
  295. data/lib/chef/knife/acl_base.rb +0 -183
  296. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  297. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  298. data/lib/chef/knife/acl_remove.rb +0 -62
  299. data/lib/chef/knife/acl_show.rb +0 -56
  300. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  301. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  302. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  303. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  304. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  305. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  306. data/lib/chef/knife/bootstrap.rb +0 -1192
  307. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  308. data/lib/chef/knife/client_create.rb +0 -101
  309. data/lib/chef/knife/client_delete.rb +0 -62
  310. data/lib/chef/knife/client_edit.rb +0 -52
  311. data/lib/chef/knife/client_key_create.rb +0 -73
  312. data/lib/chef/knife/client_key_delete.rb +0 -80
  313. data/lib/chef/knife/client_key_edit.rb +0 -83
  314. data/lib/chef/knife/client_key_list.rb +0 -73
  315. data/lib/chef/knife/client_key_show.rb +0 -80
  316. data/lib/chef/knife/client_list.rb +0 -41
  317. data/lib/chef/knife/client_reregister.rb +0 -58
  318. data/lib/chef/knife/client_show.rb +0 -48
  319. data/lib/chef/knife/config_get.rb +0 -39
  320. data/lib/chef/knife/config_get_profile.rb +0 -37
  321. data/lib/chef/knife/config_list.rb +0 -139
  322. data/lib/chef/knife/config_list_profiles.rb +0 -37
  323. data/lib/chef/knife/config_show.rb +0 -127
  324. data/lib/chef/knife/config_use.rb +0 -61
  325. data/lib/chef/knife/config_use_profile.rb +0 -47
  326. data/lib/chef/knife/configure.rb +0 -150
  327. data/lib/chef/knife/configure_client.rb +0 -48
  328. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  329. data/lib/chef/knife/cookbook_delete.rb +0 -151
  330. data/lib/chef/knife/cookbook_download.rb +0 -142
  331. data/lib/chef/knife/cookbook_list.rb +0 -47
  332. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  333. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  334. data/lib/chef/knife/cookbook_show.rb +0 -98
  335. data/lib/chef/knife/cookbook_upload.rb +0 -292
  336. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  337. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  338. data/lib/chef/knife/core/formatting_options.rb +0 -49
  339. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  340. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  341. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  342. data/lib/chef/knife/core/node_editor.rb +0 -130
  343. data/lib/chef/knife/core/node_presenter.rb +0 -133
  344. data/lib/chef/knife/core/object_loader.rb +0 -115
  345. data/lib/chef/knife/core/status_presenter.rb +0 -147
  346. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  347. data/lib/chef/knife/core/text_formatter.rb +0 -85
  348. data/lib/chef/knife/core/ui.rb +0 -338
  349. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  350. data/lib/chef/knife/data_bag_create.rb +0 -81
  351. data/lib/chef/knife/data_bag_delete.rb +0 -49
  352. data/lib/chef/knife/data_bag_edit.rb +0 -74
  353. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  354. data/lib/chef/knife/data_bag_list.rb +0 -42
  355. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  356. data/lib/chef/knife/data_bag_show.rb +0 -69
  357. data/lib/chef/knife/delete.rb +0 -125
  358. data/lib/chef/knife/deps.rb +0 -156
  359. data/lib/chef/knife/diff.rb +0 -83
  360. data/lib/chef/knife/download.rb +0 -84
  361. data/lib/chef/knife/edit.rb +0 -88
  362. data/lib/chef/knife/environment_compare.rb +0 -128
  363. data/lib/chef/knife/environment_create.rb +0 -52
  364. data/lib/chef/knife/environment_delete.rb +0 -44
  365. data/lib/chef/knife/environment_edit.rb +0 -44
  366. data/lib/chef/knife/environment_from_file.rb +0 -84
  367. data/lib/chef/knife/environment_list.rb +0 -41
  368. data/lib/chef/knife/environment_show.rb +0 -47
  369. data/lib/chef/knife/exec.rb +0 -99
  370. data/lib/chef/knife/group_add.rb +0 -55
  371. data/lib/chef/knife/group_create.rb +0 -49
  372. data/lib/chef/knife/group_destroy.rb +0 -53
  373. data/lib/chef/knife/group_list.rb +0 -43
  374. data/lib/chef/knife/group_remove.rb +0 -56
  375. data/lib/chef/knife/group_show.rb +0 -49
  376. data/lib/chef/knife/key_create.rb +0 -112
  377. data/lib/chef/knife/key_create_base.rb +0 -50
  378. data/lib/chef/knife/key_delete.rb +0 -55
  379. data/lib/chef/knife/key_edit.rb +0 -118
  380. data/lib/chef/knife/key_edit_base.rb +0 -55
  381. data/lib/chef/knife/key_list.rb +0 -90
  382. data/lib/chef/knife/key_list_base.rb +0 -45
  383. data/lib/chef/knife/key_show.rb +0 -53
  384. data/lib/chef/knife/list.rb +0 -177
  385. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  386. data/lib/chef/knife/node_create.rb +0 -47
  387. data/lib/chef/knife/node_delete.rb +0 -46
  388. data/lib/chef/knife/node_edit.rb +0 -70
  389. data/lib/chef/knife/node_environment_set.rb +0 -53
  390. data/lib/chef/knife/node_from_file.rb +0 -51
  391. data/lib/chef/knife/node_list.rb +0 -44
  392. data/lib/chef/knife/node_policy_set.rb +0 -79
  393. data/lib/chef/knife/node_run_list_add.rb +0 -104
  394. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  395. data/lib/chef/knife/node_run_list_set.rb +0 -66
  396. data/lib/chef/knife/node_show.rb +0 -63
  397. data/lib/chef/knife/null.rb +0 -12
  398. data/lib/chef/knife/raw.rb +0 -123
  399. data/lib/chef/knife/recipe_list.rb +0 -32
  400. data/lib/chef/knife/rehash.rb +0 -50
  401. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  402. data/lib/chef/knife/role_create.rb +0 -53
  403. data/lib/chef/knife/role_delete.rb +0 -46
  404. data/lib/chef/knife/role_edit.rb +0 -45
  405. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  406. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  407. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  408. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  409. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  410. data/lib/chef/knife/role_from_file.rb +0 -51
  411. data/lib/chef/knife/role_list.rb +0 -42
  412. data/lib/chef/knife/role_run_list_add.rb +0 -87
  413. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  414. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  415. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  416. data/lib/chef/knife/role_run_list_set.rb +0 -69
  417. data/lib/chef/knife/role_show.rb +0 -48
  418. data/lib/chef/knife/search.rb +0 -194
  419. data/lib/chef/knife/serve.rb +0 -65
  420. data/lib/chef/knife/show.rb +0 -72
  421. data/lib/chef/knife/ssh.rb +0 -645
  422. data/lib/chef/knife/ssl_check.rb +0 -284
  423. data/lib/chef/knife/ssl_fetch.rb +0 -161
  424. data/lib/chef/knife/status.rb +0 -95
  425. data/lib/chef/knife/supermarket_download.rb +0 -121
  426. data/lib/chef/knife/supermarket_install.rb +0 -192
  427. data/lib/chef/knife/supermarket_list.rb +0 -76
  428. data/lib/chef/knife/supermarket_search.rb +0 -53
  429. data/lib/chef/knife/supermarket_share.rb +0 -166
  430. data/lib/chef/knife/supermarket_show.rb +0 -66
  431. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  432. data/lib/chef/knife/tag_create.rb +0 -52
  433. data/lib/chef/knife/tag_delete.rb +0 -60
  434. data/lib/chef/knife/tag_list.rb +0 -47
  435. data/lib/chef/knife/upload.rb +0 -86
  436. data/lib/chef/knife/user_create.rb +0 -107
  437. data/lib/chef/knife/user_delete.rb +0 -44
  438. data/lib/chef/knife/user_dissociate.rb +0 -42
  439. data/lib/chef/knife/user_edit.rb +0 -52
  440. data/lib/chef/knife/user_invite_add.rb +0 -43
  441. data/lib/chef/knife/user_invite_list.rb +0 -34
  442. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  443. data/lib/chef/knife/user_key_create.rb +0 -73
  444. data/lib/chef/knife/user_key_delete.rb +0 -80
  445. data/lib/chef/knife/user_key_edit.rb +0 -83
  446. data/lib/chef/knife/user_key_list.rb +0 -73
  447. data/lib/chef/knife/user_key_show.rb +0 -80
  448. data/lib/chef/knife/user_list.rb +0 -42
  449. data/lib/chef/knife/user_reregister.rb +0 -59
  450. data/lib/chef/knife/user_show.rb +0 -48
  451. data/lib/chef/knife/xargs.rb +0 -282
  452. data/lib/chef/knife/yaml_convert.rb +0 -91
  453. data/lib/chef/knife.rb +0 -665
  454. data/lib/chef/resource/user/dscl_user.rb +0 -35
  455. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  456. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  457. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  458. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  459. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  460. data/spec/functional/knife/configure_spec.rb +0 -33
  461. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  462. data/spec/functional/knife/exec_spec.rb +0 -55
  463. data/spec/functional/knife/rehash_spec.rb +0 -39
  464. data/spec/functional/knife/smoke_test.rb +0 -42
  465. data/spec/functional/knife/ssh_spec.rb +0 -352
  466. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  467. data/spec/functional/resource/windows_service_spec.rb +0 -105
  468. data/spec/functional/win32/service_manager_spec.rb +0 -220
  469. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  470. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  471. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  472. data/spec/integration/knife/chefignore_spec.rb +0 -301
  473. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  474. data/spec/integration/knife/client_create_spec.rb +0 -70
  475. data/spec/integration/knife/client_delete_spec.rb +0 -64
  476. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  477. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  478. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  479. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  480. data/spec/integration/knife/client_list_spec.rb +0 -49
  481. data/spec/integration/knife/client_show_spec.rb +0 -37
  482. data/spec/integration/knife/common_options_spec.rb +0 -174
  483. data/spec/integration/knife/config_list_spec.rb +0 -220
  484. data/spec/integration/knife/config_show_spec.rb +0 -192
  485. data/spec/integration/knife/config_use_spec.rb +0 -198
  486. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  487. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  488. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  489. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  490. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  491. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  492. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  493. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  494. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  495. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  496. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  497. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  498. data/spec/integration/knife/delete_spec.rb +0 -1018
  499. data/spec/integration/knife/deps_spec.rb +0 -703
  500. data/spec/integration/knife/diff_spec.rb +0 -605
  501. data/spec/integration/knife/download_spec.rb +0 -1336
  502. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  503. data/spec/integration/knife/environment_create_spec.rb +0 -41
  504. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  505. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  506. data/spec/integration/knife/environment_list_spec.rb +0 -42
  507. data/spec/integration/knife/environment_show_spec.rb +0 -77
  508. data/spec/integration/knife/list_spec.rb +0 -1060
  509. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  510. data/spec/integration/knife/node_create_spec.rb +0 -47
  511. data/spec/integration/knife/node_delete_spec.rb +0 -48
  512. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  513. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  514. data/spec/integration/knife/node_list_spec.rb +0 -45
  515. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  516. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  517. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  518. data/spec/integration/knife/node_show_spec.rb +0 -36
  519. data/spec/integration/knife/raw_spec.rb +0 -297
  520. data/spec/integration/knife/redirection_spec.rb +0 -64
  521. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  522. data/spec/integration/knife/role_create_spec.rb +0 -41
  523. data/spec/integration/knife/role_delete_spec.rb +0 -48
  524. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  525. data/spec/integration/knife/role_list_spec.rb +0 -45
  526. data/spec/integration/knife/role_show_spec.rb +0 -51
  527. data/spec/integration/knife/search_node_spec.rb +0 -40
  528. data/spec/integration/knife/serve_spec.rb +0 -92
  529. data/spec/integration/knife/show_spec.rb +0 -197
  530. data/spec/integration/knife/upload_spec.rb +0 -1617
  531. data/spec/support/shared/functional/knife.rb +0 -37
  532. data/spec/support/shared/functional/win32_service.rb +0 -57
  533. data/spec/support/shared/integration/knife_support.rb +0 -192
  534. data/spec/support/shared/unit/knife_shared.rb +0 -39
  535. data/spec/unit/application/knife_spec.rb +0 -241
  536. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  537. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  538. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  539. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  540. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  541. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  542. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  543. data/spec/unit/knife/client_create_spec.rb +0 -169
  544. data/spec/unit/knife/client_delete_spec.rb +0 -99
  545. data/spec/unit/knife/client_edit_spec.rb +0 -53
  546. data/spec/unit/knife/client_list_spec.rb +0 -34
  547. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  548. data/spec/unit/knife/client_show_spec.rb +0 -52
  549. data/spec/unit/knife/configure_client_spec.rb +0 -81
  550. data/spec/unit/knife/configure_spec.rb +0 -190
  551. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  552. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  553. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  554. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  555. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  556. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  557. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  558. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  559. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  560. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  561. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  562. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  563. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  564. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  565. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  566. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  567. data/spec/unit/knife/core/ui_spec.rb +0 -656
  568. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  569. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  570. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  571. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  572. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  573. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  574. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  575. data/spec/unit/knife/environment_create_spec.rb +0 -91
  576. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  577. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  578. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  579. data/spec/unit/knife/environment_list_spec.rb +0 -54
  580. data/spec/unit/knife/environment_show_spec.rb +0 -52
  581. data/spec/unit/knife/key_create_spec.rb +0 -223
  582. data/spec/unit/knife/key_delete_spec.rb +0 -133
  583. data/spec/unit/knife/key_edit_spec.rb +0 -264
  584. data/spec/unit/knife/key_helper.rb +0 -74
  585. data/spec/unit/knife/key_list_spec.rb +0 -216
  586. data/spec/unit/knife/key_show_spec.rb +0 -126
  587. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  588. data/spec/unit/knife/node_delete_spec.rb +0 -77
  589. data/spec/unit/knife/node_edit_spec.rb +0 -116
  590. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  591. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  592. data/spec/unit/knife/node_list_spec.rb +0 -62
  593. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  594. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  595. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  596. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  597. data/spec/unit/knife/node_show_spec.rb +0 -65
  598. data/spec/unit/knife/raw_spec.rb +0 -43
  599. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  600. data/spec/unit/knife/role_create_spec.rb +0 -80
  601. data/spec/unit/knife/role_delete_spec.rb +0 -67
  602. data/spec/unit/knife/role_edit_spec.rb +0 -77
  603. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  604. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  605. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  606. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  607. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  608. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  609. data/spec/unit/knife/role_list_spec.rb +0 -54
  610. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  611. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  612. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  613. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  614. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  615. data/spec/unit/knife/role_show_spec.rb +0 -59
  616. data/spec/unit/knife/ssh_spec.rb +0 -403
  617. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  618. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  619. data/spec/unit/knife/status_spec.rb +0 -112
  620. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  621. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  622. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  623. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  624. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  625. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  626. data/spec/unit/knife/tag_create_spec.rb +0 -23
  627. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  628. data/spec/unit/knife/tag_list_spec.rb +0 -23
  629. data/spec/unit/knife/user_create_spec.rb +0 -184
  630. data/spec/unit/knife/user_delete_spec.rb +0 -46
  631. data/spec/unit/knife/user_edit_spec.rb +0 -48
  632. data/spec/unit/knife/user_list_spec.rb +0 -36
  633. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  634. data/spec/unit/knife/user_show_spec.rb +0 -46
  635. data/spec/unit/knife_spec.rb +0 -634
  636. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  637. data/spec/unit/windows_service_spec.rb +0 -118
@@ -297,6 +297,55 @@ describe Chef::Provider::Service::Systemd do
297
297
  end
298
298
  end
299
299
 
300
+ enabled_and_active = <<-STDOUT
301
+ ActiveState=active
302
+ UnitFileState=enabled
303
+ STDOUT
304
+ disabled_and_inactive = <<-STDOUT
305
+ ActiveState=disabled
306
+ UnitFileState=inactive
307
+ STDOUT
308
+ # No unit known for this service, and inactive
309
+ nil_and_inactive = <<-STDOUT
310
+ ActiveState=inactive
311
+ UnitFileState=
312
+ STDOUT
313
+
314
+ def with_systemctl_show(systemctl_path, stdout)
315
+ systemctl_show = [systemctl_path, "--system", "show", "-p", "UnitFileState", "-p", "ActiveState", service_name]
316
+ expect(provider).to receive(:shell_out!).with(*systemctl_show, {}).and_return(double(stdout: stdout, exitstatus: 0, error?: false))
317
+ end
318
+
319
+ describe "systemd_service_status" do
320
+ before(:each) do
321
+ provider.current_resource = current_resource
322
+ current_resource.service_name(service_name)
323
+ end
324
+
325
+ it "should return status if '#{systemctl_path} --system show -p UnitFileState -p ActiveState service_name' returns 0 and has nil" do
326
+ nil_and_inactive_h = {
327
+ "ActiveState" => "inactive",
328
+ "UnitFileState" => nil,
329
+ }
330
+ with_systemctl_show(systemctl_path, nil_and_inactive)
331
+ expect(provider.systemd_service_status).to eql(nil_and_inactive_h)
332
+ end
333
+
334
+ it "should error if '#{systemctl_path} --system show -p UnitFileState -p ActiveState service_name' misses fields" do
335
+ partial_systemctl_stdout = <<-STDOUT
336
+ ActiveState=inactive
337
+ STDOUT
338
+ with_systemctl_show(systemctl_path, partial_systemctl_stdout)
339
+ expect { provider.systemd_service_status }.to raise_error(Chef::Exceptions::Service)
340
+ end
341
+
342
+ it "should error if '#{systemctl_path} --system show -p UnitFileState -p ActiveState service_name' returns non 0" do
343
+ systemctl_show = [systemctl_path, "--system", "show", "-p", "UnitFileState", "-p", "ActiveState", service_name]
344
+ allow(provider).to receive(:shell_out!).with(*systemctl_show, {}).and_return(shell_out_failure)
345
+ expect { provider.systemd_service_status }.to raise_error(Chef::Exceptions::Service)
346
+ end
347
+ end
348
+
300
349
  describe "is_active?" do
301
350
  before(:each) do
302
351
  provider.current_resource = current_resource
@@ -304,13 +353,22 @@ describe Chef::Provider::Service::Systemd do
304
353
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
305
354
  end
306
355
 
307
- it "should return true if '#{systemctl_path} --system is-active service_name' returns 0" do
308
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-active", service_name, "--quiet", timeout: 900).and_return(shell_out_success)
356
+ it "should return true if service is active" do
357
+ with_systemctl_show(systemctl_path, enabled_and_active)
309
358
  expect(provider.is_active?).to be true
310
359
  end
311
360
 
312
- it "should return false if '#{systemctl_path} --system is-active service_name' returns anything except 0" do
313
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-active", service_name, "--quiet", timeout: 900).and_return(shell_out_failure)
361
+ it "should return false if service is not active" do
362
+ with_systemctl_show(systemctl_path, disabled_and_inactive)
363
+ expect(provider.is_active?).to be false
364
+ end
365
+
366
+ it "should return false if service is activating" do
367
+ enabled_and_activating = <<-STDOUT
368
+ ActiveState=activating
369
+ UnitFileState=enabled
370
+ STDOUT
371
+ with_systemctl_show(systemctl_path, enabled_and_activating)
314
372
  expect(provider.is_active?).to be false
315
373
  end
316
374
  end
@@ -322,15 +380,60 @@ describe Chef::Provider::Service::Systemd do
322
380
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
323
381
  end
324
382
 
325
- it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 0" do
326
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, "--quiet", timeout: 900).and_return(shell_out_success)
383
+ it "should return true if service is enabled" do
384
+ with_systemctl_show(systemctl_path, enabled_and_active)
327
385
  expect(provider.is_enabled?).to be true
328
386
  end
329
387
 
330
- it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0" do
331
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, "--quiet", timeout: 900).and_return(shell_out_failure)
388
+ it "should return false if service is disabled" do
389
+ with_systemctl_show(systemctl_path, disabled_and_inactive)
332
390
  expect(provider.is_enabled?).to be false
333
391
  end
392
+
393
+ it "should return false if service has no unit file" do
394
+ with_systemctl_show(systemctl_path, nil_and_inactive)
395
+ expect(provider.is_enabled?).to be false
396
+ end
397
+
398
+ it "should return true if service is static" do
399
+ static_and_active = <<-STDOUT
400
+ ActiveState=active
401
+ UnitFileState=static
402
+ STDOUT
403
+ with_systemctl_show(systemctl_path, static_and_active)
404
+ expect(provider.is_enabled?).to be true
405
+ end
406
+
407
+ it "should return false if service is enabled-runtime" do
408
+ enabled_runtime_and_active = <<-STDOUT
409
+ ActiveState=active
410
+ UnitFileState=enabled-runtime
411
+ STDOUT
412
+ with_systemctl_show(systemctl_path, enabled_runtime_and_active)
413
+ expect(provider.is_enabled?).to be false
414
+ end
415
+
416
+ it "should shellout to 'is-enabled' and return false if unit file is bad and sysv compat isn't enabled" do
417
+ bad_and_inactive = <<-STDOUT
418
+ ActiveState=inactive
419
+ UnitFileState=bad
420
+ STDOUT
421
+ with_systemctl_show(systemctl_path, bad_and_inactive)
422
+ systemctl_isenabled = [systemctl_path, "--system", "is-enabled", service_name, "--quiet"]
423
+ expect(provider).to receive(:shell_out).with(*systemctl_isenabled).and_return(shell_out_failure)
424
+ expect(provider.is_enabled?).to be false
425
+ end
426
+
427
+ it "should shellout to 'is-enabled' and return true if unit file is bad and sysv compat is enabled" do
428
+ bad_and_inactive = <<-STDOUT
429
+ ActiveState=inactive
430
+ UnitFileState=bad
431
+ STDOUT
432
+ with_systemctl_show(systemctl_path, bad_and_inactive)
433
+ systemctl_isenabled = [systemctl_path, "--system", "is-enabled", service_name, "--quiet"]
434
+ expect(provider).to receive(:shell_out).with(*systemctl_isenabled).and_return(shell_out_success)
435
+ expect(provider.is_enabled?).to be true
436
+ end
334
437
  end
335
438
 
336
439
  describe "is_masked?" do
@@ -340,23 +443,31 @@ describe Chef::Provider::Service::Systemd do
340
443
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
341
444
  end
342
445
 
343
- it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 'masked' and returns anything except 0" do
344
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "masked", exitstatus: shell_out_failure))
446
+ it "should return true if service is masked" do
447
+ masked_and_inactive = <<-STDOUT
448
+ ActiveState=inactive
449
+ UnitFileState=masked
450
+ STDOUT
451
+ with_systemctl_show(systemctl_path, masked_and_inactive)
345
452
  expect(provider.is_masked?).to be true
346
453
  end
347
454
 
348
- it "should return true if '#{systemctl_path} --system is-enabled service_name' outputs 'masked-runtime' and returns anything except 0" do
349
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "masked-runtime", exitstatus: shell_out_failure))
350
- expect(provider.is_masked?).to be true
455
+ it "should return false if service is masked-runtime" do
456
+ masked_runtime_and_inactive = <<-STDOUT
457
+ ActiveState=inactive
458
+ UnitFileState=masked-runtime
459
+ STDOUT
460
+ with_systemctl_show(systemctl_path, masked_runtime_and_inactive)
461
+ expect(provider.is_masked?).to be false
351
462
  end
352
463
 
353
- it "should return false if '#{systemctl_path} --system is-enabled service_name' returns 0" do
354
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_success))
464
+ it "should return false if service is enabled" do
465
+ with_systemctl_show(systemctl_path, enabled_and_active)
355
466
  expect(provider.is_masked?).to be false
356
467
  end
357
468
 
358
- it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0 and outputs an error'" do
359
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "Failed to get unit file state for #{service_name}: No such file or directory", exitstatus: shell_out_failure))
469
+ it "should return false if service has no known unit file" do
470
+ with_systemctl_show(systemctl_path, nil_and_inactive)
360
471
  expect(provider.is_masked?).to be false
361
472
  end
362
473
  end
@@ -368,18 +479,22 @@ describe Chef::Provider::Service::Systemd do
368
479
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
369
480
  end
370
481
 
371
- it "should return true if '#{systemctl_path} --system is-enabled service_name' returns 'indirect'" do
372
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "indirect", exitstatus: shell_out_success))
482
+ it "should return true if service is indirect" do
483
+ indirect_and_inactive = <<-STDOUT
484
+ ActiveState=inactive
485
+ UnitFileState=indirect
486
+ STDOUT
487
+ with_systemctl_show(systemctl_path, indirect_and_inactive)
373
488
  expect(provider.is_indirect?).to be true
374
489
  end
375
490
 
376
- it "should return false if '#{systemctl_path} --system is-enabled service_name' returns 0 and outputs something other than 'indirect'" do
377
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_success))
491
+ it "should return false if service not indirect" do
492
+ with_systemctl_show(systemctl_path, enabled_and_active)
378
493
  expect(provider.is_indirect?).to be false
379
494
  end
380
495
 
381
- it "should return false if '#{systemctl_path} --system is-enabled service_name' returns anything except 0 and outputs somethign other than 'indirect''" do
382
- expect(provider).to receive(:shell_out_compacted).with(systemctl_path, "--system", "is-enabled", service_name, timeout: 900).and_return(double(stdout: "enabled", exitstatus: shell_out_failure))
496
+ it "should return false if service has no known unit file" do
497
+ with_systemctl_show(systemctl_path, nil_and_inactive)
383
498
  expect(provider.is_indirect?).to be false
384
499
  end
385
500
  end
@@ -27,7 +27,6 @@ describe Chef::Provider::Service::Upstart do
27
27
  @node = Chef::Node.new
28
28
  @node.name("upstarter")
29
29
  @node.automatic_attrs[:platform] = "ubuntu"
30
- @node.automatic_attrs[:platform_version] = "9.10"
31
30
 
32
31
  @events = Chef::EventDispatch::Dispatcher.new
33
32
  @run_context = Chef::RunContext.new(@node, {}, @events)
@@ -36,34 +35,6 @@ describe Chef::Provider::Service::Upstart do
36
35
  @provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
37
36
  end
38
37
 
39
- describe "when first created" do
40
- before do
41
- @platform = nil
42
- end
43
-
44
- it "should return /etc/event.d as the upstart job directory when running on Ubuntu 9.04" do
45
- @node.automatic_attrs[:platform_version] = "9.04"
46
- # Chef::Platform.stub(:find_platform_and_version).and_return([ "ubuntu", "9.04" ])
47
- @provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
48
- expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/event.d")
49
- expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq("")
50
- end
51
-
52
- it "should return /etc/init as the upstart job directory when running on Ubuntu 9.10" do
53
- @node.automatic_attrs[:platform_version] = "9.10"
54
- @provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
55
- expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/init")
56
- expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq(".conf")
57
- end
58
-
59
- it "should return /etc/init as the upstart job directory by default" do
60
- @node.automatic_attrs[:platform_version] = "9000"
61
- @provider = Chef::Provider::Service::Upstart.new(@new_resource, @run_context)
62
- expect(@provider.instance_variable_get(:@upstart_job_dir)).to eq("/etc/init")
63
- expect(@provider.instance_variable_get(:@upstart_conf_suffix)).to eq(".conf")
64
- end
65
- end
66
-
67
38
  describe "load_current_resource" do
68
39
  before(:each) do
69
40
  @node.automatic_attrs[:command] = { ps: "ps -ax" }
@@ -254,7 +254,7 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
254
254
  end
255
255
 
256
256
  it "logs debug message" do
257
- expect(logger).to receive(:trace).with("windows_service[#{chef_service_name}] already exists - nothing to do")
257
+ expect(logger).to receive(:debug).with("windows_service[#{chef_service_name}] already exists - nothing to do")
258
258
  provider.action_create
259
259
  end
260
260
 
@@ -334,7 +334,7 @@ describe Chef::Provider::Service::Windows, "load_current_resource" do
334
334
  end
335
335
 
336
336
  it "logs debug message" do
337
- expect(logger).to receive(:trace).with("windows_service[#{chef_service_name}] does not exist - nothing to do")
337
+ expect(logger).to receive(:debug).with("windows_service[#{chef_service_name}] does not exist - nothing to do")
338
338
  provider.action_delete
339
339
  end
340
340
 
@@ -319,11 +319,11 @@ describe Chef::Provider::Subversion do
319
319
  let(:http_proxy_uri) { "http://somehost:1" }
320
320
  let(:http_no_proxy) { "svn.example.org" }
321
321
 
322
- before (:all) do
322
+ before(:all) do
323
323
  @original_env = ENV.to_hash
324
324
  end
325
325
 
326
- after (:all) do
326
+ after(:all) do
327
327
  ENV.clear
328
328
  ENV.update(@original_env)
329
329
  end
@@ -117,6 +117,7 @@ describe Chef::Provider::SystemdUnit, :linux_only do
117
117
  allow(provider).to receive(:enabled?).and_return(false)
118
118
  allow(provider).to receive(:masked?).and_return(false)
119
119
  allow(provider).to receive(:static?).and_return(false)
120
+ allow(provider).to receive(:indirect?).and_return(false)
120
121
  end
121
122
 
122
123
  it "should create a current resource with the name of the new resource" do
@@ -811,6 +812,49 @@ describe Chef::Provider::SystemdUnit, :linux_only do
811
812
  end
812
813
  end
813
814
 
815
+ def with_systemctl_show(systemctl_path, instance, opts, stdout)
816
+ systemctl_show = [systemctl_path, instance, "show", "-p", "UnitFileState", "-p", "ActiveState", unit_name]
817
+ expect(provider).to receive(:shell_out).with(*systemctl_show, opts).and_return(double(stdout: stdout, exitstatus: 0, error?: false))
818
+ end
819
+
820
+ describe "systemd_unit_status" do
821
+ before(:each) do
822
+ provider.current_resource = current_resource
823
+ current_resource.unit_name(unit_name)
824
+ end
825
+
826
+ it "should return status if '#{systemctl_path} --system show -p UnitFileState -p ActiveState unit_name' returns 0 and has nil" do
827
+ # No unit known for this service, and inactive
828
+ nil_and_inactive = <<-STDOUT
829
+ ActiveState=inactive
830
+ UnitFileState=
831
+ STDOUT
832
+ nil_and_inactive_h = {
833
+ "ActiveState" => "inactive",
834
+ "UnitFileState" => nil,
835
+ }
836
+ with_systemctl_show(systemctl_path, "--system", {}, nil_and_inactive)
837
+ expect(provider.systemd_unit_status).to eql(nil_and_inactive_h)
838
+ end
839
+
840
+ it "should not error if '#{systemctl_path} --system show' is run against a template unit" do
841
+ current_resource.unit_name("foo@.service")
842
+ template_error = "Failed to get properties: Unit name foo@.service is neither a valid invocation ID nor unit name."
843
+ systemctl_show = [systemctl_path, "--system", "show", "-p", "UnitFileState", "-p", "ActiveState", "foo@.service"]
844
+ expect(provider).to receive(:shell_out).with(*systemctl_show, {}).and_return(double(stdout: "", stderr: template_error, exitstatus: 1, error?: true))
845
+ expect(provider.systemd_unit_status).to eql({})
846
+ end
847
+ end
848
+
849
+ enabled_and_active = <<-STDOUT
850
+ ActiveState=active
851
+ UnitFileState=enabled
852
+ STDOUT
853
+ disabled_and_inactive = <<-STDOUT
854
+ ActiveState=disabled
855
+ UnitFileState=inactive
856
+ STDOUT
857
+
814
858
  describe "#active?" do
815
859
  before(:each) do
816
860
  provider.current_resource = current_resource
@@ -820,33 +864,25 @@ describe Chef::Provider::SystemdUnit, :linux_only do
820
864
  context "when a user is specified" do
821
865
  it "returns true when unit is active" do
822
866
  current_resource.user(user_name)
823
- expect(provider).to receive(:shell_out_compacted)
824
- .with(systemctl_path, "--user", "is-active", unit_name, user_cmd_opts)
825
- .and_return(shell_out_success)
867
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, enabled_and_active)
826
868
  expect(provider.active?).to be true
827
869
  end
828
870
 
829
871
  it "returns false when unit is inactive" do
830
872
  current_resource.user(user_name)
831
- expect(provider).to receive(:shell_out_compacted)
832
- .with(systemctl_path, "--user", "is-active", unit_name, user_cmd_opts)
833
- .and_return(shell_out_failure)
873
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, disabled_and_inactive)
834
874
  expect(provider.active?).to be false
835
875
  end
836
876
  end
837
877
 
838
878
  context "when no user is specified" do
839
879
  it "returns true when unit is active" do
840
- expect(provider).to receive(:shell_out_compacted)
841
- .with(systemctl_path, "--system", "is-active", unit_name)
842
- .and_return(shell_out_success)
880
+ with_systemctl_show(systemctl_path, "--system", {}, enabled_and_active)
843
881
  expect(provider.active?).to be true
844
882
  end
845
883
 
846
884
  it "returns false when unit is not active" do
847
- expect(provider).to receive(:shell_out_compacted)
848
- .with(systemctl_path, "--system", "is-active", unit_name)
849
- .and_return(shell_out_failure)
885
+ with_systemctl_show(systemctl_path, "--system", {}, disabled_and_inactive)
850
886
  expect(provider.active?).to be false
851
887
  end
852
888
  end
@@ -861,33 +897,25 @@ describe Chef::Provider::SystemdUnit, :linux_only do
861
897
  context "when a user is specified" do
862
898
  it "returns true when unit is enabled" do
863
899
  current_resource.user(user_name)
864
- expect(provider).to receive(:shell_out_compacted)
865
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
866
- .and_return(shell_out_success)
900
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, enabled_and_active)
867
901
  expect(provider.enabled?).to be true
868
902
  end
869
903
 
870
904
  it "returns false when unit is not enabled" do
871
905
  current_resource.user(user_name)
872
- expect(provider).to receive(:shell_out_compacted)
873
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
874
- .and_return(shell_out_disabled)
906
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, disabled_and_inactive)
875
907
  expect(provider.enabled?).to be false
876
908
  end
877
909
  end
878
910
 
879
911
  context "when no user is specified" do
880
912
  it "returns true when unit is enabled" do
881
- expect(provider).to receive(:shell_out_compacted)
882
- .with(systemctl_path, "--system", "is-enabled", unit_name)
883
- .and_return(shell_out_success)
913
+ with_systemctl_show(systemctl_path, "--system", {}, enabled_and_active)
884
914
  expect(provider.enabled?).to be true
885
915
  end
886
916
 
887
917
  it "returns false when unit is not enabled" do
888
- expect(provider).to receive(:shell_out_compacted)
889
- .with(systemctl_path, "--system", "is-enabled", unit_name)
890
- .and_return(shell_out_disabled)
918
+ with_systemctl_show(systemctl_path, "--system", {}, disabled_and_inactive)
891
919
  expect(provider.enabled?).to be false
892
920
  end
893
921
  end
@@ -899,36 +927,33 @@ describe Chef::Provider::SystemdUnit, :linux_only do
899
927
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
900
928
  end
901
929
 
930
+ masked_and_inactive = <<-STDOUT
931
+ ActiveState=inactive
932
+ UnitFileState=masked
933
+ STDOUT
934
+
902
935
  context "when a user is specified" do
903
936
  it "returns true when the unit is masked" do
904
937
  current_resource.user(user_name)
905
- expect(provider).to receive(:shell_out_compacted)
906
- .with(systemctl_path, "--user", "status", unit_name, user_cmd_opts)
907
- .and_return(shell_out_masked)
938
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, masked_and_inactive)
908
939
  expect(provider.masked?).to be true
909
940
  end
910
941
 
911
942
  it "returns false when the unit is not masked" do
912
943
  current_resource.user(user_name)
913
- expect(provider).to receive(:shell_out_compacted)
914
- .with(systemctl_path, "--user", "status", unit_name, user_cmd_opts)
915
- .and_return(shell_out_static)
944
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, enabled_and_active)
916
945
  expect(provider.masked?).to be false
917
946
  end
918
947
  end
919
948
 
920
949
  context "when no user is specified" do
921
950
  it "returns true when the unit is masked" do
922
- expect(provider).to receive(:shell_out_compacted)
923
- .with(systemctl_path, "--system", "status", unit_name)
924
- .and_return(shell_out_masked)
951
+ with_systemctl_show(systemctl_path, "--system", {}, masked_and_inactive)
925
952
  expect(provider.masked?).to be true
926
953
  end
927
954
 
928
955
  it "returns false when the unit is not masked" do
929
- expect(provider).to receive(:shell_out_compacted)
930
- .with(systemctl_path, "--system", "status", unit_name)
931
- .and_return(shell_out_static)
956
+ with_systemctl_show(systemctl_path, "--system", {}, enabled_and_active)
932
957
  expect(provider.masked?).to be false
933
958
  end
934
959
  end
@@ -940,36 +965,33 @@ describe Chef::Provider::SystemdUnit, :linux_only do
940
965
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
941
966
  end
942
967
 
968
+ static_and_active = <<-STDOUT
969
+ ActiveState=active
970
+ UnitFileState=static
971
+ STDOUT
972
+
943
973
  context "when a user is specified" do
944
974
  it "returns true when the unit is static" do
945
975
  current_resource.user(user_name)
946
- expect(provider).to receive(:shell_out_compacted)
947
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
948
- .and_return(shell_out_static)
976
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, static_and_active)
949
977
  expect(provider.static?).to be true
950
978
  end
951
979
 
952
980
  it "returns false when the unit is not static" do
953
981
  current_resource.user(user_name)
954
- expect(provider).to receive(:shell_out_compacted)
955
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
956
- .and_return(shell_out_masked)
982
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, enabled_and_active)
957
983
  expect(provider.static?).to be false
958
984
  end
959
985
  end
960
986
 
961
987
  context "when no user is specified" do
962
988
  it "returns true when the unit is static" do
963
- expect(provider).to receive(:shell_out_compacted)
964
- .with(systemctl_path, "--system", "is-enabled", unit_name)
965
- .and_return(shell_out_static)
989
+ with_systemctl_show(systemctl_path, "--system", {}, static_and_active)
966
990
  expect(provider.static?).to be true
967
991
  end
968
992
 
969
993
  it "returns false when the unit is not static" do
970
- expect(provider).to receive(:shell_out_compacted)
971
- .with(systemctl_path, "--system", "is-enabled", unit_name)
972
- .and_return(shell_out_masked)
994
+ with_systemctl_show(systemctl_path, "--system", {}, enabled_and_active)
973
995
  expect(provider.static?).to be false
974
996
  end
975
997
  end
@@ -981,36 +1003,33 @@ describe Chef::Provider::SystemdUnit, :linux_only do
981
1003
  allow(provider).to receive(:which).with("systemctl").and_return(systemctl_path.to_s)
982
1004
  end
983
1005
 
1006
+ indirect_and_inactive = <<-STDOUT
1007
+ ActiveState=inactive
1008
+ UnitFileState=indirect
1009
+ STDOUT
1010
+
984
1011
  context "when a user is specified" do
985
1012
  it "returns true when the unit is indirect" do
986
1013
  current_resource.user(user_name)
987
- expect(provider).to receive(:shell_out_compacted)
988
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
989
- .and_return(shell_out_indirect)
1014
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, indirect_and_inactive)
990
1015
  expect(provider.indirect?).to be true
991
1016
  end
992
1017
 
993
1018
  it "returns false when the unit is not indirect" do
994
1019
  current_resource.user(user_name)
995
- expect(provider).to receive(:shell_out_compacted)
996
- .with(systemctl_path, "--user", "is-enabled", unit_name, user_cmd_opts)
997
- .and_return(shell_out_static)
1020
+ with_systemctl_show(systemctl_path, "--user", user_cmd_opts, enabled_and_active)
998
1021
  expect(provider.indirect?).to be false
999
1022
  end
1000
1023
  end
1001
1024
 
1002
1025
  context "when no user is specified" do
1003
1026
  it "returns true when the unit is indirect" do
1004
- expect(provider).to receive(:shell_out_compacted)
1005
- .with(systemctl_path, "--system", "is-enabled", unit_name)
1006
- .and_return(shell_out_indirect)
1027
+ with_systemctl_show(systemctl_path, "--system", {}, indirect_and_inactive)
1007
1028
  expect(provider.indirect?).to be true
1008
1029
  end
1009
1030
 
1010
1031
  it "returns false when the unit is not indirect" do
1011
- expect(provider).to receive(:shell_out_compacted)
1012
- .with(systemctl_path, "--system", "is-enabled", unit_name)
1013
- .and_return(shell_out_static)
1032
+ with_systemctl_show(systemctl_path, "--system", {}, enabled_and_active)
1014
1033
  expect(provider.indirect?).to be false
1015
1034
  end
1016
1035
  end
@@ -96,7 +96,7 @@ describe Chef::Provider::ZypperRepository do
96
96
  it "skips key import if gpgautoimportkeys is false" do
97
97
  new_resource.gpgautoimportkeys(false)
98
98
  expect(provider).to receive(:declare_resource)
99
- expect(logger).to receive(:trace)
99
+ expect(logger).to receive(:debug)
100
100
  provider.run_action(:create)
101
101
  end
102
102
  end
@@ -169,7 +169,7 @@ describe Chef::Provider::ZypperRepository do
169
169
 
170
170
  describe "#install_gpg_key" do
171
171
  it "skips installing the key if a nil value for key is passed" do
172
- expect(logger).to receive(:trace)
172
+ expect(logger).to receive(:debug)
173
173
  provider.install_gpg_key(nil)
174
174
  end
175
175
  end
@@ -189,12 +189,4 @@ describe Chef::Provider do
189
189
 
190
190
  end
191
191
  end
192
-
193
- context "when using use_inline_resources" do
194
- it "should log a deprecation warning" do
195
- pending Chef::VERSION.start_with?("14.1")
196
- expect(Chef).to receive(:deprecated).with(:use_inline_resources, kind_of(String))
197
- Class.new(described_class) { use_inline_resources }
198
- end
199
- end
200
192
  end
@@ -19,40 +19,22 @@ require "spec_helper"
19
19
 
20
20
  describe Chef::Resource::HomebrewCask do
21
21
 
22
- context "name with under bar" do
23
- let(:resource) { Chef::Resource::HomebrewCask.new("fakey_fakerton") }
22
+ let(:resource) { Chef::Resource::HomebrewCask.new("fakey_fakerton") }
24
23
 
25
- it "has a resource name of :homebrew_cask" do
26
- expect(resource.resource_name).to eql(:homebrew_cask)
27
- end
28
-
29
- it "the cask_name property is the name_property" do
30
- expect(resource.cask_name).to eql("fakey_fakerton")
31
- end
32
-
33
- it "sets the default action as :install" do
34
- expect(resource.action).to eql([:install])
35
- end
36
-
37
- it "supports :install, :remove actions" do
38
- expect { resource.action :install }.not_to raise_error
39
- expect { resource.action :remove }.not_to raise_error
40
- end
24
+ it "has a resource name of :homebrew_cask" do
25
+ expect(resource.resource_name).to eql(:homebrew_cask)
41
26
  end
42
27
 
43
- context "name with high fun" do
44
- let(:resource) { Chef::Resource::HomebrewCask.new("fakey-fakerton") }
45
-
46
- it "the cask_name property is the name_property" do
47
- expect(resource.cask_name).to eql("fakey-fakerton")
48
- end
28
+ it "the cask_name property is the name_property" do
29
+ expect(resource.cask_name).to eql("fakey_fakerton")
49
30
  end
50
31
 
51
- context "name with at mark" do
52
- let(:resource) { Chef::Resource::HomebrewCask.new("fakey-fakerton@10") }
32
+ it "sets the default action as :install" do
33
+ expect(resource.action).to eql([:install])
34
+ end
53
35
 
54
- it "the cask_name property is the name_property" do
55
- expect(resource.cask_name).to eql("fakey-fakerton@10")
56
- end
36
+ it "supports :install, :remove actions" do
37
+ expect { resource.action :install }.not_to raise_error
38
+ expect { resource.action :remove }.not_to raise_error
57
39
  end
58
40
  end