Protect loop set default executor (#37438)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
parent
f8651d9faa
commit
f49ce5d1b4
21 changed files with 387 additions and 244 deletions
|
@ -4,6 +4,7 @@ import asyncio
|
|||
import logging
|
||||
import os
|
||||
|
||||
from homeassistant import runner
|
||||
from homeassistant.auth import auth_manager_from_config
|
||||
from homeassistant.auth.providers import homeassistant as hass_auth
|
||||
from homeassistant.config import get_default_config_dir
|
||||
|
@ -43,24 +44,24 @@ def run(args):
|
|||
parser_change_pw.add_argument("new_password", type=str)
|
||||
parser_change_pw.set_defaults(func=change_password)
|
||||
|
||||
args = parser.parse_args(args)
|
||||
loop = asyncio.get_event_loop()
|
||||
hass = HomeAssistant(loop=loop)
|
||||
loop.run_until_complete(run_command(hass, args))
|
||||
|
||||
# Triggers save on used storage helpers with delay (core auth)
|
||||
logging.getLogger("homeassistant.core").setLevel(logging.WARNING)
|
||||
loop.run_until_complete(hass.async_stop())
|
||||
asyncio.set_event_loop_policy(runner.HassEventLoopPolicy(False))
|
||||
asyncio.run(run_command(parser.parse_args(args)))
|
||||
|
||||
|
||||
async def run_command(hass, args):
|
||||
async def run_command(args):
|
||||
"""Run the command."""
|
||||
hass = HomeAssistant()
|
||||
hass.config.config_dir = os.path.join(os.getcwd(), args.config)
|
||||
hass.auth = await auth_manager_from_config(hass, [{"type": "homeassistant"}], [])
|
||||
provider = hass.auth.auth_providers[0]
|
||||
await provider.async_initialize()
|
||||
await args.func(hass, provider, args)
|
||||
|
||||
# Triggers save on used storage helpers with delay (core auth)
|
||||
logging.getLogger("homeassistant.core").setLevel(logging.WARNING)
|
||||
|
||||
await hass.async_stop()
|
||||
|
||||
|
||||
async def list_users(hass, provider, args):
|
||||
"""List the users."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue