diff options
Diffstat (limited to 'lib/chef/resource/archive_file.rb')
-rw-r--r-- | lib/chef/resource/archive_file.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/chef/resource/archive_file.rb b/lib/chef/resource/archive_file.rb index 58e106d9bc..c02d160729 100644 --- a/lib/chef/resource/archive_file.rb +++ b/lib/chef/resource/archive_file.rb @@ -53,7 +53,7 @@ class Chef description: "The group of the extracted files." property :mode, [String, Integer], - description: "The mode of the extracted files.", + description: "The mode of the extracted files. Integer values are deprecated as octal strings (ex. 0755) would not be interpreted correctly.", default: "755" property :destination, String, @@ -85,7 +85,8 @@ class Chef Chef::Log.trace("File or directory does not exist at destination path: #{new_resource.destination}") converge_by("create directory #{new_resource.destination}") do - FileUtils.mkdir_p(new_resource.destination, mode: new_resource.mode.to_i) + # @todo when we remove the ability for mode to be an int we can remove the .to_s below + FileUtils.mkdir_p(new_resource.destination, mode: new_resource.mode.to_s.to_i(8)) end extract(new_resource.path, new_resource.destination, Array(new_resource.options)) @@ -113,6 +114,12 @@ class Chef end action_class do + def define_resource_requirements + if new_resource.mode.is_a?(Integer) + Chef.deprecated(:archive_file_integer_file_mode, "The mode property should be passed to archive_file resources as a String and not an Integer to ensure the value is properly interpreted.") + end + end + # This can't be a constant since we might not have required 'ffi-libarchive' yet. def extract_option_map { |