chef 11.6.2-x86-mingw32 → 11.8.0.rc.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. data/CONTRIBUTING.md +12 -12
  2. data/Rakefile +11 -14
  3. data/bin/chef-apply +2 -2
  4. data/bin/chef-client +2 -2
  5. data/bin/chef-service-manager +2 -2
  6. data/bin/chef-shell +3 -0
  7. data/bin/chef-solo +2 -2
  8. data/bin/knife +3 -3
  9. data/distro/arch/etc/rc.d/chef-client +2 -2
  10. data/distro/arch/etc/rc.d/chef-server +2 -2
  11. data/distro/arch/etc/rc.d/chef-server-webui +2 -2
  12. data/distro/arch/etc/rc.d/chef-solr +2 -2
  13. data/distro/common/html/chef-client.8.html +3 -3
  14. data/distro/common/html/chef-expander.8.html +3 -3
  15. data/distro/common/html/chef-expanderctl.8.html +3 -3
  16. data/distro/common/html/chef-server-webui.8.html +3 -3
  17. data/distro/common/html/chef-server.8.html +3 -3
  18. data/distro/common/html/chef-shell.1.html +3 -3
  19. data/distro/common/html/chef-solo.8.html +3 -3
  20. data/distro/common/html/chef-solr.8.html +4 -4
  21. data/distro/common/html/knife-bootstrap.1.html +3 -3
  22. data/distro/common/html/knife-client.1.html +3 -3
  23. data/distro/common/html/knife-configure.1.html +13 -13
  24. data/distro/common/html/knife-cookbook-site.1.html +3 -3
  25. data/distro/common/html/knife-cookbook.1.html +7 -7
  26. data/distro/common/html/knife-data-bag.1.html +3 -3
  27. data/distro/common/html/knife-environment.1.html +3 -3
  28. data/distro/common/html/knife-exec.1.html +3 -3
  29. data/distro/common/html/knife-index.1.html +3 -3
  30. data/distro/common/html/knife-node.1.html +3 -3
  31. data/distro/common/html/knife-role.1.html +3 -3
  32. data/distro/common/html/knife-search.1.html +3 -3
  33. data/distro/common/html/knife-ssh.1.html +3 -3
  34. data/distro/common/html/knife-status.1.html +3 -3
  35. data/distro/common/html/knife-tag.1.html +3 -3
  36. data/distro/common/html/knife.1.html +3 -3
  37. data/distro/common/man/man1/README.md +58 -0
  38. data/distro/common/man/man1/chef-shell.1 +114 -219
  39. data/distro/common/man/man1/knife-bootstrap.1 +176 -180
  40. data/distro/common/man/man1/knife-client.1 +368 -0
  41. data/distro/common/man/man1/knife-configure.1 +147 -85
  42. data/distro/common/man/man1/knife-cookbook-site.1 +465 -133
  43. data/distro/common/man/man1/knife-cookbook.1 +614 -304
  44. data/distro/common/man/man1/knife-data-bag.1 +476 -113
  45. data/distro/common/man/man1/knife-delete.1 +132 -0
  46. data/distro/common/man/man1/knife-deps.1 +219 -0
  47. data/distro/common/man/man1/knife-diff.1 +212 -0
  48. data/distro/common/man/man1/knife-download.1 +220 -0
  49. data/distro/common/man/man1/knife-edit.1 +126 -0
  50. data/distro/common/man/man1/knife-environment.1 +324 -0
  51. data/distro/common/man/man1/knife-exec.1 +317 -35
  52. data/distro/common/man/man1/knife-index-rebuild.1 +115 -0
  53. data/distro/common/man/man1/knife-list.1 +167 -0
  54. data/distro/common/man/man1/knife-node.1 +567 -123
  55. data/distro/common/man/man1/knife-raw.1 +170 -0
  56. data/distro/common/man/man1/knife-recipe-list.1 +133 -0
  57. data/distro/common/man/man1/knife-role.1 +367 -81
  58. data/distro/common/man/man1/knife-search.1 +267 -243
  59. data/distro/common/man/man1/knife-show.1 +138 -0
  60. data/distro/common/man/man1/knife-ssh.1 +241 -66
  61. data/distro/common/man/man1/knife-status.1 +202 -24
  62. data/distro/common/man/man1/knife-tag.1 +176 -39
  63. data/distro/common/man/man1/knife-upload.1 +239 -0
  64. data/distro/common/man/man1/knife-user.1 +317 -0
  65. data/distro/common/man/man1/knife-xargs.1 +166 -0
  66. data/distro/common/man/man1/knife.1 +227 -284
  67. data/distro/common/man/man8/chef-client.8 +247 -81
  68. data/distro/common/man/man8/chef-solo.8 +142 -110
  69. data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
  70. data/distro/common/markdown/man1/knife-configure.mkd +11 -11
  71. data/distro/common/markdown/man1/knife-cookbook.mkd +4 -4
  72. data/distro/common/markdown/man8/chef-expander.mkd +1 -1
  73. data/distro/common/markdown/man8/chef-expanderctl.mkd +1 -1
  74. data/distro/debian/etc/init.d/chef-client +1 -1
  75. data/distro/debian/etc/init.d/chef-expander +1 -1
  76. data/distro/debian/etc/init.d/chef-server +1 -1
  77. data/distro/debian/etc/init.d/chef-server-webui +1 -1
  78. data/distro/debian/etc/init.d/chef-solr +1 -1
  79. data/distro/debian/etc/init/chef-client.conf +1 -1
  80. data/distro/debian/etc/init/chef-expander.conf +1 -1
  81. data/distro/debian/etc/init/chef-server-webui.conf +1 -1
  82. data/distro/debian/etc/init/chef-server.conf +1 -1
  83. data/distro/debian/etc/init/chef-solr.conf +1 -1
  84. data/distro/redhat/etc/init.d/chef-client +1 -1
  85. data/distro/redhat/etc/init.d/chef-server +2 -2
  86. data/distro/redhat/etc/init.d/chef-server-webui +2 -2
  87. data/distro/redhat/etc/init.d/chef-solr +2 -2
  88. data/lib/chef/api_client.rb +20 -5
  89. data/lib/chef/application.rb +53 -22
  90. data/lib/chef/application/agent.rb +2 -2
  91. data/lib/chef/application/client.rb +34 -24
  92. data/lib/chef/application/knife.rb +10 -0
  93. data/lib/chef/application/solo.rb +9 -27
  94. data/lib/chef/application/windows_service.rb +24 -10
  95. data/lib/chef/application/windows_service_manager.rb +8 -0
  96. data/lib/chef/checksum/storage.rb +2 -2
  97. data/lib/chef/checksum/storage/filesystem.rb +2 -2
  98. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  99. data/lib/chef/chef_fs/command_line.rb +2 -1
  100. data/lib/chef/chef_fs/config.rb +19 -64
  101. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -2
  102. data/lib/chef/chef_fs/file_system.rb +2 -2
  103. data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -1
  104. data/lib/chef/chef_fs/file_system/chef_repository_file_system_acls_dir.rb +37 -0
  105. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +16 -8
  106. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +19 -4
  107. data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +27 -12
  108. data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +31 -3
  109. data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +12 -5
  110. data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +12 -2
  111. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +3 -2
  112. data/lib/chef/chef_fs/file_system/cookbook_file.rb +2 -5
  113. data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +21 -6
  114. data/lib/chef/chef_fs/file_system/data_bag_dir.rb +1 -1
  115. data/lib/chef/chef_fs/file_system/data_bags_dir.rb +3 -2
  116. data/lib/chef/chef_fs/file_system/file_system_entry.rb +15 -5
  117. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -1
  118. data/lib/chef/chef_fs/file_system/nodes_dir.rb +1 -1
  119. data/lib/chef/chef_fs/file_system/operation_failed_error.rb +8 -0
  120. data/lib/chef/chef_fs/file_system/rest_list_dir.rb +4 -2
  121. data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -6
  122. data/lib/chef/chef_fs/knife.rb +39 -22
  123. data/lib/chef/chef_fs/path_utils.rb +5 -0
  124. data/lib/chef/client.rb +9 -3
  125. data/lib/chef/config.rb +306 -115
  126. data/lib/chef/config_fetcher.rb +79 -0
  127. data/lib/chef/cookbook/file_vendor.rb +5 -5
  128. data/lib/chef/cookbook/metadata.rb +2 -2
  129. data/lib/chef/cookbook/syntax_check.rb +6 -16
  130. data/lib/chef/cookbook_site_streaming_uploader.rb +8 -4
  131. data/lib/chef/cookbook_uploader.rb +10 -8
  132. data/lib/chef/cookbook_version.rb +24 -8
  133. data/lib/chef/daemon.rb +14 -75
  134. data/lib/chef/data_bag.rb +2 -3
  135. data/lib/chef/dsl/include_recipe.rb +2 -2
  136. data/lib/chef/event_dispatch/base.rb +1 -1
  137. data/lib/chef/event_dispatch/dispatcher.rb +1 -1
  138. data/lib/chef/file_access_control/windows.rb +1 -1
  139. data/lib/chef/formatters/doc.rb +5 -5
  140. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +2 -2
  141. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
  142. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +2 -2
  143. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  144. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  145. data/lib/chef/handler/json_file.rb +2 -2
  146. data/lib/chef/http.rb +386 -0
  147. data/lib/chef/{rest → http}/auth_credentials.rb +1 -1
  148. data/lib/chef/http/authenticator.rb +89 -0
  149. data/lib/chef/http/basic_client.rb +114 -0
  150. data/lib/chef/{rest → http}/cookie_jar.rb +1 -1
  151. data/lib/chef/http/cookie_manager.rb +56 -0
  152. data/lib/chef/http/decompressor.rb +137 -0
  153. data/lib/chef/{rest/rest_request.rb → http/http_request.rb} +13 -74
  154. data/lib/chef/http/json_input.rb +53 -0
  155. data/lib/chef/http/json_output.rb +69 -0
  156. data/lib/chef/http/json_to_model_output.rb +34 -0
  157. data/lib/chef/http/simple.rb +16 -0
  158. data/lib/chef/http/ssl_policies.rb +129 -0
  159. data/lib/chef/knife.rb +45 -23
  160. data/lib/chef/knife/bootstrap.rb +10 -3
  161. data/lib/chef/knife/bootstrap/chef-full.erb +10 -1
  162. data/lib/chef/knife/client_create.rb +1 -1
  163. data/lib/chef/knife/configure.rb +1 -1
  164. data/lib/chef/knife/cookbook_create.rb +7 -7
  165. data/lib/chef/knife/cookbook_download.rb +2 -2
  166. data/lib/chef/knife/cookbook_metadata_from_file.rb +2 -2
  167. data/lib/chef/knife/cookbook_show.rb +3 -3
  168. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  169. data/lib/chef/knife/cookbook_site_list.rb +2 -2
  170. data/lib/chef/knife/cookbook_site_search.rb +3 -3
  171. data/lib/chef/knife/cookbook_site_show.rb +5 -5
  172. data/lib/chef/knife/core/bootstrap_context.rb +7 -3
  173. data/lib/chef/knife/core/node_editor.rb +16 -36
  174. data/lib/chef/knife/core/node_presenter.rb +1 -1
  175. data/lib/chef/knife/core/subcommand_loader.rb +5 -5
  176. data/lib/chef/knife/core/ui.rb +9 -13
  177. data/lib/chef/knife/data_bag_create.rb +7 -5
  178. data/lib/chef/knife/data_bag_delete.rb +3 -3
  179. data/lib/chef/knife/data_bag_edit.rb +9 -7
  180. data/lib/chef/knife/data_bag_from_file.rb +10 -8
  181. data/lib/chef/knife/data_bag_list.rb +2 -2
  182. data/lib/chef/knife/data_bag_show.rb +9 -7
  183. data/lib/chef/knife/delete.rb +2 -0
  184. data/lib/chef/knife/deps.rb +2 -0
  185. data/lib/chef/knife/diff.rb +6 -0
  186. data/lib/chef/knife/download.rb +6 -0
  187. data/lib/chef/knife/edit.rb +5 -8
  188. data/lib/chef/knife/environment_from_file.rb +2 -2
  189. data/lib/chef/knife/help_topics.rb +1 -1
  190. data/lib/chef/knife/index_rebuild.rb +2 -2
  191. data/lib/chef/knife/list.rb +2 -0
  192. data/lib/chef/knife/raw.rb +31 -5
  193. data/lib/chef/knife/show.rb +2 -0
  194. data/lib/chef/knife/ssh.rb +21 -7
  195. data/lib/chef/knife/status.rb +1 -1
  196. data/lib/chef/knife/upload.rb +2 -0
  197. data/lib/chef/knife/xargs.rb +2 -0
  198. data/lib/chef/mixin/checksum.rb +2 -2
  199. data/lib/chef/mixin/command.rb +46 -17
  200. data/lib/chef/mixin/convert_to_class_name.rb +8 -8
  201. data/lib/chef/mixin/create_path.rb +9 -9
  202. data/lib/chef/mixin/deep_merge.rb +2 -2
  203. data/lib/chef/mixin/from_file.rb +6 -6
  204. data/lib/chef/mixin/language_include_recipe.rb +2 -2
  205. data/lib/chef/mixin/params_validate.rb +21 -21
  206. data/lib/chef/mixin/shell_out.rb +9 -0
  207. data/lib/chef/mixin/template.rb +13 -16
  208. data/lib/chef/mixin/why_run.rb +16 -16
  209. data/lib/chef/mixin/windows_architecture_helper.rb +5 -5
  210. data/lib/chef/mixin/xml_escape.rb +10 -10
  211. data/lib/chef/monkey_patches/numeric.rb +1 -1
  212. data/lib/chef/monkey_patches/regexp.rb +4 -4
  213. data/lib/chef/monkey_patches/string.rb +3 -3
  214. data/lib/chef/monkey_patches/tempfile.rb +2 -2
  215. data/lib/chef/node.rb +8 -0
  216. data/lib/chef/node/attribute.rb +1 -1
  217. data/lib/chef/platform/provider_mapping.rb +26 -1
  218. data/lib/chef/provider/batch.rb +3 -3
  219. data/lib/chef/provider/cron.rb +27 -13
  220. data/lib/chef/provider/cron/aix.rb +48 -0
  221. data/lib/chef/provider/cron/solaris.rb +6 -40
  222. data/lib/chef/provider/cron/unix.rb +76 -0
  223. data/lib/chef/provider/deploy/timestamped.rb +4 -4
  224. data/lib/chef/provider/erl_call.rb +1 -1
  225. data/lib/chef/provider/execute.rb +2 -2
  226. data/lib/chef/provider/git.rb +1 -0
  227. data/lib/chef/provider/group.rb +21 -21
  228. data/lib/chef/provider/group/dscl.rb +9 -9
  229. data/lib/chef/provider/group/gpasswd.rb +5 -5
  230. data/lib/chef/provider/group/groupadd.rb +11 -10
  231. data/lib/chef/provider/group/pw.rb +11 -11
  232. data/lib/chef/provider/group/suse.rb +4 -4
  233. data/lib/chef/provider/group/usermod.rb +8 -8
  234. data/lib/chef/provider/group/windows.rb +9 -9
  235. data/lib/chef/provider/http_request.rb +8 -8
  236. data/lib/chef/provider/ifconfig.rb +57 -37
  237. data/lib/chef/provider/ifconfig/aix.rb +99 -0
  238. data/lib/chef/provider/log.rb +3 -3
  239. data/lib/chef/provider/mdadm.rb +5 -4
  240. data/lib/chef/provider/mount.rb +12 -12
  241. data/lib/chef/provider/mount/aix.rb +179 -0
  242. data/lib/chef/provider/mount/mount.rb +29 -15
  243. data/lib/chef/provider/package.rb +26 -16
  244. data/lib/chef/provider/package/aix.rb +146 -0
  245. data/lib/chef/provider/package/apt.rb +16 -31
  246. data/lib/chef/provider/package/dpkg.rb +9 -9
  247. data/lib/chef/provider/package/freebsd.rb +2 -2
  248. data/lib/chef/provider/package/ips.rb +3 -3
  249. data/lib/chef/provider/package/macports.rb +1 -1
  250. data/lib/chef/provider/package/pacman.rb +8 -8
  251. data/lib/chef/provider/package/rpm.rb +14 -14
  252. data/lib/chef/provider/package/rubygems.rb +1 -1
  253. data/lib/chef/provider/package/smartos.rb +3 -3
  254. data/lib/chef/provider/package/solaris.rb +16 -6
  255. data/lib/chef/provider/package/yum-dump.py +4 -4
  256. data/lib/chef/provider/package/yum.rb +3 -3
  257. data/lib/chef/provider/powershell_script.rb +7 -7
  258. data/lib/chef/provider/remote_file/ftp.rb +1 -0
  259. data/lib/chef/provider/remote_file/http.rb +6 -13
  260. data/lib/chef/provider/remote_file/local_file.rb +1 -0
  261. data/lib/chef/provider/resource_update.rb +9 -9
  262. data/lib/chef/provider/ruby_block.rb +3 -3
  263. data/lib/chef/provider/script.rb +1 -1
  264. data/lib/chef/provider/service.rb +2 -2
  265. data/lib/chef/provider/service/debian.rb +35 -15
  266. data/lib/chef/provider/service/freebsd.rb +9 -9
  267. data/lib/chef/provider/service/gentoo.rb +4 -4
  268. data/lib/chef/provider/service/init.rb +1 -1
  269. data/lib/chef/provider/service/insserv.rb +2 -2
  270. data/lib/chef/provider/service/invokercd.rb +1 -1
  271. data/lib/chef/provider/service/redhat.rb +2 -2
  272. data/lib/chef/provider/service/simple.rb +6 -6
  273. data/lib/chef/provider/service/solaris.rb +1 -1
  274. data/lib/chef/provider/service/systemd.rb +3 -3
  275. data/lib/chef/provider/service/upstart.rb +15 -15
  276. data/lib/chef/provider/subversion.rb +6 -5
  277. data/lib/chef/provider/user.rb +13 -9
  278. data/lib/chef/provider/user/dscl.rb +28 -28
  279. data/lib/chef/provider/user/pw.rb +11 -11
  280. data/lib/chef/provider/user/useradd.rb +1 -1
  281. data/lib/chef/provider/user/windows.rb +7 -7
  282. data/lib/chef/provider/windows_script.rb +7 -7
  283. data/lib/chef/providers.rb +4 -0
  284. data/lib/chef/recipe.rb +2 -19
  285. data/lib/chef/resource/apt_package.rb +3 -3
  286. data/lib/chef/resource/bash.rb +3 -3
  287. data/lib/chef/resource/batch.rb +4 -4
  288. data/lib/chef/resource/bff_package.rb +36 -0
  289. data/lib/chef/resource/breakpoint.rb +3 -3
  290. data/lib/chef/resource/cron.rb +5 -5
  291. data/lib/chef/resource/csh.rb +3 -3
  292. data/lib/chef/resource/deploy.rb +16 -3
  293. data/lib/chef/resource/deploy_revision.rb +6 -6
  294. data/lib/chef/resource/directory.rb +2 -2
  295. data/lib/chef/resource/dpkg_package.rb +4 -4
  296. data/lib/chef/resource/easy_install_package.rb +1 -1
  297. data/lib/chef/resource/erl_call.rb +1 -1
  298. data/lib/chef/resource/freebsd_package.rb +4 -4
  299. data/lib/chef/resource/group.rb +15 -6
  300. data/lib/chef/resource/http_request.rb +6 -6
  301. data/lib/chef/resource/ifconfig.rb +4 -4
  302. data/lib/chef/resource/ips_package.rb +2 -2
  303. data/lib/chef/resource/log.rb +12 -11
  304. data/lib/chef/resource/macports_package.rb +2 -2
  305. data/lib/chef/resource/mount.rb +11 -12
  306. data/lib/chef/resource/ohai.rb +3 -3
  307. data/lib/chef/resource/pacman_package.rb +4 -4
  308. data/lib/chef/resource/perl.rb +3 -3
  309. data/lib/chef/resource/portage_package.rb +4 -4
  310. data/lib/chef/resource/powershell_script.rb +3 -3
  311. data/lib/chef/resource/python.rb +3 -3
  312. data/lib/chef/resource/route.rb +4 -4
  313. data/lib/chef/resource/rpm_package.rb +2 -2
  314. data/lib/chef/resource/ruby.rb +3 -3
  315. data/lib/chef/resource/ruby_block.rb +3 -3
  316. data/lib/chef/resource/scm.rb +10 -2
  317. data/lib/chef/resource/script.rb +5 -5
  318. data/lib/chef/resource/service.rb +5 -5
  319. data/lib/chef/resource/smartos_package.rb +8 -6
  320. data/lib/chef/resource/solaris_package.rb +8 -7
  321. data/lib/chef/resource/subversion.rb +3 -3
  322. data/lib/chef/resource/timestamped_deploy.rb +4 -4
  323. data/lib/chef/resource/user.rb +13 -13
  324. data/lib/chef/resource/windows_script.rb +6 -6
  325. data/lib/chef/resource/yum_package.rb +2 -2
  326. data/lib/chef/resource_collection.rb +1 -1
  327. data/lib/chef/resource_collection/stepable_iterator.rb +22 -22
  328. data/lib/chef/resource_definition.rb +8 -8
  329. data/lib/chef/resource_definition_list.rb +2 -2
  330. data/lib/chef/resource_reporter.rb +8 -2
  331. data/lib/chef/resources.rb +2 -0
  332. data/lib/chef/rest.rb +70 -334
  333. data/lib/chef/role.rb +17 -13
  334. data/lib/chef/run_context.rb +14 -0
  335. data/lib/chef/run_context/cookbook_compiler.rb +3 -3
  336. data/lib/chef/run_lock.rb +73 -20
  337. data/lib/chef/server_api.rb +41 -0
  338. data/lib/chef/shell.rb +3 -19
  339. data/lib/chef/shell/shell_session.rb +1 -1
  340. data/lib/chef/streaming_cookbook_uploader.rb +30 -26
  341. data/lib/chef/tasks/chef_repo.rake +17 -17
  342. data/lib/chef/util/backup.rb +2 -1
  343. data/lib/chef/util/diff.rb +76 -33
  344. data/lib/chef/util/windows.rb +2 -2
  345. data/lib/chef/util/windows/net_group.rb +2 -2
  346. data/lib/chef/util/windows/net_use.rb +2 -2
  347. data/lib/chef/util/windows/net_user.rb +3 -3
  348. data/lib/chef/util/windows/volume.rb +3 -3
  349. data/lib/chef/version.rb +1 -1
  350. data/lib/chef/win32/api/file.rb +1 -1
  351. data/lib/chef/win32/api/synchronization.rb +89 -0
  352. data/lib/chef/win32/handle.rb +1 -1
  353. data/lib/chef/win32/mutex.rb +94 -0
  354. data/lib/chef/win32/security/ace.rb +1 -1
  355. data/lib/chef/win32/security/sid.rb +1 -1
  356. data/lib/chef/win32/version.rb +5 -3
  357. data/spec/data/bootstrap/no_proxy.erb +2 -0
  358. data/spec/data/cookbooks/openldap/metadata.rb +8 -0
  359. data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -0
  360. data/spec/data/trusted_certs/example.crt +22 -0
  361. data/spec/data/trusted_certs/intermediate.pem +27 -0
  362. data/spec/data/trusted_certs/opscode.pem +38 -0
  363. data/spec/data/trusted_certs/root.pem +22 -0
  364. data/spec/functional/assets/PkgA.1.0.0.0.bff +0 -0
  365. data/spec/functional/assets/PkgA.2.0.0.0.bff +0 -0
  366. data/spec/functional/assets/dummy-1-0.aix6.1.noarch.rpm +0 -0
  367. data/spec/functional/assets/dummy-2-0.aix6.1.noarch.rpm +0 -0
  368. data/spec/functional/assets/mytest-1.0-1.noarch.rpm +0 -0
  369. data/spec/functional/assets/mytest-2.0-1.noarch.rpm +0 -0
  370. data/spec/functional/knife/cookbook_delete_spec.rb +4 -7
  371. data/spec/functional/knife/exec_spec.rb +0 -3
  372. data/spec/functional/knife/ssh_spec.rb +2 -6
  373. data/spec/functional/resource/base.rb +41 -0
  374. data/spec/functional/resource/batch_spec.rb +6 -33
  375. data/spec/functional/resource/bff_spec.rb +122 -0
  376. data/spec/functional/resource/cron_spec.rb +147 -0
  377. data/spec/functional/resource/group_spec.rb +204 -0
  378. data/spec/functional/resource/ifconfig_spec.rb +163 -0
  379. data/spec/functional/resource/link_spec.rb +4 -4
  380. data/spec/functional/resource/mount_spec.rb +207 -0
  381. data/spec/functional/resource/package_spec.rb +95 -17
  382. data/spec/functional/resource/powershell_spec.rb +21 -22
  383. data/spec/functional/resource/registry_spec.rb +5 -19
  384. data/spec/functional/resource/remote_file_spec.rb +14 -0
  385. data/spec/functional/resource/rpm_spec.rb +122 -0
  386. data/spec/functional/resource/template_spec.rb +11 -44
  387. data/spec/functional/resource/user_spec.rb +2 -1
  388. data/spec/functional/run_lock_spec.rb +48 -5
  389. data/spec/functional/shell_spec.rb +46 -26
  390. data/spec/functional/tiny_server_spec.rb +2 -2
  391. data/spec/functional/version_spec.rb +35 -0
  392. data/spec/functional/win32/versions_spec.rb +3 -3
  393. data/spec/integration/client/client_spec.rb +146 -0
  394. data/spec/integration/knife/chef_fs_data_store_spec.rb +353 -0
  395. data/spec/integration/knife/chef_repo_path_spec.rb +72 -19
  396. data/spec/integration/knife/common_options_spec.rb +103 -0
  397. data/spec/integration/knife/download_spec.rb +38 -2
  398. data/spec/integration/knife/raw_spec.rb +63 -0
  399. data/spec/integration/knife/upload_spec.rb +20 -4
  400. data/spec/integration/solo/solo_spec.rb +78 -25
  401. data/spec/spec_helper.rb +35 -1
  402. data/spec/support/lib/chef/provider/easy.rb +4 -4
  403. data/spec/support/lib/chef/provider/snakeoil.rb +4 -4
  404. data/spec/support/lib/chef/resource/cat.rb +5 -5
  405. data/spec/support/lib/chef/resource/with_state.rb +37 -0
  406. data/spec/support/lib/library_load_order.rb +22 -0
  407. data/spec/support/platform_helpers.rb +8 -0
  408. data/spec/support/shared/functional/file_resource.rb +4 -22
  409. data/spec/support/shared/functional/windows_script.rb +48 -0
  410. data/spec/support/shared/integration/integration_helper.rb +5 -22
  411. data/spec/support/shared/integration/knife_support.rb +3 -3
  412. data/spec/support/shared/unit/script_resource.rb +7 -7
  413. data/spec/support/shared/unit/windows_script_resource.rb +7 -7
  414. data/spec/tiny_server.rb +2 -2
  415. data/spec/unit/api_client/registration_spec.rb +1 -1
  416. data/spec/unit/api_client_spec.rb +25 -2
  417. data/spec/unit/application/apply.rb +1 -9
  418. data/spec/unit/application/client_spec.rb +19 -44
  419. data/spec/unit/application/solo_spec.rb +10 -50
  420. data/spec/unit/application_spec.rb +51 -80
  421. data/spec/unit/checksum/storage/filesystem_spec.rb +3 -2
  422. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -0
  423. data/spec/unit/chef_spec.rb +2 -2
  424. data/spec/unit/client_spec.rb +2 -18
  425. data/spec/unit/config_fetcher_spec.rb +98 -0
  426. data/spec/unit/config_spec.rb +107 -29
  427. data/spec/unit/cookbook/metadata_spec.rb +50 -50
  428. data/spec/unit/cookbook/synchronizer_spec.rb +3 -3
  429. data/spec/unit/cookbook/syntax_check_spec.rb +1 -2
  430. data/spec/unit/cookbook_loader_spec.rb +28 -12
  431. data/spec/unit/cookbook_manifest_spec.rb +11 -11
  432. data/spec/unit/cookbook_site_streaming_uploader.rb +200 -0
  433. data/spec/unit/cookbook_version_spec.rb +16 -0
  434. data/spec/unit/daemon_spec.rb +0 -132
  435. data/spec/unit/data_bag_item_spec.rb +6 -6
  436. data/spec/unit/data_bag_spec.rb +6 -8
  437. data/spec/unit/digester_spec.rb +2 -2
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +0 -15
  439. data/spec/unit/file_cache_spec.rb +1 -1
  440. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +4 -4
  441. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +2 -2
  442. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +2 -2
  443. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +2 -2
  444. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +2 -2
  445. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +4 -4
  446. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +2 -2
  447. data/spec/unit/handler_spec.rb +5 -5
  448. data/spec/unit/http/ssl_policies_spec.rb +170 -0
  449. data/spec/unit/knife/bootstrap_spec.rb +31 -14
  450. data/spec/unit/knife/client_bulk_delete_spec.rb +8 -8
  451. data/spec/unit/knife/client_create_spec.rb +2 -2
  452. data/spec/unit/knife/client_delete_spec.rb +2 -2
  453. data/spec/unit/knife/client_edit_spec.rb +2 -2
  454. data/spec/unit/knife/client_list_spec.rb +2 -2
  455. data/spec/unit/knife/client_reregister_spec.rb +2 -2
  456. data/spec/unit/knife/client_show_spec.rb +2 -2
  457. data/spec/unit/knife/config_file_selection_spec.rb +53 -36
  458. data/spec/unit/knife/configure_spec.rb +0 -6
  459. data/spec/unit/knife/cookbook_create_spec.rb +1 -12
  460. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +2 -2
  461. data/spec/unit/knife/cookbook_show_spec.rb +3 -3
  462. data/spec/unit/knife/cookbook_site_install_spec.rb +1 -1
  463. data/spec/unit/knife/core/bootstrap_context_spec.rb +10 -2
  464. data/spec/unit/knife/core/ui_spec.rb +118 -0
  465. data/spec/unit/knife/data_bag_show_spec.rb +2 -2
  466. data/spec/unit/knife/environment_from_file_spec.rb +2 -2
  467. data/spec/unit/knife/index_rebuild_spec.rb +1 -1
  468. data/spec/unit/knife/node_delete_spec.rb +3 -3
  469. data/spec/unit/knife/node_edit_spec.rb +35 -8
  470. data/spec/unit/knife/node_list_spec.rb +3 -3
  471. data/spec/unit/knife/node_run_list_add_spec.rb +3 -3
  472. data/spec/unit/knife/node_show_spec.rb +3 -3
  473. data/spec/unit/knife/role_create_spec.rb +3 -3
  474. data/spec/unit/knife/role_delete_spec.rb +3 -3
  475. data/spec/unit/knife/role_list_spec.rb +2 -2
  476. data/spec/unit/knife/ssh_spec.rb +1 -8
  477. data/spec/unit/knife_spec.rb +0 -2
  478. data/spec/unit/log_spec.rb +2 -2
  479. data/spec/unit/mash_spec.rb +2 -2
  480. data/spec/unit/mixin/checksum_spec.rb +3 -3
  481. data/spec/unit/mixin/command_spec.rb +1 -1
  482. data/spec/unit/mixin/convert_to_class_name_spec.rb +7 -7
  483. data/spec/unit/mixin/deprecation_spec.rb +2 -2
  484. data/spec/unit/mixin/params_validate_spec.rb +72 -72
  485. data/spec/unit/mixin/securable_spec.rb +0 -14
  486. data/spec/unit/mixin/shell_out_spec.rb +1 -1
  487. data/spec/unit/mixin/template_spec.rb +34 -0
  488. data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
  489. data/spec/unit/mixin/xml_escape_spec.rb +2 -2
  490. data/spec/unit/node/attribute_spec.rb +11 -11
  491. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  492. data/spec/unit/node_spec.rb +5 -0
  493. data/spec/unit/platform_spec.rb +36 -35
  494. data/spec/unit/provider/cron/{solaris_spec.rb → unix_spec.rb} +6 -6
  495. data/spec/unit/provider/cron_spec.rb +21 -3
  496. data/spec/unit/provider/deploy/timestamped_spec.rb +5 -5
  497. data/spec/unit/provider/deploy_spec.rb +21 -7
  498. data/spec/unit/provider/env_spec.rb +2 -2
  499. data/spec/unit/provider/execute_spec.rb +2 -2
  500. data/spec/unit/provider/file/content_spec.rb +0 -8
  501. data/spec/unit/provider/git_spec.rb +29 -9
  502. data/spec/unit/provider/group/dscl_spec.rb +12 -12
  503. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  504. data/spec/unit/provider/group/groupadd_spec.rb +14 -0
  505. data/spec/unit/provider/group/groupmod_spec.rb +13 -13
  506. data/spec/unit/provider/group/pw_spec.rb +16 -16
  507. data/spec/unit/provider/group/usermod_spec.rb +10 -9
  508. data/spec/unit/provider/group/windows_spec.rb +14 -0
  509. data/spec/unit/provider/group_spec.rb +29 -29
  510. data/spec/unit/provider/http_request_spec.rb +15 -15
  511. data/spec/unit/provider/ifconfig/aix_spec.rb +180 -0
  512. data/spec/unit/provider/ifconfig_spec.rb +9 -9
  513. data/spec/unit/provider/link_spec.rb +2 -2
  514. data/spec/unit/provider/log_spec.rb +8 -8
  515. data/spec/unit/provider/mdadm_spec.rb +14 -11
  516. data/spec/unit/provider/mount/aix_spec.rb +237 -0
  517. data/spec/unit/provider/mount/mount_spec.rb +2 -0
  518. data/spec/unit/provider/mount/windows_spec.rb +2 -2
  519. data/spec/unit/provider/mount_spec.rb +6 -6
  520. data/spec/unit/provider/package/aix_spec.rb +171 -0
  521. data/spec/unit/provider/package/apt_spec.rb +130 -171
  522. data/spec/unit/provider/package/dpkg_spec.rb +3 -3
  523. data/spec/unit/provider/package/freebsd_spec.rb +28 -0
  524. data/spec/unit/provider/package/ips_spec.rb +1 -1
  525. data/spec/unit/provider/package/rpm_spec.rb +15 -15
  526. data/spec/unit/provider/package/smartos_spec.rb +21 -3
  527. data/spec/unit/provider/package_spec.rb +4 -2
  528. data/spec/unit/provider/powershell_spec.rb +3 -3
  529. data/spec/unit/provider/remote_directory_spec.rb +2 -2
  530. data/spec/unit/provider/remote_file/ftp_spec.rb +0 -5
  531. data/spec/unit/provider/remote_file/http_spec.rb +12 -28
  532. data/spec/unit/provider/remote_file/local_file_spec.rb +2 -1
  533. data/spec/unit/provider/route_spec.rb +2 -2
  534. data/spec/unit/provider/ruby_block_spec.rb +2 -2
  535. data/spec/unit/provider/service/arch_service_spec.rb +17 -17
  536. data/spec/unit/provider/service/debian_service_spec.rb +242 -152
  537. data/spec/unit/provider/service/freebsd_service_spec.rb +9 -9
  538. data/spec/unit/provider/service/gentoo_service_spec.rb +9 -9
  539. data/spec/unit/provider/service/init_service_spec.rb +11 -11
  540. data/spec/unit/provider/service/insserv_service_spec.rb +5 -5
  541. data/spec/unit/provider/service/invokercd_service_spec.rb +10 -10
  542. data/spec/unit/provider/service/redhat_spec.rb +6 -6
  543. data/spec/unit/provider/service/simple_service_spec.rb +6 -6
  544. data/spec/unit/provider/service/solaris_smf_service_spec.rb +4 -4
  545. data/spec/unit/provider/service/systemd_service_spec.rb +3 -3
  546. data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
  547. data/spec/unit/provider/service/windows_spec.rb +7 -7
  548. data/spec/unit/provider/subversion_spec.rb +1 -1
  549. data/spec/unit/provider/user/dscl_spec.rb +21 -21
  550. data/spec/unit/provider/user/pw_spec.rb +2 -2
  551. data/spec/unit/provider/user/windows_spec.rb +5 -5
  552. data/spec/unit/provider/user_spec.rb +39 -47
  553. data/spec/unit/resource/apt_package_spec.rb +6 -6
  554. data/spec/unit/resource/bash_spec.rb +5 -5
  555. data/spec/unit/resource/batch_spec.rb +7 -7
  556. data/spec/unit/resource/breakpoint_spec.rb +8 -8
  557. data/spec/unit/resource/chef_gem_spec.rb +6 -6
  558. data/spec/unit/resource/cookbook_file_spec.rb +11 -11
  559. data/spec/unit/resource/cron_spec.rb +15 -15
  560. data/spec/unit/resource/csh_spec.rb +5 -5
  561. data/spec/unit/resource/deploy_revision_spec.rb +6 -6
  562. data/spec/unit/resource/deploy_spec.rb +50 -36
  563. data/spec/unit/resource/directory_spec.rb +1 -1
  564. data/spec/unit/resource/dpkg_package_spec.rb +6 -6
  565. data/spec/unit/resource/env_spec.rb +1 -1
  566. data/spec/unit/resource/erl_call_spec.rb +1 -1
  567. data/spec/unit/resource/freebsd_package_spec.rb +6 -6
  568. data/spec/unit/resource/gem_package_spec.rb +6 -6
  569. data/spec/unit/resource/git_spec.rb +8 -8
  570. data/spec/unit/resource/group_spec.rb +11 -11
  571. data/spec/unit/resource/http_request_spec.rb +7 -7
  572. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  573. data/spec/unit/resource/ips_package_spec.rb +6 -6
  574. data/spec/unit/resource/link_spec.rb +1 -1
  575. data/spec/unit/resource/log_spec.rb +13 -10
  576. data/spec/unit/resource/macports_package_spec.rb +2 -2
  577. data/spec/unit/resource/mdadm_spec.rb +3 -3
  578. data/spec/unit/resource/mount_spec.rb +13 -13
  579. data/spec/unit/resource/ohai_spec.rb +1 -1
  580. data/spec/unit/resource/package_spec.rb +6 -6
  581. data/spec/unit/resource/pacman_package_spec.rb +6 -6
  582. data/spec/unit/resource/perl_spec.rb +5 -5
  583. data/spec/unit/resource/portage_package_spec.rb +6 -6
  584. data/spec/unit/resource/powershell_spec.rb +5 -5
  585. data/spec/unit/resource/python_spec.rb +5 -5
  586. data/spec/unit/resource/registry_key_spec.rb +2 -2
  587. data/spec/unit/resource/remote_directory_spec.rb +9 -9
  588. data/spec/unit/resource/remote_file_spec.rb +4 -4
  589. data/spec/unit/resource/route_spec.rb +13 -13
  590. data/spec/unit/resource/rpm_package_spec.rb +2 -2
  591. data/spec/unit/resource/ruby_block_spec.rb +4 -4
  592. data/spec/unit/resource/ruby_spec.rb +5 -5
  593. data/spec/unit/resource/scm_spec.rb +14 -1
  594. data/spec/unit/resource/script_spec.rb +5 -5
  595. data/spec/unit/resource/service_spec.rb +18 -18
  596. data/spec/unit/resource/smartos_package_spec.rb +6 -6
  597. data/spec/unit/resource/solaris_package_spec.rb +57 -0
  598. data/spec/unit/resource/subversion_spec.rb +6 -6
  599. data/spec/unit/resource/timestamped_deploy_spec.rb +4 -4
  600. data/spec/unit/resource/user_spec.rb +13 -13
  601. data/spec/unit/resource/yum_package_spec.rb +7 -7
  602. data/spec/unit/resource_collection/stepable_iterator_spec.rb +21 -21
  603. data/spec/unit/resource_definition_spec.rb +23 -23
  604. data/spec/unit/resource_reporter_spec.rb +27 -0
  605. data/spec/unit/rest/auth_credentials_spec.rb +0 -94
  606. data/spec/unit/rest_spec.rb +117 -99
  607. data/spec/unit/role_spec.rb +57 -4
  608. data/spec/unit/run_context/cookbook_compiler_spec.rb +4 -20
  609. data/spec/unit/run_context_spec.rb +44 -3
  610. data/spec/unit/run_list/run_list_item_spec.rb +1 -1
  611. data/spec/unit/run_lock_spec.rb +6 -3
  612. data/spec/unit/scan_access_control_spec.rb +2 -2
  613. data/spec/unit/search/query_spec.rb +3 -3
  614. data/spec/unit/util/backup_spec.rb +6 -13
  615. data/spec/unit/util/diff_spec.rb +36 -53
  616. data/spec/unit/version/platform_spec.rb +3 -3
  617. data/spec/unit/version_class_spec.rb +5 -5
  618. data/spec/unit/version_constraint/platform_spec.rb +2 -2
  619. data/spec/unit/windows_service_spec.rb +54 -0
  620. metadata +290 -108
  621. checksums.yaml +0 -7
  622. data/distro/common/man/man1/knife-index.1 +0 -29
  623. data/distro/common/man/man8/chef-expander.8 +0 -97
  624. data/distro/common/man/man8/chef-expanderctl.8 +0 -62
  625. data/distro/common/man/man8/chef-server-webui.8 +0 -155
  626. data/distro/common/man/man8/chef-server.8 +0 -147
  627. data/distro/common/man/man8/chef-solr.8 +0 -122
  628. data/lib/chef/chef_fs/raw_request.rb +0 -79
