chef 16.13.16-universal-mingw32 → 17.0.242-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -10
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -1
  6. data/chef.gemspec +6 -8
  7. data/lib/chef/application/base.rb +1 -1
  8. data/lib/chef/applications.rb +0 -1
  9. data/lib/chef/chef_fs/command_line.rb +5 -2
  10. data/lib/chef/chef_fs/file_system.rb +9 -10
  11. data/lib/chef/client.rb +2 -2
  12. data/lib/chef/compliance/default_attributes.rb +4 -3
  13. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  14. data/lib/chef/compliance/reporter/automate.rb +17 -7
  15. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  16. data/lib/chef/compliance/reporter/cli.rb +77 -0
  17. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  18. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  19. data/lib/chef/compliance/runner.rb +65 -27
  20. data/lib/chef/cookbook/synchronizer.rb +3 -5
  21. data/lib/chef/cookbook_loader.rb +2 -4
  22. data/lib/chef/cookbook_uploader.rb +0 -1
  23. data/lib/chef/data_bag_item.rb +11 -2
  24. data/lib/chef/delayed_evaluator.rb +4 -0
  25. data/lib/chef/deprecated.rb +4 -0
  26. data/lib/chef/dsl/chef_vault.rb +6 -6
  27. data/lib/chef/dsl/reboot_pending.rb +1 -2
  28. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  29. data/lib/chef/group.rb +75 -0
  30. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  31. data/lib/chef/node/attribute.rb +6 -4
  32. data/lib/chef/node/immutable_collections.rb +13 -0
  33. data/lib/chef/node/mixin/deep_merge_cache.rb +11 -7
  34. data/lib/chef/org.rb +3 -2
  35. data/lib/chef/property.rb +18 -0
  36. data/lib/chef/provider.rb +1 -1
  37. data/lib/chef/provider/cron.rb +1 -1
  38. data/lib/chef/provider/execute.rb +2 -1
  39. data/lib/chef/provider/file.rb +1 -1
  40. data/lib/chef/provider/git.rb +5 -7
  41. data/lib/chef/provider/group/groupadd.rb +3 -3
  42. data/lib/chef/provider/group/groupmod.rb +3 -3
  43. data/lib/chef/provider/group/pw.rb +3 -3
  44. data/lib/chef/provider/ifconfig.rb +2 -2
  45. data/lib/chef/provider/link.rb +2 -2
  46. data/lib/chef/provider/mount.rb +5 -5
  47. data/lib/chef/provider/mount/aix.rb +3 -3
  48. data/lib/chef/provider/mount/mount.rb +5 -5
  49. data/lib/chef/provider/mount/windows.rb +1 -1
  50. data/lib/chef/provider/package.rb +17 -21
  51. data/lib/chef/provider/package/apt.rb +27 -1
  52. data/lib/chef/provider/package/deb.rb +3 -3
  53. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  54. data/lib/chef/provider/package/portage.rb +2 -2
  55. data/lib/chef/provider/package/rubygems.rb +11 -17
  56. data/lib/chef/provider/package/windows.rb +2 -4
  57. data/lib/chef/provider/package/yum/yum_helper.py +1 -1
  58. data/lib/chef/provider/route.rb +2 -2
  59. data/lib/chef/provider/service.rb +6 -6
  60. data/lib/chef/provider/service/aixinit.rb +1 -1
  61. data/lib/chef/provider/service/debian.rb +1 -1
  62. data/lib/chef/provider/service/freebsd.rb +15 -21
  63. data/lib/chef/provider/service/macosx.rb +4 -4
  64. data/lib/chef/provider/service/systemd.rb +43 -14
  65. data/lib/chef/provider/service/upstart.rb +2 -13
  66. data/lib/chef/provider/service/windows.rb +12 -12
  67. data/lib/chef/provider/subversion.rb +10 -12
  68. data/lib/chef/provider/systemd_unit.rb +36 -10
  69. data/lib/chef/provider/template/content.rb +2 -6
  70. data/lib/chef/provider/user.rb +2 -2
  71. data/lib/chef/provider/user/dscl.rb +1 -1
  72. data/lib/chef/provider/user/mac.rb +17 -20
  73. data/lib/chef/provider/user/pw.rb +1 -1
  74. data/lib/chef/provider/user/windows.rb +1 -1
  75. data/lib/chef/provider/zypper_repository.rb +2 -2
  76. data/lib/chef/providers.rb +0 -1
  77. data/lib/chef/resource/alternatives.rb +6 -6
  78. data/lib/chef/resource/apt_package.rb +1 -1
  79. data/lib/chef/resource/apt_preference.rb +2 -2
  80. data/lib/chef/resource/apt_repository.rb +6 -6
  81. data/lib/chef/resource/apt_update.rb +3 -2
  82. data/lib/chef/resource/archive_file.rb +2 -3
  83. data/lib/chef/resource/breakpoint.rb +1 -1
  84. data/lib/chef/resource/build_essential.rb +2 -6
  85. data/lib/chef/resource/chef_client_config.rb +2 -2
  86. data/lib/chef/resource/chef_client_cron.rb +4 -4
  87. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  88. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  89. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  90. data/lib/chef/resource/chef_handler.rb +3 -7
  91. data/lib/chef/resource/chef_sleep.rb +1 -1
  92. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  93. data/lib/chef/resource/chocolatey_config.rb +2 -6
  94. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  95. data/lib/chef/resource/chocolatey_source.rb +4 -10
  96. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  97. data/lib/chef/resource/cron_access.rb +2 -4
  98. data/lib/chef/resource/dmg_package.rb +6 -10
  99. data/lib/chef/resource/dpkg_package.rb +1 -1
  100. data/lib/chef/resource/execute.rb +6 -1
  101. data/lib/chef/resource/file.rb +1 -1
  102. data/lib/chef/resource/group.rb +2 -2
  103. data/lib/chef/resource/homebrew_cask.rb +2 -6
  104. data/lib/chef/resource/homebrew_tap.rb +2 -6
  105. data/lib/chef/resource/hostname.rb +21 -17
  106. data/lib/chef/resource/http_request.rb +1 -1
  107. data/lib/chef/resource/kernel_module.rb +6 -17
  108. data/lib/chef/resource/locale.rb +2 -3
  109. data/lib/chef/resource/lwrp_base.rb +4 -0
  110. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  111. data/lib/chef/resource/mdadm.rb +53 -7
  112. data/lib/chef/resource/mount.rb +2 -1
  113. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  114. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  115. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  116. data/lib/chef/resource/plist.rb +7 -7
  117. data/lib/chef/resource/powershell_script.rb +1 -1
  118. data/lib/chef/resource/remote_file.rb +1 -1
  119. data/lib/chef/resource/rhsm_errata.rb +16 -1
  120. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  121. data/lib/chef/resource/rhsm_register.rb +12 -6
  122. data/lib/chef/resource/rhsm_repo.rb +2 -6
  123. data/lib/chef/resource/rhsm_subscription.rb +2 -6
  124. data/lib/chef/resource/scm/git.rb +1 -1
  125. data/lib/chef/resource/sudo.rb +6 -6
  126. data/lib/chef/resource/sysctl.rb +2 -6
  127. data/lib/chef/resource/systemd_unit.rb +2 -2
  128. data/lib/chef/resource/template.rb +1 -1
  129. data/lib/chef/resource/timezone.rb +1 -3
  130. data/lib/chef/resource/user/mac_user.rb +1 -1
  131. data/lib/chef/resource/user_ulimit.rb +2 -2
  132. data/lib/chef/resource/windows_ad_join.rb +2 -6
  133. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  134. data/lib/chef/resource/windows_auto_run.rb +2 -5
  135. data/lib/chef/resource/windows_certificate.rb +207 -73
  136. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  137. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  138. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  139. data/lib/chef/resource/windows_dns_record.rb +2 -6
  140. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  141. data/lib/chef/resource/windows_env.rb +5 -4
  142. data/lib/chef/resource/windows_feature.rb +3 -9
  143. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  144. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  145. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  146. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  147. data/lib/chef/resource/windows_font.rb +2 -4
  148. data/lib/chef/resource/windows_pagefile.rb +2 -6
  149. data/lib/chef/resource/windows_path.rb +2 -2
  150. data/lib/chef/resource/windows_printer.rb +4 -4
  151. data/lib/chef/resource/windows_printer_port.rb +6 -6
  152. data/lib/chef/resource/windows_security_policy.rb +53 -40
  153. data/lib/chef/resource/windows_share.rb +14 -21
  154. data/lib/chef/resource/windows_shortcut.rb +4 -6
  155. data/lib/chef/resource/windows_task.rb +17 -5
  156. data/lib/chef/resource/windows_uac.rb +1 -1
  157. data/lib/chef/resource/windows_user_privilege.rb +4 -4
  158. data/lib/chef/resource/windows_workgroup.rb +1 -2
  159. data/lib/chef/resources.rb +0 -1
  160. data/lib/chef/user.rb +0 -1
  161. data/lib/chef/user_v1.rb +3 -4
  162. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  163. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  164. data/lib/chef/version.rb +1 -1
  165. data/lib/chef/win32/registry.rb +4 -2
  166. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  167. data/spec/data/lwrp/resources/bar.rb +2 -0
  168. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  169. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  170. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  171. data/spec/data/lwrp/resources/foo.rb +2 -0
  172. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  173. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  174. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  175. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  176. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  177. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  178. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  179. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  180. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  181. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  182. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  183. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  184. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  185. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  186. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  187. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  188. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  189. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  190. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  191. data/spec/functional/resource/apt_package_spec.rb +1 -1
  192. data/spec/functional/resource/chocolatey_package_spec.rb +13 -0
  193. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  194. data/spec/functional/resource/registry_spec.rb +8 -8
  195. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  196. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  197. data/spec/functional/version_spec.rb +1 -1
  198. data/spec/functional/win32/registry_spec.rb +1 -1
  199. data/spec/integration/client/client_spec.rb +5 -2
  200. data/spec/integration/client/exit_code_spec.rb +1 -1
  201. data/spec/integration/client/ipv6_spec.rb +1 -1
  202. data/spec/integration/compliance/compliance_spec.rb +1 -1
  203. data/spec/integration/ohai/ohai_spec.rb +7 -6
  204. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  205. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  206. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  207. data/spec/integration/recipes/notifies_spec.rb +15 -1
  208. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  209. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  210. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  211. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  212. data/spec/spec_helper.rb +10 -13
  213. data/spec/support/chef_helpers.rb +0 -16
  214. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  215. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  216. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  217. data/spec/support/matchers/leak.rb +7 -9
  218. data/spec/support/platform_helpers.rb +1 -8
  219. data/spec/support/shared/integration/integration_helper.rb +0 -1
  220. data/spec/support/shared/unit/script_resource.rb +2 -2
  221. data/spec/unit/application/solo_spec.rb +2 -2
  222. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  223. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  224. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  225. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  226. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  227. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  228. data/spec/unit/compliance/runner_spec.rb +30 -4
  229. data/spec/unit/data_bag_item_spec.rb +1 -6
  230. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  231. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  232. data/spec/unit/lwrp_spec.rb +1 -1
  233. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  234. data/spec/unit/node/attribute_spec.rb +1 -1
  235. data/spec/unit/node_spec.rb +78 -0
  236. data/spec/unit/org_group_spec.rb +45 -0
  237. data/spec/unit/property_spec.rb +23 -22
  238. data/spec/unit/provider/cron_spec.rb +1 -1
  239. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  240. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  241. data/spec/unit/provider/group/pw_spec.rb +2 -2
  242. data/spec/unit/provider/group_spec.rb +1 -1
  243. data/spec/unit/provider/package/apt_spec.rb +84 -18
  244. data/spec/unit/provider/package/deb_spec.rb +3 -3
  245. data/spec/unit/provider/package/rubygems_spec.rb +21 -33
  246. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  247. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  248. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  249. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  250. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  251. data/spec/unit/provider/service/windows_spec.rb +2 -2
  252. data/spec/unit/provider/subversion_spec.rb +2 -2
  253. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  254. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  255. data/spec/unit/provider_spec.rb +0 -8
  256. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  257. data/spec/unit/resource/windows_task_spec.rb +1 -1
  258. data/spec/unit/user_spec.rb +1 -1
  259. data/spec/unit/user_v1_spec.rb +6 -4
  260. data/tasks/rspec.rb +16 -8
  261. metadata +19 -382
  262. data/bin/knife +0 -24
  263. data/lib/chef/application/knife.rb +0 -234
  264. data/lib/chef/application/windows_service.rb +0 -338
  265. data/lib/chef/application/windows_service_manager.rb +0 -205
  266. data/lib/chef/chef_fs/knife.rb +0 -160
  267. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  268. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  269. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  270. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  271. data/lib/chef/knife.rb +0 -665
  272. data/lib/chef/knife/acl_add.rb +0 -57
  273. data/lib/chef/knife/acl_base.rb +0 -183
  274. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  275. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  276. data/lib/chef/knife/acl_remove.rb +0 -62
  277. data/lib/chef/knife/acl_show.rb +0 -56
  278. data/lib/chef/knife/bootstrap.rb +0 -1192
  279. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  280. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  281. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  282. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  283. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  284. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  285. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  286. data/lib/chef/knife/client_create.rb +0 -101
  287. data/lib/chef/knife/client_delete.rb +0 -62
  288. data/lib/chef/knife/client_edit.rb +0 -52
  289. data/lib/chef/knife/client_key_create.rb +0 -73
  290. data/lib/chef/knife/client_key_delete.rb +0 -80
  291. data/lib/chef/knife/client_key_edit.rb +0 -83
  292. data/lib/chef/knife/client_key_list.rb +0 -73
  293. data/lib/chef/knife/client_key_show.rb +0 -80
  294. data/lib/chef/knife/client_list.rb +0 -41
  295. data/lib/chef/knife/client_reregister.rb +0 -58
  296. data/lib/chef/knife/client_show.rb +0 -48
  297. data/lib/chef/knife/config_get.rb +0 -39
  298. data/lib/chef/knife/config_get_profile.rb +0 -37
  299. data/lib/chef/knife/config_list.rb +0 -139
  300. data/lib/chef/knife/config_list_profiles.rb +0 -37
  301. data/lib/chef/knife/config_show.rb +0 -127
  302. data/lib/chef/knife/config_use.rb +0 -61
  303. data/lib/chef/knife/config_use_profile.rb +0 -47
  304. data/lib/chef/knife/configure.rb +0 -150
  305. data/lib/chef/knife/configure_client.rb +0 -48
  306. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  307. data/lib/chef/knife/cookbook_delete.rb +0 -151
  308. data/lib/chef/knife/cookbook_download.rb +0 -142
  309. data/lib/chef/knife/cookbook_list.rb +0 -47
  310. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  311. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  312. data/lib/chef/knife/cookbook_show.rb +0 -98
  313. data/lib/chef/knife/cookbook_upload.rb +0 -292
  314. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  315. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  316. data/lib/chef/knife/core/formatting_options.rb +0 -49
  317. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  318. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  319. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  320. data/lib/chef/knife/core/node_editor.rb +0 -130
  321. data/lib/chef/knife/core/node_presenter.rb +0 -133
  322. data/lib/chef/knife/core/object_loader.rb +0 -115
  323. data/lib/chef/knife/core/status_presenter.rb +0 -147
  324. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  325. data/lib/chef/knife/core/text_formatter.rb +0 -85
  326. data/lib/chef/knife/core/ui.rb +0 -338
  327. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -406
  328. data/lib/chef/knife/data_bag_create.rb +0 -81
  329. data/lib/chef/knife/data_bag_delete.rb +0 -49
  330. data/lib/chef/knife/data_bag_edit.rb +0 -74
  331. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  332. data/lib/chef/knife/data_bag_list.rb +0 -42
  333. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  334. data/lib/chef/knife/data_bag_show.rb +0 -69
  335. data/lib/chef/knife/delete.rb +0 -125
  336. data/lib/chef/knife/deps.rb +0 -156
  337. data/lib/chef/knife/diff.rb +0 -83
  338. data/lib/chef/knife/download.rb +0 -84
  339. data/lib/chef/knife/edit.rb +0 -88
  340. data/lib/chef/knife/environment_compare.rb +0 -128
  341. data/lib/chef/knife/environment_create.rb +0 -52
  342. data/lib/chef/knife/environment_delete.rb +0 -44
  343. data/lib/chef/knife/environment_edit.rb +0 -44
  344. data/lib/chef/knife/environment_from_file.rb +0 -84
  345. data/lib/chef/knife/environment_list.rb +0 -41
  346. data/lib/chef/knife/environment_show.rb +0 -47
  347. data/lib/chef/knife/exec.rb +0 -99
  348. data/lib/chef/knife/group_add.rb +0 -55
  349. data/lib/chef/knife/group_create.rb +0 -49
  350. data/lib/chef/knife/group_destroy.rb +0 -53
  351. data/lib/chef/knife/group_list.rb +0 -43
  352. data/lib/chef/knife/group_remove.rb +0 -56
  353. data/lib/chef/knife/group_show.rb +0 -49
  354. data/lib/chef/knife/key_create.rb +0 -112
  355. data/lib/chef/knife/key_create_base.rb +0 -50
  356. data/lib/chef/knife/key_delete.rb +0 -55
  357. data/lib/chef/knife/key_edit.rb +0 -118
  358. data/lib/chef/knife/key_edit_base.rb +0 -55
  359. data/lib/chef/knife/key_list.rb +0 -90
  360. data/lib/chef/knife/key_list_base.rb +0 -45
  361. data/lib/chef/knife/key_show.rb +0 -53
  362. data/lib/chef/knife/list.rb +0 -177
  363. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  364. data/lib/chef/knife/node_create.rb +0 -47
  365. data/lib/chef/knife/node_delete.rb +0 -46
  366. data/lib/chef/knife/node_edit.rb +0 -70
  367. data/lib/chef/knife/node_environment_set.rb +0 -53
  368. data/lib/chef/knife/node_from_file.rb +0 -51
  369. data/lib/chef/knife/node_list.rb +0 -44
  370. data/lib/chef/knife/node_policy_set.rb +0 -79
  371. data/lib/chef/knife/node_run_list_add.rb +0 -104
  372. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  373. data/lib/chef/knife/node_run_list_set.rb +0 -66
  374. data/lib/chef/knife/node_show.rb +0 -63
  375. data/lib/chef/knife/null.rb +0 -12
  376. data/lib/chef/knife/raw.rb +0 -123
  377. data/lib/chef/knife/recipe_list.rb +0 -32
  378. data/lib/chef/knife/rehash.rb +0 -50
  379. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  380. data/lib/chef/knife/role_create.rb +0 -53
  381. data/lib/chef/knife/role_delete.rb +0 -46
  382. data/lib/chef/knife/role_edit.rb +0 -45
  383. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  384. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  385. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  386. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  387. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  388. data/lib/chef/knife/role_from_file.rb +0 -51
  389. data/lib/chef/knife/role_list.rb +0 -42
  390. data/lib/chef/knife/role_run_list_add.rb +0 -87
  391. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  392. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  393. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  394. data/lib/chef/knife/role_run_list_set.rb +0 -69
  395. data/lib/chef/knife/role_show.rb +0 -48
  396. data/lib/chef/knife/search.rb +0 -194
  397. data/lib/chef/knife/serve.rb +0 -65
  398. data/lib/chef/knife/show.rb +0 -72
  399. data/lib/chef/knife/ssh.rb +0 -645
  400. data/lib/chef/knife/ssl_check.rb +0 -284
  401. data/lib/chef/knife/ssl_fetch.rb +0 -161
  402. data/lib/chef/knife/status.rb +0 -95
  403. data/lib/chef/knife/supermarket_download.rb +0 -121
  404. data/lib/chef/knife/supermarket_install.rb +0 -192
  405. data/lib/chef/knife/supermarket_list.rb +0 -76
  406. data/lib/chef/knife/supermarket_search.rb +0 -53
  407. data/lib/chef/knife/supermarket_share.rb +0 -166
  408. data/lib/chef/knife/supermarket_show.rb +0 -66
  409. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  410. data/lib/chef/knife/tag_create.rb +0 -52
  411. data/lib/chef/knife/tag_delete.rb +0 -60
  412. data/lib/chef/knife/tag_list.rb +0 -47
  413. data/lib/chef/knife/upload.rb +0 -86
  414. data/lib/chef/knife/user_create.rb +0 -107
  415. data/lib/chef/knife/user_delete.rb +0 -44
  416. data/lib/chef/knife/user_dissociate.rb +0 -42
  417. data/lib/chef/knife/user_edit.rb +0 -52
  418. data/lib/chef/knife/user_invite_add.rb +0 -43
  419. data/lib/chef/knife/user_invite_list.rb +0 -34
  420. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  421. data/lib/chef/knife/user_key_create.rb +0 -73
  422. data/lib/chef/knife/user_key_delete.rb +0 -80
  423. data/lib/chef/knife/user_key_edit.rb +0 -83
  424. data/lib/chef/knife/user_key_list.rb +0 -73
  425. data/lib/chef/knife/user_key_show.rb +0 -80
  426. data/lib/chef/knife/user_list.rb +0 -42
  427. data/lib/chef/knife/user_reregister.rb +0 -59
  428. data/lib/chef/knife/user_show.rb +0 -48
  429. data/lib/chef/knife/xargs.rb +0 -282
  430. data/lib/chef/knife/yaml_convert.rb +0 -91
  431. data/lib/chef/resource/user/dscl_user.rb +0 -35
  432. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  433. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  434. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  435. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  436. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  437. data/spec/functional/knife/configure_spec.rb +0 -33
  438. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  439. data/spec/functional/knife/exec_spec.rb +0 -55
  440. data/spec/functional/knife/rehash_spec.rb +0 -39
  441. data/spec/functional/knife/smoke_test.rb +0 -42
  442. data/spec/functional/knife/ssh_spec.rb +0 -352
  443. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  444. data/spec/functional/resource/windows_service_spec.rb +0 -105
  445. data/spec/functional/win32/service_manager_spec.rb +0 -220
  446. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  447. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  448. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  449. data/spec/integration/knife/chefignore_spec.rb +0 -301
  450. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  451. data/spec/integration/knife/client_create_spec.rb +0 -70
  452. data/spec/integration/knife/client_delete_spec.rb +0 -64
  453. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  454. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  455. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  456. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  457. data/spec/integration/knife/client_list_spec.rb +0 -49
  458. data/spec/integration/knife/client_show_spec.rb +0 -37
  459. data/spec/integration/knife/common_options_spec.rb +0 -174
  460. data/spec/integration/knife/config_list_spec.rb +0 -220
  461. data/spec/integration/knife/config_show_spec.rb +0 -192
  462. data/spec/integration/knife/config_use_spec.rb +0 -198
  463. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  464. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  465. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  466. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  467. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  468. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  469. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  470. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  471. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  472. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  473. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  474. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  475. data/spec/integration/knife/delete_spec.rb +0 -1018
  476. data/spec/integration/knife/deps_spec.rb +0 -703
  477. data/spec/integration/knife/diff_spec.rb +0 -605
  478. data/spec/integration/knife/download_spec.rb +0 -1336
  479. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  480. data/spec/integration/knife/environment_create_spec.rb +0 -41
  481. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  482. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  483. data/spec/integration/knife/environment_list_spec.rb +0 -42
  484. data/spec/integration/knife/environment_show_spec.rb +0 -77
  485. data/spec/integration/knife/list_spec.rb +0 -1060
  486. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  487. data/spec/integration/knife/node_create_spec.rb +0 -47
  488. data/spec/integration/knife/node_delete_spec.rb +0 -48
  489. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  490. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  491. data/spec/integration/knife/node_list_spec.rb +0 -45
  492. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  493. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  494. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  495. data/spec/integration/knife/node_show_spec.rb +0 -36
  496. data/spec/integration/knife/raw_spec.rb +0 -297
  497. data/spec/integration/knife/redirection_spec.rb +0 -64
  498. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  499. data/spec/integration/knife/role_create_spec.rb +0 -41
  500. data/spec/integration/knife/role_delete_spec.rb +0 -48
  501. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  502. data/spec/integration/knife/role_list_spec.rb +0 -45
  503. data/spec/integration/knife/role_show_spec.rb +0 -51
  504. data/spec/integration/knife/search_node_spec.rb +0 -40
  505. data/spec/integration/knife/serve_spec.rb +0 -92
  506. data/spec/integration/knife/show_spec.rb +0 -197
  507. data/spec/integration/knife/upload_spec.rb +0 -1617
  508. data/spec/support/shared/functional/knife.rb +0 -37
  509. data/spec/support/shared/functional/win32_service.rb +0 -57
  510. data/spec/support/shared/integration/knife_support.rb +0 -192
  511. data/spec/support/shared/unit/knife_shared.rb +0 -39
  512. data/spec/unit/application/knife_spec.rb +0 -241
  513. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  514. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  515. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  516. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  517. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  518. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  519. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  520. data/spec/unit/knife/client_create_spec.rb +0 -169
  521. data/spec/unit/knife/client_delete_spec.rb +0 -99
  522. data/spec/unit/knife/client_edit_spec.rb +0 -53
  523. data/spec/unit/knife/client_list_spec.rb +0 -34
  524. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  525. data/spec/unit/knife/client_show_spec.rb +0 -52
  526. data/spec/unit/knife/configure_client_spec.rb +0 -81
  527. data/spec/unit/knife/configure_spec.rb +0 -190
  528. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  529. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  530. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  531. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  532. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  533. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  534. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  535. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  536. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  537. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  538. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  539. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  540. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  541. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  542. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  543. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  544. data/spec/unit/knife/core/ui_spec.rb +0 -656
  545. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  546. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  547. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  548. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  549. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  550. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  551. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  552. data/spec/unit/knife/environment_create_spec.rb +0 -91
  553. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  554. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  555. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  556. data/spec/unit/knife/environment_list_spec.rb +0 -54
  557. data/spec/unit/knife/environment_show_spec.rb +0 -52
  558. data/spec/unit/knife/key_create_spec.rb +0 -223
  559. data/spec/unit/knife/key_delete_spec.rb +0 -133
  560. data/spec/unit/knife/key_edit_spec.rb +0 -264
  561. data/spec/unit/knife/key_helper.rb +0 -74
  562. data/spec/unit/knife/key_list_spec.rb +0 -216
  563. data/spec/unit/knife/key_show_spec.rb +0 -126
  564. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  565. data/spec/unit/knife/node_delete_spec.rb +0 -77
  566. data/spec/unit/knife/node_edit_spec.rb +0 -116
  567. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  568. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  569. data/spec/unit/knife/node_list_spec.rb +0 -62
  570. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  571. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  572. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  573. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  574. data/spec/unit/knife/node_show_spec.rb +0 -65
  575. data/spec/unit/knife/raw_spec.rb +0 -43
  576. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  577. data/spec/unit/knife/role_create_spec.rb +0 -80
  578. data/spec/unit/knife/role_delete_spec.rb +0 -67
  579. data/spec/unit/knife/role_edit_spec.rb +0 -77
  580. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  581. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  582. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  583. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  584. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  585. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  586. data/spec/unit/knife/role_list_spec.rb +0 -54
  587. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  588. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  589. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  590. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  591. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  592. data/spec/unit/knife/role_show_spec.rb +0 -59
  593. data/spec/unit/knife/ssh_spec.rb +0 -403
  594. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  595. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  596. data/spec/unit/knife/status_spec.rb +0 -112
  597. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  598. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  599. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  600. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  601. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  602. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  603. data/spec/unit/knife/tag_create_spec.rb +0 -23
  604. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  605. data/spec/unit/knife/tag_list_spec.rb +0 -23
  606. data/spec/unit/knife/user_create_spec.rb +0 -184
  607. data/spec/unit/knife/user_delete_spec.rb +0 -46
  608. data/spec/unit/knife/user_edit_spec.rb +0 -48
  609. data/spec/unit/knife/user_list_spec.rb +0 -36
  610. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  611. data/spec/unit/knife/user_show_spec.rb +0 -46
  612. data/spec/unit/knife_spec.rb +0 -634
  613. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  614. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,605 +0,0 @@
