Merge branch 'bugfix/server-files-feedback' into 'dev'

Provide Feedback on Delete Fail

See merge request crafty-controller/crafty-4!699
This commit is contained in:
Iain Powrie 2024-01-28 23:36:50 +00:00
commit 8fbd28b9c6
3 changed files with 12 additions and 6 deletions

View File

@ -10,6 +10,7 @@
- Fix bug where invalid server Id leads to stack ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/690))
- Fix indent on public status check box ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/691))
- Fix unicode chars in terminal & logs w/ textiowrapper ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/689))
- Provide feedback on file delete failure ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/699))
### Tweaks
- Refactor Forge server initialisation flow for newer versions ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/687))
- Remove scroll bars from player management ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/693))

View File

@ -35,8 +35,9 @@ class FileHelpers:
try:
# This removes the top-level folder:
path.rmdir()
except:
except Exception as e:
logger.error("Unable to remove top level")
return e
return True
@staticmethod
@ -47,9 +48,9 @@ class FileHelpers:
# Remove the file
os.remove(path)
return True
except FileNotFoundError:
except (FileNotFoundError, PermissionError) as e:
logger.error(f"Path specified is not a file or does not exist. {path}")
return False
return e
@staticmethod
def copy_dir(src_path, dest_path, dirs_exist_ok=False):

View File

@ -237,10 +237,14 @@ class ApiServersServerFilesIndexHandler(BaseApiHandler):
)
if os.path.isdir(data["filename"]):
FileHelpers.del_dirs(data["filename"])
proc = FileHelpers.del_dirs(data["filename"])
else:
FileHelpers.del_file(data["filename"])
return self.finish_json(200, {"status": "ok"})
proc = FileHelpers.del_file(data["filename"])
# disabling pylint because return value could be truthy
# but not a true boolean value
if proc == True: # pylint: disable=singleton-comparison
return self.finish_json(200, {"status": "ok"})
return self.finish_json(500, {"status": "error", "error": str(proc)})
def patch(self, server_id: str):
auth_data = self.authenticate_user()