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/solaris.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/solaris.rb')
-rw-r--r-- | lib/chef/provider/package/solaris.rb | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/lib/chef/provider/package/solaris.rb b/lib/chef/provider/package/solaris.rb index 1c393e6a20..5537127310 100644 --- a/lib/chef/provider/package/solaris.rb +++ b/lib/chef/provider/package/solaris.rb @@ -33,45 +33,45 @@ class Chef # def initialize(*args) # super - # @current_resource = Chef::Resource::Package.new(@new_resource.name) + # @current_resource = Chef::Resource::Package.new(new_resource.name) # end 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 @new_resource.source - @package_source_found = ::File.exists?(@new_resource.source) + if new_resource.source + @package_source_found = ::File.exist?(new_resource.source) if @package_source_found - Chef::Log.debug("#{@new_resource} checking pkg status") - shell_out_with_timeout("pkginfo -l -d #{@new_resource.source} #{@new_resource.package_name}").stdout.each_line do |line| + Chef::Log.debug("#{new_resource} checking pkg status") + shell_out_compact_timeout("pkginfo", "-l", "-d", new_resource.source, new_resource.package_name).stdout.each_line do |line| case line when /VERSION:\s+(.+)/ - @new_resource.version($1) + new_resource.version($1) end end end end - Chef::Log.debug("#{@new_resource} checking install state") - status = shell_out_with_timeout("pkginfo -l #{@current_resource.package_name}") + Chef::Log.debug("#{new_resource} checking install state") + status = shell_out_compact_timeout("pkginfo", "-l", current_resource.package_name) status.stdout.each_line do |line| case line when /VERSION:\s+(.+)/ - Chef::Log.debug("#{@new_resource} version #{$1} is already installed") - @current_resource.version($1) + Chef::Log.debug("#{new_resource} version #{$1} is already installed") + current_resource.version($1) end end @@ -79,56 +79,56 @@ class Chef raise Chef::Exceptions::Package, "pkginfo failed - #{status.inspect}!" end - @current_resource + current_resource end def candidate_version return @candidate_version if @candidate_version - status = shell_out_with_timeout("pkginfo -l -d #{@new_resource.source} #{new_resource.package_name}") + status = shell_out_compact_timeout("pkginfo", "-l", "-d", new_resource.source, new_resource.package_name) status.stdout.each_line do |line| case line when /VERSION:\s+(.+)/ @candidate_version = $1 - @new_resource.version($1) - Chef::Log.debug("#{@new_resource} setting install candidate version to #{@candidate_version}") + new_resource.version($1) + Chef::Log.debug("#{new_resource} setting install candidate version to #{@candidate_version}") end end unless status.exitstatus == 0 - raise Chef::Exceptions::Package, "pkginfo -l -d #{@new_resource.source} - #{status.inspect}!" + raise Chef::Exceptions::Package, "pkginfo -l -d #{new_resource.source} - #{status.inspect}!" end @candidate_version end def install_package(name, version) - Chef::Log.debug("#{@new_resource} package install options: #{@new_resource.options}") - if @new_resource.options.nil? - if ::File.directory?(@new_resource.source) # CHEF-4469 - command = "pkgadd -n -d #{@new_resource.source} #{@new_resource.package_name}" - else - command = "pkgadd -n -d #{@new_resource.source} all" - end - shell_out_with_timeout!(command) - 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? + command = if ::File.directory?(new_resource.source) # CHEF-4469 + [ "pkgadd", "-n", "-d", new_resource.source, new_resource.package_name ] + else + [ "pkgadd", "-n", "-d", new_resource.source, "all" ] + end + shell_out_compact_timeout!(command) + Chef::Log.debug("#{new_resource} installed version #{new_resource.version} from: #{new_resource.source}") else - if ::File.directory?(@new_resource.source) # CHEF-4469 - command = "pkgadd -n#{expand_options(@new_resource.options)} -d #{@new_resource.source} #{@new_resource.package_name}" - else - command = "pkgadd -n#{expand_options(@new_resource.options)} -d #{@new_resource.source} all" - end - shell_out_with_timeout!(command) - Chef::Log.debug("#{@new_resource} installed version #{@new_resource.version} from: #{@new_resource.source}") + command = if ::File.directory?(new_resource.source) # CHEF-4469 + [ "pkgadd", "-n", options, "-d", new_resource.source, new_resource.package_name ] + else + [ "pkgadd", "-n", options, "-d", new_resource.source, "all" ] + end + shell_out_compact_timeout!(*command) + 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!( "pkgrm -n #{name}" ) - Chef::Log.debug("#{@new_resource} removed version #{@new_resource.version}") + if options.nil? + shell_out_compact_timeout!( "pkgrm", "-n", name ) + Chef::Log.debug("#{new_resource} removed version #{new_resource.version}") else - shell_out_with_timeout!( "pkgrm -n#{expand_options(@new_resource.options)} #{name}" ) - Chef::Log.debug("#{@new_resource} removed version #{@new_resource.version}") + shell_out_compact_timeout!( "pkgrm", "-n", options, name ) + Chef::Log.debug("#{new_resource} removed version #{new_resource.version}") end end |