53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
from colony.core.network.nodes import LocalNode
|
|
from colony.role_registry import RoleRegistry
|
|
|
|
|
|
class RoleContext:
|
|
def __init__(self, network, role_manager):
|
|
self._network = network
|
|
self._role_manager = role_manager
|
|
|
|
def execute(self, command, *args, **kwargs):
|
|
return self._network.execute(command, *args, **kwargs)
|
|
|
|
def execute_on(self, target, command, *args, **kwargs):
|
|
return self._network.send_command(target.ip, target.port, command, *args, **kwargs)
|
|
|
|
def execute_to_unregistered_node(self, ip, port, command, *args, **kwargs):
|
|
return self._network.send_command(ip, port, command, *args, **kwargs)
|
|
|
|
def send_direct(self, ip, port, payload, timeout=None, connect_timeout=None):
|
|
return self._network.send_direct(ip, port, payload, timeout, connect_timeout)
|
|
|
|
def is_direct(self, key):
|
|
return self._network.is_direct(key)
|
|
|
|
def route_of(self, key):
|
|
return self._network.route_of(key)
|
|
|
|
def set_dial_alias(self, key, address):
|
|
self._network.set_dial_alias(key, address)
|
|
|
|
def peers(self):
|
|
return self._network.get_all_nodes()
|
|
|
|
def node_by_id(self, node_id):
|
|
return self._network.get_node_by_id(node_id)
|
|
|
|
def nodes_with_role(self, role):
|
|
return self._network.get_nodes_of_role(role if isinstance(role, str) else role.__name__)
|
|
|
|
def membership(self):
|
|
return self._network.membership
|
|
|
|
def self(self) -> LocalNode:
|
|
return self._network.get_self()
|
|
|
|
def set_self_node_roles(self, roles):
|
|
self._role_manager.set_roles(roles)
|
|
|
|
def get_role_manager(self):
|
|
return self._role_manager
|
|
|
|
def get_role_registry(self) -> RoleRegistry:
|
|
return self._role_manager.role_registry |