chef 16.3.38-universal-mingw32 → 16.5.64-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (405) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +2 -2
  4. data/bin/knife +1 -1
  5. data/chef-universal-mingw32.gemspec +0 -1
  6. data/chef.gemspec +2 -1
  7. data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
  8. data/ext/win32-eventlog/Rakefile +2 -2
  9. data/ext/win32-eventlog/chef-log.man.erb +4 -4
  10. data/lib/chef/action_collection.rb +4 -0
  11. data/lib/chef/api_client/registration.rb +2 -2
  12. data/lib/chef/application.rb +19 -17
  13. data/lib/chef/application/apply.rb +17 -12
  14. data/lib/chef/application/base.rb +26 -23
  15. data/lib/chef/application/client.rb +10 -4
  16. data/lib/chef/application/exit_code.rb +13 -4
  17. data/lib/chef/application/knife.rb +22 -11
  18. data/lib/chef/application/solo.rb +2 -1
  19. data/lib/chef/application/windows_service.rb +39 -39
  20. data/lib/chef/application/windows_service_manager.rb +6 -6
  21. data/lib/chef/chef_class.rb +0 -1
  22. data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
  23. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
  24. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
  25. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
  26. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  27. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  28. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
  29. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  30. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  31. data/lib/chef/chef_fs/knife.rb +2 -2
  32. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  33. data/lib/chef/client.rb +21 -22
  34. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  35. data/lib/chef/cookbook/synchronizer.rb +2 -2
  36. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  37. data/lib/chef/cookbook_uploader.rb +1 -1
  38. data/lib/chef/data_collector.rb +6 -5
  39. data/lib/chef/data_collector/config_validation.rb +22 -13
  40. data/lib/chef/data_collector/run_end_message.rb +13 -3
  41. data/lib/chef/data_collector/run_start_message.rb +1 -1
  42. data/lib/chef/deprecated.rb +1 -1
  43. data/lib/chef/deprecation/warnings.rb +2 -2
  44. data/lib/chef/digester.rb +2 -2
  45. data/lib/chef/dsl/chef_vault.rb +1 -1
  46. data/lib/chef/dsl/data_query.rb +2 -2
  47. data/lib/chef/dsl/platform_introspection.rb +9 -9
  48. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  49. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  50. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  51. data/lib/chef/environment.rb +4 -4
  52. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  53. data/lib/chef/exceptions.rb +5 -5
  54. data/lib/chef/file_access_control/windows.rb +5 -1
  55. data/lib/chef/file_content_management/tempfile.rb +9 -9
  56. data/lib/chef/formatters/doc.rb +7 -6
  57. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  58. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  59. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  60. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  61. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  62. data/lib/chef/formatters/minimal.rb +5 -4
  63. data/lib/chef/handler.rb +2 -0
  64. data/lib/chef/http.rb +15 -13
  65. data/lib/chef/http/auth_credentials.rb +5 -1
  66. data/lib/chef/http/authenticator.rb +3 -1
  67. data/lib/chef/http/basic_client.rb +4 -2
  68. data/lib/chef/http/decompressor.rb +1 -1
  69. data/lib/chef/http/http_request.rb +7 -5
  70. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  71. data/lib/chef/http/ssl_policies.rb +1 -1
  72. data/lib/chef/json_compat.rb +2 -2
  73. data/lib/chef/knife.rb +4 -4
  74. data/lib/chef/knife/bootstrap.rb +18 -16
  75. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  76. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  77. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  78. data/lib/chef/knife/client_create.rb +3 -3
  79. data/lib/chef/knife/config_get.rb +8 -97
  80. data/lib/chef/knife/config_get_profile.rb +9 -9
  81. data/lib/chef/knife/config_list.rb +139 -0
  82. data/lib/chef/knife/config_list_profiles.rb +8 -98
  83. data/lib/chef/knife/config_show.rb +127 -0
  84. data/lib/chef/knife/config_use.rb +61 -0
  85. data/lib/chef/knife/config_use_profile.rb +9 -24
  86. data/lib/chef/knife/configure.rb +4 -2
  87. data/lib/chef/knife/cookbook_download.rb +1 -1
  88. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  89. data/lib/chef/knife/cookbook_upload.rb +23 -23
  90. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  91. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  92. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  93. data/lib/chef/knife/core/object_loader.rb +1 -1
  94. data/lib/chef/knife/core/windows_bootstrap_context.rb +42 -34
  95. data/lib/chef/knife/delete.rb +15 -15
  96. data/lib/chef/knife/exec.rb +4 -4
  97. data/lib/chef/knife/node_show.rb +2 -2
  98. data/lib/chef/knife/serve.rb +3 -3
  99. data/lib/chef/knife/ssh.rb +22 -7
  100. data/lib/chef/knife/ssl_check.rb +3 -3
  101. data/lib/chef/knife/status.rb +2 -2
  102. data/lib/chef/knife/user_create.rb +2 -2
  103. data/lib/chef/knife/xargs.rb +19 -19
  104. data/lib/chef/knife/yaml_convert.rb +1 -1
  105. data/lib/chef/local_mode.rb +2 -2
  106. data/lib/chef/log/syslog.rb +2 -2
  107. data/lib/chef/log/winevt.rb +2 -2
  108. data/lib/chef/mixin/checksum.rb +0 -1
  109. data/lib/chef/mixin/deep_merge.rb +35 -18
  110. data/lib/chef/mixin/openssl_helper.rb +4 -5
  111. data/lib/chef/mixin/shell_out.rb +1 -1
  112. data/lib/chef/mixin/template.rb +2 -2
  113. data/lib/chef/mixin/uris.rb +2 -2
  114. data/lib/chef/mixin/versioned_api.rb +1 -2
  115. data/lib/chef/mixin/which.rb +1 -1
  116. data/lib/chef/monkey_patches/net_http.rb +4 -4
  117. data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
  118. data/lib/chef/node/attribute.rb +2 -4
  119. data/lib/chef/node_map.rb +2 -2
  120. data/lib/chef/platform/service_helpers.rb +1 -1
  121. data/lib/chef/policy_builder/policyfile.rb +2 -2
  122. data/lib/chef/property.rb +1 -1
  123. data/lib/chef/provider.rb +0 -4
  124. data/lib/chef/provider/cron/unix.rb +0 -2
  125. data/lib/chef/provider/file.rb +2 -2
  126. data/lib/chef/provider/git.rb +5 -5
  127. data/lib/chef/provider/group.rb +0 -2
  128. data/lib/chef/provider/group/suse.rb +5 -5
  129. data/lib/chef/provider/ifconfig.rb +1 -4
  130. data/lib/chef/provider/launchd.rb +2 -2
  131. data/lib/chef/provider/mount.rb +0 -2
  132. data/lib/chef/provider/mount/linux.rb +63 -0
  133. data/lib/chef/provider/package.rb +0 -2
  134. data/lib/chef/provider/package/rubygems.rb +22 -19
  135. data/lib/chef/provider/package/snap.rb +1 -2
  136. data/lib/chef/provider/package/windows.rb +2 -2
  137. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
  138. data/lib/chef/provider/package/zypper.rb +1 -1
  139. data/lib/chef/provider/powershell_script.rb +21 -5
  140. data/lib/chef/provider/remote_file/content.rb +3 -0
  141. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  142. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  143. data/lib/chef/provider/route.rb +2 -6
  144. data/lib/chef/provider/service/arch.rb +1 -1
  145. data/lib/chef/provider/service/debian.rb +1 -1
  146. data/lib/chef/provider/service/gentoo.rb +2 -2
  147. data/lib/chef/provider/service/macosx.rb +4 -4
  148. data/lib/chef/provider/service/openbsd.rb +1 -4
  149. data/lib/chef/provider/service/redhat.rb +2 -2
  150. data/lib/chef/provider/service/upstart.rb +1 -1
  151. data/lib/chef/provider/service/windows.rb +10 -10
  152. data/lib/chef/provider/systemd_unit.rb +0 -2
  153. data/lib/chef/provider/template/content.rb +1 -0
  154. data/lib/chef/provider/template_finder.rb +2 -10
  155. data/lib/chef/provider/user/dscl.rb +5 -5
  156. data/lib/chef/provider/user/mac.rb +10 -10
  157. data/lib/chef/provider/windows_task.rb +1 -5
  158. data/lib/chef/provider/zypper_repository.rb +2 -3
  159. data/lib/chef/provider_resolver.rb +1 -1
  160. data/lib/chef/providers.rb +1 -1
  161. data/lib/chef/recipe.rb +2 -2
  162. data/lib/chef/resource.rb +7 -11
  163. data/lib/chef/resource/apt_repository.rb +2 -11
  164. data/lib/chef/resource/bff_package.rb +22 -0
  165. data/lib/chef/resource/breakpoint.rb +57 -2
  166. data/lib/chef/resource/build_essential.rb +1 -1
  167. data/lib/chef/resource/cab_package.rb +29 -0
  168. data/lib/chef/resource/chef_client_cron.rb +32 -25
  169. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  170. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  171. data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
  172. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  173. data/lib/chef/resource/chef_gem.rb +10 -10
  174. data/lib/chef/resource/chef_handler.rb +148 -4
  175. data/lib/chef/resource/chef_sleep.rb +2 -2
  176. data/lib/chef/resource/chef_vault_secret.rb +14 -14
  177. data/lib/chef/resource/cookbook_file.rb +2 -2
  178. data/lib/chef/resource/cron/cron_d.rb +0 -1
  179. data/lib/chef/resource/dnf_package.rb +2 -2
  180. data/lib/chef/resource/dsc_resource.rb +0 -1
  181. data/lib/chef/resource/dsc_script.rb +2 -2
  182. data/lib/chef/resource/execute.rb +8 -9
  183. data/lib/chef/resource/file.rb +4 -4
  184. data/lib/chef/resource/gem_package.rb +5 -5
  185. data/lib/chef/resource/homebrew_package.rb +3 -3
  186. data/lib/chef/resource/homebrew_update.rb +7 -7
  187. data/lib/chef/resource/hostname.rb +19 -19
  188. data/lib/chef/resource/launchd.rb +2 -1
  189. data/lib/chef/resource/locale.rb +2 -2
  190. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  191. data/lib/chef/resource/notify_group.rb +0 -1
  192. data/lib/chef/resource/ohai.rb +46 -3
  193. data/lib/chef/resource/ohai_hint.rb +33 -0
  194. data/lib/chef/resource/openssl_dhparam.rb +29 -5
  195. data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
  196. data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
  197. data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
  198. data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
  199. data/lib/chef/resource/openssl_x509_certificate.rb +38 -35
  200. data/lib/chef/resource/openssl_x509_crl.rb +21 -10
  201. data/lib/chef/resource/openssl_x509_request.rb +37 -36
  202. data/lib/chef/resource/osx_profile.rb +292 -6
  203. data/lib/chef/resource/plist.rb +1 -1
  204. data/lib/chef/resource/powershell_package_source.rb +6 -6
  205. data/lib/chef/resource/powershell_script.rb +24 -30
  206. data/lib/chef/resource/reboot.rb +2 -2
  207. data/lib/chef/resource/remote_file.rb +3 -3
  208. data/lib/chef/resource/rhsm_register.rb +22 -10
  209. data/lib/chef/resource/ruby_block.rb +2 -2
  210. data/lib/chef/resource/scm/subversion.rb +2 -2
  211. data/lib/chef/resource/service.rb +3 -3
  212. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  213. data/lib/chef/resource/sudo.rb +1 -1
  214. data/lib/chef/resource/support/cron.d.erb +1 -1
  215. data/lib/chef/resource/support/cron_access.erb +1 -1
  216. data/lib/chef/resource/support/sudoer.erb +1 -1
  217. data/lib/chef/resource/support/ulimit.erb +1 -1
  218. data/lib/chef/resource/sysctl.rb +6 -10
  219. data/lib/chef/resource/systemd_unit.rb +2 -2
  220. data/lib/chef/resource/template.rb +2 -2
  221. data/lib/chef/resource/timezone.rb +112 -73
  222. data/lib/chef/resource/windows_ad_join.rb +12 -3
  223. data/lib/chef/resource/windows_audit_policy.rb +3 -0
  224. data/lib/chef/resource/windows_auto_run.rb +2 -0
  225. data/lib/chef/resource/windows_certificate.rb +8 -4
  226. data/lib/chef/resource/windows_dfs_folder.rb +2 -0
  227. data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
  228. data/lib/chef/resource/windows_dfs_server.rb +2 -0
  229. data/lib/chef/resource/windows_dns_record.rb +10 -7
  230. data/lib/chef/resource/windows_dns_zone.rb +12 -7
  231. data/lib/chef/resource/windows_feature.rb +2 -0
  232. data/lib/chef/resource/windows_feature_dism.rb +10 -0
  233. data/lib/chef/resource/windows_feature_powershell.rb +14 -2
  234. data/lib/chef/resource/windows_firewall_profile.rb +24 -20
  235. data/lib/chef/resource/windows_firewall_rule.rb +5 -3
  236. data/lib/chef/resource/windows_font.rb +3 -1
  237. data/lib/chef/resource/windows_package.rb +28 -5
  238. data/lib/chef/resource/windows_pagefile.rb +4 -0
  239. data/lib/chef/resource/windows_printer.rb +22 -21
  240. data/lib/chef/resource/windows_printer_port.rb +20 -17
  241. data/lib/chef/resource/windows_security_policy.rb +2 -0
  242. data/lib/chef/resource/windows_share.rb +5 -3
  243. data/lib/chef/resource/windows_shortcut.rb +2 -0
  244. data/lib/chef/resource/windows_uac.rb +2 -0
  245. data/lib/chef/resource/windows_user_privilege.rb +54 -53
  246. data/lib/chef/resource/windows_workgroup.rb +5 -6
  247. data/lib/chef/resource/yum_package.rb +2 -2
  248. data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
  249. data/lib/chef/resources.rb +3 -1
  250. data/lib/chef/role.rb +2 -2
  251. data/lib/chef/run_context.rb +2 -2
  252. data/lib/chef/run_context/cookbook_compiler.rb +21 -21
  253. data/lib/chef/run_lock.rb +2 -2
  254. data/lib/chef/run_status.rb +2 -6
  255. data/lib/chef/search/query.rb +4 -5
  256. data/lib/chef/server_api_versions.rb +4 -0
  257. data/lib/chef/shell.rb +32 -27
  258. data/lib/chef/shell/ext.rb +11 -11
  259. data/lib/chef/shell/shell_session.rb +2 -2
  260. data/lib/chef/train_transport.rb +5 -104
  261. data/lib/chef/util/backup.rb +1 -1
  262. data/lib/chef/util/diff.rb +14 -14
  263. data/lib/chef/util/powershell/cmdlet.rb +4 -2
  264. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  265. data/lib/chef/util/threaded_job_queue.rb +0 -2
  266. data/lib/chef/version.rb +1 -1
  267. data/lib/chef/win32/crypto.rb +1 -1
  268. data/lib/chef/win32/file.rb +2 -2
  269. data/lib/chef/win32/file/version_info.rb +5 -5
  270. data/lib/chef/win32/registry.rb +1 -2
  271. data/spec/data/shef-config.rb +1 -1
  272. data/spec/data/ssl/chef-rspec.cert +15 -15
  273. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  274. data/spec/functional/resource/aix_service_spec.rb +2 -2
  275. data/spec/functional/resource/aixinit_service_spec.rb +8 -8
  276. data/spec/functional/resource/bff_spec.rb +2 -2
  277. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  278. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  279. data/spec/functional/resource/dsc_script_spec.rb +0 -1
  280. data/spec/functional/resource/group_spec.rb +6 -6
  281. data/spec/functional/resource/insserv_spec.rb +5 -5
  282. data/spec/functional/resource/link_spec.rb +20 -20
  283. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  284. data/spec/functional/resource/rpm_spec.rb +2 -2
  285. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  286. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  287. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  288. data/spec/functional/resource/windows_font_spec.rb +49 -0
  289. data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
  290. data/spec/functional/resource/windows_task_spec.rb +13 -13
  291. data/spec/functional/run_lock_spec.rb +24 -24
  292. data/spec/functional/version_spec.rb +3 -3
  293. data/spec/functional/win32/registry_spec.rb +8 -8
  294. data/spec/functional/win32/service_manager_spec.rb +1 -1
  295. data/spec/integration/client/client_spec.rb +4 -4
  296. data/spec/integration/client/exit_code_spec.rb +3 -2
  297. data/spec/integration/client/ipv6_spec.rb +1 -1
  298. data/spec/integration/knife/common_options_spec.rb +12 -12
  299. data/spec/integration/knife/config_list_spec.rb +220 -0
  300. data/spec/integration/knife/config_show_spec.rb +192 -0
  301. data/spec/integration/knife/config_use_spec.rb +198 -0
  302. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  303. data/spec/integration/knife/diff_spec.rb +3 -1
  304. data/spec/integration/knife/download_spec.rb +3 -1
  305. data/spec/integration/knife/serve_spec.rb +5 -5
  306. data/spec/integration/knife/upload_spec.rb +3 -1
  307. data/spec/integration/ohai/ohai_spec.rb +61 -0
  308. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  309. data/spec/integration/recipes/remote_directory.rb +1 -1
  310. data/spec/integration/solo/solo_spec.rb +5 -5
  311. data/spec/spec_helper.rb +12 -9
  312. data/spec/stress/win32/file_spec.rb +1 -1
  313. data/spec/support/chef_helpers.rb +2 -2
  314. data/spec/support/matchers/leak.rb +2 -2
  315. data/spec/support/platform_helpers.rb +17 -35
  316. data/spec/support/platforms/win32/spec_service.rb +1 -1
  317. data/spec/support/shared/functional/directory_resource.rb +1 -1
  318. data/spec/support/shared/functional/execute_resource.rb +1 -1
  319. data/spec/support/shared/functional/file_resource.rb +20 -20
  320. data/spec/support/shared/functional/securable_resource.rb +108 -27
  321. data/spec/support/shared/functional/win32_service.rb +2 -2
  322. data/spec/support/shared/functional/windows_script.rb +3 -3
  323. data/spec/support/shared/integration/integration_helper.rb +22 -52
  324. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  325. data/spec/support/shared/unit/script_resource.rb +6 -20
  326. data/spec/support/shared/unit/windows_script_resource.rb +15 -28
  327. data/spec/tiny_server.rb +0 -1
  328. data/spec/unit/application/client_spec.rb +2 -2
  329. data/spec/unit/application/exit_code_spec.rb +10 -0
  330. data/spec/unit/application_spec.rb +4 -6
  331. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  332. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  333. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  334. data/spec/unit/cookbook_spec.rb +2 -2
  335. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  336. data/spec/unit/data_collector_spec.rb +28 -113
  337. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  338. data/spec/unit/environment_spec.rb +7 -7
  339. data/spec/unit/file_access_control_spec.rb +1 -1
  340. data/spec/unit/http/api_versions_spec.rb +19 -1
  341. data/spec/unit/knife/bootstrap_spec.rb +20 -20
  342. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  343. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  344. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  345. data/spec/unit/knife/core/ui_spec.rb +1 -0
  346. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
  347. data/spec/unit/knife/ssh_spec.rb +2 -2
  348. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  349. data/spec/unit/lwrp_spec.rb +3 -3
  350. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  351. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  352. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  353. data/spec/unit/mixin/securable_spec.rb +2 -2
  354. data/spec/unit/mixin/template_spec.rb +30 -30
  355. data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
  356. data/spec/unit/node/immutable_collections_spec.rb +8 -4
  357. data/spec/unit/node_spec.rb +5 -5
  358. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  359. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  360. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  361. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  362. data/spec/unit/provider/powershell_script_spec.rb +11 -4
  363. data/spec/unit/provider/remote_directory_spec.rb +9 -9
  364. data/spec/unit/provider/route_spec.rb +0 -2
  365. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  366. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  367. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  368. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  369. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  370. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  371. data/spec/unit/provider_resolver_spec.rb +6 -6
  372. data/spec/unit/recipe_spec.rb +1 -1
  373. data/spec/unit/resource/batch_spec.rb +6 -6
  374. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  375. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  376. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  377. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  378. data/spec/unit/resource/execute_spec.rb +113 -118
  379. data/spec/unit/resource/launchd_spec.rb +8 -0
  380. data/spec/unit/resource/osx_profile_spec.rb +299 -0
  381. data/spec/unit/resource/powershell_script_spec.rb +11 -29
  382. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  383. data/spec/unit/resource/script_spec.rb +6 -1
  384. data/spec/unit/resource/timezone_spec.rb +63 -0
  385. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  386. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  387. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  388. data/spec/unit/role_spec.rb +11 -11
  389. data/spec/unit/run_lock_spec.rb +5 -1
  390. data/spec/unit/runner_spec.rb +1 -2
  391. data/spec/unit/server_api_spec.rb +43 -16
  392. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  393. data/spec/unit/shell/shell_session_spec.rb +35 -64
  394. data/spec/unit/shell_spec.rb +16 -19
  395. data/spec/unit/train_transport_spec.rb +14 -13
  396. data/spec/unit/util/selinux_spec.rb +2 -0
  397. data/tasks/rspec.rb +1 -3
  398. metadata +42 -33
  399. data/lib/chef/dist.rb +0 -68
  400. data/lib/chef/provider/osx_profile.rb +0 -255
  401. data/spec/integration/knife/config_get_profile_spec.rb +0 -113
  402. data/spec/integration/knife/config_get_spec.rb +0 -191
  403. data/spec/integration/knife/config_list_profiles_spec.rb +0 -218
  404. data/spec/integration/knife/config_use_profile_spec.rb +0 -154
  405. data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -18,7 +18,11 @@
