summaryrefslogtreecommitdiff
path: root/lib/chef/resource/windows_package.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/resource/windows_package.rb')
-rw-r--r--lib/chef/resource/windows_package.rb73
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