dimples 0.5.6__tar.gz → 0.5.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dimples-0.5.6 → dimples-0.5.7}/PKG-INFO +1 -1
- {dimples-0.5.6 → dimples-0.5.7}/dimples/edge/octopus.py +48 -19
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/dispatcher.py +10 -14
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/PKG-INFO +1 -1
- {dimples-0.5.6 → dimples-0.5.7}/setup.py +1 -1
- {dimples-0.5.6 → dimples-0.5.7}/README.md +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/archivist.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/checkpoint.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/commands.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/creator.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/group.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_expel.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_invite.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_join.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_query.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_quit.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_reset.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/grp_resign.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/cpu/handshake.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/facebook.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/messenger.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/network/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/network/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/network/state.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/network/transition.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/packer.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/processor.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/client/terminal.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/anonymous.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/ans.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/archivist.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/btc.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/compatible.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/entity.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/meta.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/compat/network.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/dbi/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/dbi/account.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/dbi/message.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/dbi/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/facebook.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/messenger.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/packer.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/processer.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/ans.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/block.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/handshake.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/login.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/mute.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/protocol/report.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/register.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/common/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/gate.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/gatekeeper.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/mars.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/mtp.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/protocol/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/protocol/mars.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/protocol/ws.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/queue.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/seeker.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/conn/ws.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/account.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/base.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/document.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/group.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/group_history.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/group_keys.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/login.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/meta.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/private.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/station.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/dos/user.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/message.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_cipherkey.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_document.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_group.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_group_history.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_group_keys.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_login.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_message.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_meta.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_private.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_station.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/database/t_user.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/edge/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/edge/shared.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/edge/start.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/admin.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/builder.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/delegate.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/emitter.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/helper.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/manager.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/group/packer.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/register/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/register/base.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/register/ext.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/register/run.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/register/shared.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/archivist.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/ans.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/document.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/handshake.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/login.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/cpu/report.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/messenger.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/packer.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/processor.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/push.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/session.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/session_center.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/server/trace.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/station/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/station/handler.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/station/shared.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/station/start.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/__init__.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/cache.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/config.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/dos.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/log.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples/utils/singleton.py +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/SOURCES.txt +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/dependency_links.txt +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/entry_points.txt +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/requires.txt +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/dimples.egg-info/top_level.txt +0 -0
- {dimples-0.5.6 → dimples-0.5.7}/setup.cfg +0 -0
|
@@ -190,35 +190,64 @@ class Octopus(Runner, Logging):
|
|
|
190
190
|
|
|
191
191
|
def income_message(self, msg: ReliableMessage, priority: int = 0) -> List[ReliableMessage]:
|
|
192
192
|
""" redirect message from remote station """
|
|
193
|
+
sender = msg.sender
|
|
194
|
+
receiver = msg.receiver
|
|
193
195
|
sig = get_msg_sig(msg=msg)
|
|
194
196
|
messenger = self.inner_messenger
|
|
195
197
|
if messenger.send_reliable_message(msg=msg, priority=priority):
|
|
196
|
-
self.info(msg='redirected msg (%s)
|
|
198
|
+
self.info(msg='redirected msg (%s): %s -> %s' % (sig, sender, receiver))
|
|
197
199
|
else:
|
|
198
|
-
self.error(msg='failed to redirect msg (%s)
|
|
200
|
+
self.error(msg='failed to redirect msg (%s): %s -> %s' % (sig, sender, receiver))
|
|
199
201
|
# no need to respond receipt for station
|
|
200
202
|
return []
|
|
201
203
|
|
|
202
204
|
def outgo_message(self, msg: ReliableMessage, priority: int = 0) -> List[ReliableMessage]:
|
|
203
205
|
""" redirect message to remote station """
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
self.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
206
|
+
receiver = msg.receiver
|
|
207
|
+
# get neighbor stations
|
|
208
|
+
neighbor = ID.parse(identifier=msg.get('neighbor'))
|
|
209
|
+
if neighbor is not None:
|
|
210
|
+
neighbors = set()
|
|
211
|
+
neighbors.add(neighbor)
|
|
212
|
+
msg.pop('neighbor', None)
|
|
213
|
+
else:
|
|
214
|
+
with self.__outer_lock:
|
|
215
|
+
neighbors = set(self.__outer_map.keys())
|
|
216
|
+
#
|
|
217
|
+
# 0. check recipients
|
|
218
|
+
#
|
|
219
|
+
new_recipients = set()
|
|
220
|
+
old_recipients = msg.get('recipients')
|
|
221
|
+
old_recipients = [] if old_recipients is None else ID.convert(old_recipients)
|
|
222
|
+
for item in neighbors:
|
|
223
|
+
if item not in old_recipients:
|
|
224
|
+
new_recipients.add(item)
|
|
225
|
+
all_recipients = []
|
|
226
|
+
for item in old_recipients:
|
|
227
|
+
all_recipients.append(item)
|
|
228
|
+
# avoid the new recipients redirect it to same targets
|
|
229
|
+
self.info(msg='append new recipients: %s, %s => %s' % (receiver, new_recipients, all_recipients))
|
|
230
|
+
for item in new_recipients:
|
|
231
|
+
all_recipients.append(item)
|
|
232
|
+
msg['recipients'] = ID.revert(all_recipients)
|
|
233
|
+
#
|
|
234
|
+
# 1. send to the new recipients (neighbor stations)
|
|
235
|
+
#
|
|
220
236
|
sig = get_msg_sig(msg=msg)
|
|
221
|
-
|
|
237
|
+
failed_neighbors = []
|
|
238
|
+
for target in new_recipients:
|
|
239
|
+
messenger = self.get_outer_messenger(identifier=target)
|
|
240
|
+
if messenger is None:
|
|
241
|
+
# target station not my neighbor
|
|
242
|
+
self.warning(msg='not my neighbor: %s (%s)' % (target, receiver))
|
|
243
|
+
failed_neighbors.append(target)
|
|
244
|
+
elif messenger.send_reliable_message(msg=msg, priority=priority):
|
|
245
|
+
self.info(msg='redirected msg (%s) to neighbor: %s (%s)' % (sig, target, receiver))
|
|
246
|
+
else:
|
|
247
|
+
self.error(msg='failed to send to neighbor: %s (%s)' % (target, receiver))
|
|
248
|
+
failed_neighbors.append(target)
|
|
249
|
+
if len(failed_neighbors) > 0:
|
|
250
|
+
self.error(msg='failed to redirect msg (%s) for receiver (%s): %s' % (sig, receiver, failed_neighbors))
|
|
222
251
|
return []
|
|
223
252
|
|
|
224
253
|
|
|
@@ -209,23 +209,19 @@ class Dispatcher(MessageDeliver, Logging):
|
|
|
209
209
|
#
|
|
210
210
|
# 0. check recipients
|
|
211
211
|
#
|
|
212
|
-
new_recipients =
|
|
212
|
+
new_recipients = set()
|
|
213
213
|
old_recipients = msg.get('recipients')
|
|
214
|
-
if old_recipients is None
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
if len(new_recipients) == 0:
|
|
223
|
-
self.info(msg='new recipients empty: %s => %s' % (receiver, neighbors))
|
|
224
|
-
return []
|
|
214
|
+
old_recipients = [] if old_recipients is None else ID.convert(old_recipients)
|
|
215
|
+
for item in neighbors:
|
|
216
|
+
if item not in old_recipients:
|
|
217
|
+
new_recipients.add(item)
|
|
218
|
+
all_recipients = []
|
|
219
|
+
for item in old_recipients:
|
|
220
|
+
all_recipients.append(item)
|
|
221
|
+
# avoid the new recipients redirect it to same targets
|
|
225
222
|
self.info(msg='append new recipients: %s, %s => %s' % (receiver, new_recipients, all_recipients))
|
|
226
223
|
for item in new_recipients:
|
|
227
224
|
all_recipients.append(item)
|
|
228
|
-
# avoid the new recipients redirect it to same targets
|
|
229
225
|
msg['recipients'] = ID.revert(all_recipients)
|
|
230
226
|
#
|
|
231
227
|
# 1. push to neighbor stations directly
|
|
@@ -384,7 +380,7 @@ class DeliverWorker(Logging):
|
|
|
384
380
|
:return: responses
|
|
385
381
|
"""
|
|
386
382
|
""" Redirect message to neighbor station """
|
|
387
|
-
assert neighbor.type == EntityType.STATION, 'neighbor station ID error: %s' % neighbor
|
|
383
|
+
assert neighbor is None or neighbor.type == EntityType.STATION, 'neighbor station ID error: %s' % neighbor
|
|
388
384
|
self.info(msg='redirect message %s => %s to neighbor station: %s' % (msg.sender, msg.receiver, neighbor))
|
|
389
385
|
# 0. check current station
|
|
390
386
|
current = self.facebook.current_user.identifier
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|