18
18
  require "spec_helper"
19
19
  require "chef/client"
20
20
 
21
- describe Chef::RunLock do
21
+ # FIXME: these are disabled on MacOS due to timing issues in our anka build cluster
22
+ # these issues should be fixed and the tests should be re-eenabled. If we are getting
23
+ # omnibus test phases on mac tests which are reasonable and not ~3 hours long, then the
24
+ # condition to avoid this testing on macs can be deleted
25
+ describe Chef::RunLock, :not_supported_on_macos do
22
26
 
23
27
  default_cache_path = windows? ? 'C:\chef' : "/var/chef"
24
28
  default_pid_location = windows? ? 'C:\chef\cache\chef-client-running.pid' : "/var/chef/cache/chef-client-running.pid"
@@ -111,8 +111,7 @@ describe Chef::Runner do
111
111
 
112
112
  it "should use the provider specified by the resource (if it has one)" do
113
113
  provider = Chef::Provider::Easy.new(run_context.resource_collection[0], run_context)
114
- # Expect provider to be called twice, because will fall back to old provider lookup
115
- expect(run_context.resource_collection[0]).to receive(:provider).twice.and_return(Chef::Provider::Easy)
114
+ expect(run_context.resource_collection[0]).to receive(:provider).once.and_return(Chef::Provider::Easy)
116
115
  expect(Chef::Provider::Easy).to receive(:new).once.and_return(provider)
