Supvisors

Latest version: v0.17.4

Safety actively analyzes 613797 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.17.4

* Fix bug that was randomly blocking **Supvisors** on restart or shutdown, due to a stdout flush hanging in
multiprocessing bowels. The statistics Process is now started before any other thread.

* `guest` time removed from because CPU calculation because it is already accounted in `user` time on Linux.

* Fix process CPU so that it corresponds to the Linux `top` result.

* Use the latest versions of Sphinx-related modules for documentation, as `sphinx-5.0` is now the minimal dependency.

0.17.3

* Fix regression when displaying the Network statistics in the **Supvisors** Web UI.

* Add restrictions to `flask-restx` dependencies.

0.17.2

* Fix rare I/O exception by joining the `SupervisorsProxy` thread before exiting the `SupvisorsMainLoop`.

* Fix rare exception when host network statistics are prepared for display in the **Supvisors** Web UI in the event
where network interfaces have different history sizes.

* Fix the **Supvisors** identifier possibilities when using the distribution rule `SINGLE_INSTANCE`.

* Update the process statistics collector thread so that it exits by itself when `supervisord` is killed.

* Improve the node selection when using the distribution rule `SINGLE_NODE`.

* Use an asynchronous server in the **Supvisors** internal communications.
The refactoring fixes an issue with the TCP server that sometimes wouldn't bind despite the `SO_REUSEADDR` set.

* Restore the `action` class in the HTML of the **Supvisors** Web UI.

* CI targets added for Python 3.11 and 3.12.

0.17

