Browse Source

Process Review feedback for CURA-7438

Renames UltimakerCloudAuthentication to UltimakerCloudConstants

Cura-7438
Nino van Hooff 4 years ago
parent
commit
1024879f9d

+ 2 - 2
cura/API/Account.py

@@ -10,7 +10,7 @@ from UM.Message import Message
 from UM.i18n import i18nCatalog
 from cura.OAuth2.AuthorizationService import AuthorizationService
 from cura.OAuth2.Models import OAuth2Settings
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 
 if TYPE_CHECKING:
     from cura.CuraApplication import CuraApplication
@@ -69,7 +69,7 @@ class Account(QObject):
         self._last_sync_str = "-"
 
         self._callback_port = 32118
-        self._oauth_root = UltimakerCloudAuthentication.CuraCloudAccountAPIRoot
+        self._oauth_root = UltimakerCloudConstants.CuraCloudAccountAPIRoot
 
         self._oauth_settings = OAuth2Settings(
             OAUTH_SERVER_URL= self._oauth_root,

+ 2 - 2
cura/API/ConnectionStatus.py

@@ -4,14 +4,14 @@ from PyQt5.QtCore import QObject, pyqtSignal, QTimer, pyqtProperty
 from PyQt5.QtNetwork import QNetworkReply
 
 from UM.TaskManagement.HttpRequestManager import HttpRequestManager
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 
 
 class ConnectionStatus(QObject):
     """Status info for some web services"""
 
     UPDATE_INTERVAL = 10.0  # seconds
-    ULTIMAKER_CLOUD_STATUS_URL = UltimakerCloudAuthentication.CuraCloudAPIRoot + "/connect/v1/"
+    ULTIMAKER_CLOUD_STATUS_URL = UltimakerCloudConstants.CuraCloudAPIRoot + "/connect/v1/"
 
     __instance = None  # type: Optional[ConnectionStatus]
 

+ 3 - 3
cura/CuraApplication.py

@@ -106,7 +106,7 @@ from cura.UI.RecommendedMode import RecommendedMode
 from cura.UI.TextManager import TextManager
 from cura.UI.WelcomePagesModel import WelcomePagesModel
 from cura.UI.WhatsNewPagesModel import WhatsNewPagesModel
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 from cura.Utils.NetworkingUtil import NetworkingUtil
 from . import BuildVolume
 from . import CameraAnimation
@@ -255,11 +255,11 @@ class CuraApplication(QtApplication):
 
     @pyqtProperty(str, constant=True)
     def ultimakerCloudApiRootUrl(self) -> str:
-        return UltimakerCloudAuthentication.CuraCloudAPIRoot
+        return UltimakerCloudConstants.CuraCloudAPIRoot
 
     @pyqtProperty(str, constant = True)
     def ultimakerCloudAccountRootUrl(self) -> str:
-        return UltimakerCloudAuthentication.CuraCloudAccountAPIRoot
+        return UltimakerCloudConstants.CuraCloudAccountAPIRoot
 
     def addCommandLineOptions(self):
         """Adds command line options to the command line parser.

+ 2 - 1
cura/Settings/MachineManager.py

@@ -38,6 +38,7 @@ from cura.Settings.ExtruderStack import ExtruderStack
 from cura.Settings.cura_empty_instance_containers import (empty_definition_changes_container, empty_variant_container,
                                                           empty_material_container, empty_quality_container,
                                                           empty_quality_changes_container, empty_intent_container)
+from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
 
 from .CuraStackBuilder import CuraStackBuilder
 
@@ -493,7 +494,7 @@ class MachineManager(QObject):
 
     @pyqtProperty(bool, notify = printerConnectedStatusChanged)
     def activeMachineIsLinkedToCurrentAccount(self) -> bool:
-        return parseBool(self.activeMachine.getMetaDataEntry("linked_to_account", "True"))
+        return parseBool(self.activeMachine.getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "True"))
 
     @pyqtProperty(bool, notify = printerConnectedStatusChanged)
     def activeMachineHasNetworkConnection(self) -> bool:

+ 4 - 0
cura/UltimakerCloud/UltimakerCloudAuthentication.py → cura/UltimakerCloud/UltimakerCloudConstants.py

@@ -8,6 +8,10 @@ DEFAULT_CLOUD_API_ROOT = "https://api.ultimaker.com"  # type: str
 DEFAULT_CLOUD_API_VERSION = "1"  # type: str
 DEFAULT_CLOUD_ACCOUNT_API_ROOT = "https://account.ultimaker.com"  # type: str
 
+# Container Metadata keys
+META_UM_LINKED_TO_ACCOUNT = "um_linked_to_account"
+"""(bool) Whether a cloud printer is linked to an Ultimaker account"""
+
 try:
     from cura.CuraVersion import CuraCloudAPIRoot  # type: ignore
     if CuraCloudAPIRoot == "":

+ 2 - 2
plugins/CuraDrive/src/Settings.py

@@ -1,13 +1,13 @@
 # Copyright (c) 2018 Ultimaker B.V.
 # Cura is released under the terms of the LGPLv3 or higher.
 
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 
 
 class Settings:
     # Keeps the plugin settings.
     DRIVE_API_VERSION = 1
-    DRIVE_API_URL = "{}/cura-drive/v{}".format(UltimakerCloudAuthentication.CuraCloudAPIRoot, str(DRIVE_API_VERSION))
+    DRIVE_API_URL = "{}/cura-drive/v{}".format(UltimakerCloudConstants.CuraCloudAPIRoot, str(DRIVE_API_VERSION))
 
     AUTO_BACKUP_ENABLED_PREFERENCE_KEY = "cura_drive/auto_backup_enabled"
     AUTO_BACKUP_LAST_DATE_PREFERENCE_KEY = "cura_drive/auto_backup_date"

+ 3 - 3
plugins/Toolbox/src/CloudApiModel.py

@@ -1,13 +1,13 @@
 from typing import Union
 
 from cura import ApplicationMetadata
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 
 
 class CloudApiModel:
     sdk_version = ApplicationMetadata.CuraSDKVersion  # type: Union[str, int]
-    cloud_api_version = UltimakerCloudAuthentication.CuraCloudAPIVersion  # type: str
-    cloud_api_root = UltimakerCloudAuthentication.CuraCloudAPIRoot  # type: str
+    cloud_api_version = UltimakerCloudConstants.CuraCloudAPIVersion  # type: str
+    cloud_api_root = UltimakerCloudConstants.CuraCloudAPIRoot  # type: str
     api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
             cloud_api_root = cloud_api_root,
             cloud_api_version = cloud_api_version,

+ 2 - 2
plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py

@@ -13,7 +13,7 @@ from UM.TaskManagement.HttpRequestManager import HttpRequestManager
 from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
 from cura.API import Account
 from cura.CuraApplication import CuraApplication
-from cura.UltimakerCloud import UltimakerCloudAuthentication
+from cura.UltimakerCloud import UltimakerCloudConstants
 from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope
 from .ToolPathUploader import ToolPathUploader
 from ..Models.BaseModel import BaseModel
@@ -35,7 +35,7 @@ class CloudApiClient:
     """
 
     # The cloud URL to use for this remote cluster.
-    ROOT_PATH = UltimakerCloudAuthentication.CuraCloudAPIRoot
+    ROOT_PATH = UltimakerCloudConstants.CuraCloudAPIRoot
     CLUSTER_API_ROOT = "{}/connect/v1".format(ROOT_PATH)
     CURA_API_ROOT = "{}/cura/v1".format(ROOT_PATH)
 

+ 11 - 10
plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py

@@ -3,7 +3,6 @@
 import os
 from typing import Dict, List, Optional, Set
 
-from PyQt5.QtCore import QTimer
 from PyQt5.QtNetwork import QNetworkReply
 
 from UM import i18nCatalog
@@ -17,6 +16,7 @@ from cura.API.Account import SyncState
 from cura.CuraApplication import CuraApplication
 from cura.Settings.CuraStackBuilder import CuraStackBuilder
 from cura.Settings.GlobalStack import GlobalStack
+from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
 from .CloudApiClient import CloudApiClient
 from .CloudOutputDevice import CloudOutputDevice
 from ..Models.Http.CloudClusterResponse import CloudClusterResponse
@@ -31,8 +31,8 @@ class CloudOutputDeviceManager:
 
     META_CLUSTER_ID = "um_cloud_cluster_id"
     META_NETWORK_KEY = "um_network_key"
+
     SYNC_SERVICE_NAME = "CloudOutputDeviceManager"
-    META_LINKED_TO_ACCOUNT = "linked_to_account"
 
     # The translation catalog for this device.
     I18N_CATALOG = i18nCatalog("cura")
@@ -118,8 +118,8 @@ class CloudOutputDeviceManager:
         for device_id, cluster_data in all_clusters.items():
             if device_id not in self._remote_clusters:
                 new_clusters.append(cluster_data)
-            if device_id in self._um_cloud_printers and not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
-                self._um_cloud_printers[device_id].setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, True)
+            if device_id in self._um_cloud_printers and not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
+                self._um_cloud_printers[device_id].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True)
         self._onDevicesDiscovered(new_clusters)
 
         # Remove the CloudOutput device for offline printers
