Skip to content

Commit a8cd720

Browse files
authored
Bump python-synology to 0.7.0 (#34534)
1 parent 6631bbc commit a8cd720

File tree

9 files changed

+62
-71
lines changed

9 files changed

+62
-71
lines changed

homeassistant/components/synology_dsm/__init__.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
1111
from homeassistant.const import (
12-
CONF_API_VERSION,
1312
CONF_DISKS,
1413
CONF_HOST,
1514
CONF_PASSWORD,
@@ -22,14 +21,13 @@
2221
from homeassistant.helpers.event import async_track_time_interval
2322
from homeassistant.helpers.typing import HomeAssistantType
2423

25-
from .const import CONF_VOLUMES, DEFAULT_DSM_VERSION, DEFAULT_SSL, DOMAIN
24+
from .const import CONF_VOLUMES, DEFAULT_SSL, DOMAIN
2625

2726
CONFIG_SCHEMA = vol.Schema(
2827
{
2928
vol.Required(CONF_HOST): cv.string,
3029
vol.Optional(CONF_PORT): cv.port,
3130
vol.Optional(CONF_SSL, default=DEFAULT_SSL): cv.boolean,
32-
vol.Optional(CONF_API_VERSION, default=DEFAULT_DSM_VERSION): cv.positive_int,
3331
vol.Required(CONF_USERNAME): cv.string,
3432
vol.Required(CONF_PASSWORD): cv.string,
3533
vol.Optional(CONF_DISKS): cv.ensure_list,
@@ -70,12 +68,9 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry):
7068
password = entry.data[CONF_PASSWORD]
7169
unit = hass.config.units.temperature_unit
7270
use_ssl = entry.data[CONF_SSL]
73-
api_version = entry.data.get(CONF_API_VERSION, DEFAULT_DSM_VERSION)
7471
device_token = entry.data.get("device_token")
7572

76-
api = SynoApi(
77-
hass, host, port, username, password, unit, use_ssl, device_token, api_version
78-
)
73+
api = SynoApi(hass, host, port, username, password, unit, use_ssl, device_token)
7974

8075
await api.async_setup()
8176

@@ -109,7 +104,6 @@ def __init__(
109104
temp_unit: str,
110105
use_ssl: bool,
111106
device_token: str,
112-
api_version: int,
113107
):
114108
"""Initialize the API wrapper class."""
115109
self._hass = hass
@@ -119,7 +113,6 @@ def __init__(
119113
self._password = password
120114
self._use_ssl = use_ssl
121115
self._device_token = device_token
122-
self._api_version = api_version
123116
self.temp_unit = temp_unit
124117

125118
self._dsm: SynologyDSM = None
@@ -143,7 +136,6 @@ async def async_setup(self):
143136
self._password,
144137
self._use_ssl,
145138
device_token=self._device_token,
146-
dsm_version=self._api_version,
147139
)
148140

149141
await self._hass.async_add_executor_job(self._fetch_device_configuration)

homeassistant/components/synology_dsm/config_flow.py

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@
44

55
from synology_dsm import SynologyDSM
66
from synology_dsm.exceptions import (
7+
SynologyDSMException,
78
SynologyDSMLogin2SAFailedException,
89
SynologyDSMLogin2SARequiredException,
910
SynologyDSMLoginInvalidException,
11+
SynologyDSMRequestException,
1012
)
1113
import voluptuous as vol
1214

1315
from homeassistant import config_entries, exceptions
1416
from homeassistant.components import ssdp
1517
from homeassistant.const import (
16-
CONF_API_VERSION,
1718
CONF_DISKS,
1819
CONF_HOST,
1920
CONF_NAME,
@@ -23,13 +24,7 @@
2324
CONF_USERNAME,
2425
)
2526

26-
from .const import (
27-
CONF_VOLUMES,
28-
DEFAULT_DSM_VERSION,
29-
DEFAULT_PORT,
30-
DEFAULT_PORT_SSL,
31-
DEFAULT_SSL,
32-
)
27+
from .const import CONF_VOLUMES, DEFAULT_PORT, DEFAULT_PORT_SSL, DEFAULT_SSL
3328
from .const import DOMAIN # pylint: disable=unused-import
3429

3530
_LOGGER = logging.getLogger(__name__)
@@ -56,12 +51,6 @@ def _ordered_shared_schema(schema_input):
5651
vol.Required(CONF_PASSWORD, default=schema_input.get(CONF_PASSWORD, "")): str,
5752
vol.Optional(CONF_PORT, default=schema_input.get(CONF_PORT, "")): str,
5853
vol.Optional(CONF_SSL, default=schema_input.get(CONF_SSL, DEFAULT_SSL)): bool,
59-
vol.Optional(
60-
CONF_API_VERSION,
61-
default=schema_input.get(CONF_API_VERSION, DEFAULT_DSM_VERSION),
62-
): vol.All(
63-
vol.Coerce(int), vol.In([5, 6]), # DSM versions supported by the library
64-
),
6554
}
6655

6756

@@ -111,7 +100,6 @@ async def async_step_user(self, user_input=None):
111100
username = user_input[CONF_USERNAME]
112101
password = user_input[CONF_PASSWORD]
113102
use_ssl = user_input.get(CONF_SSL, DEFAULT_SSL)
114-
api_version = user_input.get(CONF_API_VERSION, DEFAULT_DSM_VERSION)
115103
otp_code = user_input.get(CONF_OTP_CODE)
116104

117105
if not port:
@@ -120,9 +108,7 @@ async def async_step_user(self, user_input=None):
120108
else:
121109
port = DEFAULT_PORT
122110

123-
api = SynologyDSM(
124-
host, port, username, password, use_ssl, dsm_version=api_version,
125-
)
111+
api = SynologyDSM(host, port, username, password, use_ssl)
126112

127113
try:
128114
serial = await self.hass.async_add_executor_job(
@@ -134,8 +120,12 @@ async def async_step_user(self, user_input=None):
134120
errors[CONF_OTP_CODE] = "otp_failed"
135121
user_input[CONF_OTP_CODE] = None
136122
return await self.async_step_2sa(user_input, errors)
137-
except (SynologyDSMLoginInvalidException, InvalidAuth):
123+
except SynologyDSMLoginInvalidException:
138124
errors[CONF_USERNAME] = "login"
125+
except SynologyDSMRequestException:
126+
errors[CONF_HOST] = "connection"
127+
except SynologyDSMException:
128+
errors["base"] = "unknown"
139129
except InvalidData:
140130
errors["base"] = "missing_data"
141131

@@ -152,7 +142,6 @@ async def async_step_user(self, user_input=None):
152142
CONF_SSL: use_ssl,
153143
CONF_USERNAME: username,
154144
CONF_PASSWORD: password,
155-
CONF_API_VERSION: api_version,
156145
}
157146
if otp_code:
158147
config_data["device_token"] = api.device_token
@@ -216,28 +205,21 @@ def _host_already_configured(self, hostname):
216205

217206
def _login_and_fetch_syno_info(api, otp_code):
218207
"""Login to the NAS and fetch basic data."""
219-
if not api.login(otp_code):
220-
raise InvalidAuth
221-
222208
# These do i/o
223-
information = api.information
209+
api.login(otp_code)
224210
utilisation = api.utilisation
225211
storage = api.storage
226212

227213
if (
228-
information.serial is None
214+
api.information.serial is None
229215
or utilisation.cpu_user_load is None
230216
or storage.disks_ids is None
231217
or storage.volumes_ids is None
232218
):
233219
raise InvalidData
234220

235-
return information.serial
221+
return api.information.serial
236222

237223

238224
class InvalidData(exceptions.HomeAssistantError):
239225
"""Error to indicate we get invalid data from the nas."""
240-
241-
242-
class InvalidAuth(exceptions.HomeAssistantError):
243-
"""Error to indicate there is invalid auth."""

homeassistant/components/synology_dsm/const.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
DEFAULT_SSL = True
1313
DEFAULT_PORT = 5000
1414
DEFAULT_PORT_SSL = 5001
15-
DEFAULT_DSM_VERSION = 6
1615

1716
UTILISATION_SENSORS = {
1817
"cpu_other_load": ["CPU Load (Other)", UNIT_PERCENTAGE, "mdi:chip"],

homeassistant/components/synology_dsm/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"domain": "synology_dsm",
33
"name": "Synology DSM",
44
"documentation": "https://www.home-assistant.io/integrations/synology_dsm",
5-
"requirements": ["python-synology==0.6.0"],
5+
"requirements": ["python-synology==0.7.0"],
66
"codeowners": ["@ProtoThis", "@Quentame"],
77
"config_flow": true,
88
"ssdp": [

homeassistant/components/synology_dsm/strings.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
"host": "Host",
99
"port": "Port (Optional)",
1010
"ssl": "Use SSL/TLS to connect to your NAS",
11-
"api_version": "DSM version",
1211
"username": "Username",
1312
"password": "Password"
1413
}
@@ -24,17 +23,18 @@
2423
"description": "Do you want to setup {name} ({host})?",
2524
"data": {
2625
"ssl": "Use SSL/TLS to connect to your NAS",
27-
"api_version": "DSM version",
2826
"username": "Username",
2927
"password": "Password",
3028
"port": "Port (Optional)"
3129
}
3230
}
3331
},
3432
"error": {
33+
"connection": "Connection error: please check your host, password & ssl",
3534
"login": "Login error: please check your username & password",
3635
"missing_data": "Missing data: please retry later or an other configuration",
37-
"otp_failed": "Two-step authentication failed, retry with a new pass code"
36+
"otp_failed": "Two-step authentication failed, retry with a new pass code",
37+
"unknown": "Unknown error: please check logs to get more details"
3838
},
3939
"abort": { "already_configured": "Host already configured" }
4040
}

