blob: 91c8fb1d10eeab5571e07aa9c6a0c125948815d0 [file] [log] [blame]
showardd1ee1dd2009-01-07 21:33:08 +00001import common
2from autotest_lib.client.common_lib import global_config
3
4CONFIG_SECTION = 'SCHEDULER'
5
6class SchedulerConfig(object):
7 """
8 Contains configuration that can be changed during scheduler execution.
9 """
showard8dbd05a2010-01-12 18:54:59 +000010 FIELDS = {'max_processes_per_drone': 'max_processes_per_drone',
11 'max_processes_started_per_cycle': 'max_jobs_started_per_cycle',
12 'clean_interval': 'clean_interval_minutes',
13 'max_parse_processes': 'max_parse_processes',
14 'tick_pause_sec': 'tick_pause_sec',
15 'max_transfer_processes': 'max_transfer_processes',
Alex Millerc23a7f02013-08-27 17:36:42 -070016 'max_hostless_processes': 'max_hostless_processes',
showard8dbd05a2010-01-12 18:54:59 +000017 'secs_to_wait_for_atomic_group_hosts':
showard77182562009-06-10 00:16:05 +000018 'secs_to_wait_for_atomic_group_hosts',
showard8dbd05a2010-01-12 18:54:59 +000019 'reverify_period_minutes': 'reverify_period_minutes',
Eric Lie0493a42010-11-15 13:05:43 -080020 'reverify_max_hosts_at_once': 'reverify_max_hosts_at_once',
Alex Millera4a78ef2013-09-03 21:23:05 -070021 'max_repair_limit': 'max_repair_limit',
22 'max_provision_retries': 'max_provision_retries',
showardd1ee1dd2009-01-07 21:33:08 +000023 }
24
showard77182562009-06-10 00:16:05 +000025
showardd1ee1dd2009-01-07 21:33:08 +000026 def __init__(self):
27 self.read_config()
28
29
30 def read_config(self):
31 config = global_config.global_config
32 config.parse_config_file()
33 for field, config_option in self.FIELDS.iteritems():
34 setattr(self, field, config.get_config_value(CONFIG_SECTION,
35 config_option,
36 type=int))
37
showard77182562009-06-10 00:16:05 +000038
showardd1ee1dd2009-01-07 21:33:08 +000039config = SchedulerConfig()