X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/e978484aa649f3de8f4c38fd1a6ea3abed06c8cf..087ed2edee08da7bd3c4872cabde13c57585ca5a:/lib/objects.py diff --git a/lib/objects.py b/lib/objects.py index 8b200f8..e2154db 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -39,6 +39,7 @@ from ganeti import constants __all__ = ["ConfigObject", "ConfigData", "NIC", "Disk", "Instance", "OS", "Node", "Cluster", "FillDict"] +_TIMESTAMPS = ["ctime", "mtime"] def FillDict(defaults_dict, custom_dict): """Basic function to apply settings on top a default dict. @@ -284,7 +285,8 @@ class TaggableObject(ConfigObject): class ConfigData(ConfigObject): """Top-level config object.""" - __slots__ = ["version", "cluster", "nodes", "instances", "serial_no"] + __slots__ = (["version", "cluster", "nodes", "instances", "serial_no"] + + _TIMESTAMPS) def ToDict(self): """Custom function for top-level config data. @@ -612,7 +614,7 @@ class Instance(TaggableObject): "disk_template", "network_port", "serial_no", - ] + ] + _TIMESTAMPS def _ComputeSecondaryNodes(self): """Compute the list of secondary nodes. @@ -769,7 +771,7 @@ class Node(TaggableObject): "master_candidate", "offline", "drained", - ] + ] + _TIMESTAMPS class Cluster(TaggableObject): @@ -794,7 +796,7 @@ class Cluster(TaggableObject): "nicparams", "candidate_pool_size", "modify_etc_hosts", - ] + ] + _TIMESTAMPS def UpgradeConfig(self): """Fill defaults for missing configuration values. @@ -826,12 +828,11 @@ class Cluster(TaggableObject): # default_hypervisor is just the first enabled one in 2.1 if self.default_hypervisor is not None: - self.enabled_hypervisors = [self.default_hypervisor] + \ + self.enabled_hypervisors = ([self.default_hypervisor] + [hvname for hvname in self.enabled_hypervisors - if hvname != self.default_hypervisor] + if hvname != self.default_hypervisor]) self.default_hypervisor = None - def ToDict(self): """Custom function for cluster.