diff options
Diffstat (limited to 'lib/chef/provider/package/rpm.rb')
-rw-r--r-- | lib/chef/provider/package/rpm.rb | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/lib/chef/provider/package/rpm.rb b/lib/chef/provider/package/rpm.rb index 777cc6d209..1701886191 100644 --- a/lib/chef/provider/package/rpm.rb +++ b/lib/chef/provider/package/rpm.rb @@ -34,13 +34,13 @@ class Chef requirements.assert(:all_actions) do |a| a.assertion { @package_source_exists } - a.failure_message Chef::Exceptions::Package, "Package #{@new_resource.name} not found: #{@new_resource.source}" - a.whyrun "Assuming package #{@new_resource.name} would have been made available." + a.failure_message Chef::Exceptions::Package, "Package #{new_resource.name} not found: #{new_resource.source}" + a.whyrun "Assuming package #{new_resource.name} would have been made available." end requirements.assert(:all_actions) do |a| a.assertion { !@rpm_status.nil? && (@rpm_status.exitstatus == 0 || @rpm_status.exitstatus == 1) } a.failure_message Chef::Exceptions::Package, "Unable to determine current version due to RPM failure. Detail: #{@rpm_status.inspect}" - a.whyrun "Assuming current version would have been determined for package#{@new_resource.name}." + a.whyrun "Assuming current version would have been determined for package#{new_resource.name}." end end @@ -48,63 +48,63 @@ class Chef @package_source_provided = true @package_source_exists = true - @current_resource = Chef::Resource::Package.new(@new_resource.name) - @current_resource.package_name(@new_resource.package_name) + @current_resource = Chef::Resource::Package.new(new_resource.name) + current_resource.package_name(new_resource.package_name) - if @new_resource.source - unless uri_scheme?(@new_resource.source) || ::File.exists?(@new_resource.source) + if new_resource.source + unless uri_scheme?(new_resource.source) || ::File.exist?(new_resource.source) @package_source_exists = false return end - Chef::Log.debug("#{@new_resource} checking rpm status") - shell_out_with_timeout!("rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' #{@new_resource.source}").stdout.each_line do |line| + Chef::Log.debug("#{new_resource} checking rpm status") + shell_out_compact_timeout!("rpm", "-qp", "--queryformat", "%{NAME} %{VERSION}-%{RELEASE}\n", new_resource.source).stdout.each_line do |line| case line when /^(\S+)\s(\S+)$/ - @current_resource.package_name($1) - @new_resource.version($2) + current_resource.package_name($1) + new_resource.version($2) @candidate_version = $2 end end else - if Array(@new_resource.action).include?(:install) + if Array(new_resource.action).include?(:install) @package_source_exists = false return end end - Chef::Log.debug("#{@new_resource} checking install state") - @rpm_status = shell_out_with_timeout("rpm -q --queryformat '%{NAME} %{VERSION}-%{RELEASE}\n' #{@current_resource.package_name}") + Chef::Log.debug("#{new_resource} checking install state") + @rpm_status = shell_out_compact_timeout("rpm", "-q", "--queryformat", "%{NAME} %{VERSION}-%{RELEASE}\n", current_resource.package_name) @rpm_status.stdout.each_line do |line| case line when /^(\S+)\s(\S+)$/ - Chef::Log.debug("#{@new_resource} current version is #{$2}") - @current_resource.version($2) + Chef::Log.debug("#{new_resource} current version is #{$2}") + current_resource.version($2) end end - @current_resource + current_resource end def install_package(name, version) - unless @current_resource.version - shell_out_with_timeout!( "rpm #{@new_resource.options} -i #{@new_resource.source}" ) - else + if current_resource.version if allow_downgrade - shell_out_with_timeout!( "rpm #{@new_resource.options} -U --oldpackage #{@new_resource.source}" ) + shell_out_compact_timeout!("rpm", options, "-U", "--oldpackage", new_resource.source) else - shell_out_with_timeout!( "rpm #{@new_resource.options} -U #{@new_resource.source}" ) + shell_out_compact_timeout!("rpm", options, "-U", new_resource.source) end + else + shell_out_compact_timeout!("rpm", options, "-i", new_resource.source) end end - alias_method :upgrade_package, :install_package + alias upgrade_package install_package def remove_package(name, version) if version - shell_out_with_timeout!( "rpm #{@new_resource.options} -e #{name}-#{version}" ) + shell_out_compact_timeout!("rpm", options, "-e", "#{name}-#{version}") else - shell_out_with_timeout!( "rpm #{@new_resource.options} -e #{name}" ) + shell_out_compact_timeout!("rpm", options, "-e", name) end end |