project8 / dripline-python

python implementation of project8/dripline
Other
2 stars 0 forks source link

allow unbound Endpoints and associated refactoring #23

Open wcpettus opened 6 years ago

wcpettus commented 6 years ago

Ben and I were discussing a feature addition (related to the dragonfly SensorMonitor), where you could name the sensor endpoints identically to their logged endpoint, but the endpoint wouldn't be bound to the exchange creating a naming conflict. Instead the endpoint would be accessed via sensor_monitor.endpoint_name. This would more naturally support get/set functionality of the endpoints.

The to-do list would be:

  1. Modify endpoint.pyto allow an attribute self.bound = False
  2. Modify spimescape.py so that add_endpoint will skip appending such endpoints to self._bindings (then service.py will skip the queue binding).
  3. Modify spimescape.py so that on_request_msg will attempt to be able to divert requests to a child and not ignore the rks after the first . delimiter.
    • dragonfly get A.B.C.D will route to A, which attempts to handle the request using B.C.D,
    • failing that, A will check if child B exists and can handle a request using C.D
    • etc.
guiguem commented 6 years ago

What would be the use case for this refactoring?