diff options
Diffstat (limited to 'lib/chef/resource/windows_package.rb')
-rw-r--r-- | lib/chef/resource/windows_package.rb | 73 |
1 files changed, 10 insertions, 63 deletions
diff --git a/lib/chef/resource/windows_package.rb b/lib/chef/resource/windows_package.rb index f11b7b8b3b..4965f3f117 100644 --- a/lib/chef/resource/windows_package.rb +++ b/lib/chef/resource/windows_package.rb @@ -26,74 +26,21 @@ class Chef class WindowsPackage < Chef::Resource::Package include Chef::Mixin::Uris + resource_name :windows_package provides :windows_package, os: "windows" provides :package, os: "windows" allowed_actions :install, :remove - def initialize(name, run_context=nil) - super - @source ||= source(@package_name) - - # Unique to this resource - @installer_type = nil - @timeout = 600 - # In the past we accepted return code 127 for an unknown reason and 42 because of a bug - @returns = [ 0 ] - end - - def installer_type(arg=nil) - set_or_return( - :installer_type, - arg, - :kind_of => [ Symbol ] - ) - end - - def timeout(arg=nil) - set_or_return( - :timeout, - arg, - :kind_of => [ String, Integer ] - ) - end - - def returns(arg=nil) - set_or_return( - :returns, - arg, - :kind_of => [ String, Integer, Array ] - ) - end - - def source(arg=nil) - if arg == nil - @source - else - raise ArgumentError, "Bad type for WindowsPackage resource, use a String" unless arg.is_a?(String) - if uri_scheme?(arg) - @source = arg - else - @source = Chef::Util::PathHelper.canonical_path(arg, false) - end - end - end - - def checksum(arg=nil) - set_or_return( - :checksum, - arg, - :kind_of => [ String ] - ) - end - - def remote_file_attributes(arg=nil) - set_or_return( - :remote_file_attributes, - arg, - :kind_of => [ Hash ] - ) - end + # Unique to this resource + property :installer_type, Symbol + property :timeout, [ String, Integer ], default: 600 + # In the past we accepted return code 127 for an unknown reason and 42 because of a bug + property :returns, [ String, Integer, Array ], default: [ 0 ], desired_state: false + property :source, String, name_property: true, + coerce: proc { |s| uri_scheme?(s) ? s : Chef::Util::PathHelper.canonical_path(s, false) } + property :checksum, String, desired_state: false + property :remote_file_attributes, Hash, desired_state: false end end |