1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-07 13:41:24 +00:00

fw/config/execution: Implement CombinedConfig as Podable

Ensure that the various Configuration structures now have serialization
versions.
This commit is contained in:
Marc Bonnici 2018-11-23 15:47:53 +00:00 committed by setrofim
parent 1723ac8132
commit dcf0418379

View File

@ -27,24 +27,35 @@ from wa.framework.configuration.plugin_cache import PluginCache
from wa.framework.exception import NotFoundError from wa.framework.exception import NotFoundError
from wa.framework.job import Job from wa.framework.job import Job
from wa.utils import log from wa.utils import log
from wa.utils.serializer import Podable
class CombinedConfig(object): class CombinedConfig(Podable):
_pod_serialization_version = 1
@staticmethod @staticmethod
def from_pod(pod): def from_pod(pod):
instance = CombinedConfig() instance = super(CombinedConfig, CombinedConfig).from_pod(pod)
instance.settings = MetaConfiguration.from_pod(pod.get('settings', {})) instance.settings = MetaConfiguration.from_pod(pod.get('settings', {}))
instance.run_config = RunConfiguration.from_pod(pod.get('run_config', {})) instance.run_config = RunConfiguration.from_pod(pod.get('run_config', {}))
return instance return instance
def __init__(self, settings=None, run_config=None): # pylint: disable=redefined-outer-name def __init__(self, settings=None, run_config=None): # pylint: disable=redefined-outer-name
super(CombinedConfig, self).__init__()
self.settings = settings self.settings = settings
self.run_config = run_config self.run_config = run_config
def to_pod(self): def to_pod(self):
return {'settings': self.settings.to_pod(), pod = super(CombinedConfig, self).to_pod()
'run_config': self.run_config.to_pod()} pod['settings'] = self.settings.to_pod()
pod['run_config'] = self.run_config.to_pod()
return pod
@staticmethod
def _pod_upgrade_v1(pod):
pod['_pod_version'] = pod.get('_pod_version', 1)
return pod
class ConfigManager(object): class ConfigManager(object):