chef 16.18.0 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (649) 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 +5 -5
  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 +9 -24
  40. data/lib/chef/node/immutable_collections.rb +13 -0
  41. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  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 +8 -9
  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 +2 -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 +9 -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/client_spec.rb +4 -4
  246. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  247. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  248. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  249. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  250. data/spec/unit/compliance/runner_spec.rb +30 -4
  251. data/spec/unit/cookbook_version_spec.rb +0 -52
  252. data/spec/unit/data_bag_item_spec.rb +1 -6
  253. data/spec/unit/data_collector_spec.rb +2 -71
  254. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  255. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  256. data/spec/unit/lwrp_spec.rb +1 -1
  257. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  258. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  259. data/spec/unit/node/attribute_spec.rb +1 -1
  260. data/spec/unit/node_spec.rb +78 -0
  261. data/spec/unit/org_group_spec.rb +45 -0
  262. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  263. data/spec/unit/property_spec.rb +23 -22
  264. data/spec/unit/provider/cron_spec.rb +1 -1
  265. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  266. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  267. data/spec/unit/provider/group/pw_spec.rb +2 -2
  268. data/spec/unit/provider/group_spec.rb +1 -1
  269. data/spec/unit/provider/package/apt_spec.rb +84 -18
  270. data/spec/unit/provider/package/deb_spec.rb +3 -3
  271. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  272. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  273. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  274. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  275. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  276. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  277. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  278. data/spec/unit/provider/service/windows_spec.rb +2 -2
  279. data/spec/unit/provider/subversion_spec.rb +2 -2
  280. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  281. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  282. data/spec/unit/provider_spec.rb +0 -8
  283. data/spec/unit/resource/archive_file_spec.rb +1 -13
  284. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  285. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  286. data/spec/unit/resource/mount_spec.rb +0 -10
  287. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  288. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  289. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  290. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  291. data/spec/unit/resource/windows_task_spec.rb +1 -1
  292. data/spec/unit/resource_spec.rb +2 -7
  293. data/spec/unit/user_spec.rb +1 -1
  294. data/spec/unit/user_v1_spec.rb +6 -4
  295. data/tasks/rspec.rb +15 -7
  296. metadata +17 -380
  297. data/bin/knife +0 -24
  298. data/lib/chef/application/knife.rb +0 -234
  299. data/lib/chef/application/windows_service.rb +0 -338
  300. data/lib/chef/application/windows_service_manager.rb +0 -205
  301. data/lib/chef/chef_fs/knife.rb +0 -160
  302. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  303. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  304. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  305. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  306. data/lib/chef/knife/acl_add.rb +0 -57
  307. data/lib/chef/knife/acl_base.rb +0 -183
  308. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  309. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  310. data/lib/chef/knife/acl_remove.rb +0 -62
  311. data/lib/chef/knife/acl_show.rb +0 -56
  312. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  313. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  314. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  315. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  316. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  317. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  318. data/lib/chef/knife/bootstrap.rb +0 -1192
  319. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  320. data/lib/chef/knife/client_create.rb +0 -101
  321. data/lib/chef/knife/client_delete.rb +0 -62
  322. data/lib/chef/knife/client_edit.rb +0 -52
  323. data/lib/chef/knife/client_key_create.rb +0 -73
  324. data/lib/chef/knife/client_key_delete.rb +0 -80
  325. data/lib/chef/knife/client_key_edit.rb +0 -83
  326. data/lib/chef/knife/client_key_list.rb +0 -73
  327. data/lib/chef/knife/client_key_show.rb +0 -80
  328. data/lib/chef/knife/client_list.rb +0 -41
  329. data/lib/chef/knife/client_reregister.rb +0 -58
  330. data/lib/chef/knife/client_show.rb +0 -48
  331. data/lib/chef/knife/config_get.rb +0 -39
  332. data/lib/chef/knife/config_get_profile.rb +0 -37
  333. data/lib/chef/knife/config_list.rb +0 -139
  334. data/lib/chef/knife/config_list_profiles.rb +0 -37
  335. data/lib/chef/knife/config_show.rb +0 -127
  336. data/lib/chef/knife/config_use.rb +0 -61
  337. data/lib/chef/knife/config_use_profile.rb +0 -47
  338. data/lib/chef/knife/configure.rb +0 -150
  339. data/lib/chef/knife/configure_client.rb +0 -48
  340. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  341. data/lib/chef/knife/cookbook_delete.rb +0 -151
  342. data/lib/chef/knife/cookbook_download.rb +0 -142
  343. data/lib/chef/knife/cookbook_list.rb +0 -47
  344. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  345. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  346. data/lib/chef/knife/cookbook_show.rb +0 -98
  347. data/lib/chef/knife/cookbook_upload.rb +0 -292
  348. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  349. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  350. data/lib/chef/knife/core/formatting_options.rb +0 -49
  351. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  352. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  353. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  354. data/lib/chef/knife/core/node_editor.rb +0 -130
  355. data/lib/chef/knife/core/node_presenter.rb +0 -133
  356. data/lib/chef/knife/core/object_loader.rb +0 -115
  357. data/lib/chef/knife/core/status_presenter.rb +0 -147
  358. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  359. data/lib/chef/knife/core/text_formatter.rb +0 -85
  360. data/lib/chef/knife/core/ui.rb +0 -338
  361. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  362. data/lib/chef/knife/data_bag_create.rb +0 -81
  363. data/lib/chef/knife/data_bag_delete.rb +0 -49
  364. data/lib/chef/knife/data_bag_edit.rb +0 -74
  365. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  366. data/lib/chef/knife/data_bag_list.rb +0 -42
  367. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  368. data/lib/chef/knife/data_bag_show.rb +0 -69
  369. data/lib/chef/knife/delete.rb +0 -125
  370. data/lib/chef/knife/deps.rb +0 -156
  371. data/lib/chef/knife/diff.rb +0 -83
  372. data/lib/chef/knife/download.rb +0 -84
  373. data/lib/chef/knife/edit.rb +0 -88
  374. data/lib/chef/knife/environment_compare.rb +0 -128
  375. data/lib/chef/knife/environment_create.rb +0 -52
  376. data/lib/chef/knife/environment_delete.rb +0 -44
  377. data/lib/chef/knife/environment_edit.rb +0 -44
  378. data/lib/chef/knife/environment_from_file.rb +0 -84
  379. data/lib/chef/knife/environment_list.rb +0 -41
  380. data/lib/chef/knife/environment_show.rb +0 -47
  381. data/lib/chef/knife/exec.rb +0 -99
  382. data/lib/chef/knife/group_add.rb +0 -55
  383. data/lib/chef/knife/group_create.rb +0 -49
  384. data/lib/chef/knife/group_destroy.rb +0 -53
  385. data/lib/chef/knife/group_list.rb +0 -43
  386. data/lib/chef/knife/group_remove.rb +0 -56
  387. data/lib/chef/knife/group_show.rb +0 -49
  388. data/lib/chef/knife/key_create.rb +0 -112
  389. data/lib/chef/knife/key_create_base.rb +0 -50
  390. data/lib/chef/knife/key_delete.rb +0 -55
  391. data/lib/chef/knife/key_edit.rb +0 -118
  392. data/lib/chef/knife/key_edit_base.rb +0 -55
  393. data/lib/chef/knife/key_list.rb +0 -90
  394. data/lib/chef/knife/key_list_base.rb +0 -45
  395. data/lib/chef/knife/key_show.rb +0 -53
  396. data/lib/chef/knife/list.rb +0 -177
  397. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  398. data/lib/chef/knife/node_create.rb +0 -47
  399. data/lib/chef/knife/node_delete.rb +0 -46
  400. data/lib/chef/knife/node_edit.rb +0 -70
  401. data/lib/chef/knife/node_environment_set.rb +0 -53
  402. data/lib/chef/knife/node_from_file.rb +0 -51
  403. data/lib/chef/knife/node_list.rb +0 -44
  404. data/lib/chef/knife/node_policy_set.rb +0 -79
  405. data/lib/chef/knife/node_run_list_add.rb +0 -104
  406. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  407. data/lib/chef/knife/node_run_list_set.rb +0 -66
  408. data/lib/chef/knife/node_show.rb +0 -63
  409. data/lib/chef/knife/null.rb +0 -12
  410. data/lib/chef/knife/raw.rb +0 -123
  411. data/lib/chef/knife/recipe_list.rb +0 -32
  412. data/lib/chef/knife/rehash.rb +0 -50
  413. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  414. data/lib/chef/knife/role_create.rb +0 -53
  415. data/lib/chef/knife/role_delete.rb +0 -46
  416. data/lib/chef/knife/role_edit.rb +0 -45
  417. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  418. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  419. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  420. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  421. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  422. data/lib/chef/knife/role_from_file.rb +0 -51
  423. data/lib/chef/knife/role_list.rb +0 -42
  424. data/lib/chef/knife/role_run_list_add.rb +0 -87
  425. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  426. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  427. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  428. data/lib/chef/knife/role_run_list_set.rb +0 -69
  429. data/lib/chef/knife/role_show.rb +0 -48
  430. data/lib/chef/knife/search.rb +0 -194
  431. data/lib/chef/knife/serve.rb +0 -65
  432. data/lib/chef/knife/show.rb +0 -72
  433. data/lib/chef/knife/ssh.rb +0 -645
  434. data/lib/chef/knife/ssl_check.rb +0 -284
  435. data/lib/chef/knife/ssl_fetch.rb +0 -161
  436. data/lib/chef/knife/status.rb +0 -95
  437. data/lib/chef/knife/supermarket_download.rb +0 -121
  438. data/lib/chef/knife/supermarket_install.rb +0 -192
  439. data/lib/chef/knife/supermarket_list.rb +0 -76
  440. data/lib/chef/knife/supermarket_search.rb +0 -53
  441. data/lib/chef/knife/supermarket_share.rb +0 -166
  442. data/lib/chef/knife/supermarket_show.rb +0 -66
  443. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  444. data/lib/chef/knife/tag_create.rb +0 -52
  445. data/lib/chef/knife/tag_delete.rb +0 -60
  446. data/lib/chef/knife/tag_list.rb +0 -47
  447. data/lib/chef/knife/upload.rb +0 -86
  448. data/lib/chef/knife/user_create.rb +0 -107
  449. data/lib/chef/knife/user_delete.rb +0 -44
  450. data/lib/chef/knife/user_dissociate.rb +0 -42
  451. data/lib/chef/knife/user_edit.rb +0 -52
  452. data/lib/chef/knife/user_invite_add.rb +0 -43
  453. data/lib/chef/knife/user_invite_list.rb +0 -34
  454. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  455. data/lib/chef/knife/user_key_create.rb +0 -73
  456. data/lib/chef/knife/user_key_delete.rb +0 -80
  457. data/lib/chef/knife/user_key_edit.rb +0 -83
  458. data/lib/chef/knife/user_key_list.rb +0 -73
  459. data/lib/chef/knife/user_key_show.rb +0 -80
  460. data/lib/chef/knife/user_list.rb +0 -42
  461. data/lib/chef/knife/user_reregister.rb +0 -59
  462. data/lib/chef/knife/user_show.rb +0 -48
  463. data/lib/chef/knife/xargs.rb +0 -282
  464. data/lib/chef/knife/yaml_convert.rb +0 -91
  465. data/lib/chef/knife.rb +0 -665
  466. data/lib/chef/resource/user/dscl_user.rb +0 -35
  467. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  468. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  469. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  470. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  471. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  472. data/spec/functional/knife/configure_spec.rb +0 -33
  473. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  474. data/spec/functional/knife/exec_spec.rb +0 -55
  475. data/spec/functional/knife/rehash_spec.rb +0 -39
  476. data/spec/functional/knife/smoke_test.rb +0 -42
  477. data/spec/functional/knife/ssh_spec.rb +0 -352
  478. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  479. data/spec/functional/resource/windows_service_spec.rb +0 -105
  480. data/spec/functional/win32/service_manager_spec.rb +0 -220
  481. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  482. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  483. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  484. data/spec/integration/knife/chefignore_spec.rb +0 -301
  485. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  486. data/spec/integration/knife/client_create_spec.rb +0 -70
  487. data/spec/integration/knife/client_delete_spec.rb +0 -64
  488. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  489. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  490. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  491. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  492. data/spec/integration/knife/client_list_spec.rb +0 -49
  493. data/spec/integration/knife/client_show_spec.rb +0 -37
  494. data/spec/integration/knife/common_options_spec.rb +0 -174
  495. data/spec/integration/knife/config_list_spec.rb +0 -220
  496. data/spec/integration/knife/config_show_spec.rb +0 -192
  497. data/spec/integration/knife/config_use_spec.rb +0 -198
  498. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  499. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  500. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  501. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  502. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  503. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  504. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  505. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  506. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  507. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  508. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  509. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  510. data/spec/integration/knife/delete_spec.rb +0 -1018
  511. data/spec/integration/knife/deps_spec.rb +0 -703
  512. data/spec/integration/knife/diff_spec.rb +0 -605
  513. data/spec/integration/knife/download_spec.rb +0 -1336
  514. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  515. data/spec/integration/knife/environment_create_spec.rb +0 -41
  516. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  517. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  518. data/spec/integration/knife/environment_list_spec.rb +0 -42
  519. data/spec/integration/knife/environment_show_spec.rb +0 -77
  520. data/spec/integration/knife/list_spec.rb +0 -1060
  521. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  522. data/spec/integration/knife/node_create_spec.rb +0 -47
  523. data/spec/integration/knife/node_delete_spec.rb +0 -48
  524. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  525. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  526. data/spec/integration/knife/node_list_spec.rb +0 -45
  527. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  528. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  529. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  530. data/spec/integration/knife/node_show_spec.rb +0 -36
  531. data/spec/integration/knife/raw_spec.rb +0 -297
  532. data/spec/integration/knife/redirection_spec.rb +0 -64
  533. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  534. data/spec/integration/knife/role_create_spec.rb +0 -41
  535. data/spec/integration/knife/role_delete_spec.rb +0 -48
  536. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  537. data/spec/integration/knife/role_list_spec.rb +0 -45
  538. data/spec/integration/knife/role_show_spec.rb +0 -51
  539. data/spec/integration/knife/search_node_spec.rb +0 -40
  540. data/spec/integration/knife/serve_spec.rb +0 -92
  541. data/spec/integration/knife/show_spec.rb +0 -197
  542. data/spec/integration/knife/upload_spec.rb +0 -1616
  543. data/spec/support/shared/functional/knife.rb +0 -37
  544. data/spec/support/shared/functional/win32_service.rb +0 -57
  545. data/spec/support/shared/integration/knife_support.rb +0 -192
  546. data/spec/support/shared/unit/knife_shared.rb +0 -39
  547. data/spec/unit/application/knife_spec.rb +0 -241
  548. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  549. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  550. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  551. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  552. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  553. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  554. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  555. data/spec/unit/knife/client_create_spec.rb +0 -169
  556. data/spec/unit/knife/client_delete_spec.rb +0 -99
  557. data/spec/unit/knife/client_edit_spec.rb +0 -53
  558. data/spec/unit/knife/client_list_spec.rb +0 -34
  559. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  560. data/spec/unit/knife/client_show_spec.rb +0 -52
  561. data/spec/unit/knife/configure_client_spec.rb +0 -81
  562. data/spec/unit/knife/configure_spec.rb +0 -190
  563. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  564. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  565. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  566. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  567. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  568. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  569. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  570. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  571. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  572. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  573. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  574. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  575. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  576. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  577. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  578. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  579. data/spec/unit/knife/core/ui_spec.rb +0 -656
  580. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  581. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  582. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  583. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  584. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  585. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  586. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  587. data/spec/unit/knife/environment_create_spec.rb +0 -91
  588. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  589. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  590. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  591. data/spec/unit/knife/environment_list_spec.rb +0 -54
  592. data/spec/unit/knife/environment_show_spec.rb +0 -52
  593. data/spec/unit/knife/key_create_spec.rb +0 -223
  594. data/spec/unit/knife/key_delete_spec.rb +0 -133
  595. data/spec/unit/knife/key_edit_spec.rb +0 -264
  596. data/spec/unit/knife/key_helper.rb +0 -74
  597. data/spec/unit/knife/key_list_spec.rb +0 -216
  598. data/spec/unit/knife/key_show_spec.rb +0 -126
  599. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  600. data/spec/unit/knife/node_delete_spec.rb +0 -77
  601. data/spec/unit/knife/node_edit_spec.rb +0 -116
  602. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  603. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  604. data/spec/unit/knife/node_list_spec.rb +0 -62
  605. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  606. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  607. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  608. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  609. data/spec/unit/knife/node_show_spec.rb +0 -65
  610. data/spec/unit/knife/raw_spec.rb +0 -43
  611. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  612. data/spec/unit/knife/role_create_spec.rb +0 -80
  613. data/spec/unit/knife/role_delete_spec.rb +0 -67
  614. data/spec/unit/knife/role_edit_spec.rb +0 -77
  615. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  616. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  617. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  618. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  619. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  620. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  621. data/spec/unit/knife/role_list_spec.rb +0 -54
  622. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  623. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  624. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  625. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  626. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  627. data/spec/unit/knife/role_show_spec.rb +0 -59
  628. data/spec/unit/knife/ssh_spec.rb +0 -403
  629. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  630. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  631. data/spec/unit/knife/status_spec.rb +0 -112
  632. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  633. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  634. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  635. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  636. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  637. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  638. data/spec/unit/knife/tag_create_spec.rb +0 -23
  639. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  640. data/spec/unit/knife/tag_list_spec.rb +0 -23
  641. data/spec/unit/knife/user_create_spec.rb +0 -184
  642. data/spec/unit/knife/user_delete_spec.rb +0 -46
  643. data/spec/unit/knife/user_edit_spec.rb +0 -48
  644. data/spec/unit/knife/user_list_spec.rb +0 -36
  645. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  646. data/spec/unit/knife/user_show_spec.rb +0 -46
  647. data/spec/unit/knife_spec.rb +0 -634
  648. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  649. 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