* Fix [Issue 112](https://github.com/julien6387/supvisors/issues/112).
Write the disabilities file even if no call to `disable` and `enable` XML-RPCs have been done.
Try to create the folder at startup if it does not exist.

* Fix a case where the `Starter` would block if the process reaches the expected state without reception
of the corresponding event.

* Fix typo for `zmq` requirement when installing **Supvisors** from `pypi`.

* Fix `flask-restx` dependency in setup according to Python version.

* Fix uncaught exception the request to start a process is rejected due to a lack of resources.
The exception was dependent from the Python version (absent in 3.6 but raised in 3.9).

* Monkeypatch fix of [Supervisor Issue 1596](https://github.com/Supervisor/supervisor/issues/1596).
Shutdown of the asyncore socket before it is closed.

* Improve robustness against network failures. All Supervisor events are applied to the local **Supvisors** instance
before they are published, so that it remains functional despite a network failure.
The internal TCP sockets are rebound when a network interface becomes up (requires `psutil`).

* Provide a discovery mode where the **Supvisors** instances are added on-the-fly without declaring them in
the `supvisors_list` option. The function relies on a Multicast Group definition (options `multicast_group`,
`multicast_interface` and `multicast_ttl` added to that purpose).
The attribute `discovery_mode` is added to the `get_state` and `get_instance_info` XML-RPCs.

* Add a new option `stereotypes` to support the discovery mode. The `identifiers` of the Application and Program rules
can now reference a **Supvisors** stereotype in addition to identifiers and aliases.
By extension, it is made available to the non-discovery mode.

* Add a new option `syncho_options` to enable the user to choose the conditions putting an end to the **Supvisors**
synchronization phase.
More particularly when using the new `USER` condition, the **Supvisors** Web UI provides a means to end the
`INITIALIZATION` state, with optional *Master* selection. The command is also available as an XML-RPC `end_synchro`
and has been added to `supervisorctl`.

* The new item `` in the `identifiers` of the Program rules takes the behavior of the item `` as it was
before **Supvisors** version 0.13, i.e. the assignment is strictly limited by the length of the `identifiers` list,
without roll-over.
NOTE: This is not available for Application rules.

* Use host aliases when looking for the local **Supvisors** instance.

* Use IP address rather than host identification when dealing with `SINGLE_NODE` starting strategy.

* To prevent the situation that led the `Starter` to block, a new state `CHECKED` is added to `SupvisorsInstanceStates`,
which is actually a pre-`RUNNING` state.
Such a **Supvisors** instance is considered active and is updated with received events but cannot be part of any
starting sequence until all starting jobs in progress are completed.

* Limit the consideration of the process forced state to display in the Application page of the **Supvisors** Web UI,
so that it does not interfere with the real process state.

* Add `master_identifier` to the output of the XML-RPCs `get_supvisors_state` and `get_instances_info`.
The `supervisorctl` commands `sstate` and `instance_status` have also been updated.

* Monkeypatch **Supervisor** on-the-fly so that its logger is thread-safe and add log traces in **Supvisors** threads.

* Simplify the **Supvisors** state machine and replace the states `RESTART` and `SHUTDOWN` by a single state `FINAL`.

* Highlight the process line hovered by the cursor in the **Supvisors** Web UI.

* Remove the figures from the **Supvisors** Web UI when `matplotlib` is not installed.

* Add RPC `changeLogLevel` to the JAVA client.

* Do not catch XmlRpc exceptions in the JAVA client.

* Refactoring of the **Supvisors** internal communications.

0.16

* Add `websockets` as an option to the **Supvisors** event listener (Python 3.7+ only).

* Re-design the `PyZMQ` event listener using the `zmq.asyncio` support for better commonalities
with the `wesockets` solution.

* Re-design the statistics collection and compilation.

* The option `stats_enabled` takes additional values to control host and process statistics independently.

* The option `stats_collecting_period` has been added to set the minimum time between process statistics collection.

* The option `stats_periods` accepts float values, not necessarily multiples of 5.

* Implement [Issue 54](https://github.com/julien6387/supvisors/issues/54).
Add host and process statistics to the **Supvisors** event interface.

* Fix children process CPU times in statistics.

* Fix Solaris mode not taken into account for the process mean CPU value in the **Supvisors** Web UI.

* Fix Flask `start_args` to pass the extra arguments in the URL attributes rather than in the route.

* Only one **Supvisors** instance is running when both `unix_http_server` and `inet_http_server` sections are defined
in the supervisor configuration file.

* The local **Supvisors** instance is identified as the item having the same fully qualified domain name
(as returned by `socket.gethostaddr` and `socket.getfqdn`) among the items of the `supvisors_list` option.

* Use the HTTP server port to help the identification of the local **Supvisors** instance when multiple items
of the `supvisors_list` option fit and identifier is not set.

* The attribute `process_failure` is added to the `get_instance_info` XML-RPC to inform if there is a process failure
in the **Supvisors** instance. The attribute is also provided in the event interface and in the `instance_status`
option of the `supervisorctl` command.

* Raise an exception when the matching **Supvisors** instance in the `supvisors_list` option is inconsistent
with the local configuration.

* Add a **Supvisors** logo.

0.15

* Publish / Subscribe pattern implemented for **Supvisors** internal communication.
`PyZmq` is now only used for the optional external publication interface.

* Make **Supvisors** robust to `addProcessGroup` / `removeProcessGroup` / `reloadConfig` Supervisor XML-RPCs.

* Fix process CPU times in statistics so that children processes are all taken into account.

* Fix regression in `supervisorctl application_rules` where the former `distributed` entry was still used
instead of `distribution`.

* Fix uncaught exception when an unknown host name or IP address is used in the `supvisors_list` option.

* Fix `ProcessEvent` publication when no resource is available to start a process.

* Fix `SupvisorsStatus` event in JAVA ZMQ client.

* Manage the `RuntimeError` exception that could be raised by matplotlib when saving a graph.

* Add `all_start` and `all_start_args` to the list of `supervisorctl` commands. These commands respectively invoke
`supervisor.startProcess` and `supvisors.start_args` on all running **Supvisors** instances.

* Add `tail_limit` and `tailf_limit` options to override the default 1024 bytes used by Supervisor to display
the Tail pages of the Web UI.

* Inactive Log Clear / Stdout / Stderr buttons in the Web UI if no stdout / stderr is configured.

* Add resolution to `ProcessStatus` time information and store event time, so that forced state is correctly considered.

* A process is not considered disabled anymore when process rules don't allow any candidate **Supvisors** instance.

* When `psutil` is not installed on a host, the statistics-related options of the Process and Host pages
of the Web UI are not displayed, just as if the option `stats_enabled` was set to `False`.

* Clarify the exceptions that could be raised in **Supvisors** startup.

* Add a FAQ to the documentation.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.