chef 16.18.30 → 17.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (675) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -22
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -2
  6. data/chef.gemspec +7 -10
  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/checksum.rb +0 -6
  39. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  40. data/lib/chef/mixin/powershell_exec.rb +26 -7
  41. data/lib/chef/node/attribute.rb +9 -24
  42. data/lib/chef/node/immutable_collections.rb +13 -0
  43. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  44. data/lib/chef/node.rb +19 -20
  45. data/lib/chef/org.rb +3 -2
  46. data/lib/chef/platform/query_helpers.rb +2 -2
  47. data/lib/chef/policy_builder/policyfile.rb +0 -5
  48. data/lib/chef/property.rb +18 -0
  49. data/lib/chef/provider/cron.rb +2 -6
  50. data/lib/chef/provider/execute.rb +2 -1
  51. data/lib/chef/provider/file.rb +3 -3
  52. data/lib/chef/provider/git.rb +5 -7
  53. data/lib/chef/provider/group/dscl.rb +1 -1
  54. data/lib/chef/provider/group/groupadd.rb +3 -3
  55. data/lib/chef/provider/group/groupmod.rb +3 -3
  56. data/lib/chef/provider/group/pw.rb +3 -3
  57. data/lib/chef/provider/ifconfig.rb +2 -2
  58. data/lib/chef/provider/link.rb +2 -2
  59. data/lib/chef/provider/mount/aix.rb +3 -3
  60. data/lib/chef/provider/mount/mount.rb +5 -5
  61. data/lib/chef/provider/mount/windows.rb +1 -1
  62. data/lib/chef/provider/mount.rb +5 -5
  63. data/lib/chef/provider/package/apt.rb +27 -1
  64. data/lib/chef/provider/package/deb.rb +3 -3
  65. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  66. data/lib/chef/provider/package/portage.rb +2 -2
  67. data/lib/chef/provider/package/powershell.rb +0 -5
  68. data/lib/chef/provider/package/rubygems.rb +9 -15
  69. data/lib/chef/provider/package/windows.rb +3 -5
  70. data/lib/chef/provider/package/yum/yum_helper.py +11 -1
  71. data/lib/chef/provider/package.rb +17 -21
  72. data/lib/chef/provider/route.rb +2 -2
  73. data/lib/chef/provider/service/aixinit.rb +1 -1
  74. data/lib/chef/provider/service/debian.rb +1 -1
  75. data/lib/chef/provider/service/freebsd.rb +15 -21
  76. data/lib/chef/provider/service/macosx.rb +4 -4
  77. data/lib/chef/provider/service/systemd.rb +43 -14
  78. data/lib/chef/provider/service/upstart.rb +2 -13
  79. data/lib/chef/provider/service/windows.rb +12 -12
  80. data/lib/chef/provider/service.rb +6 -6
  81. data/lib/chef/provider/subversion.rb +10 -12
  82. data/lib/chef/provider/systemd_unit.rb +36 -10
  83. data/lib/chef/provider/template/content.rb +3 -7
  84. data/lib/chef/provider/user/dscl.rb +1 -1
  85. data/lib/chef/provider/user/mac.rb +17 -20
  86. data/lib/chef/provider/user/pw.rb +1 -1
  87. data/lib/chef/provider/user/windows.rb +1 -1
  88. data/lib/chef/provider/user.rb +2 -2
  89. data/lib/chef/provider/zypper_repository.rb +2 -2
  90. data/lib/chef/provider.rb +1 -1
  91. data/lib/chef/providers.rb +0 -1
  92. data/lib/chef/resource/alternatives.rb +6 -6
  93. data/lib/chef/resource/apt_package.rb +1 -1
  94. data/lib/chef/resource/apt_preference.rb +2 -2
  95. data/lib/chef/resource/apt_repository.rb +6 -6
  96. data/lib/chef/resource/apt_update.rb +3 -2
  97. data/lib/chef/resource/archive_file.rb +8 -9
  98. data/lib/chef/resource/breakpoint.rb +1 -1
  99. data/lib/chef/resource/build_essential.rb +2 -6
  100. data/lib/chef/resource/chef_client_config.rb +2 -2
  101. data/lib/chef/resource/chef_client_cron.rb +4 -4
  102. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  103. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  104. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  105. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  106. data/lib/chef/resource/chef_handler.rb +3 -7
  107. data/lib/chef/resource/chef_sleep.rb +1 -1
  108. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  109. data/lib/chef/resource/chocolatey_config.rb +2 -6
  110. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  111. data/lib/chef/resource/chocolatey_source.rb +4 -10
  112. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  113. data/lib/chef/resource/cron_access.rb +2 -4
  114. data/lib/chef/resource/dmg_package.rb +6 -10
  115. data/lib/chef/resource/dpkg_package.rb +1 -1
  116. data/lib/chef/resource/execute.rb +6 -1
  117. data/lib/chef/resource/file.rb +1 -1
  118. data/lib/chef/resource/group.rb +2 -2
  119. data/lib/chef/resource/homebrew_cask.rb +5 -15
  120. data/lib/chef/resource/homebrew_tap.rb +2 -6
  121. data/lib/chef/resource/hostname.rb +21 -17
  122. data/lib/chef/resource/http_request.rb +1 -1
  123. data/lib/chef/resource/kernel_module.rb +6 -17
  124. data/lib/chef/resource/locale.rb +3 -4
  125. data/lib/chef/resource/lwrp_base.rb +4 -0
  126. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  127. data/lib/chef/resource/mdadm.rb +53 -7
  128. data/lib/chef/resource/mount.rb +3 -2
  129. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  130. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  131. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  132. data/lib/chef/resource/plist.rb +7 -7
  133. data/lib/chef/resource/powershell_script.rb +1 -1
  134. data/lib/chef/resource/remote_file.rb +1 -1
  135. data/lib/chef/resource/rhsm_errata.rb +16 -1
  136. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  137. data/lib/chef/resource/rhsm_register.rb +12 -23
  138. data/lib/chef/resource/rhsm_repo.rb +2 -6
  139. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  140. data/lib/chef/resource/scm/git.rb +1 -1
  141. data/lib/chef/resource/sudo.rb +6 -6
  142. data/lib/chef/resource/support/client.erb +2 -6
  143. data/lib/chef/resource/sysctl.rb +2 -6
  144. data/lib/chef/resource/systemd_unit.rb +3 -3
  145. data/lib/chef/resource/template.rb +1 -1
  146. data/lib/chef/resource/timezone.rb +1 -3
  147. data/lib/chef/resource/user/mac_user.rb +1 -1
  148. data/lib/chef/resource/user_ulimit.rb +2 -3
  149. data/lib/chef/resource/windows_ad_join.rb +2 -6
  150. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  151. data/lib/chef/resource/windows_auto_run.rb +2 -5
  152. data/lib/chef/resource/windows_certificate.rb +207 -73
  153. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  154. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  155. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  156. data/lib/chef/resource/windows_dns_record.rb +2 -6
  157. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  158. data/lib/chef/resource/windows_env.rb +5 -4
  159. data/lib/chef/resource/windows_feature.rb +3 -9
  160. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  161. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  162. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  163. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  164. data/lib/chef/resource/windows_font.rb +2 -4
  165. data/lib/chef/resource/windows_pagefile.rb +2 -6
  166. data/lib/chef/resource/windows_path.rb +2 -2
  167. data/lib/chef/resource/windows_printer.rb +4 -4
  168. data/lib/chef/resource/windows_printer_port.rb +6 -6
  169. data/lib/chef/resource/windows_security_policy.rb +9 -12
  170. data/lib/chef/resource/windows_share.rb +14 -21
  171. data/lib/chef/resource/windows_shortcut.rb +4 -6
  172. data/lib/chef/resource/windows_task.rb +17 -5
  173. data/lib/chef/resource/windows_uac.rb +2 -4
  174. data/lib/chef/resource/windows_user_privilege.rb +26 -36
  175. data/lib/chef/resource/windows_workgroup.rb +1 -2
  176. data/lib/chef/resource.rb +1 -1
  177. data/lib/chef/resource_reporter.rb +1 -1
  178. data/lib/chef/resources.rb +0 -1
  179. data/lib/chef/shell/ext.rb +3 -3
  180. data/lib/chef/user.rb +0 -1
  181. data/lib/chef/user_v1.rb +3 -4
  182. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  183. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  184. data/lib/chef/version.rb +1 -1
  185. data/lib/chef/win32/api.rb +2 -9
  186. data/lib/chef/win32/registry.rb +4 -2
  187. data/lib/chef/win32/version.rb +2 -4
  188. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  189. data/spec/data/lwrp/resources/bar.rb +2 -0
  190. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  191. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  192. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  193. data/spec/data/lwrp/resources/foo.rb +2 -0
  194. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  195. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  196. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  197. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  198. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  199. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  200. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  201. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  202. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  203. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  204. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  205. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  206. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  207. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  208. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  209. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  210. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  211. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  212. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  213. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  214. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  215. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  216. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  217. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  218. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  219. data/spec/functional/resource/apt_package_spec.rb +1 -1
  220. data/spec/functional/resource/chocolatey_package_spec.rb +9 -0
  221. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  222. data/spec/functional/resource/dsc_script_spec.rb +1 -1
  223. data/spec/functional/resource/group_spec.rb +1 -5
  224. data/spec/functional/resource/link_spec.rb +0 -8
  225. data/spec/functional/resource/registry_spec.rb +8 -8
  226. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  227. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  228. data/spec/functional/resource/windows_font_spec.rb +1 -2
  229. data/spec/functional/resource/yum_package_spec.rb +0 -12
  230. data/spec/functional/shell_spec.rb +0 -5
  231. data/spec/functional/version_spec.rb +1 -1
  232. data/spec/functional/win32/registry_spec.rb +1 -1
  233. data/spec/integration/client/client_spec.rb +5 -2
  234. data/spec/integration/client/exit_code_spec.rb +1 -1
  235. data/spec/integration/client/ipv6_spec.rb +1 -1
  236. data/spec/integration/compliance/compliance_spec.rb +1 -1
  237. data/spec/integration/ohai/ohai_spec.rb +7 -6
  238. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  239. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  240. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  241. data/spec/integration/recipes/notifies_spec.rb +15 -1
  242. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  243. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  244. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  245. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  246. data/spec/spec_helper.rb +10 -17
  247. data/spec/support/chef_helpers.rb +0 -16
  248. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  249. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  250. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  251. data/spec/support/matchers/leak.rb +7 -9
  252. data/spec/support/platform_helpers.rb +1 -12
  253. data/spec/support/shared/integration/integration_helper.rb +0 -1
  254. data/spec/support/shared/unit/script_resource.rb +2 -2
  255. data/spec/unit/application/solo_spec.rb +2 -2
  256. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  257. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  258. data/spec/unit/client_spec.rb +4 -4
  259. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  260. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  261. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  262. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  263. data/spec/unit/compliance/runner_spec.rb +30 -4
  264. data/spec/unit/cookbook_version_spec.rb +0 -52
  265. data/spec/unit/daemon_spec.rb +5 -1
  266. data/spec/unit/data_bag_item_spec.rb +1 -6
  267. data/spec/unit/data_collector_spec.rb +2 -71
  268. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  269. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  270. data/spec/unit/lwrp_spec.rb +1 -1
  271. data/spec/unit/mixin/checksum_spec.rb +0 -28
  272. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  273. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  274. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  275. data/spec/unit/node/attribute_spec.rb +1 -1
  276. data/spec/unit/node_spec.rb +78 -0
  277. data/spec/unit/org_group_spec.rb +45 -0
  278. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  279. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  280. data/spec/unit/property_spec.rb +23 -22
  281. data/spec/unit/provider/cron_spec.rb +1 -35
  282. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  283. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  284. data/spec/unit/provider/group/pw_spec.rb +2 -2
  285. data/spec/unit/provider/group_spec.rb +1 -1
  286. data/spec/unit/provider/package/apt_spec.rb +84 -18
  287. data/spec/unit/provider/package/deb_spec.rb +3 -3
  288. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  289. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  290. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  291. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  292. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  293. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  294. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  295. data/spec/unit/provider/service/windows_spec.rb +2 -2
  296. data/spec/unit/provider/subversion_spec.rb +2 -2
  297. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  298. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  299. data/spec/unit/provider_spec.rb +0 -8
  300. data/spec/unit/resource/archive_file_spec.rb +1 -13
  301. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  302. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  303. data/spec/unit/resource/mount_spec.rb +0 -10
  304. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  305. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  306. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  307. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  308. data/spec/unit/resource/windows_task_spec.rb +1 -1
  309. data/spec/unit/resource_spec.rb +2 -7
  310. data/spec/unit/user_spec.rb +1 -1
  311. data/spec/unit/user_v1_spec.rb +6 -4
  312. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  313. data/tasks/rspec.rb +15 -7
  314. metadata +43 -388
  315. data/bin/knife +0 -24
  316. data/lib/chef/application/knife.rb +0 -234
  317. data/lib/chef/application/windows_service.rb +0 -338
  318. data/lib/chef/application/windows_service_manager.rb +0 -205
  319. data/lib/chef/chef_fs/knife.rb +0 -160
  320. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  321. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  322. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  323. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  324. data/lib/chef/knife/acl_add.rb +0 -57
  325. data/lib/chef/knife/acl_base.rb +0 -183
  326. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  327. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  328. data/lib/chef/knife/acl_remove.rb +0 -62
  329. data/lib/chef/knife/acl_show.rb +0 -56
  330. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  331. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  332. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  333. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  334. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  335. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  336. data/lib/chef/knife/bootstrap.rb +0 -1192
  337. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  338. data/lib/chef/knife/client_create.rb +0 -101
  339. data/lib/chef/knife/client_delete.rb +0 -62
  340. data/lib/chef/knife/client_edit.rb +0 -52
  341. data/lib/chef/knife/client_key_create.rb +0 -73
  342. data/lib/chef/knife/client_key_delete.rb +0 -80
  343. data/lib/chef/knife/client_key_edit.rb +0 -83
  344. data/lib/chef/knife/client_key_list.rb +0 -73
  345. data/lib/chef/knife/client_key_show.rb +0 -80
  346. data/lib/chef/knife/client_list.rb +0 -41
  347. data/lib/chef/knife/client_reregister.rb +0 -58
  348. data/lib/chef/knife/client_show.rb +0 -48
  349. data/lib/chef/knife/config_get.rb +0 -39
  350. data/lib/chef/knife/config_get_profile.rb +0 -37
  351. data/lib/chef/knife/config_list.rb +0 -139
  352. data/lib/chef/knife/config_list_profiles.rb +0 -37
  353. data/lib/chef/knife/config_show.rb +0 -127
  354. data/lib/chef/knife/config_use.rb +0 -61
  355. data/lib/chef/knife/config_use_profile.rb +0 -47
  356. data/lib/chef/knife/configure.rb +0 -150
  357. data/lib/chef/knife/configure_client.rb +0 -48
  358. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  359. data/lib/chef/knife/cookbook_delete.rb +0 -151
  360. data/lib/chef/knife/cookbook_download.rb +0 -142
  361. data/lib/chef/knife/cookbook_list.rb +0 -47
  362. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  363. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  364. data/lib/chef/knife/cookbook_show.rb +0 -98
  365. data/lib/chef/knife/cookbook_upload.rb +0 -292
  366. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  367. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  368. data/lib/chef/knife/core/formatting_options.rb +0 -49
  369. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  370. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  371. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  372. data/lib/chef/knife/core/node_editor.rb +0 -130
  373. data/lib/chef/knife/core/node_presenter.rb +0 -133
  374. data/lib/chef/knife/core/object_loader.rb +0 -115
  375. data/lib/chef/knife/core/status_presenter.rb +0 -147
  376. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  377. data/lib/chef/knife/core/text_formatter.rb +0 -85
  378. data/lib/chef/knife/core/ui.rb +0 -338
  379. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  380. data/lib/chef/knife/data_bag_create.rb +0 -81
  381. data/lib/chef/knife/data_bag_delete.rb +0 -49
  382. data/lib/chef/knife/data_bag_edit.rb +0 -74
  383. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  384. data/lib/chef/knife/data_bag_list.rb +0 -42
  385. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  386. data/lib/chef/knife/data_bag_show.rb +0 -69
  387. data/lib/chef/knife/delete.rb +0 -125
  388. data/lib/chef/knife/deps.rb +0 -156
  389. data/lib/chef/knife/diff.rb +0 -83
  390. data/lib/chef/knife/download.rb +0 -84
  391. data/lib/chef/knife/edit.rb +0 -88
  392. data/lib/chef/knife/environment_compare.rb +0 -128
  393. data/lib/chef/knife/environment_create.rb +0 -52
  394. data/lib/chef/knife/environment_delete.rb +0 -44
  395. data/lib/chef/knife/environment_edit.rb +0 -44
  396. data/lib/chef/knife/environment_from_file.rb +0 -84
  397. data/lib/chef/knife/environment_list.rb +0 -41
  398. data/lib/chef/knife/environment_show.rb +0 -47
  399. data/lib/chef/knife/exec.rb +0 -99
  400. data/lib/chef/knife/group_add.rb +0 -55
  401. data/lib/chef/knife/group_create.rb +0 -49
  402. data/lib/chef/knife/group_destroy.rb +0 -53
  403. data/lib/chef/knife/group_list.rb +0 -43
  404. data/lib/chef/knife/group_remove.rb +0 -56
  405. data/lib/chef/knife/group_show.rb +0 -49
  406. data/lib/chef/knife/key_create.rb +0 -112
  407. data/lib/chef/knife/key_create_base.rb +0 -50
  408. data/lib/chef/knife/key_delete.rb +0 -55
  409. data/lib/chef/knife/key_edit.rb +0 -118
  410. data/lib/chef/knife/key_edit_base.rb +0 -55
  411. data/lib/chef/knife/key_list.rb +0 -90
  412. data/lib/chef/knife/key_list_base.rb +0 -45
  413. data/lib/chef/knife/key_show.rb +0 -53
  414. data/lib/chef/knife/list.rb +0 -177
  415. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  416. data/lib/chef/knife/node_create.rb +0 -47
  417. data/lib/chef/knife/node_delete.rb +0 -46
  418. data/lib/chef/knife/node_edit.rb +0 -70
  419. data/lib/chef/knife/node_environment_set.rb +0 -53
  420. data/lib/chef/knife/node_from_file.rb +0 -51
  421. data/lib/chef/knife/node_list.rb +0 -44
  422. data/lib/chef/knife/node_policy_set.rb +0 -79
  423. data/lib/chef/knife/node_run_list_add.rb +0 -104
  424. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  425. data/lib/chef/knife/node_run_list_set.rb +0 -66
  426. data/lib/chef/knife/node_show.rb +0 -63
  427. data/lib/chef/knife/null.rb +0 -12
  428. data/lib/chef/knife/raw.rb +0 -123
  429. data/lib/chef/knife/recipe_list.rb +0 -32
  430. data/lib/chef/knife/rehash.rb +0 -50
  431. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  432. data/lib/chef/knife/role_create.rb +0 -53
  433. data/lib/chef/knife/role_delete.rb +0 -46
  434. data/lib/chef/knife/role_edit.rb +0 -45
  435. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  436. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  437. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  438. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  439. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  440. data/lib/chef/knife/role_from_file.rb +0 -51
  441. data/lib/chef/knife/role_list.rb +0 -42
  442. data/lib/chef/knife/role_run_list_add.rb +0 -87
  443. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  444. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  445. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  446. data/lib/chef/knife/role_run_list_set.rb +0 -69
  447. data/lib/chef/knife/role_show.rb +0 -48
  448. data/lib/chef/knife/search.rb +0 -194
  449. data/lib/chef/knife/serve.rb +0 -65
  450. data/lib/chef/knife/show.rb +0 -72
  451. data/lib/chef/knife/ssh.rb +0 -645
  452. data/lib/chef/knife/ssl_check.rb +0 -284
  453. data/lib/chef/knife/ssl_fetch.rb +0 -161
  454. data/lib/chef/knife/status.rb +0 -95
  455. data/lib/chef/knife/supermarket_download.rb +0 -121
  456. data/lib/chef/knife/supermarket_install.rb +0 -192
  457. data/lib/chef/knife/supermarket_list.rb +0 -76
  458. data/lib/chef/knife/supermarket_search.rb +0 -53
  459. data/lib/chef/knife/supermarket_share.rb +0 -166
  460. data/lib/chef/knife/supermarket_show.rb +0 -66
  461. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  462. data/lib/chef/knife/tag_create.rb +0 -52
  463. data/lib/chef/knife/tag_delete.rb +0 -60
  464. data/lib/chef/knife/tag_list.rb +0 -47
  465. data/lib/chef/knife/upload.rb +0 -86
  466. data/lib/chef/knife/user_create.rb +0 -107
  467. data/lib/chef/knife/user_delete.rb +0 -44
  468. data/lib/chef/knife/user_dissociate.rb +0 -42
  469. data/lib/chef/knife/user_edit.rb +0 -52
  470. data/lib/chef/knife/user_invite_add.rb +0 -43
  471. data/lib/chef/knife/user_invite_list.rb +0 -34
  472. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  473. data/lib/chef/knife/user_key_create.rb +0 -73
  474. data/lib/chef/knife/user_key_delete.rb +0 -80
  475. data/lib/chef/knife/user_key_edit.rb +0 -83
  476. data/lib/chef/knife/user_key_list.rb +0 -73
  477. data/lib/chef/knife/user_key_show.rb +0 -80
  478. data/lib/chef/knife/user_list.rb +0 -42
  479. data/lib/chef/knife/user_reregister.rb +0 -59
  480. data/lib/chef/knife/user_show.rb +0 -48
  481. data/lib/chef/knife/xargs.rb +0 -282
  482. data/lib/chef/knife/yaml_convert.rb +0 -91
  483. data/lib/chef/knife.rb +0 -665
  484. data/lib/chef/resource/user/dscl_user.rb +0 -35
  485. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  486. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  487. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  488. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  489. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  490. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  491. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  492. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  493. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  494. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  495. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  496. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +0 -55
  497. data/spec/functional/knife/configure_spec.rb +0 -33
  498. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  499. data/spec/functional/knife/exec_spec.rb +0 -55
  500. data/spec/functional/knife/rehash_spec.rb +0 -39
  501. data/spec/functional/knife/smoke_test.rb +0 -42
  502. data/spec/functional/knife/ssh_spec.rb +0 -352
  503. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  504. data/spec/functional/resource/windows_service_spec.rb +0 -105
  505. data/spec/functional/win32/service_manager_spec.rb +0 -220
  506. data/spec/integration/client/fips_spec.rb +0 -21
  507. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  508. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  509. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  510. data/spec/integration/knife/chefignore_spec.rb +0 -301
  511. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  512. data/spec/integration/knife/client_create_spec.rb +0 -70
  513. data/spec/integration/knife/client_delete_spec.rb +0 -64
  514. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  515. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  516. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  517. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  518. data/spec/integration/knife/client_list_spec.rb +0 -49
  519. data/spec/integration/knife/client_show_spec.rb +0 -37
  520. data/spec/integration/knife/common_options_spec.rb +0 -174
  521. data/spec/integration/knife/config_list_spec.rb +0 -220
  522. data/spec/integration/knife/config_show_spec.rb +0 -192
  523. data/spec/integration/knife/config_use_spec.rb +0 -198
  524. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  525. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  526. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  527. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  528. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  529. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  530. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  531. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  532. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  533. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  534. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  535. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  536. data/spec/integration/knife/delete_spec.rb +0 -1018
  537. data/spec/integration/knife/deps_spec.rb +0 -703
  538. data/spec/integration/knife/diff_spec.rb +0 -605
  539. data/spec/integration/knife/download_spec.rb +0 -1336
  540. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  541. data/spec/integration/knife/environment_create_spec.rb +0 -41
  542. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  543. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  544. data/spec/integration/knife/environment_list_spec.rb +0 -42
  545. data/spec/integration/knife/environment_show_spec.rb +0 -77
  546. data/spec/integration/knife/list_spec.rb +0 -1060
  547. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  548. data/spec/integration/knife/node_create_spec.rb +0 -47
  549. data/spec/integration/knife/node_delete_spec.rb +0 -48
  550. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  551. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  552. data/spec/integration/knife/node_list_spec.rb +0 -45
  553. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  554. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  555. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  556. data/spec/integration/knife/node_show_spec.rb +0 -36
  557. data/spec/integration/knife/raw_spec.rb +0 -297
  558. data/spec/integration/knife/redirection_spec.rb +0 -64
  559. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  560. data/spec/integration/knife/role_create_spec.rb +0 -41
  561. data/spec/integration/knife/role_delete_spec.rb +0 -48
  562. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  563. data/spec/integration/knife/role_list_spec.rb +0 -45
  564. data/spec/integration/knife/role_show_spec.rb +0 -51
  565. data/spec/integration/knife/search_node_spec.rb +0 -40
  566. data/spec/integration/knife/serve_spec.rb +0 -92
  567. data/spec/integration/knife/show_spec.rb +0 -197
  568. data/spec/integration/knife/upload_spec.rb +0 -1616
  569. data/spec/support/shared/functional/knife.rb +0 -37
  570. data/spec/support/shared/functional/win32_service.rb +0 -57
  571. data/spec/support/shared/integration/knife_support.rb +0 -192
  572. data/spec/support/shared/unit/knife_shared.rb +0 -39
  573. data/spec/unit/application/knife_spec.rb +0 -241
  574. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  575. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  576. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  577. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  578. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  579. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  580. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  581. data/spec/unit/knife/client_create_spec.rb +0 -169
  582. data/spec/unit/knife/client_delete_spec.rb +0 -99
  583. data/spec/unit/knife/client_edit_spec.rb +0 -53
  584. data/spec/unit/knife/client_list_spec.rb +0 -34
  585. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  586. data/spec/unit/knife/client_show_spec.rb +0 -52
  587. data/spec/unit/knife/configure_client_spec.rb +0 -81
  588. data/spec/unit/knife/configure_spec.rb +0 -190
  589. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  590. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  591. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  592. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  593. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  594. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  595. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  596. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  597. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  598. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  599. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  600. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  601. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  602. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  603. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  604. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  605. data/spec/unit/knife/core/ui_spec.rb +0 -656
  606. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  607. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  608. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  609. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  610. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  611. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  612. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  613. data/spec/unit/knife/environment_create_spec.rb +0 -91
  614. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  615. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  616. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  617. data/spec/unit/knife/environment_list_spec.rb +0 -54
  618. data/spec/unit/knife/environment_show_spec.rb +0 -52
  619. data/spec/unit/knife/key_create_spec.rb +0 -223
  620. data/spec/unit/knife/key_delete_spec.rb +0 -133
  621. data/spec/unit/knife/key_edit_spec.rb +0 -264
  622. data/spec/unit/knife/key_helper.rb +0 -74
  623. data/spec/unit/knife/key_list_spec.rb +0 -216
  624. data/spec/unit/knife/key_show_spec.rb +0 -126
  625. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  626. data/spec/unit/knife/node_delete_spec.rb +0 -77
  627. data/spec/unit/knife/node_edit_spec.rb +0 -116
  628. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  629. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  630. data/spec/unit/knife/node_list_spec.rb +0 -62
  631. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  632. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  633. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  634. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  635. data/spec/unit/knife/node_show_spec.rb +0 -65
  636. data/spec/unit/knife/raw_spec.rb +0 -43
  637. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  638. data/spec/unit/knife/role_create_spec.rb +0 -80
  639. data/spec/unit/knife/role_delete_spec.rb +0 -67
  640. data/spec/unit/knife/role_edit_spec.rb +0 -77
  641. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  642. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  643. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  644. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  645. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  646. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  647. data/spec/unit/knife/role_list_spec.rb +0 -54
  648. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  649. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  650. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  651. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  652. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  653. data/spec/unit/knife/role_show_spec.rb +0 -59
  654. data/spec/unit/knife/ssh_spec.rb +0 -403
  655. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  656. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  657. data/spec/unit/knife/status_spec.rb +0 -112
  658. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  659. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  660. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  661. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  662. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  663. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  664. data/spec/unit/knife/tag_create_spec.rb +0 -23
  665. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  666. data/spec/unit/knife/tag_list_spec.rb +0 -23
  667. data/spec/unit/knife/user_create_spec.rb +0 -184
  668. data/spec/unit/knife/user_delete_spec.rb +0 -46
  669. data/spec/unit/knife/user_edit_spec.rb +0 -48
  670. data/spec/unit/knife/user_list_spec.rb +0 -36
  671. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  672. data/spec/unit/knife/user_show_spec.rb +0 -46
  673. data/spec/unit/knife_spec.rb +0 -634
  674. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  675. 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