- def _checkLabelExistOnHost(self, label_key, hostid) -> bool:
- labels = self.stxclient.label.list(hostid)
- return any(label_key == label.label_key for label in labels)
-
- def _checkLabelExistOnCluster(self, label_key) -> bool:
- hosts = self.stxclient.ihost.list()
-
- def find_label_on_host():
- result = next(
- (
- (host, True)
- for host in hosts
- if self._checkLabelExistOnHost(label_key, host.uuid)
- ),
- (None, False),
- )
-
- if result[1]:
- logger.info("host %s has the label %s" %
- (result[0].hostname, label_key))
-
- return result[1]
-
- return find_label_on_host()
-
- # return any(self._checkLabelExistOnHost(label_key, host.uuid) for host
- # in hosts)
-
- def _setK8sCapabilities(self, k8scluster):
+ def _checkLabelExistOnHost(self, client, label_to_check, host_id,
+ check_value=False) -> bool:
+ labels = client.label.list(host_id)
+ if check_value:
+ return any(label_to_check['key'] == label.label_key and
+ label_to_check['value'] == label.label_value
+ for label in labels)
+ else:
+ return any(label_to_check['key'] == label.label_key
+ for label in labels)
+
+ def _checkLabelExistOnCluster(self, client, label_to_check,
+ check_value=False) -> bool:
+ hosts = client.ihost.list()
+ for host in hosts:
+ if self._checkLabelExistOnHost(client, label_to_check,
+ host.uuid, check_value):
+ if check_value:
+ logger.info(
+ f"host {host.hostname} has the label "
+ f"{label_to_check['key']} with value "
+ f"{label_to_check['value']}")
+ else:
+ logger.info(
+ f"host {host.hostname} has the label "
+ f"{label_to_check['key']}")
+ return True
+ return False
+
+ def _setK8sCapabilities(self, client, k8scluster):