From 090a2f80e4d453e9ea0f04a574a5f3f7ccdc685f Mon Sep 17 00:00:00 2001 From: John Keiser Date: Mon, 16 Nov 2015 11:03:40 -0800 Subject: Properly rescue ENOENT on delete and send DataNotFoundError so that callers can 404 when deleting a nonexistent path --- lib/chef/chef_fs/file_system/file_system_entry.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/chef/chef_fs/file_system/file_system_entry.rb b/lib/chef/chef_fs/file_system/file_system_entry.rb index 478631eac2..5ce8b3320a 100644 --- a/lib/chef/chef_fs/file_system/file_system_entry.rb +++ b/lib/chef/chef_fs/file_system/file_system_entry.rb @@ -72,13 +72,17 @@ class Chef end def delete(recurse) - if dir? - if !recurse - raise MustDeleteRecursivelyError.new(self, $!) + begin + if dir? + if !recurse + raise MustDeleteRecursivelyError.new(self, $!) + end + FileUtils.rm_r(file_path) + else + File.delete(file_path) end - FileUtils.rm_rf(file_path) - else - File.delete(file_path) + rescue Errno::ENOENT + raise Chef::ChefFS::FileSystem::NotFoundError.new(self, $!) end end -- cgit v1.2.1