Commit Graph

162 Commits

Author SHA1 Message Date
epenet
a26b3e7a34 Refactor access to ConfigStore (#80467)
* Refactore access to ConfigStore

* Make tests async

* Reset config during test
2022-10-17 13:59:04 +02:00
J. Nick Koston
049c06061c Fix memory leak when firing state_changed events (#72571) 2022-05-26 20:54:26 -07:00
J. Nick Koston
9c3f949165 Add live streaming logbook websocket endpoint (#72258)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-05-22 14:57:54 -05:00
J. Nick Koston
9092dcacea Use async_capture_events for core tests (#71970) 2022-05-16 18:04:05 -05:00
J. Nick Koston
ebce5660e3 Sync event timed_fired and the context ulid time (#71854) 2022-05-14 12:12:08 -07:00
J. Nick Koston
d612b9e0b4 Reduce event loop overhead for listeners that already queue (#71364)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-05-05 23:09:10 -04:00
J. Nick Koston
fe6a4bfb1d Remove EVENT_TIME_CHANGED and EVENT_TIMER_OUT_OF_SYNC (#69643)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-04-09 09:05:54 -10:00
Paulus Schoutsen
1bbc1f5f55 Validate in split_entity_id (#66835) 2022-02-18 16:11:17 -08:00
Paulus Schoutsen
5da923c341 Protect state.as_dict from mutation (#65693) 2022-02-04 14:45:25 -08:00
Ville Skyttä
1ec8619687 Make core config source an enum (#61966)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-12-19 18:02:52 +01:00
Martin Hjelmare
a1abd4f0d6 Fix external internal url core check (#54310) 2021-08-09 10:52:14 +02:00
Paulus Schoutsen
952d11cb03 Ensure internal/external URL have no path (#54304)
* Ensure internal/external URL have no path

* Fix comment typo

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-08-09 09:38:09 +02:00
Franck Nijhof
1968b95829 Add currency core configuration (#53541)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-07-28 08:55:58 +02:00
Ville Skyttä
470f2dd73f Upgrade pyupgrade to 2.21.2, apply its changes (#52987) 2021-07-19 10:46:09 +02:00
Ruslan Sayfutdinov
5ad71b5e45 Define sync hass.create_task function (#50788) 2021-05-17 14:54:06 -05:00
J. Nick Koston
bf2d40adfe Migrate from pytz to python-dateutil (#49643)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-05-07 22:46:26 -07:00
Raman Gupta
3ca69f5568 Raise an exception when event_type exceeds the max length (#48115)
* raise an exception when event_type exceeds the max length that the recorder supports

* add test

* use max length constant in recorder

* update config entry reloaded service name

* remove exception string function because it's not needed

* increase limit to 64 and revert event name change

* fix test

* assert exception args

* fix test

* add comment about migration
2021-04-08 20:46:28 +02:00
J. Nick Koston
c9df42b69a Add support for pre-filtering events to the event bus (#46371) 2021-02-14 09:42:55 -10:00
Franck Nijhof
22389043eb Remove base_url fallback (#46316) 2021-02-10 14:31:11 +01:00
J. Nick Koston
9f59515bb8 Fix shutdown deadlock with run_callback_threadsafe (#45807) 2021-02-01 10:54:39 +01:00
Franck Nijhof
65cf2fcb6f Drop asynctest (#44746) 2021-01-01 22:31:56 +01:00
Paulus Schoutsen
479de9433c Convert core tests to async (#43287) 2020-11-16 18:25:55 +01:00
Paulus Schoutsen
819dd27925 Automatically clean up executor as part of closing loop (#43284) 2020-11-16 15:43:48 +01:00
J. Nick Koston
2845fca08e Remove debug prints from utcnow test (#42977) 2020-11-08 11:48:01 -06:00
Franck Nijhof
6e9b65405a Disable legacy templates by default (#42967) 2020-11-08 16:11:38 +01:00
J. Nick Koston
1626c236dc Only call utcnow once during a state changed event (#42941) 2020-11-07 15:51:06 -10:00
Paulus Schoutsen
21e9e7c5c2 Default legacy templates to true (#42511)
* Default legacy templates to true

* Disable legacy_templates in tests

Co-authored-by: Franck Nijhof <git@frenck.dev>
2020-10-28 16:58:16 +01:00
J. Nick Koston
df2ede6522 Fix state overwrite race condition where two platforms request the same entity_id (#42151)
* Fix state overwrite race condition where two platforms request the same entity id

* fix test

* create reservations instead

* revert

* cannot use __slots__ because we patch async_all
2020-10-21 17:01:51 +02:00
Paulus Schoutsen
b8417a2ce2 Do not allow coroutines to be passed to HassJob (#42073)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-10-19 23:25:33 +02:00
J. Nick Koston
9e1461da62 Determine how to run listeners at setup time instead of execution time (#41304) 2020-10-07 16:51:50 +02:00
J. Nick Koston
4798f37c6e Convert States to dicts via as_dict only once (#41208)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-10-05 09:18:57 -05:00
Franck Nijhof
0e6d54ea60 Rewrite core event tests to pytest tests (#40664) 2020-09-27 15:39:45 +02:00
J. Nick Koston
35533407fe Improve performance of counting and iterating states in templates (#40250)
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
2020-09-26 11:36:47 -05:00
J. Nick Koston
251d8919ea Add domain filter support to async_all to match async_entity_ids (#39725)
This avoids copying all the states before applying
the filter
2020-09-06 23:20:32 +02:00
Paulus Schoutsen
51a63c1fc4 Drop last bits of asyncio.coroutine (#39280) 2020-08-26 16:57:52 +02:00
Bas Nijholt
0427d87ba4 Bump codespell from v1.16.0 to v1.17.1 and fix new spelling errors (#38663) 2020-08-08 14:41:02 +02:00
Pascal Vizeli
c291d4aa7d Intelligent timeout handler for setup/bootstrap (#38329)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-08-05 14:58:19 +02:00
J. Nick Koston
b3fd8a8343 Fix flapping chained task logging test (#38492) 2020-08-03 15:01:15 +02:00
J. Nick Koston
03582402fa Add debug logging for when a chain of tasks blocks startup (#38311)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-07-28 18:24:29 +02:00
J. Nick Koston
a7459b3126 Log which task is blocking startup when debug logging is on (#38134)
* Log which task is blocking startup when debug logging for homeassistant.core is on

* test needs to go one level deeper now
2020-07-23 20:03:42 -06:00
J. Nick Koston
d7811a4adf Avoid generating a Context() object every second (#38085)
Every second we were calling the getrandom() syscall to generate a uuid4
for a context that will never be looked:

 * In most setups there are no more time_changed listeners

 * The ones that do exist never care about context

 * time_changed events are never saved in the database
2020-07-22 21:52:10 -07:00
Paulus Schoutsen
8ed1a29c82 Drop white blacklist pt1 (#37816) 2020-07-13 17:43:11 +02:00
Joakim Plate
bcd604eec2 Detect lingering threads after tests (#37270)
* Detect lingering threads after tests

* Make sure cast is setup before checking state

* Make sure we ask executors of old hass to shutdown

We are not waiting here, just hoping for the best

* Make sure all instances of hass and executors is stopped.

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Also apply hass stopping to scripts

* Adjust to changes how we set up executor

* Add new CoreState.stopped

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-07-09 16:15:14 +02:00
Paulus Schoutsen
f49ce5d1b4 Protect loop set default executor (#37438)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-07-06 15:58:53 -07:00
Aaron Bach
7968cd650a Add concept of allowed external URLs to config (#36988)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-06-24 17:37:01 -07:00
Paulus Schoutsen
de12c21ce7 Fire config changed event during start (#36812) 2020-06-15 15:22:53 -07:00
J. Nick Koston
578d4a9b6a Make the frontend available sooner (Part 1 of 2) (#36263)
* Part 1 of 2 (no breaking changes in part 1).

When integrations configured via the UI block startup or fail to start,
the webserver can remain offline which make it is impossible
to recover without manually changing files in
.storage since the UI is not available.

This change is the foundation that part 2 will build on
and enable a listener to start the webserver when the frontend
is finished loading.

Frontend Changes (home-assistant/frontend#6068)

* Address review comments

* bump timeout to 1800s, adjust comment

* bump timeout to 4h

* remove timeout failsafe

* and the test
2020-06-02 13:54:11 -05:00
Pascal Vizeli
ed014e3c96 Revert "Ensure frontend is available if integrations fail to start - Part 1 of 2 (#36093)" (#36251)
This reverts commit fbe7b4ddfa.
2020-05-29 10:18:39 +02:00
J. Nick Koston
fbe7b4ddfa Ensure frontend is available if integrations fail to start - Part 1 of 2 (#36093)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-05-28 21:09:07 -07:00
Franck Nijhof
d3ae8a938c Fix handling of additional data in core config storage (#35660) 2020-05-16 13:31:15 +02:00