diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2017-01-09 10:47:17 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2017-02-11 15:13:31 -0800 |
commit | 67c44883fda6097385a7d378930177a9c85643b8 (patch) | |
tree | 4ebd7be6e31182006607b360f13e763044bed136 /lib/chef/provider/package/aix.rb | |
parent | 4bea26334396755625b3094272d9852b400bb053 (diff) | |
download | chef-67c44883fda6097385a7d378930177a9c85643b8.tar.gz |
package provider cleanuplcg/package-cleanup
- cleans up a lot of ivar usage
- converts most providers to shell_out_compact_timeout!
- almost deprecates a few APIs, but can't quite yet
- windows providers need mixlib-shellout to take an argv
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Diffstat (limited to 'lib/chef/provider/package/aix.rb')
-rw-r--r-- | lib/chef/provider/package/aix.rb | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/lib/chef/provider/package/aix.rb b/lib/chef/provider/package/aix.rb index 12bf11ad0f..5af5f5afad 100644 --- a/lib/chef/provider/package/aix.rb +++ b/lib/chef/provider/package/aix.rb @@ -34,45 +34,45 @@ class Chef def define_resource_requirements super requirements.assert(:install) do |a| - a.assertion { @new_resource.source } - a.failure_message Chef::Exceptions::Package, "Source for package #{@new_resource.name} required for action install" + a.assertion { new_resource.source } + a.failure_message Chef::Exceptions::Package, "Source for package #{new_resource.name} required for action install" end requirements.assert(:all_actions) do |a| - a.assertion { !@new_resource.source || package_source_found? } - a.failure_message Chef::Exceptions::Package, "Package #{@new_resource.name} not found: #{@new_resource.source}" - a.whyrun "would assume #{@new_resource.source} would be have previously been made available" + a.assertion { !new_resource.source || package_source_found? } + a.failure_message Chef::Exceptions::Package, "Package #{new_resource.name} not found: #{new_resource.source}" + a.whyrun "would assume #{new_resource.source} would be have previously been made available" end end def load_current_resource - @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 package_source_found? - Chef::Log.debug("#{@new_resource} checking pkg status") - ret = shell_out_with_timeout("installp -L -d #{@new_resource.source}") + Chef::Log.debug("#{new_resource} checking pkg status") + ret = shell_out_compact_timeout("installp", "-L", "-d", new_resource.source) ret.stdout.each_line do |line| case line - when /:#{@new_resource.package_name}:/ + when /:#{new_resource.package_name}:/ fields = line.split(":") - @new_resource.version(fields[2]) - when /^#{@new_resource.package_name}:/ + new_resource.version(fields[2]) + when /^#{new_resource.package_name}:/ Chef::Log.warn("You are installing a bff package by product name. For idempotent installs, please install individual filesets") fields = line.split(":") - @new_resource.version(fields[2]) + new_resource.version(fields[2]) end end - raise Chef::Exceptions::Package, "package source #{@new_resource.source} does not provide package #{@new_resource.package_name}" unless @new_resource.version + raise Chef::Exceptions::Package, "package source #{new_resource.source} does not provide package #{new_resource.package_name}" unless new_resource.version end - Chef::Log.debug("#{@new_resource} checking install state") - ret = shell_out_with_timeout("lslpp -lcq #{@current_resource.package_name}") + Chef::Log.debug("#{new_resource} checking install state") + ret = shell_out_compact_timeout("lslpp", "-lcq", current_resource.package_name) ret.stdout.each_line do |line| case line - when /#{@current_resource.package_name}/ + when /#{current_resource.package_name}/ fields = line.split(":") - Chef::Log.debug("#{@new_resource} version #{fields[2]} is already installed") - @current_resource.version(fields[2]) + Chef::Log.debug("#{new_resource} version #{fields[2]} is already installed") + current_resource.version(fields[2]) end end @@ -80,24 +80,24 @@ class Chef raise Chef::Exceptions::Package, "lslpp failed - #{ret.format_for_exception}!" end - @current_resource + current_resource end def candidate_version return @candidate_version if @candidate_version if package_source_found? - ret = shell_out_with_timeout("installp -L -d #{@new_resource.source}") + ret = shell_out_compact_timeout("installp", "-L", "-d", new_resource.source) ret.stdout.each_line do |line| case line - when /\w:#{Regexp.escape(@new_resource.package_name)}:(.*)/ + when /\w:#{Regexp.escape(new_resource.package_name)}:(.*)/ fields = line.split(":") @candidate_version = fields[2] - @new_resource.version(fields[2]) - Chef::Log.debug("#{@new_resource} setting install candidate version to #{@candidate_version}") + new_resource.version(fields[2]) + Chef::Log.debug("#{new_resource} setting install candidate version to #{@candidate_version}") end end unless ret.exitstatus == 0 - raise Chef::Exceptions::Package, "installp -L -d #{@new_resource.source} - #{ret.format_for_exception}!" + raise Chef::Exceptions::Package, "installp -L -d #{new_resource.source} - #{ret.format_for_exception}!" end end @candidate_version @@ -111,30 +111,30 @@ class Chef # So far, the code has been tested only with standalone packages. # def install_package(name, version) - Chef::Log.debug("#{@new_resource} package install options: #{@new_resource.options}") - if @new_resource.options.nil? - shell_out_with_timeout!( "installp -aYF -d #{@new_resource.source} #{@new_resource.package_name}" ) - Chef::Log.debug("#{@new_resource} installed version #{@new_resource.version} from: #{@new_resource.source}") + Chef::Log.debug("#{new_resource} package install options: #{options}") + if options.nil? + shell_out_compact_timeout!("installp", "-aYF", "-d", new_resource.source, new_resource.package_name) + Chef::Log.debug("#{new_resource} installed version #{new_resource.version} from: #{new_resource.source}") else - shell_out_with_timeout!( "installp -aYF #{expand_options(@new_resource.options)} -d #{@new_resource.source} #{@new_resource.package_name}" ) - Chef::Log.debug("#{@new_resource} installed version #{@new_resource.version} from: #{@new_resource.source}") + shell_out_compact_timeout!("installp", "-aYF", options, "-d", new_resource.source, new_resource.package_name) + Chef::Log.debug("#{new_resource} installed version #{new_resource.version} from: #{new_resource.source}") end end - alias_method :upgrade_package, :install_package + alias upgrade_package install_package def remove_package(name, version) - if @new_resource.options.nil? - shell_out_with_timeout!( "installp -u #{name}" ) - Chef::Log.debug("#{@new_resource} removed version #{@new_resource.version}") + if options.nil? + shell_out_compact_timeout!("installp", "-u", name) + Chef::Log.debug("#{new_resource} removed version #{new_resource.version}") else - shell_out_with_timeout!( "installp -u #{expand_options(@new_resource.options)} #{name}" ) - Chef::Log.debug("#{@new_resource} removed version #{@new_resource.version}") + shell_out_compact_timeout!("installp", "-u", options, name) + Chef::Log.debug("#{new_resource} removed version #{new_resource.version}") end end def package_source_found? - @package_source_found ||= @new_resource.source && ::File.exists?(@new_resource.source) + @package_source_found ||= new_resource.source && ::File.exist?(new_resource.source) end end |