/usr/share/pyshared/circuits/node/node.py is in python-circuits 2.1.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # Module: node
# Date: ...
# Author: ...
"""Node
...
"""
from hashlib import sha256
from .client import Client
from .server import Server
from circuits import handler, BaseComponent
class Node(BaseComponent):
"""Node
...
"""
channel = "node"
def __init__(self, bind=None, channel=channel):
super(Node, self).__init__(channel=channel)
self._bind = bind
self._nodes = {}
if self._bind is not None:
Server(self._bind).register(self)
def add(self, name, host, port):
channel = sha256(
"{0:s}:{1:d}".format(host, port).encode("utf-8")
).hexdigest()
node = Client(host, port, channel=channel)
node.register(self)
self._nodes[name] = node
@handler("remote")
def _on_remote(self, event, e, name, channel=None):
node = self._nodes[name]
if channel is not None:
e.channels = (channel,)
return node.send(event, e)
|