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                 ('clean_interval_minutes', int),
     13                 ('max_parse_processes', int),
     14                 ('tick_pause_sec', float),
     15                 ('max_transfer_processes', int),
     16                 ('secs_to_wait_for_atomic_group_hosts', int),
     17                 ('reverify_period_minutes', int),
     18                 ('reverify_max_hosts_at_once', int),
     19                 ('max_repair_limit', int),
     20                 ('max_provision_retries', int),
     21              ]
     22 
     23 
     24     def __init__(self):
     25         self.read_config()
     26 
     27 
     28     def read_config(self):
     29         """
     30         Reads the attributes (listed in `FIELDS`) from the global config
     31         and copies them into self.
     32         """
     33         config = global_config.global_config
     34         config.parse_config_file()
     35         for field, data_type in self.FIELDS:
     36             setattr(self, field, config.get_config_value(CONFIG_SECTION,
     37                                                          field,
     38                                                          type=data_type))
     39 
     40 
     41 config = SchedulerConfig()
     42