* fix a bug with restricted drone users config parsing * display allowed users in the status server * ensure drone users reparse correctly * fix a bug in max_runnable_processes introduced by user restrictions (could pass empty set to max())
Signed-off-by: Steve Howard <[email protected]> --- autotest/scheduler/drone_manager.py 2010-01-13 21:30:18.000000000 -0800 +++ autotest/scheduler/drone_manager.py 2010-01-13 21:30:18.000000000 -0800 @@ -223,7 +223,8 @@ allowed_users = config.get_config_value( section, '%s_users' % hostname, default=None) if allowed_users is not None: - drone.allowed_users = set(allowed_users) + allowed_users = set(allowed_users.split()) + drone.allowed_users = allowed_users self._reorder_drone_queue() # max_processes may have changed @@ -408,12 +409,13 @@ execution) given the current load on drones. @param username: login of user to run a process. may be None. """ - if not self._drone_queue: - # all drones disabled + usable_drone_wrappers = [wrapper for wrapper in self._drone_queue + if wrapper.drone.usable_by(username)] + if not usable_drone_wrappers: + # all drones disabled or inaccessible return 0 return max(wrapper.drone.max_processes - wrapper.drone.active_processes - for wrapper in self._drone_queue - if wrapper.drone.usable_by(username)) + for wrapper in usable_drone_wrappers) def _least_loaded_drone(self, drones): --- autotest/scheduler/status_server.py 2010-01-13 21:30:18.000000000 -0800 +++ autotest/scheduler/status_server.py 2010-01-13 21:30:18.000000000 -0800 @@ -50,8 +50,13 @@ def _write_drone(self, drone): - line = '%s %s/%s processes' % (drone.hostname, drone.active_processes, - drone.max_processes) + if drone.allowed_users: + allowed_users = ', '.join(drone.allowed_users) + else: + allowed_users = 'all' + line = ('%s: %s/%s processes, users: %s' + % (drone.hostname, drone.active_processes, drone.max_processes, + allowed_users)) if not drone.enabled: line += ' (disabled)' self._write_line(line) _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
