|
@@ -135,7 +135,12 @@ class Chef
|
|
|
|
|
|
def deploy_provider
|
|
def deploy_provider
|
|
@deploy_provider ||= begin
|
|
@deploy_provider ||= begin
|
|
- deploy_provider = Chef::Platform.provider_for_resource(@deploy_resource)
|
|
|
|
|
|
+ version = Chef::Version.new(Chef::VERSION)
|
|
|
|
+ deploy_provider = if version.major > 10 || version.minor >= 14
|
|
|
|
+ Chef::Platform.provider_for_resource(@deploy_resource, :nothing)
|
|
|
|
+ else
|
|
|
|
+ Chef::Platform.provider_for_resource(@deploy_resource)
|
|
|
|
+ end
|
|
deploy_provider.load_current_resource
|
|
deploy_provider.load_current_resource
|
|
deploy_provider
|
|
deploy_provider
|
|
end
|
|
end
|
|
@@ -155,7 +160,7 @@ class Chef
|
|
case callback_code
|
|
case callback_code
|
|
when Proc
|
|
when Proc
|
|
Chef::Log.info "#{@new_resource} running callback #{what}"
|
|
Chef::Log.info "#{@new_resource} running callback #{what}"
|
|
- recipe_eval(&callback_code)
|
|
|
|
|
|
+ safe_recipe_eval(&callback_code)
|
|
when String
|
|
when String
|
|
callback_file = "#{release_path}/#{callback_code}"
|
|
callback_file = "#{release_path}/#{callback_code}"
|
|
unless ::File.exist?(callback_file)
|
|
unless ::File.exist?(callback_file)
|
|
@@ -173,11 +178,15 @@ class Chef
|
|
if ::File.exist?(callback_file)
|
|
if ::File.exist?(callback_file)
|
|
Dir.chdir(release_path) do
|
|
Dir.chdir(release_path) do
|
|
Chef::Log.info "#{@new_resource} running deploy hook #{callback_file}"
|
|
Chef::Log.info "#{@new_resource} running deploy hook #{callback_file}"
|
|
- recipe_eval { from_file(callback_file) }
|
|
|
|
|
|
+ safe_recipe_eval { from_file(callback_file) }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+ def safe_recipe_eval(&callback_code)
|
|
|
|
+ recipe_eval(&callback_code)
|
|
|
|
+ converge if respond_to?(:converge)
|
|
|
|
+ end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|