1
- #
2
- # Author:: John Keiser (<jkeiser@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
-
18
- require "spec_helper"
19
- require "support/shared/integration/integration_helper"
20
- require "chef/knife/diff"
21
-
22
- describe "knife diff", :workstation do
23
- include IntegrationSupport
24
- include KnifeSupport
25
-
26
- context "without versioned cookbooks" do
27
- when_the_chef_server "has one of each thing" do
28
- before do
29
- client "x", "{}"
30
- cookbook "x", "1.0.0"
31
- data_bag "x", { "y" => "{}" }
32
- environment "x", "{}"
33
- node "x", "{}"
34
- role "x", "{}"
35
- user "x", "{}"
36
- end
37
-
38
- when_the_repository "has only top-level directories" do
39
- before do
40
- directory "clients"
41
- directory "cookbooks"
42
- directory "data_bags"
43
- directory "environments"
44
- directory "nodes"
45
- directory "roles"
46
- directory "users"
47
- end
48
-
49
- it "knife diff reports everything as deleted" do
50
- knife("diff --name-status /").should_succeed <<~EOM
51
- D\t/clients/chef-validator.json
52
- D\t/clients/chef-webui.json
53
- D\t/clients/x.json
54
- D\t/cookbooks/x
55
- D\t/data_bags/x
56
- D\t/environments/_default.json
57
- D\t/environments/x.json
58
- D\t/nodes/x.json
59
- D\t/roles/x.json
60
- D\t/users/admin.json
61
- D\t/users/x.json
62
- EOM
63
- end
64
- end
65
-
66
- when_the_repository "has an identical copy of each thing" do
67
-
68
- before do
69
- file "clients/chef-validator.json", { "validator" => true, "public_key" => ChefZero::PUBLIC_KEY }
70
- file "clients/chef-webui.json", { "admin" => true, "public_key" => ChefZero::PUBLIC_KEY }
71
- file "clients/x.json", { "public_key" => ChefZero::PUBLIC_KEY }
72
- file "cookbooks/x/metadata.rb", cb_metadata("x", "1.0.0")
73
- file "data_bags/x/y.json", {}
74
- file "environments/_default.json", { "description" => "The default Chef environment" }
75
- file "environments/x.json", {}
76
- file "nodes/x.json", { "normal" => { "tags" => [] } }
77
- file "roles/x.json", {}
78
- file "users/admin.json", { "admin" => true, "public_key" => ChefZero::PUBLIC_KEY }
79
- file "users/x.json", { "public_key" => ChefZero::PUBLIC_KEY }
80
- end
81
-
82
- it "knife diff reports no differences" do
83
- knife("diff /").should_succeed ""
84
- end
85
-
86
- it "knife diff /environments/nonexistent.json reports an error" do
87
- knife("diff /environments/nonexistent.json").should_fail "ERROR: /environments/nonexistent.json: No such file or directory on remote or local\n"
88
- end
89
-
90
- it "knife diff /environments/*.txt reports an error" do
91
- knife("diff /environments/*.txt").should_fail "ERROR: /environments/*.txt: No such file or directory on remote or local\n"
92
- end
93
-
94
- context "except the role file" do
95
- before do
96
- file "roles/x.json", <<~EOM
97
- {
98
- "foo": "bar"
99
- }
100
- EOM
101
- end
102
-
103
- it "knife diff reports the role as different" do
104
- knife("diff --name-status /").should_succeed <<~EOM
105
- M\t/roles/x.json
106
- EOM
107
- end
108
- end
109
-
110
- context "as well as one extra copy of each thing" do
111
- before do
112
- file "clients/y.json", { "public_key" => ChefZero::PUBLIC_KEY }
113
- file "cookbooks/x/blah.rb", ""
114
- file "cookbooks/y/metadata.rb", cb_metadata("y", "1.0.0")
115
- file "data_bags/x/z.json", {}
116
- file "data_bags/y/zz.json", {}
117
- file "environments/y.json", {}
118
- file "nodes/y.json", {}
119
- file "roles/y.json", {}
120
- file "users/y.json", { "public_key" => ChefZero::PUBLIC_KEY }
121
- end
122
-
123
- it "knife diff reports the new files as added" do
124
- knife("diff --name-status /").should_succeed <<~EOM
125
- A\t/clients/y.json
126
- A\t/cookbooks/x/blah.rb
127
- A\t/cookbooks/y
128
- A\t/data_bags/x/z.json
129
- A\t/data_bags/y
130
- A\t/environments/y.json
131
- A\t/nodes/y.json
132
- A\t/roles/y.json
133
- A\t/users/y.json
134
- EOM
135
- end
136
-
137
- context "when cwd is the data_bags directory" do
138
- before { cwd "data_bags" }
139
- it "knife diff reports different data bags" do
140
- knife("diff --name-status").should_succeed <<~EOM
141
- A\tx/z.json
142
- A\ty
143
- EOM
144
- end
145
- it "knife diff * reports different data bags" do
146
- knife("diff --name-status *").should_succeed <<~EOM
147
- A\tx/z.json
148
- A\ty
149
- EOM
150
- end
151
- end
152
- end
153
- end
154
-
155
- when_the_repository "is empty" do
156
- it "knife diff reports everything as deleted" do
157
- knife("diff --name-status /").should_succeed <<~EOM
158
- D\t/clients
159
- D\t/cookbooks
160
- D\t/data_bags
161
- D\t/environments
162
- D\t/nodes
163
- D\t/roles
164
- D\t/users
165
- EOM
166
- end
167
- end
168
- end
169
-
170
- when_the_repository "has a cookbook" do
171
- before do
172
- file "cookbooks/x/metadata.rb", cb_metadata("x", "1.0.0")
173
- file "cookbooks/x/onlyin1.0.0.rb", ""
174
- end
175
-
176
- when_the_chef_server "has a later version for the cookbook" do
177
- before do
178
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
179
- cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "" }
180
- end
181
-
182
- it "knife diff /cookbooks/x shows differences" do
183
- knife("diff --name-status /cookbooks/x").should_succeed <<~EOM
184
- M\t/cookbooks/x/metadata.rb
185
- D\t/cookbooks/x/onlyin1.0.1.rb
186
- A\t/cookbooks/x/onlyin1.0.0.rb
187
- EOM
188
- end
189
-
190
- it "knife diff --diff-filter=MAT does not show deleted files" do
191
- knife("diff --diff-filter=MAT --name-status /cookbooks/x").should_succeed <<~EOM
192
- M\t/cookbooks/x/metadata.rb
193
- A\t/cookbooks/x/onlyin1.0.0.rb
194
- EOM
195
- end
196
- end
197
-
198
- when_the_chef_server "has an earlier version for the cookbook" do
199
- before do
200
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
201
- cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "" }
202
- end
203
- it "knife diff /cookbooks/x shows no differences" do
204
- knife("diff --name-status /cookbooks/x").should_succeed ""
205
- end
206
- end
207
-
208
- when_the_chef_server "has a later version for the cookbook, and no current version" do
209
- before do
210
- cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "" }
211
- end
212
-
213
- it "knife diff /cookbooks/x shows the differences" do
214
- knife("diff --name-status /cookbooks/x").should_succeed <<~EOM
215
- M\t/cookbooks/x/metadata.rb
216
- D\t/cookbooks/x/onlyin1.0.1.rb
217
- A\t/cookbooks/x/onlyin1.0.0.rb
218
- EOM
219
- end
220
- end
221
-
222
- when_the_chef_server "has an earlier version for the cookbook, and no current version" do
223
- before do
224
- cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "" }
225
- end
226
-
227
- it "knife diff /cookbooks/x shows the differences" do
228
- knife("diff --name-status /cookbooks/x").should_succeed <<~EOM
229
- M\t/cookbooks/x/metadata.rb
230
- D\t/cookbooks/x/onlyin0.9.9.rb
231
- A\t/cookbooks/x/onlyin1.0.0.rb
232
- EOM
233
- end
234
- end
235
- end
236
-
237
- context "json diff tests" do
238
- when_the_repository "has an empty environment file" do
239
- before do
240
- file "environments/x.json", {}
241
- end
242
-
243
- when_the_chef_server "has an empty environment" do
244
- before { environment "x", {} }
245
- it "knife diff returns no differences" do
246
- knife("diff /environments/x.json").should_succeed ""
247
- end
248
- end
249
- when_the_chef_server "has an environment with a different value" do
250
- before { environment "x", { "description" => "hi" } }
251
- it "knife diff reports the difference" do
252
- knife("diff /environments/x.json").should_succeed(/
253
- {
254
- - "name": "x",
255
- - "description": "hi"
256
- \+ "name": "x"
257
- }
258
- /)
259
- end
260
- end
261
- end
262
-
263
- when_the_repository "has an environment file with a value in it" do
264
- before do
265
- file "environments/x.json", { "description" => "hi" }
266
- end
267
-
268
- when_the_chef_server "has an environment with the same value" do
269
- before do
270
- environment "x", { "description" => "hi" }
271
- end
272
- it "knife diff returns no differences" do
273
- knife("diff /environments/x.json").should_succeed ""
274
- end
275
- end
276
- when_the_chef_server "has an environment with no value" do
277
- before do
278
- environment "x", {}
279
- end
280
-
281
- it "knife diff reports the difference" do
282
- knife("diff /environments/x.json").should_succeed(/
283
- {
284
- - "name": "x"
285
- \+ "name": "x",
286
- \+ "description": "hi"
287
- }
288
- /)
289
- end
290
- end
291
- when_the_chef_server "has an environment with a different value" do
292
- before do
293
- environment "x", { "description" => "lo" }
294
- end
295
- it "knife diff reports the difference" do
296
- knife("diff /environments/x.json").should_succeed(/
297
- {
298
- "name": "x",
299
- - "description": "lo"
300
- \+ "description": "hi"
301
- }
302
- /)
303
- end
304
- end
305
- end
306
- end
307
-
308
- when_the_chef_server "has an environment" do
309
- before { environment "x", {} }
310
- when_the_repository "has an environment with bad JSON" do
311
- before { file "environments/x.json", "{" }
312
- it "knife diff reports an error and does a textual diff" do
313
- error_text = "WARN: Parse error reading #{path_to("environments/x.json")} as JSON: parse error: premature EOF"
314
- error_match = Regexp.new(Regexp.escape(error_text))
315
- knife("diff /environments/x.json").should_succeed(/- "name": "x"/, stderr: error_match)
316
- end
317
- end
318
- end
319
- end # without versioned cookbooks
320
-
321
- context "with versioned cookbooks" do
322
- before { Chef::Config[:versioned_cookbooks] = true }
323
-
324
- when_the_chef_server "has one of each thing" do
325
- before do
326
- client "x", "{}"
327
- cookbook "x", "1.0.0"
328
- data_bag "x", { "y" => "{}" }
329
- environment "x", "{}"
330
- node "x", "{}"
331
- role "x", "{}"
332
- user "x", "{}"
333
- end
334
-
335
- when_the_repository "has only top-level directories" do
336
- before do
337
- directory "clients"
338
- directory "cookbooks"
339
- directory "data_bags"
340
- directory "environments"
341
- directory "nodes"
342
- directory "roles"
343
- directory "users"
344
- end
345
-
346
- it "knife diff reports everything as deleted" do
347
- knife("diff --name-status /").should_succeed <<~EOM
348
- D\t/clients/chef-validator.json
349
- D\t/clients/chef-webui.json
350
- D\t/clients/x.json
351
- D\t/cookbooks/x-1.0.0
352
- D\t/data_bags/x
353
- D\t/environments/_default.json
354
- D\t/environments/x.json
355
- D\t/nodes/x.json
356
- D\t/roles/x.json
357
- D\t/users/admin.json
358
- D\t/users/x.json
359
- EOM
360
- end
361
- end
362
-
363
- when_the_repository "has an identical copy of each thing" do
364
- before do
365
- file "clients/chef-validator.json", { "validator" => true, "public_key" => ChefZero::PUBLIC_KEY }
366
- file "clients/chef-webui.json", { "admin" => true, "public_key" => ChefZero::PUBLIC_KEY }
367
- file "clients/x.json", { "public_key" => ChefZero::PUBLIC_KEY }
368
- file "cookbooks/x-1.0.0/metadata.rb", cb_metadata("x", "1.0.0")
369
- file "data_bags/x/y.json", {}
370
- file "environments/_default.json", { "description" => "The default Chef environment" }
371
- file "environments/x.json", {}
372
- file "nodes/x.json", { "normal" => { "tags" => [] } }
373
- file "roles/x.json", {}
374
- file "users/admin.json", { "admin" => true, "public_key" => ChefZero::PUBLIC_KEY }
375
- file "users/x.json", { "public_key" => ChefZero::PUBLIC_KEY }
376
- end
377
-
378
- it "knife diff reports no differences" do
379
- knife("diff /").should_succeed ""
380
- end
381
-
382
- it "knife diff /environments/nonexistent.json reports an error" do
383
- knife("diff /environments/nonexistent.json").should_fail "ERROR: /environments/nonexistent.json: No such file or directory on remote or local\n"
384
- end
385
-
386
- it "knife diff /environments/*.txt reports an error" do
387
- knife("diff /environments/*.txt").should_fail "ERROR: /environments/*.txt: No such file or directory on remote or local\n"
388
- end
389
-
390
- context "except the role file" do
391
- before do
392
- file "roles/x.json", <<~EOM
393
- {
394
- "foo": "bar"
395
- }
396
- EOM
397
- end
398
-
399
- it "knife diff reports the role as different" do
400
- knife("diff --name-status /").should_succeed <<~EOM
401
- M\t/roles/x.json
402
- EOM
403
- end
404
- end
405
-
406
- context "as well as one extra copy of each thing" do
407
- before do
408
- file "clients/y.json", {}
409
- file "cookbooks/x-1.0.0/blah.rb", ""
410
- file "cookbooks/x-2.0.0/metadata.rb", cb_metadata("x", "2.0.0")
411
- file "cookbooks/y-1.0.0/metadata.rb", cb_metadata("y", "1.0.0")
412
- file "data_bags/x/z.json", {}
413
- file "data_bags/y/zz.json", {}
414
- file "environments/y.json", {}
415
- file "nodes/y.json", {}
416
- file "roles/y.json", {}
417
- file "users/y.json", {}
418
- end
419
-
420
- it "knife diff reports the new files as added" do
421
- knife("diff --name-status /").should_succeed <<~EOM
422
- A\t/clients/y.json
423
- A\t/cookbooks/x-1.0.0/blah.rb
424
- A\t/cookbooks/x-2.0.0
425
- A\t/cookbooks/y-1.0.0
426
- A\t/data_bags/x/z.json
427
- A\t/data_bags/y
428
- A\t/environments/y.json
429
- A\t/nodes/y.json
430
- A\t/roles/y.json
431
- A\t/users/y.json
432
- EOM
433
- end
434
-
435
- context "when cwd is the data_bags directory" do
436
- before { cwd "data_bags" }
437
- it "knife diff reports different data bags" do
438
- knife("diff --name-status").should_succeed <<~EOM
439
- A\tx/z.json
440
- A\ty
441
- EOM
442
- end
443
- it "knife diff * reports different data bags" do
444
- knife("diff --name-status *").should_succeed <<~EOM
445
- A\tx/z.json
446
- A\ty
447
- EOM
448
- end
449
- end
450
- end
451
- end
452
-
453
- when_the_repository "is empty" do
454
- it "knife diff reports everything as deleted" do
455
- knife("diff --name-status /").should_succeed <<~EOM
456
- D\t/clients
457
- D\t/cookbooks
458
- D\t/data_bags
459
- D\t/environments
460
- D\t/nodes
461
- D\t/roles
462
- D\t/users
463
- EOM
464
- end
465
- end
466
- end
467
-
468
- when_the_repository "has a cookbook" do
469
- before do
470
- file "cookbooks/x-1.0.0/metadata.rb", cb_metadata("x", "1.0.0")
471
- file "cookbooks/x-1.0.0/onlyin1.0.0.rb", ""
472
- end
473
-
474
- when_the_chef_server "has a later version for the cookbook" do
475
- before do
476
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
477
- cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "" }
478
- end
479
-
480
- it "knife diff /cookbooks shows differences" do
481
- knife("diff --name-status /cookbooks").should_succeed <<~EOM
482
- D\t/cookbooks/x-1.0.1
483
- EOM
484
- end
485
-
486
- it "knife diff --diff-filter=MAT does not show deleted files" do
487
- knife("diff --diff-filter=MAT --name-status /cookbooks").should_succeed ""
488
- end
489
- end
490
-
491
- when_the_chef_server "has an earlier version for the cookbook" do
492
- before do
493
- cookbook "x", "1.0.0", { "onlyin1.0.0.rb" => "" }
494
- cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "" }
495
- end
496
- it "knife diff /cookbooks shows the differences" do
497
- knife("diff --name-status /cookbooks").should_succeed "D\t/cookbooks/x-0.9.9\n"
498
- end
499
- end
500
-
501
- when_the_chef_server "has a later version for the cookbook, and no current version" do
502
- before do
503
- cookbook "x", "1.0.1", { "onlyin1.0.1.rb" => "" }
504
- end
505
-
506
- it "knife diff /cookbooks shows the differences" do
507
- knife("diff --name-status /cookbooks").should_succeed <<~EOM
508
- D\t/cookbooks/x-1.0.1
509
- A\t/cookbooks/x-1.0.0
510
- EOM
511
- end
512
- end
513
-
514
- when_the_chef_server "has an earlier version for the cookbook, and no current version" do
515
- before do
516
- cookbook "x", "0.9.9", { "onlyin0.9.9.rb" => "" }
517
- end
518
-
519
- it "knife diff /cookbooks shows the differences" do
520
- knife("diff --name-status /cookbooks").should_succeed <<~EOM
521
- D\t/cookbooks/x-0.9.9
522
- A\t/cookbooks/x-1.0.0
523
- EOM
524
- end
525
- end
526
- end
527
-
528
- context "json diff tests" do
529
- when_the_repository "has an empty environment file" do
530
- before { file "environments/x.json", {} }
531
- when_the_chef_server "has an empty environment" do
532
- before { environment "x", {} }
533
- it "knife diff returns no differences" do
534
- knife("diff /environments/x.json").should_succeed ""
535
- end
536
- end
537
- when_the_chef_server "has an environment with a different value" do
538
- before { environment "x", { "description" => "hi" } }
539
- it "knife diff reports the difference" do
540
- knife("diff /environments/x.json").should_succeed(/
541
- {
542
- - "name": "x",
543
- - "description": "hi"
544
- \+ "name": "x"
545
- }
546
- /)
547
- end
548
- end
549
- end
550
-
551
- when_the_repository "has an environment file with a value in it" do
552
- before do
553
- file "environments/x.json", { "description" => "hi" }
554
- end
555
-
556
- when_the_chef_server "has an environment with the same value" do
557
- before do
558
- environment "x", { "description" => "hi" }
559
- end
560
- it "knife diff returns no differences" do
561
- knife("diff /environments/x.json").should_succeed ""
562
- end
563
- end
564
- when_the_chef_server "has an environment with no value" do
565
- before { environment "x", {} }
566
- it "knife diff reports the difference" do
567
- knife("diff /environments/x.json").should_succeed(/
568
- {
569
- - "name": "x"
570
- \+ "name": "x",
571
- \+ "description": "hi"
572
- }
573
- /)
574
- end
575
- end
576
- when_the_chef_server "has an environment with a different value" do
577
- before do
578
- environment "x", { "description" => "lo" }
579
- end
580
- it "knife diff reports the difference" do
581
- knife("diff /environments/x.json").should_succeed(/
582
- {
583
- "name": "x",
584
- - "description": "lo"
585
- \+ "description": "hi"
586
- }
587
- /)
588
- end
589
- end
590
- end
591
- end
592
-
593
- when_the_chef_server "has an environment" do
594
- before { environment "x", {} }
595
- when_the_repository "has an environment with bad JSON" do
596
- before { file "environments/x.json", "{" }
597
- it "knife diff reports an error and does a textual diff" do
598
- error_text = "WARN: Parse error reading #{path_to("environments/x.json")} as JSON: parse error: premature EOF"
599
- error_match = Regexp.new(Regexp.escape(error_text))
600
- knife("diff /environments/x.json").should_succeed(/- "name": "x"/, stderr: error_match)
601
- end
602
- end
603
- end
604
- end # without versioned cookbooks
605
- end