ich das folgende Stück Rezept Code habenWARNEN: Cloning Ressource-Attribute aus dem Stand der Ressource
# change permissions and group
execute 'set group' do
command 'sudo chgrp -R tomcat /opt/tomcat/conf'
end
%w(/opt/tomcat/conf /opt/tomcat/conf/*).each do |tomcat_directory|
execute 'set directory permissions' do
command 'sudo chmod g+rwx ' + tomcat_directory
end
end
Wenn ich laufen chef exec rspec --color
ich alle Tests sehen vorbei, aber es gibt auch eine Warnung
[2017-05-10T21:12:36+05:30] WARN: Cloning resource attributes for execute[set directory permissions] from prior resource
Previous execute[set directory permissions]: C:/Users/AASJD~1/AppData/Local/Temp/chefspec20170510-14248-1faza0file_cache_path/cookbooks/tomcat/recipes/installtomcat.rb:25:in `block in from_file'
Current execute[set directory permissions]:/Users/AASJD~1/AppData/Local/Temp/chefspec20170510-14248-1faza0file_cache_path/cookbooks/tomcat/recipes/installtomcat.rb:25:in `block in from_file'
(CHEF-3694)C:/Users/AASJD~1/AppData/Local/Temp/chefspec20170510-14248-1faza0file_cache_path/cookbooks/tomcat/recipes/installtomcat.rb:25:in `block in from_file'.
Please see https://docs.chef.io/deprecations_resource_cloning.html for further details and information on how to correct this problem. at C:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.19.36-universal-mingw32/lib/chef/event_dispatch/dispatcher.rb:43:in `call'
https://docs.chef.io/deprecations_resource_cloning.html Wie über diesen Link sollten die Ressourcen nicht die gleichen Namen haben oder die Ziele sollten nicht gleich sein, aber sie sind nicht in diesem Fall. Warum kommt dann dieser Fehler?
Von Ihrem ersten Code, könnten Sie einfach 'interpoliert haben tomcat_directory' in den Ressourcenname:' ausführen „set # {tomcat_directory} Verzeichnisberechtigungen“ do' funktioniert hätte – Tensibai
Ja, ich habe irgendwo gelesen, das ist keine sehr gute Praxis? – aaj
Das Gegenteil, aufgrund der Eingabe von Ruby durch Duck, kann das Hinzufügen von Strings zu Fremder-Verhalten führen. Ie: x + "A" wird wahrscheinlich mit dem dezimalen ASCII-Wert enden, wenn A zu x anstelle von "1A" hinzugefügt wird Wenn x 1 ist 1 – Tensibai