@@ -32,7 +32,7 @@ __knife__ __bootstrap__ _(options)_
32
32
  * `--[no-]host-key-verify`:
33
33
  Enable host key verification, which is the default behavior.
34
34
  * `--hint HINT_NAME[=HINT_FILE]`:
35
- Provide the name of a hint (with option JSON file) to set for use by
35
+ Provide the name of a hint (with option JSON file) to set for use by
36
36
  Ohai plugins.
37
37
 
38
38
  ## DESCRIPTION
@@ -35,17 +35,17 @@ the specified _directory_.
35
35
  field blank to accept the default value. On most systems, the
36
36
  default values are acceptable.
37
37
 
38
- user@host$ knife configure -i
39
- Please enter the chef server URL: [http://localhost:4000]
40
- Please enter a clientname for the new client: [username]
41
- Please enter the existing admin clientname: [chef-webui]
42
- Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem]
43
- Please enter the validation clientname: [chef-validator]
44
- Please enter the location of the validation key: [/etc/chef/validation.pem]
45
- Please enter the path to a chef repository (or leave blank):
46
- Creating initial API user...
47
- Created (or updated) client[username]
48
- Configuration file written to /home/username/.chef/knife.rb
38
+ user@host$ knife configure -i
39
+ Please enter the chef server URL: [http://localhost:4000]
40
+ Please enter a clientname for the new client: [username]
41
+ Please enter the existing admin clientname: [chef-webui]
42
+ Please enter the location of the existing admin client's private key: [/etc/chef/webui.pem]
43
+ Please enter the validation clientname: [chef-validator]
44
+ Please enter the location of the validation key: [/etc/chef/validation.pem]
45
+ Please enter the path to a chef repository (or leave blank):
46
+ Creating initial API user...
47
+ Created (or updated) client[username]
48
+ Configuration file written to /home/username/.chef/knife.rb
49
49
 
50
50
  This creates a new administrator client named _username_, writes
51
51
  a configuration file to _/home/username/.chef/knife.rb_, and the
@@ -117,11 +117,11 @@ __knife cookbook create cookbook__ _(options)_
117
117
  the directory where the cookbook will be created
118
118
  * `-r`, `--readme-format format`:
119
119
  format of the readme file md, mkd, txt, rdoc
120
- * `-c`, `--copyright copyright`:
120
+ * `-C`, `--copyright copyright`:
121
121
  name of copyright holder
122
122
  * `-i`, `--license license`:
123
123
  license for cookbook, apachev2 or none
124
- * `-e`, `--email email`:
124
+ * `-m`, `--email email`:
125
125
  email address of cookbook maintainer
126
126
 
127
127
  this is a helper command that creates a new cookbook directory in the
@@ -143,7 +143,7 @@ supported readme formats are 'md' (default), 'mkd', 'txt', 'rdoc'. the
143
143
  readme file will be written with the specified extension and a set of
144
144
  helpful starting headers.
145
145
 
146
- specify `-c` or `--copyright` with the name of the copyright holder as
146
+ specify `-C` or `--copyright` with the name of the copyright holder as
147
147
  your name or your company/organization name in a quoted string. if this
148
148
  value is not specified an all-caps string `your_company_name` is used
149
149
  which can be easily changed with find/replace.
@@ -156,7 +156,7 @@ the cookbook and follow any restrictions they describe. when using
156
156
  are pre-filled. the `none` license will be treated as
157
157
  non-redistributable.
158
158
 
159
- specify `-e` or `--email` with the email address of the cookbook's
159
+ specify `-m` or `--email` with the email address of the cookbook's
160
160
  maintainer. if this value is not specified, an all-caps string
161
161
  `your_email` is used which can easily be changed with find/replace.
162
162
 
@@ -79,4 +79,4 @@ granted to copy, distribute and / or modify this document under the
79
79
  terms of the Apache 2.0 License.
80
80
 
81
81
  On Debian systems, the complete text of the Apache 2.0 License can be
82
- found in /usr/share/common-licenses/Apache-2.0.
82
+ found in /usr/share/common-licenses/Apache-2.0.
@@ -55,4 +55,4 @@ granted to copy, distribute and / or modify this document under the
55
55
  terms of the Apache 2.0 License.
56
56
 
57
57
  On Debian systems, the complete text of the Apache 2.0 License can be
58
- found in /usr/share/common-licenses/Apache-2.0.
58
+ found in /usr/share/common-licenses/Apache-2.0.
@@ -20,7 +20,7 @@ NAME=chef-client
20
20
  DESC=chef-client
21
21
  PIDFILE=/var/run/chef/client.pid
22
22
 
23
- test -x $DAEMON || exit 0
23
+ test -x $DAEMON || exit 1
24
24
 
25
25
  . /lib/lsb/init-functions
26
26
 
@@ -20,7 +20,7 @@ NAME=chef-expander
20
20
  DESC=chef-expander
21
21
  PIDFILE=/var/run/chef/expander.pid
22
22
 
23
- test -x $DAEMON || exit 0
23
+ test -x $DAEMON || exit 1
24
24
 
25
25
  . /lib/lsb/init-functions
26
26
 
@@ -21,7 +21,7 @@ MAINPID=/var/run/chef/server.main.pid
21
21
  NAME=chef-server
22
22
  DESC=chef-server
23
23
 
24
- test -x $DAEMON || exit 0
24
+ test -x $DAEMON || exit 1
25
25
 
26
26
  . /lib/lsb/init-functions
27
27
 
@@ -21,7 +21,7 @@ MAINPID=/var/run/chef/server-webui.main.pid
21
21
  NAME=chef-server-webui
22
22
  DESC=chef-server-webui
23
23
 
24
- test -x $DAEMON || exit 0
24
+ test -x $DAEMON || exit 1
25
25
 
26
26
  . /lib/lsb/init-functions
27
27
 
@@ -21,7 +21,7 @@ NAME=chef-solr
21
21
  DESC=chef-solr
22
22
  PIDFILE=/var/run/chef/solr.pid
23
23
 
24
- test -x $DAEMON || exit 0
24
+ test -x $DAEMON || exit 1
25
25
 
26
26
  . /lib/lsb/init-functions
27
27
 
@@ -11,7 +11,7 @@ respawn
11
11
  respawn limit 5 30
12
12
 
13
13
  pre-start script
14
- test -x /usr/bin/chef-client || { stop; exit 0; }
14
+ test -x /usr/bin/chef-client || { stop; exit 1; }
15
15
  end script
16
16
 
17
17
  exec /usr/bin/chef-client -i 1800 -L /var/log/chef/client.log
@@ -11,7 +11,7 @@ respawn
11
11
  respawn limit 5 30
12
12
 
13
13
  pre-start script
14
- test -x /usr/bin/chef-expander || { stop; exit 0; }
14
+ test -x /usr/bin/chef-expander || { stop; exit 1; }
15
15
  end script
16
16
 
17
17
  exec /usr/bin/chef-expander -c /etc/chef/solr.rb -L /var/log/chef/expander.log -n 1 -i 1
@@ -11,7 +11,7 @@ respawn
11
11
  respawn limit 5 30
12
12
 
13
13
  pre-start script
14
- test -x /usr/bin/chef-server-webui || { stop; exit 0; }
14
+ test -x /usr/bin/chef-server-webui || { stop; exit 1; }
15
15
  end script
16
16
 
17
17
  exec /usr/bin/chef-server-webui -e production -p 4040 -L /var/log/chef/server-webui.log
@@ -11,7 +11,7 @@ respawn
11
11
  respawn limit 5 30
12
12
 
13
13
  pre-start script
14
- test -x /usr/bin/chef-server || { stop; exit 0; }
14
+ test -x /usr/bin/chef-server || { stop; exit 1; }
15
15
  end script
16
16
 
17
17
  exec /usr/bin/chef-server -e production -p 4000 -L /var/log/chef/server.log
@@ -11,7 +11,7 @@ respawn
11
11
  respawn limit 5 30
12
12
 
13
13
  pre-start script
14
- test -x /usr/bin/chef-solr || { stop; exit 0; }
14
+ test -x /usr/bin/chef-solr || { stop; exit 1; }
15
15
  end script
16
16
 
17
17
  exec /usr/bin/chef-solr -c /etc/chef/solr.rb -L /var/log/chef/solr.log
@@ -61,7 +61,7 @@ reload() {
61
61
  killproc -p $pidfile chef-client -HUP
62
62
  retval=$?
63
63
  echo
64
- return $retval
64
+ return $retval
65
65
  }
66
66
 
67
67
  run() {
@@ -11,7 +11,7 @@
11
11
  # Required-Stop: $local_fs $network $remote_fs chef-solr chef-expander
12
12
  # Should-Start: $named $time
13
13
  # Should-Stop: $named $time
14
- # Short-Description: Startup script for chef-server
14
+ # Short-Description: Startup script for chef-server
15
15
  # Description: Server component of the Chef systems integration framework.
16
16
  ### END INIT INFO
17
17
 
@@ -50,7 +50,7 @@ start() {
50
50
 
51
51
  stop() {
52
52
  echo -n $"Stopping $prog: "
53
- killproc -p $pidfile $prog
53
+ killproc -p $pidfile $prog
54
54
  retval=$?
55
55
  echo
56
56
  [ $retval -eq 0 ] && rm -f $lockfile
@@ -11,7 +11,7 @@
11
11
  # Required-Stop: $local_fs $network $remote_fs chef-server
12
12
  # Should-Start: $named $time
13
13
  # Should-Stop: $named $time
14
- # Short-Description: Startup script for chef-server-webui
14
+ # Short-Description: Startup script for chef-server-webui
15
15
  # Description: Server WebUI component of the Chef systems integration framework.
16
16
  ### END INIT INFO
17
17
 
@@ -50,7 +50,7 @@ start() {
50
50
 
51
51
  stop() {
52
52
  echo -n $"Stopping $prog: "
53
- killproc -p $pidfile $prog
53
+ killproc -p $pidfile $prog
54
54
  retval=$?
55
55
  echo
56
56
  [ $retval -eq 0 ] && rm -f $lockfile
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- #
2
+ #
3
3
  # chef-solr Startup script for the SOLR search engine
4
4
  #
5
5
  # chkconfig: - 94 06
@@ -42,7 +42,7 @@ start() {
42
42
 
43
43
  stop() {
44
44
  echo -n $"Stopping $prog: "
45
- killproc -p $pidfile $prog
45
+ killproc -p $pidfile $prog
46
46
  retval=$?
47
47
  echo
48
48
  [ $retval -eq 0 ] && rm -f $lockfile
@@ -36,6 +36,7 @@ class Chef
36
36
  @public_key = nil
37
37
  @private_key = nil
38
38
  @admin = false
39
+ @validator = false
39
40
  end
40
41
 
41
42
  # Gets or sets the client name.
@@ -74,6 +75,19 @@ class Chef
74
75
  )
75
76
  end
76
77
 
78
+ # Gets or sets whether this client is a validator.
79
+ #
80
+ # @params [Boolean] whether or not the client is a validator. If
81
+ # `nil`, retrieves the already-set value.
82
+ # @return [Boolean] The current value
83
+ def validator(arg=nil)
84
+ set_or_return(
85
+ :validator,
86
+ arg,
87
+ :kind_of => [TrueClass, FalseClass]
88
+ )
89
+ end
90
+
77
91
  # Gets or sets the private key.
78
92
  #
79
93
  # @params [Optional String] The string representation of the private key.
@@ -94,6 +108,7 @@ class Chef
94
108
  result = {
95
109
  "name" => @name,
96
110
  "public_key" => @public_key,
111
+ "validator" => @validator,
97
112
  "admin" => @admin,
98
113
  'json_class' => self.class.name,
99
114
  "chef_type" => "client"
@@ -115,6 +130,7 @@ class Chef
115
130
  client.private_key(o["private_key"]) if o.key?("private_key")
116
131
  client.public_key(o["public_key"])
117
132
  client.admin(o["admin"])
133
+ client.validator(o["validator"])
118
134
  client
119
135
  end
120
136
 
@@ -160,11 +176,11 @@ class Chef
160
176
  # Save this client via the REST API, returns a hash including the private key
161
177
  def save
162
178
  begin
163
- http_api.put("clients/#{name}", { :name => self.name, :admin => self.admin})
179
+ http_api.put("clients/#{name}", { :name => self.name, :admin => self.admin, :validator => self.validator})
164
180
  rescue Net::HTTPServerException => e
165
181
  # If that fails, go ahead and try and update it
166
182
  if e.response.code == "404"
167
- http_api.post("clients", {:name => self.name, :admin => self.admin })
183
+ http_api.post("clients", {:name => self.name, :admin => self.admin, :validator => self.validator })
168
184
  else
169
185
  raise e
170
186
  end
@@ -172,7 +188,7 @@ class Chef
172
188
  end
173
189
 
174
190
  def reregister
175
- reregistered_self = http_api.put("clients/#{name}", { :name => name, :admin => admin, :private_key => true })
191
+ reregistered_self = http_api.put("clients/#{name}", { :name => name, :admin => admin, :validator => validator, :private_key => true })
176
192
  if reregistered_self.respond_to?(:[])
177
193
  private_key(reregistered_self["private_key"])
178
194
  else
@@ -192,7 +208,7 @@ class Chef
192
208
  end
193
209
 
194
210
  def inspect
195
- "Chef::ApiClient name:'#{name}' admin:'#{admin.inspect}' " +
211
+ "Chef::ApiClient name:'#{name}' admin:'#{admin.inspect}' validator:'#{validator}' " +
196
212
  "public_key:'#{public_key}' private_key:'#{private_key}'"
197
213
  end
198
214
 
@@ -202,4 +218,3 @@ class Chef
202
218
 
203
219
  end
204
220
  end
205
-
@@ -66,31 +66,26 @@ class Chef::Application
66
66
  run_application
67
67
  end
68
68
 
69
- # Parse the configuration file
69
+ # Parse configuration (options and config file)
70
70
  def configure_chef
71
71
  parse_options
72
+ load_config_file
73
+ end
72
74
 
73
- begin
74
- case config[:config_file]
75
- when /^(http|https):\/\//
76
- Chef::REST.new("", nil, nil).fetch(config[:config_file]) { |f| apply_config(f.path) }
77
- else
78
- ::File::open(config[:config_file]) { |f| apply_config(f.path) }
79
- end
80
- rescue Errno::ENOENT => error
75
+ # Parse the config file
76
+ def load_config_file
77
+ config_fetcher = Chef::ConfigFetcher.new(config[:config_file], Chef::Config.config_file_jail)
78
+ if config[:config_file].nil?
79
+ Chef::Log.warn("No config file found or specified on command line, using command line options.")
80
+ elsif config_fetcher.config_missing?
81
81
  Chef::Log.warn("*****************************************")
82
82
  Chef::Log.warn("Did not find config file: #{config[:config_file]}, using command line options.")
83
83
  Chef::Log.warn("*****************************************")
84
-
85
- Chef::Config.merge!(config)
86
- rescue SocketError => error
87
- Chef::Application.fatal!("Error getting config file #{config[:config_file]}", 2)
88
- rescue Chef::Exceptions::ConfigurationError => error
89
- Chef::Application.fatal!("Error processing config file #{config[:config_file]} with error #{error.message}", 2)
90
- rescue Exception => error
91
- Chef::Application.fatal!("Unknown error processing config file #{config[:config_file]} with error #{error.message}", 2)
84
+ else
85
+ config_content = config_fetcher.read_config
86
+ apply_config(config_content, config[:config_file])
92
87
  end
93
-
88
+ Chef::Config.merge!(config)
94
89
  end
95
90
 
96
91
  # Initialize and configure the logger.
@@ -172,23 +167,59 @@ class Chef::Application
172
167
  raise Chef::Exceptions::Application, "#{self.to_s}: you must override run_application"
173
168
  end
174
169
 
170
+ def self.setup_server_connectivity
171
+ if Chef::Config.chef_zero.enabled
172
+ destroy_server_connectivity
173
+
174
+ require 'chef_zero/server'
175
+ require 'chef/chef_fs/chef_fs_data_store'
176
+ require 'chef/chef_fs/config'
177
+
178
+ chef_fs = Chef::ChefFS::Config.new.local_fs
179
+ chef_fs.write_pretty_json = true
180
+ server_options = {}
181
+ server_options[:data_store] = Chef::ChefFS::ChefFSDataStore.new(chef_fs)
182
+ server_options[:log_level] = Chef::Log.level
183
+ server_options[:port] = Chef::Config.chef_zero.port
184
+ Chef::Log.info("Starting chef-zero on port #{Chef::Config.chef_zero.port} with repository at #{server_options[:data_store].chef_fs.fs_description}")
185
+ @chef_zero_server = ChefZero::Server.new(server_options)
186
+ @chef_zero_server.start_background
187
+ Chef::Config.chef_server_url = @chef_zero_server.url
188
+ end
189
+ end
190
+
191
+ def self.destroy_server_connectivity
192
+ if @chef_zero_server
193
+ @chef_zero_server.stop
194
+ @chef_zero_server = nil
195
+ end
196
+ end
197
+
175
198
  # Initializes Chef::Client instance and runs it
176
199
  def run_chef_client
200
+ Chef::Application.setup_server_connectivity
201
+
177
202
  @chef_client = Chef::Client.new(
178
- @chef_client_json,
203
+ @chef_client_json,
179
204
  :override_runlist => config[:override_runlist]
180
205
  )
181
206
  @chef_client_json = nil
182
207
 
183
208
  @chef_client.run
184
209
  @chef_client = nil
210
+
211
+ Chef::Application.destroy_server_connectivity
185
212
  end
186
213
 
187
214
  private
188
215
 
189
- def apply_config(config_file_path)
190
- Chef::Config.from_file(config_file_path)
191
- Chef::Config.merge!(config)
216
+ def apply_config(config_content, config_file_path)
217
+ Chef::Config.from_string(config_content, config_file_path)
218
+ rescue Exception => error
219
+ Chef::Log.fatal("Configuration error #{error.class}: #{error.message}")
220
+ filtered_trace = error.backtrace.grep(/#{Regexp.escape(config_file_path)}/)
221
+ filtered_trace.each {|line| Chef::Log.fatal(" " + line )}
222
+ Chef::Application.fatal!("Aborting due to error in '#{config_file_path}'", 2)
192
223
  end
193
224
 
194
225
  class << self
@@ -6,9 +6,9 @@
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
- #
9
+ #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0
11
- #
11
+ #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
14
14
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,7 +22,7 @@ require 'chef/client'
22
22
  require 'chef/config'
23
23
  require 'chef/daemon'
24
24
  require 'chef/log'
25
- require 'chef/rest'
25
+ require 'chef/config_fetcher'
26
26
  require 'chef/handler/error_report'
27
27
 
28
28
 
@@ -34,7 +34,6 @@ class Chef::Application::Client < Chef::Application
34
34
  option :config_file,
35
35
  :short => "-c CONFIG",
36
36
  :long => "--config CONFIG",
37
- :default => Chef::Config.platform_specific_path("/etc/chef/client.rb"),
38
37
  :description => "The configuration file to use"
39
38
 
40
39
  option :formatter,
@@ -197,6 +196,20 @@ class Chef::Application::Client < Chef::Application
197
196
  :description => "Enable reporting data collection for chef runs",
198
197
  :boolean => true
199
198
 
199
+ option :local_mode,
200
+ :short => "-z",
201
+ :long => "--local-mode",
202
+ :description => "Point chef-client at local repository",
203
+ :boolean => true
204
+
205
+ option :chef_zero_port,
206
+ :long => "--chef-zero-port PORT",
207
+ :description => "Port to start chef-zero on"
208
+
209
+ option :config_file_jail,
210
+ :long => "--config-file-jail PATH",
211
+ :description => "Directory under which config files are allowed to be loaded (no client.rb or knife.rb outside this path will be loaded)."
212
+
200
213
  if Chef::Platform.windows?
201
214
  option :fatal_windows_admin_check,
202
215
  :short => "-A",
@@ -219,6 +232,12 @@ class Chef::Application::Client < Chef::Application
219
232
 
220
233
  Chef::Config[:chef_server_url] = config[:chef_server_url] if config.has_key? :chef_server_url
221
234
 
235
+ Chef::Config.local_mode = config[:local_mode] if config.has_key?(:local_mode)
236
+ if Chef::Config.local_mode && !Chef::Config.has_key?(:cookbook_path) && !Chef::Config.has_key?(:chef_repo_path)
237
+ Chef::Config.chef_repo_path = Chef::Config.find_chef_repo_path(Dir.pwd)
238
+ end
239
+ Chef::Config.chef_zero.port = config[:chef_zero_port] if config[:chef_zero_port]
240
+
222
241
  if Chef::Config[:daemonize]
223
242
  Chef::Config[:interval] ||= 1800
224
243
  end
@@ -229,31 +248,22 @@ class Chef::Application::Client < Chef::Application
229
248
  end
230
249
 
231
250
  if Chef::Config[:json_attribs]
232
- begin
233
- json_io = case Chef::Config[:json_attribs]
234
- when /^(http|https):\/\//
235
- @rest = Chef::REST.new(Chef::Config[:json_attribs], nil, nil)
236
- @rest.get_rest(Chef::Config[:json_attribs], true).open
237
- else
238
- open(Chef::Config[:json_attribs])
239
- end
240
- rescue SocketError => error
241
- Chef::Application.fatal!("I cannot connect to #{Chef::Config[:json_attribs]}", 2)
242
- rescue Errno::ENOENT => error
243
- Chef::Application.fatal!("I cannot find #{Chef::Config[:json_attribs]}", 2)
244
- rescue Errno::EACCES => error
245
- Chef::Application.fatal!("Permissions are incorrect on #{Chef::Config[:json_attribs]}. Please chmod a+r #{Chef::Config[:json_attribs]}", 2)
246
- rescue Exception => error
247
- Chef::Application.fatal!("Got an unexpected error reading #{Chef::Config[:json_attribs]}: #{error.message}", 2)
248
- end
251
+ config_fetcher = Chef::ConfigFetcher.new(Chef::Config[:json_attribs])
252
+ @chef_client_json = config_fetcher.fetch_json
253
+ end
254
+ end
249
255
 
250
- begin
251
- @chef_client_json = Chef::JSONCompat.from_json(json_io.read)
252
- json_io.close unless json_io.closed?
253
- rescue JSON::ParserError => error
254
- Chef::Application.fatal!("Could not parse the provided JSON file (#{Chef::Config[:json_attribs]})!: " + error.message, 2)
256
+ def load_config_file
257
+ Chef::Config.config_file_jail = config[:config_file_jail] if config[:config_file_jail]
258
+ if !config.has_key?(:config_file)
259
+ if config[:local_mode]
260
+ require 'chef/knife'
261
+ config[:config_file] = Chef::Knife.locate_config_file
262
+ else
263
+ config[:config_file] = Chef::Config.platform_specific_path("/etc/chef/client.rb")
255
264
  end
256
265
  end
266
+ super
257
267
  end
258
268
 
259
269
  def configure_logging