diff options
Diffstat (limited to 'lib/chef/provider')
-rw-r--r-- | lib/chef/provider/package.rb | 13 | ||||
-rw-r--r-- | lib/chef/provider/package/rpm.rb | 6 | ||||
-rw-r--r-- | lib/chef/provider/package/yum.rb | 8 |
3 files changed, 16 insertions, 11 deletions
diff --git a/lib/chef/provider/package.rb b/lib/chef/provider/package.rb index 9edf8d5f52..fd317a3a31 100644 --- a/lib/chef/provider/package.rb +++ b/lib/chef/provider/package.rb @@ -109,18 +109,20 @@ class Chef converge_by(upgrade_description) do upgrade_package(package_names_for_targets, versions_for_targets) - Chef::Log.info("#{@new_resource} upgraded #{package_names_for_targets} to #{versions_for_targets}") + log_allow_downgrade = allow_downgrade ? '(allow_downgrade)' : '' + Chef::Log.info("#{@new_resource} upgraded#{log_allow_downgrade} #{package_names_for_targets} to #{versions_for_targets}") end end def upgrade_description + log_allow_downgrade = allow_downgrade ? '(allow_downgrade)' : '' description = [] target_version_array.each_with_index do |target_version, i| next if target_version.nil? package_name = package_name_array[i] candidate_version = candidate_version_array[i] current_version = current_version_array[i] || "uninstalled" - description << "upgrade package #{package_name} from #{current_version} to #{candidate_version}" + description << "upgrade#{log_allow_downgrade} package #{package_name} from #{current_version} to #{candidate_version}" end description end @@ -475,6 +477,13 @@ class Chef run_context.has_cookbook_file_in_cookbook?(new_resource.cookbook_name, path) end + def allow_downgrade + if @new_resource.respond_to?("allow_downgrade") + @new_resource.allow_downgrade + else + false + end + end end end end diff --git a/lib/chef/provider/package/rpm.rb b/lib/chef/provider/package/rpm.rb index 504932f257..c96261bcd1 100644 --- a/lib/chef/provider/package/rpm.rb +++ b/lib/chef/provider/package/rpm.rb @@ -93,7 +93,11 @@ class Chef unless @current_resource.version shell_out!( "rpm #{@new_resource.options} -i #{@new_resource.source}" ) else - shell_out!( "rpm #{@new_resource.options} -U #{@new_resource.source}" ) + if allow_downgrade + shell_out!( "rpm #{@new_resource.options} -U --oldpackage #{@new_resource.source}" ) + else + shell_out!( "rpm #{@new_resource.options} -U #{@new_resource.source}" ) + end end end diff --git a/lib/chef/provider/package/yum.rb b/lib/chef/provider/package/yum.rb index 40da14413e..3c4721b6a1 100644 --- a/lib/chef/provider/package/yum.rb +++ b/lib/chef/provider/package/yum.rb @@ -976,14 +976,6 @@ class Chef end end - def allow_downgrade - if @new_resource.respond_to?("allow_downgrade") - @new_resource.allow_downgrade - else - false - end - end - # Helpers # |