117
116
  runner.converge
118
117
  end
@@ -59,20 +59,22 @@ describe Chef::ServerAPI do
59
59
  end
60
60
 
61
61
  context "versioned apis" do
62
- class VersionedClassV0
63
- extend Chef::Mixin::VersionedAPI
64
- minimum_api_version 0
65
- end
66
-
67
- class VersionedClassV2
68
- extend Chef::Mixin::VersionedAPI
69
- minimum_api_version 2
70
- end
71
-
72
- class VersionedClassVersions
73
- extend Chef::Mixin::VersionedAPIFactory
74
- add_versioned_api_class VersionedClassV0
75
- add_versioned_api_class VersionedClassV2
62
+ let(:version_class) do
63
+ Class.new do
64
+ extend Chef::Mixin::VersionedAPIFactory
65
+
66
+ version_class_v0 = Class.new do
67
+ extend Chef::Mixin::VersionedAPI
68
+ minimum_api_version 0
69
+ end
70
+ add_versioned_api_class version_class_v0
71
+
72
+ version_class_v2 = Class.new do
73
+ extend Chef::Mixin::VersionedAPI
74
+ minimum_api_version 2
75
+ end
76
+ add_versioned_api_class version_class_v2
77
+ end
76
78
  end
77
79
 
78
80
  before do