@@ -170,8 +170,8 @@ class CloudOutputDeviceManager:
                 remote_clusters_added = True
             # If a printer that was removed from the account is re-added, change its metadata to mark it not removed
             # from the account
-            elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
-                self._um_cloud_printers[device.key].setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, True)
+            elif not parseBool(self._um_cloud_printers[device.key].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
+                self._um_cloud_printers[device.key].setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, True)
 
         # Inform the Cloud printers model about new devices.
         new_devices_list_of_dicts = [{
@@ -258,12 +258,12 @@ class CloudOutputDeviceManager:
         # Do not report device ids which have been previously marked as non-linked to the account
         ignored_device_ids = set()
         for device_id in removed_device_ids:
-            if not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(self.META_LINKED_TO_ACCOUNT, "true")):
+            if not parseBool(self._um_cloud_printers[device_id].getMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, "true")):
                 ignored_device_ids.add(device_id)
         # Keep the reported_device_ids list in a class variable, so that the message button actions can access it and
         # take the necessary steps to fulfill their purpose.
         self.reported_device_ids = removed_device_ids - ignored_device_ids
-        if len(self.reported_device_ids) == 0:
+        if not self.reported_device_ids:
             return
 
         # Generate message
@@ -291,19 +291,20 @@ class CloudOutputDeviceManager:
         )
         removed_printers_message.setText(message_text)
 
+        output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
+
         # Remove the output device from the printers
         for device_id in removed_device_ids:
             device = self._um_cloud_printers.get(device_id, None)  # type: Optional[GlobalStack]
             if not device:
                 continue
-            output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
             if device_id in output_device_manager.getOutputDeviceIds():
                 output_device_manager.removeOutputDevice(device_id)
             if device_id in self._remote_clusters:
                 del self._remote_clusters[device_id]
 
             # Update the printer's metadata to mark it as not linked to the account
-            device.setMetaDataEntry(self.META_LINKED_TO_ACCOUNT, False)
+            device.setMetaDataEntry(META_UM_LINKED_TO_ACCOUNT, False)
 
         removed_printers_message.show()