Exemplo n.º 1
0
 def _msgpack_deserializer(key, value, flags):
     if flags == 1:
         return value
     if flags == 2:
         return utils.loads(value)
     raise coordination.SerializationError("Unknown serialization"
                                           " format '%s'" % flags)
Exemplo n.º 2
0
 def _msgpack_deserializer(key, value, flags):
     if flags == 1:
         return value
     if flags == 2:
         return utils.loads(value)
     raise coordination.SerializationError("Unknown serialization"
                                           " format '%s'" % flags)
Exemplo n.º 3
0
 def _read_group_id(path):
     with open(path, 'rb') as fh:
         contents = fh.read()
         details = utils.loads(contents)
         if not isinstance(details, (dict)):
             raise TypeError("Expected dict encoded in '%s'"
                             " but got %s instead" % (path,
                                                      type(details)))
         return details['group_id']
Exemplo n.º 4
0
 def _on_member_join(self, event):
     try:
         weight = utils.loads(self._coord.get_member_capabilities(
             self.group_id, event.member_id).get()).get("weight", 1)
     except utils.SerializationError:
         # This node does not seem to have joined with the partitioner
         # system, so just ignore it.
         LOG.warning(
             "Node %s did not join group %s in partition mode, ignoring",
             self.group_id, event.member_id)
     else:
         self.ring.add_node(event.member_id, weight)
Exemplo n.º 5
0
 def __init__(self, coordinator, group_id,
              partitions=DEFAULT_PARTITION_NUMBER):
     members = coordinator.get_members(group_id)
     self.partitions = partitions
     self.group_id = group_id
     self._coord = coordinator
     caps = [(m, self._coord.get_member_capabilities(self.group_id, m))
             for m in members.get()]
     self._coord.watch_join_group(self.group_id, self._on_member_join)
     self._coord.watch_leave_group(self.group_id, self._on_member_leave)
     self.ring = hashring.HashRing([], partitions=self.partitions)
     for m_id, cap in caps:
         self.ring.add_node(m_id, utils.loads(cap.get()).get("weight", 1))
Exemplo n.º 6
0
 def _do_get_member_capabilities():
     try:
         with open(member_path, "rb") as fh:
             contents = fh.read()
     except EnvironmentError as e:
         if e.errno == errno.ENOENT:
             if not os.path.isdir(group_dir):
                 raise coordination.GroupNotCreated(group_id)
             else:
                 raise coordination.MemberNotJoined(group_id,
                                                    member_id)
         else:
             raise
     else:
         details = utils.loads(contents)
         if not isinstance(details, (dict)):
             raise TypeError("Expected dict encoded in '%s'"
                             " but got %s instead" % (member_path,
                                                      type(details)))
         return details["capabilities"]
Exemplo n.º 7
0
 def _load_and_validate(self, blob, schema_key):
     data = utils.loads(blob)
     data = _convert_from_old_format(data)
     schema = self._SCHEMAS[schema_key]
     return schema(data)
Exemplo n.º 8
0
Arquivo: file.py Projeto: csfreak/tooz
def _load_and_validate(blob, schema_key):
    data = utils.loads(blob)
    data = _convert_from_old_format(data)
    schema = _SCHEMAS[schema_key]
    schema(data)
    return data
Exemplo n.º 9
0
 def _get_member_capabilities():
     capabilities, metadata = self.client.get(encoded_member)
     if capabilities is None:
         raise coordination.MemberNotJoined(group_id, member_id)
     return utils.loads(capabilities)
Exemplo n.º 10
0
 def _loads(blob):
     return utils.loads(blob)
Exemplo n.º 11
0
 def _get_member_capabilities():
     member_path = self._path_member(group_id, member_id)
     index, data = self._client.kv.get(member_path)
     if not data:
         raise coordination.MemberNotJoined(group_id, member_id)
     return utils.loads(data["Value"])
Exemplo n.º 12
0
 def _get_member_capabilities():
     prefix_member = self._prefix_group(group_id) + member_id
     result = self.client.get(prefix_member)
     if not result:
         raise coordination.MemberNotJoined(group_id, member_id)
     return utils.loads(result[0])
Exemplo n.º 13
0
def _load_and_validate(blob, schema_key):
    data = utils.loads(blob)
    schema = _SCHEMAS[schema_key]
    schema(data)
    return data
Exemplo n.º 14
0
Arquivo: etcd3gw.py Projeto: Kami/tooz
 def _get_member_capabilities():
     prefix_member = self._prefix_group(group_id) + member_id
     result = self.client.get(prefix_member)
     if not result:
         raise coordination.MemberNotJoined(group_id, member_id)
     return utils.loads(result[0])
Exemplo n.º 15
0
 def _get_member_capabilities():
     capabilities, metadata = self.client.get(encoded_member)
     if capabilities is None:
         raise coordination.MemberNotJoined(group_id, member_id)
     return utils.loads(capabilities)
Exemplo n.º 16
0
 def _msgpack_deserializer(key, value, flags):
     if flags == 1:
         return value
     if flags == 2:
         return utils.loads(value)
     raise Exception("Unknown serialization format '%s'" % flags)
Exemplo n.º 17
0
 def _loads(blob):
     return utils.loads(blob)
Exemplo n.º 18
0
def _load_and_validate(blob, schema_key):
    data = utils.loads(blob)
    schema = _SCHEMAS[schema_key]
    schema(data)
    return data