homeassistant/components/synology_dsm/translations/en.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
"already_configured": "Host already configured"
55
},
66
"error": {
7+
"connection": "Connection error: please check your host, password & ssl",
78
"login": "Login error: please check your username & password",
89
"missing_data": "Missing data: please retry later or an other configuration",
9-
"otp_failed": "Two-step authentication failed, retry with a new pass code"
10+
"otp_failed": "Two-step authentication failed, retry with a new pass code",
11+
"unknown": "Unknown error: please check logs to get more details"
1012
},
1113
"flow_title": "Synology DSM {name} ({host})",
1214
"step": {
@@ -18,7 +20,6 @@
1820
},
1921
"link": {
2022
"data": {
21-
"api_version": "DSM version",
2223
"password": "Password",
2324
"port": "Port (Optional)",
2425
"ssl": "Use SSL/TLS to connect to your NAS",
@@ -29,7 +30,6 @@
2930
},
3031
"user": {
3132
"data": {
32-
"api_version": "DSM version",
3333
"host": "Host",
3434
"password": "Password",
3535
"port": "Port (Optional)",

requirements_all.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1680,7 +1680,7 @@ python-sochain-api==0.0.2
16801680
python-songpal==0.11.2
16811681

16821682
# homeassistant.components.synology_dsm
1683-
python-synology==0.6.0
1683+
python-synology==0.7.0
16841684

16851685
# homeassistant.components.tado
16861686
python-tado==0.8.1

requirements_test_all.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ python-miio==0.5.0.1
650650
python-nest==4.1.0
651651

652652
# homeassistant.components.synology_dsm
653-
python-synology==0.6.0
653+
python-synology==0.7.0
654654

655655
# homeassistant.components.tado
656656
python-tado==0.8.1

0 commit comments

Comments
 (0)