This adds a thin wrapper around asyncio's eventloop. Generally it is similar to Tornado's IOLoop, however without the need to support all awaitables.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The delayed callback to "log_last_stats()" in the Watchdog shold not have its return value assigned to the watchdog handle.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
All calls to update now return a boolean value. When performing a full upate this return value is used to
check if Moonraker should wait for Klippy to reconnect.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This ignores an attempt to update packages if system updates are disabled and opens the possibility for supporting updates for other linux distributions.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Transion away from Tornado's wrappers, as their implementation of
"wait()" can be confusing. Some of tornado's methods require that
you specify a delay in seconds, others requrire that you specify a
timeout relative to the Unix epoch.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The underlying deployment implementations use locks to prevent concurrent attempts at refeshing state, thus the "is_refreshing" check is redundant.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This allows Moonraker to report download progress. This also resolves potential issues with I/O blocking the event loop.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This is the first step toward creating mutliple methods for deployment. This patch creates a base class for all deployment objects and a base class for application deployment. The git functionality has moved to its own module.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Remove the "distro" config option as it is not necessary. If there is a need to identify the linux distribution that can now be done through the distro dependency.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Rather than add these arguments to the config, use a method to access them from the server object.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This creates a generic utility for retreiving the git version. Moonraker will now attempt to parse basic version info from a ".version" file if git describe fails.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This file is no longer required for moonraker, the version info will either be stored in the pex file or retreived from git.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
The importlib module will raise an exception if the component does not exist, so the check is redundant. This allow allows packages to be loaded.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Initially rebuilding the venv was required to change env options to include dist packages. This is no longer necessary so we can remove detection for it. Building a venv could still be necessary, so move this functionality to its own method.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
These options are no longer necessary, as we now apply the dist path before the import in modules that require dist packages.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Rather than symlink the gpiod dependency in a virtualenv, temporarily add the dist-package to sys.path then import gpiod.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>