Add timeout config option to Synology DSM (#40000)
This commit is contained in:
parent
b05c88f1bc
commit
bab4ad4f17
6 changed files with 21 additions and 4 deletions
|
@ -23,6 +23,7 @@ from homeassistant.const import (
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_SSL,
|
CONF_SSL,
|
||||||
|
CONF_TIMEOUT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
)
|
)
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
@ -250,6 +251,7 @@ class SynoApi:
|
||||||
self._entry.data[CONF_USERNAME],
|
self._entry.data[CONF_USERNAME],
|
||||||
self._entry.data[CONF_PASSWORD],
|
self._entry.data[CONF_PASSWORD],
|
||||||
self._entry.data[CONF_SSL],
|
self._entry.data[CONF_SSL],
|
||||||
|
timeout=self._entry.options.get(CONF_TIMEOUT),
|
||||||
device_token=self._entry.data.get("device_token"),
|
device_token=self._entry.data.get("device_token"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ from homeassistant.const import (
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_SSL,
|
CONF_SSL,
|
||||||
|
CONF_TIMEOUT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
)
|
)
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
@ -34,6 +35,7 @@ from .const import (
|
||||||
DEFAULT_PORT_SSL,
|
DEFAULT_PORT_SSL,
|
||||||
DEFAULT_SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
DEFAULT_SSL,
|
DEFAULT_SSL,
|
||||||
|
DEFAULT_TIMEOUT,
|
||||||
)
|
)
|
||||||
from .const import DOMAIN # pylint: disable=unused-import
|
from .const import DOMAIN # pylint: disable=unused-import
|
||||||
|
|
||||||
|
@ -250,7 +252,13 @@ class SynologyDSMOptionsFlowHandler(config_entries.OptionsFlow):
|
||||||
default=self.config_entry.options.get(
|
default=self.config_entry.options.get(
|
||||||
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
|
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
|
||||||
),
|
),
|
||||||
): cv.positive_int
|
): cv.positive_int,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_TIMEOUT,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_TIMEOUT, DEFAULT_TIMEOUT
|
||||||
|
),
|
||||||
|
): cv.positive_int,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return self.async_show_form(step_id="init", data_schema=data_schema)
|
return self.async_show_form(step_id="init", data_schema=data_schema)
|
||||||
|
|
|
@ -27,6 +27,7 @@ DEFAULT_PORT = 5000
|
||||||
DEFAULT_PORT_SSL = 5001
|
DEFAULT_PORT_SSL = 5001
|
||||||
# Options
|
# Options
|
||||||
DEFAULT_SCAN_INTERVAL = 15 # min
|
DEFAULT_SCAN_INTERVAL = 15 # min
|
||||||
|
DEFAULT_TIMEOUT = 10 # sec
|
||||||
|
|
||||||
|
|
||||||
ENTITY_NAME = "name"
|
ENTITY_NAME = "name"
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"data": {
|
"data": {
|
||||||
"scan_interval": "Minutes between scans"
|
"scan_interval": "Minutes between scans",
|
||||||
|
"timeout": "Timeout (seconds)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"data": {
|
"data": {
|
||||||
"scan_interval": "Minutes between scans"
|
"scan_interval": "Minutes between scans",
|
||||||
|
"timeout": "Timeout (seconds)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ from homeassistant.components.synology_dsm.const import (
|
||||||
DEFAULT_PORT_SSL,
|
DEFAULT_PORT_SSL,
|
||||||
DEFAULT_SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
DEFAULT_SSL,
|
DEFAULT_SSL,
|
||||||
|
DEFAULT_TIMEOUT,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_SSDP, SOURCE_USER
|
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_SSDP, SOURCE_USER
|
||||||
|
@ -30,6 +31,7 @@ from homeassistant.const import (
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_SSL,
|
CONF_SSL,
|
||||||
|
CONF_TIMEOUT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.typing import HomeAssistantType
|
from homeassistant.helpers.typing import HomeAssistantType
|
||||||
|
@ -426,12 +428,14 @@ async def test_options_flow(hass: HomeAssistantType, service: MagicMock):
|
||||||
)
|
)
|
||||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||||
assert config_entry.options[CONF_SCAN_INTERVAL] == DEFAULT_SCAN_INTERVAL
|
assert config_entry.options[CONF_SCAN_INTERVAL] == DEFAULT_SCAN_INTERVAL
|
||||||
|
assert config_entry.options[CONF_TIMEOUT] == DEFAULT_TIMEOUT
|
||||||
|
|
||||||
# Manual
|
# Manual
|
||||||
result = await hass.config_entries.options.async_init(config_entry.entry_id)
|
result = await hass.config_entries.options.async_init(config_entry.entry_id)
|
||||||
result = await hass.config_entries.options.async_configure(
|
result = await hass.config_entries.options.async_configure(
|
||||||
result["flow_id"],
|
result["flow_id"],
|
||||||
user_input={CONF_SCAN_INTERVAL: 2},
|
user_input={CONF_SCAN_INTERVAL: 2, CONF_TIMEOUT: 30},
|
||||||
)
|
)
|
||||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||||
assert config_entry.options[CONF_SCAN_INTERVAL] == 2
|
assert config_entry.options[CONF_SCAN_INTERVAL] == 2
|
||||||
|
assert config_entry.options[CONF_TIMEOUT] == 30
|
||||||
|
|
Loading…
Add table
Reference in a new issue