@@ -17,19 +17,7 @@
17
17
 
18
18
  require "spec_helper"
19
19
 
20
- begin
21
- require "ffi-libarchive"
22
- rescue LoadError
23
- module Archive
24
- class Reader
25
- def close; end
26
- def each_entry; end
27
- def extract(entry, flags = 0, destination: nil); end
28
- end
29
- end
30
- end
31
-
32
- describe Chef::Resource::ArchiveFile, :not_supported_on_aix do
20
+ describe Chef::Resource::ArchiveFile do
33
21
  let(:node) { Chef::Node.new }
34
22
  let(:events) { Chef::EventDispatch::Dispatcher.new }
35
23
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
@@ -51,18 +51,4 @@ describe Chef::Resource::ChefClientTrustedCertificate do
51
51
  expect(provider.cert_path).to match(%r{trusted_certs/something.pem$})
52
52
  end
53
53
  end
54
-
55
- describe "sensitive attribute" do
56
- context "should be insensitive by default" do
57
- it { expect(resource.sensitive).to(be_falsey) }
58
- end
59
-
60
- context "when set" do
61
- before { resource.sensitive(true) }
62
-
63
- it "should be set on the resource" do
64
- expect(resource.sensitive).to(be_truthy)
65
- end
66
- end
67
- end
68
54
  end