From 24a3707fa734410bc02862a0e6e590db7b240bb8 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Mon, 6 Sep 2010 12:13:32 +0100 Subject: [PATCH] Add a new NodeGroup config object The "members" slot of this object is not serialized, and is discarded when deserializing, initializing it explicitly to []. Signed-off-by: Guido Trotter <ultrotter@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/objects.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/objects.py b/lib/objects.py index 90e9a6af9..7af8506b1 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -45,7 +45,7 @@ from socket import AF_INET __all__ = ["ConfigObject", "ConfigData", "NIC", "Disk", "Instance", - "OS", "Node", "Cluster", "FillDict"] + "OS", "Node", "NodeGroup", "Cluster", "FillDict"] _TIMESTAMPS = ["ctime", "mtime"] _UUID = ["uuid"] @@ -891,6 +891,35 @@ class Node(TaggableObject): ] + _TIMESTAMPS + _UUID +class NodeGroup(ConfigObject): + """Config object representing a node group.""" + __slots__ = [ + "name", + "members", + ] + _TIMESTAMPS + _UUID + + def ToDict(self): + """Custom function for nodegroup. + + This discards the members object, which gets recalculated and is only kept in memory. + + """ + mydict = super(NodeGroup, self).ToDict() + del mydict["members"] + return mydict + + @classmethod + def FromDict(cls, val): + """Custom function for nodegroup. + + The members slot is initialized to an empty list, upon deserialization. + + """ + obj = super(NodeGroup, cls).FromDict(val) + obj.members = [] + return obj + + class Cluster(TaggableObject): """Config object representing the cluster.""" __slots__ = [ -- GitLab