chef 16.3.38-universal-mingw32 → 16.5.64-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 (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
@@ -1,113 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config get-profile", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
- include_context "with a chef repo"
26
-
27
- let(:cmd_args) { [] }
28
-
29
- subject do
30
- cmd = knife("config", "get-profile", *cmd_args, instance_filter: lambda { |instance|
31
- # Fake the failsafe check because this command doesn't actually process knife.rb.
32
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
33
- })
34
- cmd.stdout
35
- end
36
-
37
- around do |ex|
38
- # Store and reset the value of some env vars.
39
- old_chef_home = ENV["CHEF_HOME"]
40
- old_knife_home = ENV["KNIFE_HOME"]
41
- old_home = ENV["HOME"]
42
- old_wd = Dir.pwd
43
- ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
44
- # Clear these out because they are cached permanently.
45
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
46
- Chef::Knife::ConfigGetProfile.reset_config_loader!
47
- begin
48
- ex.run
49
- ensure
50
- ENV["CHEF_HOME"] = old_chef_home
51
- ENV["KNIFE_HOME"] = old_knife_home
52
- ENV["HOME"] = old_home
53
- Dir.chdir(old_wd)
54
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
55
- ChefConfig::PathHelper.per_tool_home_environment = nil
56
- end
57
- end
58
-
59
- before do
60
- # Always run from the temp folder. This can't be in the `around` block above
61
- # because it has to run after the before set in the "with a chef repo" shared context.
62
- directory("repo")
63
- Dir.chdir(path_to("repo"))
64
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
65
- ENV["HOME"] = path_to(".")
66
- end
67
-
68
- context "with no configuration" do
69
- it { is_expected.to eq "default\n" }
70
- end
71
-
72
- context "with --profile" do
73
- let(:cmd_args) { %w{--profile production} }
74
- it { is_expected.to eq "production\n" }
75
- end
76
-
77
- context "with an environment variable" do
78
- around do |ex|
79
- old_chef_profile = ENV["CHEF_PROFILE"]
80
- begin
81
- ENV["CHEF_PROFILE"] = "staging"
82
- ex.run
83
- ensure
84
- ENV["CHEF_PROFILE"] = old_chef_profile
85
- end
86
- end
87
-
88
- it { is_expected.to eq "staging\n" }
89
- end
90
-
91
- context "with a context file" do
92
- before { file(".chef/context", "development\n") }
93
- it { is_expected.to eq "development\n" }
94
- end
95
-
96
- context "with a context file under $CHEF_HOME" do
97
- before do
98
- file("chefhome/.chef/context", "other\n")
99
- ENV["CHEF_HOME"] = path_to("chefhome")
100
- end
101
-
102
- it { is_expected.to eq "other\n" }
103
- end
104
-
105
- context "with a context file under $KNIFE_HOME" do
106
- before do
107
- file("knifehome/.chef/context", "other\n")
108
- ENV["KNIFE_HOME"] = path_to("knifehome")
109
- end
110
-
111
- it { is_expected.to eq "other\n" }
112
- end
113
- end
@@ -1,191 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config get", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
- include_context "with a chef repo"
26
-
27
- let(:cmd_args) { [] }
28
-
29
- subject do
30
- cmd = knife("config", "get", *cmd_args, instance_filter: lambda { |instance|
31
- # Clear the stub set up in KnifeSupport.
32
- allow(File).to receive(:file?).and_call_original
33
- # Lies, damn lies, and config files. We need to allow normal config loading
34
- # behavior to be able to test stuff.
35
- instance.config.delete(:config_file)
36
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
37
- })
38
- cmd.stdout
39
- end
40
-
41
- around do |ex|
42
- # Store and reset the value of some env vars.
43
- old_chef_home = ENV["CHEF_HOME"]
44
- old_knife_home = ENV["KNIFE_HOME"]
45
- old_home = ENV["HOME"]
46
- old_wd = Dir.pwd
47
- ChefConfig::PathHelper.per_tool_home_environment = "KNIFE_HOME"
48
- # Clear these out because they are cached permanently.
49
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
50
- Chef::Knife::ConfigGet.reset_config_loader!
51
- begin
52
- ex.run
53
- ensure
54
- ENV["CHEF_HOME"] = old_chef_home
55
- ENV["KNIFE_HOME"] = old_knife_home
56
- ENV["HOME"] = old_home
57
- Dir.chdir(old_wd)
58
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
59
- ChefConfig::PathHelper.per_tool_home_environment = nil
60
- end
61
- end
62
-
63
- before do
64
- # Always run from the temp folder. This can't be in the `around` block above
65
- # because it has to run after the before set in the "with a chef repo" shared context.
66
- directory("repo")
67
- Dir.chdir(path_to("repo"))
68
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
69
- ENV["HOME"] = path_to(".")
70
- end
71
-
72
- context "with a global knife.rb" do
73
- before { file(".chef/knife.rb", "node_name 'one'\n") }
74
-
75
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/.chef/knife.rb$}) }
76
- it { is_expected.to match(/^node_name:\s+one$/) }
77
- end
78
-
79
- context "with a repo knife.rb" do
80
- before { file("repo/.chef/knife.rb", "node_name 'two'\n") }
81
-
82
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/repo/.chef/knife.rb$}) }
83
- it { is_expected.to match(/^node_name:\s+two$/) }
84
- end
85
-
86
- context "with both knife.rb" do
87
- before do
88
- file(".chef/knife.rb", "node_name 'one'\n")
89
- file("repo/.chef/knife.rb", "node_name 'two'\n")
90
- end
91
-
92
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/repo/.chef/knife.rb$}) }
93
- it { is_expected.to match(/^node_name:\s+two$/) }
94
- end
95
-
96
- context "with a credentials file" do
97
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
98
-
99
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/.chef/credentials$}) }
100
- it { is_expected.to match(/^node_name:\s+three$/) }
101
- end
102
-
103
- context "with a credentials file and knife.rb" do
104
- before do
105
- file(".chef/knife.rb", "node_name 'one'\n")
106
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
107
- end
108
-
109
- it { is_expected.to match(%r{^Loading from configuration file .*/#{File.basename(path_to("."))}/.chef/knife.rb$}) }
110
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/.chef/credentials$}) }
111
- it { is_expected.to match(/^node_name:\s+one$/) }
112
- end
113
-
114
- context "with a config dot d files" do
115
- before { file(".chef/config.d/abc.rb", "node_name 'one'\n") }
116
-
117
- it { is_expected.to match(%r{^Loading from .d/ configuration file .*/#{File.basename(path_to("."))}/.chef/config.d/abc.rb$}) }
118
- it { is_expected.to match(/^node_name:\s+one$/) }
119
- end
120
-
121
- context "with a credentials file and CHEF_HOME" do
122
- before do
123
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
124
- file("foo/.chef/credentials", "[default]\nclient_name = \"four\"\n")
125
- ENV["CHEF_HOME"] = path_to("foo")
126
- end
127
-
128
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/foo/.chef/credentials$}) }
129
- it { is_expected.to match(/^node_name:\s+four$/) }
130
- end
131
-
132
- context "with a credentials file and KNIFE_HOME" do
133
- before do
134
- file(".chef/credentials", "[default]\nclient_name = \"three\"\n")
135
- file("bar/.chef/credentials", "[default]\nclient_name = \"four\"\n")
136
- ENV["KNIFE_HOME"] = path_to("bar")
137
- end
138
-
139
- it { is_expected.to match(%r{^Loading from credentials file .*/#{File.basename(path_to("."))}/bar/.chef/credentials$}) }
140
- it { is_expected.to match(/^node_name:\s+four$/) }
141
- end
142
-
143
- context "with single argument" do
144
- let(:cmd_args) { %w{node_name} }
145
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
146
-
147
- it { is_expected.to match(/^node_name:\s+three\Z/) }
148
- end
149
-
150
- context "with two arguments" do
151
- let(:cmd_args) { %w{node_name client_key} }
152
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\nclient_key = \"three.pem\"") }
153
-
154
- it { is_expected.to match(%r{^client_key:\s+\S*/.chef/three.pem\nnode_name:\s+three\Z}) }
155
- end
156
-
157
- context "with a dotted argument" do
158
- let(:cmd_args) { %w{knife.ssh_user} }
159
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n[default.knife]\nssh_user = \"foo\"\n") }
160
-
161
- it { is_expected.to match(/^knife.ssh_user:\s+foo\Z/) }
162
- end
163
-
164
- context "with regex argument" do
165
- let(:cmd_args) { %w{/name/} }
166
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
167
-
168
- it { is_expected.to match(/^node_name:\s+three\Z/) }
169
- end
170
-
171
- context "with --all" do
172
- let(:cmd_args) { %w{-a /key_contents/} }
173
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
174
-
175
- it { is_expected.to match(/^client_key_contents:\s+\nvalidation_key_contents:\s+\Z/) }
176
- end
177
-
178
- context "with --raw" do
179
- let(:cmd_args) { %w{-r node_name} }
180
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
181
-
182
- it { is_expected.to eq("three\n") }
183
- end
184
-
185
- context "with --format=json" do
186
- let(:cmd_args) { %w{--format=json node_name} }
187
- before { file(".chef/credentials", "[default]\nclient_name = \"three\"\n") }
188
-
189
- it { expect(JSON.parse(subject)).to eq({ "node_name" => "three" }) }
190
- end
191
- end
@@ -1,218 +0,0 @@
1
- #
2
- # Copyright 2018, Noah Kantrowitz
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- require "spec_helper"
17
- require "support/shared/integration/integration_helper"
18
- require "support/shared/context/config"
19
-
20
- describe "knife config list-profiles", :workstation do
21
- include IntegrationSupport
22
- include KnifeSupport
23
-
24
- include_context "default config options"
25
- include_context "with a chef repo"
26
-
27
- let(:cmd_args) { [] }
28
- let(:knife_list_profiles) do
29
- knife("config", "list-profiles", *cmd_args, instance_filter: lambda { |instance|
30
- # Fake the failsafe check because this command doesn't actually process knife.rb.
31
- $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
32
- allow(File).to receive(:file?).and_call_original
33
- })
34
- end
35
- subject { knife_list_profiles.stdout }
36
-
37
- around do |ex|
38
- # Store and reset the value of some env vars.
39
- old_home = ENV["HOME"]
40
- old_wd = Dir.pwd
41
- # Clear these out because they are cached permanently.
42
- ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
43
- Chef::Knife::ConfigListProfiles.reset_config_loader!
44
- begin
45
- ex.run
46
- ensure
47
- ENV["HOME"] = old_home
48
- Dir.chdir(old_wd)
49
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
50
- end
51
- end
52
-
53
- before do
54
- # Always run from the temp folder. This can't be in the `around` block above
55
- # because it has to run after the before set in the "with a chef repo" shared context.
56
- directory("repo")
57
- Dir.chdir(path_to("repo"))
58
- ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
59
- ENV["HOME"] = path_to(".")
60
- end
61
-
62
- # NOTE: The funky formatting with # at the end of the line of some of the
63
- # output examples are because of how the format strings are built, there is
64
- # substantial trailing whitespace in most cases which many editors "helpfully" remove.
65
-
66
- context "with no credentials file" do
67
- subject { knife_list_profiles.stderr }
68
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
69
- end
70
-
71
- context "with an empty credentials file" do
72
- before { file(".chef/credentials", "") }
73
- subject { knife_list_profiles.stderr }
74
- it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
75
- end
76
-
77
- context "with a simple default profile" do
78
- before { file(".chef/credentials", <<~EOH) }
79
- [default]
80
- client_name = "testuser"
81
- client_key = "testkey.pem"
82
- chef_server_url = "https://example.com/organizations/testorg"
83
- EOH
84
- it { is_expected.to eq <<~EOH.delete("#") }
85
- Profile Client Key Server #
86
- ----------------------------------------------------------------------------------#
87
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
88
- EOH
89
- end
90
-
91
- context "with multiple profiles" do
92
- before { file(".chef/credentials", <<~EOH) }
93
- [default]
94
- client_name = "testuser"
95
- client_key = "testkey.pem"
96
- chef_server_url = "https://example.com/organizations/testorg"
97
-
98
- [prod]
99
- client_name = "testuser"
100
- client_key = "testkey.pem"
101
- chef_server_url = "https://example.com/organizations/prod"
102
-
103
- [qa]
104
- client_name = "qauser"
105
- client_key = "~/src/qauser.pem"
106
- chef_server_url = "https://example.com/organizations/testorg"
107
- EOH
108
- it { is_expected.to eq <<~EOH.delete("#") }
109
- Profile Client Key Server #
110
- ----------------------------------------------------------------------------------#
111
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
112
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
113
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
114
- EOH
115
- end
116
-
117
- context "with a non-default active profile" do
118
- let(:cmd_args) { %w{--profile prod} }
119
- before { file(".chef/credentials", <<~EOH) }
120
- [default]
121
- client_name = "testuser"
122
- client_key = "testkey.pem"
123
- chef_server_url = "https://example.com/organizations/testorg"
124
-
125
- [prod]
126
- client_name = "testuser"
127
- client_key = "testkey.pem"
128
- chef_server_url = "https://example.com/organizations/prod"
129
-
130
- [qa]
131
- client_name = "qauser"
132
- client_key = "~/src/qauser.pem"
133
- chef_server_url = "https://example.com/organizations/testorg"
134
- EOH
135
- it { is_expected.to eq <<~EOH.delete("#") }
136
- Profile Client Key Server #
137
- ----------------------------------------------------------------------------------#
138
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
139
- *prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
140
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
141
- EOH
142
- end
143
-
144
- context "with a bad profile as an active profile" do
145
- let(:cmd_args) { %w{--profile production} }
146
- before { file(".chef/credentials", <<~EOH) }
147
- [default]
148
- client_name = "testuser"
149
- client_key = "testkey.pem"
150
- chef_server_url = "https://example.com/organizations/testorg"
151
-
152
- [prod]
153
- client_name = "testuser"
154
- client_key = "testkey.pem"
155
- chef_server_url = "https://example.com/organizations/prod"
156
-
157
- [qa]
158
- client_name = "qauser"
159
- client_key = "~/src/qauser.pem"
160
- chef_server_url = "https://example.com/organizations/testorg"
161
- EOH
162
- it { is_expected.to eq <<~EOH.delete("#") }
163
- Profile Client Key Server #
164
- ---------------------------------------------------------------------------------#
165
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
166
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
167
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
168
- EOH
169
- end
170
-
171
- context "with a minimal profile" do
172
- before { file(".chef/credentials", <<~EOH) }
173
- [default]
174
- chef_server_url = "https://example.com/organizations/testorg"
175
- EOH
176
- it { is_expected.to match %r{^*default .*? https://example.com/organizations/testorg$} }
177
- end
178
-
179
- context "with -i" do
180
- let(:cmd_args) { %w{-i} }
181
- before { file(".chef/credentials", <<~EOH) }
182
- [default]
183
- chef_server_url = "https://example.com/organizations/testorg"
184
- EOH
185
- it { is_expected.to eq <<~EOH.delete("#") }
186
- Profile Client Key Server #
187
- ----------------------------------------------------------------#
188
- *default https://example.com/organizations/testorg#
189
- EOH
190
- end
191
-
192
- context "with --format=json" do
193
- let(:cmd_args) { %w{--format=json node_name} }
194
- before { file(".chef/credentials", <<~EOH) }
195
- [default]
196
- client_name = "testuser"
197
- client_key = "testkey.pem"
198
- chef_server_url = "https://example.com/organizations/testorg"
199
-
200
- [prod]
201
- client_name = "testuser"
202
- client_key = "testkey.pem"
203
- chef_server_url = "https://example.com/organizations/prod"
204
-
205
- [qa]
206
- client_name = "qauser"
207
- client_key = "~/src/qauser.pem"
208
- chef_server_url = "https://example.com/organizations/testorg"
209
- EOH
210
- it {
211
- expect(JSON.parse(subject)).to eq [
212
- { "profile" => "default", "active" => true, "client_name" => "testuser", "client_key" => path_to(".chef/testkey.pem"), "server_url" => "https://example.com/organizations/testorg" },
213
- { "profile" => "prod", "active" => false, "client_name" => "testuser", "client_key" => path_to(".chef/testkey.pem"), "server_url" => "https://example.com/organizations/prod" },
214
- { "profile" => "qa", "active" => false, "client_name" => "qauser", "client_key" => path_to("src/qauser.pem"), "server_url" => "https://example.com/organizations/testorg" },
215
- ]
216
- }
217
- end
218
- end