mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-13 09:47:50 -06:00
Refactor UploadBackupJob to use HttpRequestManager
This commit is contained in:
parent
19c3f765f5
commit
762f699f64
2 changed files with 25 additions and 22 deletions
|
@ -63,7 +63,6 @@ class DriveApiService:
|
|||
scope=self._jsonCloudScope
|
||||
)
|
||||
|
||||
|
||||
def createBackup(self) -> None:
|
||||
self.creatingStateChanged.emit(is_creating = True)
|
||||
|
||||
|
@ -87,9 +86,9 @@ class DriveApiService:
|
|||
upload_backup_job.start()
|
||||
|
||||
def _onUploadFinished(self, job: "UploadBackupJob") -> None:
|
||||
if job.backup_upload_error_message != "":
|
||||
if job.backup_upload_error_text != "":
|
||||
# If the job contains an error message we pass it along so the UI can display it.
|
||||
self.creatingStateChanged.emit(is_creating = False, error_message = job.backup_upload_error_message)
|
||||
self.creatingStateChanged.emit(is_creating = False, error_message = job.backup_upload_error_text)
|
||||
else:
|
||||
self.creatingStateChanged.emit(is_creating = False)
|
||||
|
||||
|
@ -110,7 +109,7 @@ class DriveApiService:
|
|||
)
|
||||
|
||||
def _onRestoreRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None, backup = None):
|
||||
if not DriveApiService._replyIndicatesSuccess(reply, error):
|
||||
if not HttpRequestManager.replyIndicatesSuccess(reply, error):
|
||||
Logger.log("w",
|
||||
"Requesting backup failed, response code %s while trying to connect to %s",
|
||||
reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url())
|
||||
|
@ -153,11 +152,6 @@ class DriveApiService:
|
|||
local_md5_hash = base64.b64encode(hashlib.md5(read_backup.read()).digest(), altchars = b"_-").decode("utf-8")
|
||||
return known_hash == local_md5_hash
|
||||
|
||||
@staticmethod
|
||||
def _replyIndicatesSuccess(reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None):
|
||||
"""Returns whether reply status code indicates success and error is None"""
|
||||
return error is None and 200 <= reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) < 300
|
||||
|
||||
def deleteBackup(self, backup_id: str, callable: Callable[[bool], None]):
|
||||
|
||||
def finishedCallback(reply: QNetworkReply, ca=callable) -> None:
|
||||
|
@ -174,7 +168,7 @@ class DriveApiService:
|
|||
)
|
||||
|
||||
def _onDeleteRequestCompleted(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None, callable = None):
|
||||
callable(DriveApiService._replyIndicatesSuccess(reply, error))
|
||||
callable(HttpRequestManager.replyIndicatesSuccess(reply, error))
|
||||
|
||||
# Request a backup upload slot from the API.
|
||||
# \param backup_metadata: A dict containing some meta data about the backup.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import requests
|
||||
from PyQt5.QtNetwork import QNetworkReply
|
||||
|
||||
from UM.Job import Job
|
||||
from UM.Logger import Logger
|
||||
from UM.Message import Message
|
||||
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
@ -21,21 +21,30 @@ class UploadBackupJob(Job):
|
|||
self._signed_upload_url = signed_upload_url
|
||||
self._backup_zip = backup_zip
|
||||
self._upload_success = False
|
||||
self.backup_upload_error_message = ""
|
||||
self.backup_upload_error_text = ""
|
||||
self._message = None
|
||||
|
||||
def run(self) -> None:
|
||||
upload_message = Message(catalog.i18nc("@info:backup_status", "Uploading your backup..."), title = self.MESSAGE_TITLE, progress = -1)
|
||||
upload_message.show()
|
||||
self._message = Message(catalog.i18nc("@info:backup_status", "Uploading your backup..."), title = self.MESSAGE_TITLE, progress = -1)
|
||||
self._message.show()
|
||||
|
||||
backup_upload = requests.put(self._signed_upload_url, data = self._backup_zip)
|
||||
upload_message.hide()
|
||||
HttpRequestManager.getInstance().put(
|
||||
self._signed_upload_url,
|
||||
data = self._backup_zip
|
||||
)
|
||||
|
||||
if backup_upload.status_code >= 300:
|
||||
self.backup_upload_error_message = backup_upload.text
|
||||
Logger.log("w", "Could not upload backup file: %s", backup_upload.text)
|
||||
Message(catalog.i18nc("@info:backup_status", "There was an error while uploading your backup."), title = self.MESSAGE_TITLE).show()
|
||||
else:
|
||||
def uploadFinishedCallback(self, reply: QNetworkReply, error: QNetworkReply.NetworkError):
|
||||
self._message.hide()
|
||||
|
||||
self.backup_upload_error_text = HttpRequestManager.readText(reply)
|
||||
|
||||
if HttpRequestManager.replyIndicatesSuccess(reply, error):
|
||||
self._upload_success = True
|
||||
Message(catalog.i18nc("@info:backup_status", "Your backup has finished uploading."), title = self.MESSAGE_TITLE).show()
|
||||
else:
|
||||
self.backup_upload_error_text = self.backup_upload_error_text
|
||||
Logger.log("w", "Could not upload backup file: %s", self.backup_upload_error_text)
|
||||
Message(catalog.i18nc("@info:backup_status", "There was an error while uploading your backup."),
|
||||
title=self.MESSAGE_TITLE).show()
|
||||
|
||||
self.finished.emit(self)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue