mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-11 00:37:50 -06:00
Merge pull request #7299 from Ultimaker/CURA-7173_validate_uploads
CURA-7173_validate_uploads
This commit is contained in:
commit
e664eccb8d
1 changed files with 20 additions and 5 deletions
|
@ -5,7 +5,8 @@ import threading
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
|
import sentry_sdk
|
||||||
|
from PyQt5.QtNetwork import QNetworkReply
|
||||||
|
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -90,13 +91,27 @@ class CreateBackupJob(Job):
|
||||||
scope = self._json_cloud_scope)
|
scope = self._json_cloud_scope)
|
||||||
|
|
||||||
def _onUploadSlotCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
def _onUploadSlotCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
||||||
if error is not None:
|
if HttpRequestManager.safeHttpStatus(reply) >= 300:
|
||||||
Logger.warning(str(error))
|
replyText = HttpRequestManager.readText(reply)
|
||||||
|
Logger.warning("Could not request backup upload: %s", replyText)
|
||||||
self.backup_upload_error_message = self.DEFAULT_UPLOAD_ERROR_MESSAGE
|
self.backup_upload_error_message = self.DEFAULT_UPLOAD_ERROR_MESSAGE
|
||||||
|
|
||||||
|
if HttpRequestManager.safeHttpStatus(reply) == 400:
|
||||||
|
errors = json.loads(replyText)["errors"]
|
||||||
|
if "moreThanMaximum" in [error["code"] for error in errors if error["meta"] and error["meta"]["field_name"] == "backup_size"]:
|
||||||
|
if self._backup_zip is None: # will never happen; keep mypy happy
|
||||||
|
zip_error = "backup is None."
|
||||||
|
else:
|
||||||
|
zip_error = "{} exceeds max size.".format(str(len(self._backup_zip)))
|
||||||
|
sentry_sdk.capture_message("backup failed: {}".format(zip_error), level ="warning")
|
||||||
|
self.backup_upload_error_message = catalog.i18nc("@error:file_size", "The backup exceeds the maximum file size.")
|
||||||
|
from sentry_sdk import capture_message
|
||||||
|
|
||||||
self._job_done.set()
|
self._job_done.set()
|
||||||
return
|
return
|
||||||
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) >= 300:
|
|
||||||
Logger.warning("Could not request backup upload: %s", HttpRequestManager.readText(reply))
|
if error is not None:
|
||||||
|
Logger.warning("Could not request backup upload: %s", HttpRequestManager.qt_network_error_name(error))
|
||||||
self.backup_upload_error_message = self.DEFAULT_UPLOAD_ERROR_MESSAGE
|
self.backup_upload_error_message = self.DEFAULT_UPLOAD_ERROR_MESSAGE
|
||||||
self._job_done.set()
|
self._job_done.set()
|
||||||
return
|
return
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue