This resolves an issue where an unhandled exception is rasied when a websocket attempts to write to a closed websocket.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This implements two queues, one for commands that execute locally and a second
for gcode commands that execute on the Klippy host. While it is valid for a local
command to execute concurrently with a remote command, commands of the same type
(local or remote) should execute sequentially.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Update paneldue.py
Report that the PanelDue is "idle" until it is first initialized. This allows for the Macros to be set upon first connection
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Add a "get_return_code" method that allows users to fetch the return code after the shell command has executed.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This implementation adds a delay that allows for pip to function correclty after the venv is built.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The current method for rebuilding the virtualenv fails. A potential workaround is to do the rebuild and subsequent update with a script. For now, disable the rebuild.
Signed-off-by: Eric Callahan <arskine.code@gmail.com>
This manager can perform updates on moonraker and klipper, assuming that the source is located in a valid git repo, the origin points to the official repo, and the currently selected branch is "master".
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This makes it possible for clients to hard restart an service in the event it becomes unresponsive.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This method collects the entire response and returns it with the call. Suitable for commands that produce little output.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This allows moonraker plugins to look up the stored info without needing to make an addition "info" request to Klippy.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Do not allow on, off, or status requests without arguments. Pass device objects to "power_device()" rather than device names.
Signed-off-by: Eric Callahan <arkine.code@gmail.com>
Devices are now configured using "prefix" sections. The pin configuration now more closely mimics that of Klipper's configuration so as to reduce confusion.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Only load the plugin for each prefix section once. Plugins themselves will be responsible for parsing the configuration from each prefix section.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Tornado clears the headers when an error is detected, "set_default_headers" must be overrridden so that errors are properly returned.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Rather than allow all origins as was the default with "enable_cors", users may not specify the domains allowed. If "*" is specified, all domains are allowed.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
GIven that subscriptions are reset, connected clients no longer maintained and they cannot check "webhooks.state" to see if Klippy is ready. This notifcation may be used to in its place.
SIgned-off-by: Eric Callahan <arksine.code@gmail.com>
Clients may provide arguments either in the query string or body. Reserved arguments "token" and "connection_id" are excluded from the result.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Some requests, such "printer/objects/subscribe", require a websocket
for asynchronous updates. Clients may now specify a "connection_id"
in the form data that identifies an associated websocket.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
There is no need to pass the auth, server, or websocket manager objects to request handlers. They can be retreived directly from the application reference.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>