Source code for cfxdb.mrealm.cluster_node_membership
##############################################################################
#
# Crossbar.io Database
# Copyright (c) typedef int GmbH. Licensed under MIT.
#
##############################################################################
import pprint
from typing import Optional
from uuid import UUID
[docs]
class ClusterNodeMembership(object):
"""
Membership of a node in a cluster.
"""
def __init__(self, cluster_oid: Optional[UUID] = None, node_oid: Optional[UUID] = None, _unknown=None):
"""
:param cluster_oid: Object ID of the cluster the node is member in.
:param node_oid: Object ID of the node that is member in the cluster.
"""
[docs]
self.cluster_oid = cluster_oid
[docs]
self.node_oid = node_oid
[docs]
self._unknown = _unknown
[docs]
def __eq__(self, other):
if not isinstance(other, self.__class__):
return False
if other.cluster_oid != self.cluster_oid:
return False
if other.node_oid != self.node_oid:
return False
return True
[docs]
def __ne__(self, other):
return not self.__eq__(other)
[docs]
def __str__(self):
return pprint.pformat(self.marshal())
[docs]
def marshal(self):
"""
Marshal this object to a generic host language object.
:return: dict
"""
obj = {
"cluster_oid": str(self.cluster_oid),
"node_oid": str(self.node_oid),
}
return obj
@staticmethod
[docs]
def parse(data):
"""
Parse generic host language object into an object of this class.
:param data: Generic host language object
:type data: dict
:return: instance of :class:`WebService`
"""
assert type(data) == dict
# future attributes (yet unknown) are not only ignored, but passed through!
_unknown = {}
for k in data:
if k not in ["cluster_oid", "node_oid"]:
_unknown[k] = data[k]
cluster_oid = None
if "cluster_oid" in data:
assert type(data["cluster_oid"]) == str
cluster_oid = UUID(data["cluster_oid"])
node_oid = None
if "node_oid" in data:
assert type(data["node_oid"]) == str
node_oid = UUID(data["node_oid"])
obj = ClusterNodeMembership(cluster_oid=cluster_oid, node_oid=node_oid, _unknown=_unknown)
return obj