Best Python code snippet using autotest_python
host_scheduler.py
Source:host_scheduler.py  
...209        return set(host_id for host_id in group_hosts210                   if self.is_host_usable(host_id)211                   and self.is_host_eligible_for_job(host_id, queue_entry))212    def is_host_eligible_for_job(self, host_id, queue_entry):213        if self._is_host_invalid(host_id):214            # if an invalid host is scheduled for a job, it's a one-time host215            # and it therefore bypasses eligibility checks. note this can only216            # happen for non-metahosts, because invalid hosts have their label217            # relationships cleared.218            return True219        job_dependencies = self._job_dependencies.get(queue_entry.job_id, set())220        host_labels = self._host_labels.get(host_id, set())221        return (self._is_acl_accessible(host_id, queue_entry) and222                self._check_job_dependencies(job_dependencies, host_labels) and223                self._check_only_if_needed_labels(224                    job_dependencies, host_labels, queue_entry) and225                self._check_atomic_group_labels(host_labels, queue_entry))226    def _is_host_invalid(self, host_id):227        host_object = self._hosts_available.get(host_id, None)228        return host_object and host_object.invalid229    def _schedule_non_metahost(self, queue_entry):230        if not self.is_host_eligible_for_job(queue_entry.host_id, queue_entry):231            return None232        return self._hosts_available.pop(queue_entry.host_id, None)233    def is_host_usable(self, host_id):234        if host_id not in self._hosts_available:235            # host was already used during this scheduling cycle236            return False237        if self._hosts_available[host_id].invalid:238            # Invalid hosts cannot be used for metahosts.  They're included in239            # the original query because they can be used by non-metahosts.240            return False...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
