diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index 80a954c1cc..459d29265d 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -49,6 +49,7 @@ class FirmwareUpdateChecker(Extension): self._download_url = None self._check_job = None + self._name_cache = [] ## Callback for the message that is spawned when there is a new version. def _onActionTriggered(self, message, action): @@ -74,10 +75,10 @@ class FirmwareUpdateChecker(Extension): # \param silent type(boolean) Suppresses messages other than "new version found" messages. # This is used when checking for a new firmware version at startup. def checkFirmwareVersion(self, container = None, silent = False): - # Do not run multiple check jobs in parallel - if self._check_job is not None: - Logger.log("i", "A firmware update check is already running, do nothing.") + container_name = container.definition.getName() + if container_name in self._name_cache: return + self._name_cache.append(container_name) self._check_job = FirmwareUpdateCheckerJob(container = container, silent = silent, urls = self.VERSION_URLS_PER_MACHINE, diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 40546d4a05..14a40e3cce 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -34,6 +34,7 @@ def default_parse_version_response(response: str) -> Version: ## This job checks if there is an update available on the provided URL. + class FirmwareUpdateCheckerJob(Job): MACHINE_PER_NAME = \ { @@ -155,7 +156,7 @@ class FirmwareUpdateCheckerJob(Job): message.actionTriggered.connect(self._callback) message.show() else: - Logger.log('i', "No machine with name {0} in list of firmware to check.".format(repr(machine_id))) + Logger.log('i', "No machine with name {0} in list of firmware to check.".format(machine_name)) except Exception as e: Logger.log("w", "Failed to check for new version: %s", e)