@@ -80,7 +82,7 @@ describe Chef::ServerAPI do
80
82
  end
81
83
 
82
84
  let(:versioned_client) do
83
- Chef::ServerAPI.new(url, version_class: VersionedClassVersions)
85
+ Chef::ServerAPI.new(url, version_class: version_class)
84
86
  end
85
87
 
86
88
  it "on protocol negotiation it posts the same message body without doubly-encoding the json string" do
@@ -114,11 +116,36 @@ describe Chef::ServerAPI do
114
116
 
115
117
  it "500 on a get retries and gets correctly " do
116
118
  WebMock.disable_net_connect!
117
- get_body = { bar: "baz" }
118
119
  headers = { "Accept" => "application/json", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3", "Host" => "chef.example.com:4000", "X-Chef-Version" => Chef::VERSION, "X-Ops-Sign" => "algorithm=sha1;version=1.1;", "X-Ops-Userid" => "silent-bob" }
119
120
  stub_request(:get, "http://chef.example.com:4000/foo").with(headers: headers).to_return(status: [500, "Internal Server Error"])
120
121
  stub_request(:get, "http://chef.example.com:4000/foo").with(headers: headers).to_return(status: 200, body: "", headers: {})
121
122
  client.get("foo")
122
123
  end
124
+
125
+ it "406 on a post does protocol negotiation" do
126
+ WebMock.disable_net_connect!
127
+ post_body = { bar: "baz" }
128
+ body_406 = '{"error":"invalid-x-ops-server-api-version","message":"Specified version 2 not supported","min_version":0,"max_version":1}'
129
+ stub_request(:post, "http://chef.example.com:4000/foo").with(body: post_body.to_json, headers: { "X-Ops-Server-Api-Version" => "2" }).to_return(status: [406, "Not Acceptable"], body: body_406 )
130
+ stub_request(:post, "http://chef.example.com:4000/foo").with(body: post_body.to_json, headers: { "X-Ops-Server-Api-Version" => "0" }).to_return(status: 200, body: "", headers: {})
131
+ client.post("foo", post_body)
132
+ end
133
+
134
+ it "406 on a put does protocol negotiation" do
135
+ WebMock.disable_net_connect!
136
+ put_body = { bar: "baz" }
137
+ body_406 = '{"error":"invalid-x-ops-server-api-version","message":"Specified version 2 not supported","min_version":0,"max_version":1}'
138
+ stub_request(:put, "http://chef.example.com:4000/foo").with(body: put_body.to_json, headers: { "X-Ops-Server-Api-Version" => "2" }).to_return(status: [406, "Not Acceptable"], body: body_406 )
139
+ stub_request(:put, "http://chef.example.com:4000/foo").with(body: put_body.to_json, headers: { "X-Ops-Server-Api-Version" => "0" }).to_return(status: 200, body: "", headers: {})
140
+ client.put("foo", put_body)
141
+ end
142
+
143
+ it "406 on a get does protocol negotiation" do
144
+ WebMock.disable_net_connect!
145
+ body_406 = '{"error":"invalid-x-ops-server-api-version","message":"Specified version 2 not supported","min_version":0,"max_version":1}'
146
+ stub_request(:get, "http://chef.example.com:4000/foo").with(headers: { "X-Ops-Server-Api-Version" => "2" }).to_return(status: [406, "Not Acceptable"], body: body_406 )
147
+ stub_request(:get, "http://chef.example.com:4000/foo").with(headers: { "X-Ops-Server-Api-Version" => "0" }).to_return(status: 200, body: "", headers: {})
148
+ client.get("foo")
149
+ end
123
150
  end
124
151
  end
@@ -19,14 +19,57 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Shell::Extensions do
22
+ let(:test_shell_session) do
23
+ Class.new(Shell::ShellSession) do
24
+ def rebuild_node
25
+ nil
26
+ end
27
+
28
+ def rebuild_collection
29
+ nil
30
+ end
31
+
32
+ def loading
33
+ nil
34
+ end
35
+
36
+ def loading_complete
37
+ nil
38
+ end
39
+ end
40
+ end
41
+
42
+ let(:test_job_manager) do
43
+ Class.new do
44
+ attr_accessor :jobs
45
+ end
46
+ end
47
+
48
+ let(:object_test_harness) do
49
+ Proc.new do
50
+ extend Shell::Extensions::ObjectCoreExtensions
51
+
52
+ def conf=(new_conf)
53
+ @conf = new_conf
54
+ end
55
+
56
+ def conf
57
+ @conf
58
+ end
59
+
60
+ desc "rspecin'"
61
+ def rspec_method; end
62
+ end
63
+ end
64
+
22
65
  describe "extending object for top level methods" do
23
66
 
24
67
  before do
25
- @shell_client = TestableShellSession.instance
68
+ @shell_client = test_shell_session.instance
26
69
  allow(Shell).to receive(:session).and_return(@shell_client)
27
- @job_manager = TestJobManager.new
70
+ @job_manager = test_job_manager.new
28
71
  @root_context = Object.new
29
- @root_context.instance_eval(&ObjectTestHarness)
72
+ @root_context.instance_eval(&object_test_harness)
30
73
  Shell::Extensions.extend_context_object(@root_context)
31
74
  @root_context.conf = double("irbconf")
32
75
  end
@@ -18,32 +18,10 @@
18
18
  require "spec_helper"
19
19
  require "ostruct"
20
20
 
21
- class TestableShellSession < Shell::ShellSession
22
-
23
- def rebuild_node
24
- nil
25
- end
26
-
27
- def rebuild_collection
28
- nil
29
- end
30
-
31
- def loading
32
- nil
33
- end
34
-
35
- def loading_complete
36
- nil
37
- end
38
-
39
- end
40
-
41
21
  describe Shell::ShellSession do
42
-
43
22
  it "is a singleton object" do
44
23
  expect(Shell::ShellSession).to include(Singleton)
45
24
  end
46
-
47
25
  end
48
26
 
49
27
  describe Shell::ClientSession do
@@ -120,20 +98,10 @@ end
120
98
 
121
99
  describe Shell::StandAloneSession do
122
100
  let(:json_attribs) { { "a" => "b" } }
123
- let(:chef_rest) { double("Chef::ServerAPI") }
124
101
  let(:node) { Chef::Node.new }
125
- let(:events) { Chef::EventDispatch::Dispatcher.new }
126
102
  let(:session) { Shell::StandAloneSession.instance }
127
- let(:client) do
128
- double("Chef::Client.new",
129
- run_ohai: true,
130
- load_node: true,
131
- build_node: true,
132
- register: true,
133
- sync_cookbooks: {})
134
- end
135
103
  let(:recipe) { Chef::Recipe.new(nil, nil, run_context) }
136
- let(:run_context) { Chef::RunContext.new(node, {}, events) }
104
+ let(:run_context) { Chef::RunContext.new(node, {}, Chef::EventDispatch::Dispatcher.new) }
137
105
 
138
106
  before do
139
107
  Chef::Config[:shell_config] = { override_runlist: [Chef::RunList::RunListItem.new("shell::override")] }
@@ -172,6 +140,12 @@ describe Shell::StandAloneSession do
172
140
  end
173
141
 
174
142
  it "passes the shell CLI args to the client" do
143
+ client = double("Chef::Client.new",
144
+ run_ohai: true,
145
+ load_node: true,
146
+ build_node: true,
147
+ register: true,
148
+ sync_cookbooks: {})
175
149
  expect(Chef::Client).to receive(:new).with(json_attribs, Chef::Config[:shell_config]).and_return(client)
176
150
  session.send(:rebuild_node)
177
151
  end
@@ -180,68 +154,65 @@ end
180
154
 
181
155
  describe Shell::SoloLegacySession do
182
156
  let(:json_attribs) { { "a" => "b" } }
157
+ let(:node) { Chef::Node.new }
158
+ let(:session) { Shell::SoloLegacySession.instance }
159
+ let(:recipe) { Chef::Recipe.new(nil, nil, run_context) }
160
+ let(:run_context) { Chef::RunContext.new(node, {}, Chef::EventDispatch::Dispatcher.new) }
183
161
 
184
162
  before do
185
163
  Chef::Config[:shell_config] = { override_runlist: [Chef::RunList::RunListItem.new("shell::override")] }
186
- Chef::Config[:shell_solo] = true
187
- @session = Shell::SoloLegacySession.instance
188
- @node = Chef::Node.new
189
- @events = Chef::EventDispatch::Dispatcher.new
190
- @run_context = @session.run_context = Chef::RunContext.new(@node, {}, @events)
191
- @session.node = @node
192
- @recipe = @session.recipe = Chef::Recipe.new(nil, nil, @run_context)
193
- Shell::Extensions.extend_context_recipe(@recipe)
194
- end
195
-
196
- after do
197
- Chef::Config[:shell_solo] = nil
164
+ Chef::Config[:solo_legacy_shell] = true
165
+ session.node = node
166
+ session.json_configuration = json_attribs
167
+ session.run_context = run_context
168
+ session.recipe = recipe
169
+ Shell::Extensions.extend_context_recipe(recipe)
198
170
  end
199
171
 
200
172
  it "returns a collection based on it's compilation object and the extra recipe provided by chef-shell" do
201
- allow(@session).to receive(:node_built?).and_return(true)
173
+ allow(session).to receive(:node_built?).and_return(true)
202
174
  kitteh = Chef::Resource::Cat.new("keyboard")
203
- @recipe.run_context.resource_collection << kitteh
204
- expect(@session.resource_collection.include?(kitteh)).to be true
175
+ recipe.run_context.resource_collection << kitteh
176
+ expect(session.resource_collection.include?(kitteh)).to be true
205
177
  end
206
178
 
207
179
  it "returns definitions from its compilation object" do
208
- expect(@session.definitions).to eq(@run_context.definitions)
180
+ expect(session.definitions).to eq(run_context.definitions)
209
181
  end
210
182
 
211
183
  it "keeps json attribs and passes them to the node for consumption" do
212
- @session.node_attributes = { "besnard_lakes" => "are_the_dark_horse" }
213
- expect(@session.node["besnard_lakes"]).to eq("are_the_dark_horse")
184
+ session.node_attributes = { "besnard_lakes" => "are_the_dark_horse" }
185
+ expect(session.node["besnard_lakes"]).to eq("are_the_dark_horse")
214
186
  # pending "1) keep attribs in an ivar 2) pass them to the node 3) feed them to the node on reset"
215
187
  end
216
188
 
217
189
  it "generates its resource collection from the compiled cookbooks and the ad hoc recipe" do
218
- allow(@session).to receive(:node_built?).and_return(true)
190
+ allow(session).to receive(:node_built?).and_return(true)
219
191
  kitteh_cat = Chef::Resource::Cat.new("kitteh")
220
- @run_context.resource_collection << kitteh_cat
192
+ run_context.resource_collection << kitteh_cat
221
193
  keyboard_cat = Chef::Resource::Cat.new("keyboard_cat")
222
- @recipe.run_context.resource_collection << keyboard_cat
223
- # @session.rebuild_collection
224
- expect(@session.resource_collection.include?(kitteh_cat)).to be true
225
- expect(@session.resource_collection.include?(keyboard_cat)).to be true
194
+ recipe.run_context.resource_collection << keyboard_cat
195
+ # session.rebuild_collection
196
+ expect(session.resource_collection.include?(kitteh_cat)).to be true
197
+ expect(session.resource_collection.include?(keyboard_cat)).to be true
226
198
  end
227
199
 
228
200
  it "runs chef with a resource collection from the compiled cookbooks" do
229
- allow(@session).to receive(:node_built?).and_return(true)
201
+ allow(session).to receive(:node_built?).and_return(true)
230
202
  chef_runner = double("Chef::Runner.new", converge: :converged)
231
- expect(Chef::Runner).to receive(:new).with(an_instance_of(Chef::RunContext)).and_return(chef_runner)
203
+ expect(Chef::Runner).to receive(:new).with(session.recipe.run_context).and_return(chef_runner)
232
204
 
233
- expect(@recipe.run_chef).to eq(:converged)
205
+ expect(recipe.run_chef).to eq(:converged)
234
206
  end
235
207
 
236
208
  it "passes the shell CLI args to the client" do
237
- @client = double("Chef::Client.new",
209
+ client = double("Chef::Client.new",
238
210
  run_ohai: true,
239
211
  load_node: true,
240
212
  build_node: true,
241
213
  register: true,
242
214
  sync_cookbooks: {})
243
- expect(Chef::Client).to receive(:new).with(json_attribs, Chef::Config[:shell_config]).and_return(@client)
244
- @session.json_configuration = json_attribs
245
- @session.send(:rebuild_node)
215
+ expect(Chef::Client).to receive(:new).with(json_attribs, Chef::Config[:shell_config]).and_return(client)
216
+ session.send(:rebuild_node)
246
217
  end
247
218
  end
@@ -18,26 +18,23 @@
18
18
  require "spec_helper"
19
19
  require "ostruct"
20
20
 
21
- ObjectTestHarness = Proc.new do
22
- extend Shell::Extensions::ObjectCoreExtensions
23
-
24
- def conf=(new_conf)
25
- @conf = new_conf
26
- end
27
-
28
- def conf
29
- @conf
30
- end
21
+ describe Shell do
22
+ let(:object_test_harness) do
23
+ Proc.new do
24
+ extend Shell::Extensions::ObjectCoreExtensions
31
25
 
32
- desc "rspecin'"
33
- def rspec_method; end
34
- end
26
+ def conf=(new_conf)
27
+ @conf = new_conf
28
+ end
35
29
 
36
- class TestJobManager
37
- attr_accessor :jobs
38
- end
30
+ def conf
31
+ @conf
32
+ end
39
33
 
40
- describe Shell do
34
+ desc "rspecin'"
35
+ def rspec_method; end
36
+ end
37
+ end
41
38
 
42
39
  before do
43
40
  Shell.irb_conf = {}
@@ -66,7 +63,7 @@ describe Shell do
66
63
 
67
64
  conf = OpenStruct.new
68
65
  conf.main = Object.new
69
- conf.main.instance_eval(&ObjectTestHarness)
66
+ conf.main.instance_eval(&object_test_harness)
70
67
  Shell.irb_conf[:IRB_RC].call(conf)
71
68
  expect(conf.prompt_c).to eq("chef > ")
72
69
  expect(conf.return_format).to eq(" => %s \n")
@@ -107,7 +104,7 @@ describe Shell do
107
104
 
108
105
  before do
109
106
  @chef_object = Object.new
110
- @chef_object.instance_eval(&ObjectTestHarness)
107
+ @chef_object.instance_eval(&object_test_harness)
111
108
  end
112
109
 
113
110
  it "creates help text for methods with descriptions" do
@@ -19,32 +19,33 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::TrainTransport do
22
+ let(:transport) { Chef::TrainTransport.new(Chef::Log) }
23
+
22
24
  describe "load_credentials" do
23
- let(:transport) { Chef::TrainTransport.new }
24
25
  let(:good_credentials) { { "switch.cisco.com" => { "user" => "cisco", "password" => "cisco", "enable_password" => "secret" } } }
25
26
 
26
27
  before do
27
- allow(Chef::TrainTransport).to receive(:parse_credentials_file).and_return(good_credentials)
28
+ allow(transport).to receive(:parse_credentials_file).and_return(good_credentials)
28
29
  end
29
30
 
30
31
  it "matches credentials when they exist" do
31
- expect(Chef::TrainTransport.load_credentials("switch.cisco.com")[:user]).to eq("cisco")
32
- expect(Chef::TrainTransport.load_credentials("switch.cisco.com")[:password]).to eq("cisco")
33
- expect(Chef::TrainTransport.load_credentials("switch.cisco.com")[:enable_password]).to eq("secret")
32
+ expect(transport.load_credentials("switch.cisco.com")[:user]).to eq("cisco")
33
+ expect(transport.load_credentials("switch.cisco.com")[:password]).to eq("cisco")
34
+ expect(transport.load_credentials("switch.cisco.com")[:enable_password]).to eq("secret")
34
35
  end
35
36
 
36
37
  it "returns nil if there is no match" do
37
- expect(Chef::TrainTransport.load_credentials("router.unicorns.com")).to be_nil
38
+ expect(transport.load_credentials("router.unicorns.com")).to be_nil
38
39
  end
39
40
 
40
41
  # [foo.example.org] => {"foo"=>{"example"=>{"org"=>{}}}}
41
42
  # ['foo.example.org'] => {"foo.example.org"=>{}}
42
43
  it "warns if the host has been split by toml" do
43
- allow(Chef::TrainTransport).to receive(:credentials_file_path).and_return("/Users/scotthourglass/.chef/credentials")
44
- allow(Chef::TrainTransport).to receive(:parse_credentials_file).and_return({ "foo" => { "example" => { "org" => {} } } })
44
+ allow(transport).to receive(:credentials_file_path).and_return("/Users/scotthourglass/.chef/credentials")
45
+ allow(transport).to receive(:parse_credentials_file).and_return({ "foo" => { "example" => { "org" => {} } } })
45
46
  expect(Chef::Log).to receive(:warn).with(/as a Hash/)
46
47
  expect(Chef::Log).to receive(:warn).with(/Hostnames must be surrounded by single quotes/)
47
- expect(Chef::TrainTransport.load_credentials("foo.example.org")).to be_nil
48
+ expect(transport.load_credentials("foo.example.org")).to be_nil
48
49
  end
49
50
  end
50
51
 
@@ -60,25 +61,25 @@ describe Chef::TrainTransport do
60
61
 
61
62
  it "returns the path if it exists" do
62
63
  allow(File).to receive(:exist?).with(config_cred_file_path).and_return(true)
63
- expect(Chef::TrainTransport.credentials_file_path).to eq(config_cred_file_path)
64
+ expect(transport.credentials_file_path).to eq(config_cred_file_path)
64
65
  end
65
66
 
66
67
  it "raises an error if it does not exist" do
67
68
  allow(File).to receive(:exist?).and_return(false)
68
- expect { Chef::TrainTransport.credentials_file_path }.to raise_error(ArgumentError, /does not exist/)
69
+ expect { transport.credentials_file_path }.to raise_error(ArgumentError, /does not exist/)
69
70
  end
70
71
  end
71
72
 
72
73
  it "raises an error if the default creds files do not exist" do
73
74
  allow(File).to receive(:exist?).and_return(false)
74
- expect { Chef::TrainTransport.credentials_file_path }.to raise_error(ArgumentError, /does not exist/)
75
+ expect { transport.credentials_file_path }.to raise_error(ArgumentError, /does not exist/)
75
76
  end
76
77
 
77
78
  it "returns the path to the default config file if it exists" do
78
79
  tm_config = double("Config Context", host: "foo.example.org", credentials_file: nil)
79
80
  allow(Chef::Config).to receive(:target_mode).and_return(tm_config)
80
81
  allow(File).to receive(:exist?).with(host_cred_file_path).and_return(true)
81
- expect(Chef::TrainTransport.credentials_file_path).to eq(host_cred_file_path)
82
+ expect(transport.credentials_file_path).to eq(host_cred_file_path)
82
83
  end
83
84
  end
84
85
  end