Added the response headers to the V2 response of the proxy implementation as a new field named "response_headers".
Signed-off-by: Patrick Schmidt <ps.patti1998@gmail.com>
Use a python dict to act as a queue for reporting used filament
per spool. This eliminates the need for locks and resolves
potential issues with spool changes when the Spoolman
service is not available.
In addition, add support for tracking multiple tools
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The exisiting implementation of spoolman's proxy endpoint
returns responses and errors exactly as they are received
by spoolman. This creates a problem of ambiguity, as the
frontend cannot easily diffentiate between an error returned
by Moonraker and an error returned by Spoolman.
This implements a "v2" alternate response to proxy requests.
All requests to spoolman will return success, with responses
wrapped in a top level object. Successful requests will be
returned in a "spoolman_response" object, errors in a
"spoolman_error" object.
Initially v2 responses will be opt-in to prevent breaking existing
spoolman implementations. However, as of this commit the v1
response is deprecated and will be removed in a future version
of Moonraker.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Connect to the spoolman sevice via websocket to receive
spool events. In addition, this gives Moonraker a persistent
connection to know when the service is available.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Variables should be contained within the spoolman instance, as in the
future it could be desirable to support multiple instances.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This callback will only fire after a component has requested
a subscription, preventing early updates while the component
is waiting for the subscription request to complete. It is still
valid for components to register the "server:status_update"
event handler if this behavior is not a concern.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Set the minimum value for the sync_rate to 1 second, rather
than above 1 second. When transitioning from a null spool
to a named spool clear tracked extrusion.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>