Home | History | Annotate | Download | only in scheduler
      1 import common
      2 from autotest_lib.client.common_lib import global_config
      3 
      4 CONFIG_SECTION = 'SCHEDULER'
      5 
      6 class SchedulerConfig(object):
      7     """
      8     Contains configuration that can be changed during scheduler execution.
      9     """
     10     FIELDS = [
     11                 ('max_processes_per_drone', int),
     12                 ('max_processes_warning_threshold', float),
     13                 ('clean_interval_minutes', int),
     14                 ('max_parse_processes', int),
     15                 ('tick_pause_sec', float),
     16                 ('max_transfer_processes', int),
     17                 ('secs_to_wait_for_atomic_group_hosts', int),
     18                 ('reverify_period_minutes', int),
     19                 ('reverify_max_hosts_at_once', int),
     20                 ('max_repair_limit', int),
     21                 ('max_provision_retries', int),
     22              ]
     23 
     24 
     25     def __init__(self):
     26         self.read_config()
     27 
     28 
     29     def read_config(self):
     30         """
     31         Reads the attributes (listed in `FIELDS`) from the global config
     32         and copies them into self.
     33         """
     34         config = global_config.global_config
     35         config.parse_config_file()
     36         for field, data_type in self.FIELDS:
     37             setattr(self, field, config.get_config_value(CONFIG_SECTION,
     38                                                          field,
     39                                                          type=data_type))
     40 
     41 
     42 config = SchedulerConfig()
     43