def get_cluster_model(name): """ Returns a Cluster instance from the etcd record for the given cluster name, if it exists, or else None. For convenience, the EtcdResult is embedded in the Cluster instance as an 'etcd' property. :param name: Name of a cluster :type name: str """ key = etcd_cluster_key(name) etcd_resp, error = cherrypy.engine.publish('store-get', key)[0] if error: return None cluster = Cluster(**json.loads(etcd_resp.value)) cluster.etcd = etcd_resp return cluster
def get_cluster_model(store, name): """ Returns a Cluster instance from the etcd record for the given cluster name, if it exists, or else None. For convenience, the EtcdResult is embedded in the Cluster instance as an 'etcd' property. :param store: Data store. :type store: etcd.Client :param name: Name of a cluster :type name: str """ key = etcd_cluster_key(name) try: etcd_resp = store.get(key) except etcd.EtcdKeyNotFound: return None cluster = Cluster(**json.loads(etcd_resp.value)) cluster.etcd = etcd_resp return cluster