* Docker events based watchdog
* Separate monitor from DockerAPI since it needs coresys
* Move monitor into dockerAPI
* Fix properties on coresys
* Add watchdog tests
* Added tests
* pylint issue
* Current state failures test
* Thread-safe event processing
* Use labels property
* Move repository urls to store settings file
* Remove default repos from supervisor config
* Fix clone at initial store load
* Mock git load in repository fixture
* De-duplicate Backup/Restore logic
Create internal _do_backup()/_do_restore() method which de-duplicates
some of the backup/restore logic previously part of full/partial backup/restore.
* Add Backup/Restore test coverage
* Allow to update connection information
* Introduce Signal wrapper class using async context manager
This allows to start monitoring signals and execute code before
processing signals. With that it is possible to check for state changes
in a race free manor.
* Fix unit tests
* Introduce enum for network connectivity
* Differentiate between Bus Name and Interface consts
The Bus names and interfaces look quite similar in D-Bus: Both use dots
to separate words. Usually all interfaces available below a certan Bus
name start with the Bus name. Quite often the Bus name itself is also
available as an interface.
However, those are different things. To avoid confusion, add the type of
const to the const name.
* Remove unused const
* Disconnect D-Bus when not used
Make sure Python disconnects from D-Bus when objects get destroyed. This
avoids exhausting D-Bus connection limit which causes the following
error message:
[system] The maximum number of active connections for UID 0 has been reached (max_connections_per_user=256)
* Filter signals by object as well
Make sure we only listen to signals on that particular object. Also
support filtering messages via message filter callback.
* Explicitly wait until Connection is activated
Wait for activated or raise an error. This avoids too early/errornous
updates when state of the connection changes to "activating" or similar
intermediate signal states.
Fixes: #2639
* Fix VLAN configuration
* Add link to D-Bus object documentation
* Fix network settings update test
* Make MessageBus object optional
* Use the correct interface name to get properties of systemd
It seems that gdbus (or systemd) automatically pick the correct
interface and return the properties. However, dbussy requires the
correct interface name to get all properties.
* Don't expect array from Strength property
The property returns a type "y" which equates to "guchar":
https://developer-old.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength
It seems that the old D-Bus implementation returned an array. With
dbus-next a integer is returned, so no list indexing required.
* Support signals and remove no longer used tests and code
* Pass rauc update file path as string
That is what the interface is expecting, otherwise the new lib chocks on
the Pathlib type.
* Support Network configuration with dbus-next
Assemble Python native objects and pass them to dbus-next. Use dbus-next
specific Variant class where necessary.
* Use org.freedesktop.NetworkManager.Connection.Active.StateChanged
org.freedesktop.NetworkManager.Connection.Active.PropertyChanged is
depricated. Also it seems that StateChanged leads to fewer and more
accurate signals.
* Pass correct data type to RequestScan.
RequestScan expects an option dictionary. Pass an empty option
dictionary to it.
* Update unit tests
Replace gdbus specific fixtures with json files representing the return
values. Those can be easily converted into native Python objects.
* Rename D-Bus utils module gdbus to dbus
* Add new time handling
* migrate date for python3.9
* add timedate
* add tests & simplify it
* better testing
* use ssl
* use hostname with new interface
* expose to API
* update data
* add base handler
* new timezone handling
* improve handling
* Improve handling
* Add tests
* Time adjustment function
* Fix logging
* tweak condition
* don't adjust synchronized time
* Guard
* ignore UTC
* small cleanup
* like that, we can leaf it
* add URL
* add comment
* Apply suggestions from code review
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
* Add architectures supported by generic-x86-64 board
* Follow intel-nuc to generic-x86-64 rename when updating
Home Assistant OS renamed the intel-nuc board to generic-x86-64. Make
sure to download the generic-x86-64 raucb OS update when updating a
intel-nuc machine.
* Don't explicit use section, rely on AwesomeVersion's comparision
* Remove unecessary global variable TEST_URL
* Fix version comparision
* Remove rate limiter on updater.fetch_data()
* Update tests/test_hassos.py
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
* Fix black issue
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
* Full content trust support
* expose content-trust for info
* fix log message
* Add system test
* Fix name
* Add tests
* ditch wrong disable
* fix partition
* remove untrust image
* Initial WS support
* test
* Update frontend to fc7c4af2
* Fix issue with closing states
* log error
* make data optional
* limit stopping states
* Move wrappers to HomeAssistantWebSocket
* use info
* Use call_soon
* Use lookuptable for WS commands
* Fix tests
* Use bool for host internet
* Ignore host check if no network manager
* Update supervisor/host/network.py
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
* Check dbus connection isntead of supported features
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
* Adds condition decorator to block execution that require internet
* Fix exsisting tests
* Add internet state to network info
* Add healthy condition
* Add tests
* It's all changed
* rename
* Speedup HA core auth
* Add reset API call
* use delete
* Add complexe cache logic
* Allow manage api to handle auth reset/cache
* revert to only cache
* add tests
* ignore protected-access for this tests
* fix comment
* Guard for no interfaces
* Host reload on update
* Extract payload
* Check eth and wifi interfaces with a valid ip4 config
* Add tests
* Fix tests
* Move to enum
* Add diagnostics support
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
* add aditional data
* Fix handling
* Better states
* Fix opt
* Update supervisor/bootstrap.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Only events on supported systems
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>