mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-11-04 00:52:08 +00:00 
			
		
		
		
	framework/configuration: Fix disabling of augmentations
Previously disabling of augmentaions via using the `--disable` flag or by using the "~" notation in agendas was ignored.
This commit is contained in:
		@@ -1020,23 +1020,23 @@ class JobGenerator(object):
 | 
			
		||||
    @property
 | 
			
		||||
    def enabled_instruments(self):
 | 
			
		||||
        self._read_enabled_instruments = True
 | 
			
		||||
        return self._enabled_instruments
 | 
			
		||||
        return self._enabled_instruments.values()
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def enabled_processors(self):
 | 
			
		||||
        self._read_enabled_processors = True
 | 
			
		||||
        return self._enabled_processors
 | 
			
		||||
        return self._enabled_processors.values()
 | 
			
		||||
 | 
			
		||||
    def __init__(self, plugin_cache):
 | 
			
		||||
        self.plugin_cache = plugin_cache
 | 
			
		||||
        self.ids_to_run = []
 | 
			
		||||
        self.sections = []
 | 
			
		||||
        self.workloads = []
 | 
			
		||||
        self._enabled_instruments = set()
 | 
			
		||||
        self._enabled_processors = set()
 | 
			
		||||
        self._enabled_instruments = toggle_set()
 | 
			
		||||
        self._enabled_processors = toggle_set()
 | 
			
		||||
        self._read_enabled_instruments = False
 | 
			
		||||
        self._read_enabled_processors = False
 | 
			
		||||
        self.disabled_augmentations = []
 | 
			
		||||
        self.disabled_augmentations = set()
 | 
			
		||||
 | 
			
		||||
        self.job_spec_template = obj_dict(not_in_dict=['name'])
 | 
			
		||||
        self.job_spec_template.name = "globally specified job spec configuration"
 | 
			
		||||
@@ -1062,12 +1062,19 @@ class JobGenerator(object):
 | 
			
		||||
        self.root_node.add_workload(workload)
 | 
			
		||||
 | 
			
		||||
    def disable_augmentations(self, augmentations):
 | 
			
		||||
        #TODO: Validate
 | 
			
		||||
        self.disabled_augmentations = ["~{}".format(i) for i in augmentations]
 | 
			
		||||
        for entry in augmentations:
 | 
			
		||||
            if entry.startswith('~'):
 | 
			
		||||
                entry = entry[1:]
 | 
			
		||||
            try:
 | 
			
		||||
                self.plugin_cache.get_plugin_class(entry)
 | 
			
		||||
            except NotFoundError:
 | 
			
		||||
                raise ConfigError('Error disabling unknown augmentation: "{}"'.format(entry))
 | 
			
		||||
        self.disabled_augmentations = self.disabled_augmentations.union(augmentations)
 | 
			
		||||
 | 
			
		||||
    def update_augmentations(self, value):
 | 
			
		||||
        for entry in value:
 | 
			
		||||
            entry_cls = self.plugin_cache.get_plugin_class(entry)
 | 
			
		||||
            entry_name = entry[1:] if entry.startswith('~') else entry
 | 
			
		||||
            entry_cls = self.plugin_cache.get_plugin_class(entry_name)
 | 
			
		||||
            if entry_cls.kind == 'instrument':
 | 
			
		||||
                if self._read_enabled_instruments:
 | 
			
		||||
                    msg = "'enabled_instruments' cannot be updated after it has been accessed"
 | 
			
		||||
@@ -1081,6 +1088,8 @@ class JobGenerator(object):
 | 
			
		||||
            else:
 | 
			
		||||
                msg = 'Unknown augmentation type: {}'
 | 
			
		||||
                raise ConfigError(msg.format(entry_cls.kind))
 | 
			
		||||
        self._enabled_instruments = self._enabled_instruments.merge_with(self.disabled_augmentations)
 | 
			
		||||
        self._enabled_processors = self._enabled_processors.merge_with(self.disabled_augmentations)
 | 
			
		||||
 | 
			
		||||
    def only_run_ids(self, ids):
 | 
			
		||||
        if isinstance(ids, str):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user