Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 0.9.0, 0.9.2, 0.9.4
-
Fix Version/s: 0.9.8
-
Component/s: Chef Client
-
Labels:None
Description
shef includes fileutils, which defines "link". This conflicts with the 'link' resource because of the way method_missing is used to create resources. When running shef in client mode where it is loading cookbooks that have the link resource defined:
ubuntu@ip-10-251-203-65:~$ sudo shef -z -c /etc/chef/client.rb loading configuration: /etc/chef/client.rb Loading...........epic fail! /var/chef/cache/cookbooks/runit/definitions/runit_service.rb:90:in `link': wrong number of arguments (1 for 2) (ArgumentError) from /var/chef/cache/cookbooks/runit/definitions/runit_service.rb:90:in `from_file' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/mixin/recipe_definition_dsl_core.rb:49:in `instance_eval' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/mixin/recipe_definition_dsl_core.rb:49:in `method_missing' from /var/chef/cache/cookbooks/nginx/recipes/source.rb:93:in `from_file' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/cookbook_version.rb:316:in `load_recipe' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/mixin/language_include_recipe.rb:40:in `include_recipe' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/mixin/language_include_recipe.rb:27:in `each' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/mixin/language_include_recipe.rb:27:in `include_recipe' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/run_context.rb:93:in `load' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/run_context.rb:90:in `each' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/run_context.rb:90:in `load' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/run_context.rb:54:in `initialize' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef/shef_session.rb:142:in `new' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef/shef_session.rb:142:in `rebuild_context' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef/shef_session.rb:36:in `reset!' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef/shef_session.rb:78:in `loading' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef/shef_session.rb:33:in `reset!' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef.rb:75:in `session' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/lib/chef/shef.rb:83:in `init' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/bin/shef:41:in `run_config' from /usr/lib/ruby/1.8/irb/init.rb:20:in `setup' from /usr/lib/ruby/1.8/irb.rb:54:in `start' from /usr/lib/ruby/gems/1.8/gems/chef-0.9.4/bin/shef:47 from /usr/bin/shef:19:in `load' from /usr/bin/shef:19
Everything works fine when chef-client is run.
Or, when run in standalone mode w/o a node:
ubuntu@ip-10-251-203-65:~$ sudo shef -s loading configuration: none (standalone shef session) Loading........done. This is shef, the Chef shell. Chef Version: 0.9.4 http://www.opscode.com/chef http://wiki.opscode.com/display/chef/Home run `help' for help, `exit' or ^D to quit. Ohai2u ubuntu@ip-10-251-203-65.ec2.internal! chef > recipe chef:recipe > link "/tmp/foo" do chef:recipe > to "/etc/hosts" chef:recipe ?> end ArgumentError: wrong number of arguments (1 for 2) from (irb#1):2:in `link' from (irb#1):2
I believe this is fixed with
CHEF-1497