|
@@ -2,6 +2,8 @@
|
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
from typing import Optional, List
|
|
|
|
|
|
+import uuid
|
|
|
+
|
|
|
from .CloudClusterResponse import CloudClusterResponse
|
|
|
from .ClusterPrinterStatus import ClusterPrinterStatus
|
|
|
|
|
@@ -11,4 +13,20 @@ class CloudClusterWithConfigResponse(CloudClusterResponse):
|
|
|
|
|
|
def __init__(self, **kwargs) -> None:
|
|
|
self.configuration = self.parseModel(ClusterPrinterStatus, kwargs.get("host_printer"))
|
|
|
+
|
|
|
+ # Some printers will return a null UUID in the host_printer.uuid field. For those we can fall back using
|
|
|
+ # the host_guid field of the cluster data
|
|
|
+ valid_uuid = False
|
|
|
+ try:
|
|
|
+ parsed_uuid = uuid.UUID(self.configuration.uuid)
|
|
|
+ valid_uuid = parsed_uuid.int != 0
|
|
|
+ except:
|
|
|
+ pass
|
|
|
+
|
|
|
+ if not valid_uuid:
|
|
|
+ try:
|
|
|
+ self.configuration.uuid = kwargs.get("host_guid")
|
|
|
+ except:
|
|
|
+ pass
|
|
|
+
|
|
|
super().__init__(**kwargs)
|