Fabio Manganiello
f51beb271e
Large refactor + stability fixes for the external process control logic.
2023-08-15 11:12:21 +02:00
Fabio Manganiello
46245e851f
Synchronize with the currently running stop thread (if any) in `Backend.wait_stop`.
2023-08-15 02:08:47 +02:00
Fabio Manganiello
a8a7ceb2ac
Implemented `HttpBackend._stop_workers`.
...
The Tornado WSGI container won't guarantee the termination of the
spawned workers upon termination, so the code of the backend has to take
care of it and terminate all the children processes of the server
process when it terminates.
This also means that `psutil` is now a required base dependency, as we
need to expand the process subtree under the webserver launcher.
2023-08-15 00:13:34 +02:00
Fabio Manganiello
04921c759f
Added `wait_stop` method to the entities engine and cron scheduler.
2023-08-14 23:49:47 +02:00
Fabio Manganiello
ceb9d6d1ba
Removed redundant `Backend._get_redis()` method.
...
It was used only once, and it could easily be replaced by
`platypush.utils.get_redis()`.
2023-08-14 23:37:38 +02:00
Fabio Manganiello
7157936b87
Added get_remaining_timeout utility function.
2023-08-14 23:17:50 +02:00
Fabio Manganiello
dc1a152433
Added `get_default_pid_file` utility method.
2023-08-14 10:47:25 +02:00
Fabio Manganiello
c11bc69a66
Handle `KeyboardInterrupt` and process return code in the main.
2023-08-13 23:55:40 +02:00
Fabio Manganiello
8819a0ed4c
Added `CommandStream` to the main `Application`.
...
The stream will be used to communicate command messages from the
application to its runner.
2023-08-13 23:51:21 +02:00
Fabio Manganiello
06111587f7
Added `CommandStream` class.
...
This abstraction is used to write and read commands over a UNIX socket.
2023-08-13 23:37:51 +02:00
Fabio Manganiello
c89f992867
Added `StopCommand` and `RestartCommand`.
2023-08-13 23:36:36 +02:00
Fabio Manganiello
b1f244a812
Added `ControllableProcess` class.
...
This class can be used to easily control the execution of underlying
processes.
2023-08-13 23:33:08 +02:00
Fabio Manganiello
efef9d7bc0
Added `commands` module.
2023-08-13 23:21:36 +02:00
Fabio Manganiello
97adc3f775
Moved application argument parser to an external `platypush.cli` module.
2023-08-13 22:27:16 +02:00
Fabio Manganiello
1819ee75ef
`s/Application.stop_app/Application.stop/g`
2023-08-13 22:23:15 +02:00
Fabio Manganiello
827b564006
Using a single constant for DEFAULT_REDIS_QUEUE.
...
Also, catch `AttributeError` on `self._proc.terminate` in the
`HttpBackend`, since the process may already have been terminated and
set to null by another worker process.
2023-08-13 22:20:16 +02:00
Fabio Manganiello
4062ddbcf0
More improvements to the `inspect` plugin.
...
continuous-integration/drone/push Build is passing
Details
- Support for distinct `type` field on constructor and method arguments.
- Added `has_varargs` field.
- Added `required` field.
- Better logic for parsing arguments `default` values.
2023-08-08 20:47:27 +02:00
Fabio Manganiello
9beb0a7af3
Skip `:type:` annotations from docstring args documentation.
2023-08-08 20:47:27 +02:00
Fabio Manganiello
2a30f060b4
Parse the arguments list from `obj_type.__init__.__doc__` too.
2023-08-08 20:47:27 +02:00
Fabio Manganiello
1474685cc0
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing
Details
2023-08-06 22:51:57 +00:00
Fabio Manganiello
26b4dcba46
Reduced padding of ConfirmDialog body element.
continuous-integration/drone/push Build is passing
Details
2023-08-07 00:50:10 +02:00
Fabio Manganiello
5184543a3e
Normalize the size of the camera frame container from window size.
...
continuous-integration/drone/push Build is failing
Details
If the window is smaller than the camera resolution, then we should
scale down the container size accordingly.
2023-08-07 00:38:19 +02:00
Fabio Manganiello
dd313c6371
[Automatic] Updated UI files
continuous-integration/drone/push Build was killed
Details
2023-08-06 21:50:25 +00:00
Fabio Manganiello
2f007888fc
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing
Details
2023-08-06 21:48:33 +00:00
Fabio Manganiello
609a8c6052
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing
Details
2023-08-06 21:46:44 +00:00
Fabio Manganiello
276a9a7421
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing
Details
2023-08-06 21:44:51 +00:00
Fabio Manganiello
715cdcfcff
More consistent style for the buttons on the tokens settings page.
continuous-integration/drone/push Build is failing
Details
2023-08-06 23:42:50 +02:00
Fabio Manganiello
bd49e460d5
More style improvements for the user settings panel.
continuous-integration/drone/push Build is passing
Details
2023-08-06 23:36:06 +02:00
Fabio Manganiello
6eed558342
More improvements on the users settings panel.
continuous-integration/drone/push Build was killed
Details
2023-08-06 23:14:54 +02:00
Fabio Manganiello
1d47b35219
Updated UI dependencies
2023-08-06 20:38:46 +02:00
Fabio Manganiello
237e0c47cb
Redesigned config panel UI.
2023-08-06 18:49:03 +02:00
Fabio Manganiello
53aeb0b3b1
Better documentation for the Redis server + LINT fixes.
...
continuous-integration/drone/push Build is passing
Details
1. Added documentation to the README on the possible options to run the
Redis service.
2. Show a relevant message to the user if the application is run with
`--start-redis` and Redis couldn't start.
3. Some LINT/black chores on some files that hadn't been touched in a
while.
2023-08-02 22:17:11 +02:00
Fabio Manganiello
e4756eb639
Replaced deprecated `flask.escape` with `markupsafe.escape`.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone Build is passing
Details
2023-07-25 00:26:15 +02:00
Fabio Manganiello
91cd08cdff
Adapted tests to use a locally started Redis instance.
2023-07-24 10:37:07 +02:00
Fabio Manganiello
7a20fec52f
[ #60 ] Added `--workdir` and `--logsdir` command-line options.
...
Also, the application is now using `XDG_CONFIG_HOME` and
`XDG_DATA_HOME` if available to lookup the configuration file and
working directory.
Closes : #60
2023-07-24 03:29:08 +02:00
Fabio Manganiello
c1d66abb89
[ #60 ] Added `--workdir` and `--logsdir` command-line options.
...
Closes : #60
2023-07-24 03:20:18 +02:00
Fabio Manganiello
5fd40af285
Revert "Added explicit --help option."
...
This reverts commit 1304be0718
.
2023-07-24 02:38:12 +02:00
Fabio Manganiello
1304be0718
Added explicit --help option.
...
argparse.ArgumentParser doesn't seem to add the option automatically
anymore.
2023-07-24 02:11:42 +02:00
Fabio Manganiello
e9a568fdd2
Unified interface to retrieve the Redis bus configuration.
...
A common `utils.get_redis_conf` has been created to handle the cascade
fallback logic used to retrive the default Redis configuration.
2023-07-24 01:04:13 +02:00
Fabio Manganiello
77ffefdccb
Added a `Config.set` method.
...
A useful interface to change configuration values at runtime.
2023-07-24 00:48:07 +02:00
Fabio Manganiello
dd862db29a
[chore] LINT fixes
2023-07-24 00:35:03 +02:00
Fabio Manganiello
3e3d47aa44
Check first the configuration of the Redis plugin and then that of the backend.
2023-07-24 00:26:49 +02:00
Fabio Manganiello
315a89fb65
Added a `default` parameter to `Config.get`.
2023-07-23 23:31:57 +02:00
Fabio Manganiello
37dcaba7a1
Refactored structure of main application and startup scripts.
...
The main application class has been moved from __init__ to the app
module.
__init__ will contain instead the relevant global variables and the
modules and objects exposed to external integrations - such as
`get_plugin` and `get_backend`, or the `main` itself.
This will make future integrations much easier - the global __init__
doesn't contain any business logic now, it can import anything without
fearing circular dependencies, and it can limit its exposed objects to
those that we want to expose to 3rd-party integrations and scripts.
It will also make it easier to extend the main entry point with
additional logic - such as a supervisor or an embedded Redis server.
2023-07-23 23:12:36 +02:00
Fabio Manganiello
0dc380fa94
Removed dependency from prctl.
...
Also, black'd and LINT-fixed some files that hadn't been touched in a
while.
2023-07-23 19:17:30 +02:00
Fabio Manganiello
15a34ebac9
Upgraded Docker base image.
...
Debian base image bumped from Bullseye -> Bookworm.
2023-07-23 17:25:52 +02:00
Fabio Manganiello
cfdecd5703
[ #267 ] Don't show the PWA popup again after the user dismisses it.
...
Plus, upgraded a bunch of frontend libraries.
Closes : #267
2023-07-23 02:44:17 +02:00
Fabio Manganiello
454228c56e
Upgraded UI dependencies
2023-07-23 02:42:14 +02:00
dependabot[bot]
33699fcac8
Bump word-wrap from 1.2.3 to 1.2.5 in /platypush/backend/http/webapp
...
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap ) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases )
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5 )
---
updated-dependencies:
- dependency-name: word-wrap
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-22 21:48:53 +00:00
dependabot[bot]
505cba44b8
Bump webpack from 5.70.0 to 5.88.2 in /platypush/backend/http/webapp
...
Bumps [webpack](https://github.com/webpack/webpack ) from 5.70.0 to 5.88.2.
- [Release notes](https://github.com/webpack/webpack/releases )
- [Commits](https://github.com/webpack/webpack/compare/v5.70.0...v5.88.2 )
---
updated-dependencies:
- dependency-name: webpack
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-07-22 21:46:59 +00:00