77from synology_dsm import SynologyDSM
88from synology_dsm .exceptions import SynologyDSMRequestException
99from synology_dsm .api .core .security import SynoCoreSecurity
10+ from synology_dsm .api .core .share import SynoCoreShare
11+ from synology_dsm .api .core .system import SynoCoreSystem
1012from synology_dsm .api .core .utilization import SynoCoreUtilization
13+ from synology_dsm .api .core .upgrade import SynoCoreUpgrade
1114from synology_dsm .api .dsm .information import SynoDSMInformation
1215from synology_dsm .api .dsm .network import SynoDSMNetwork
1316from synology_dsm .api .download_station import SynoDownloadStation
1417from synology_dsm .api .storage .storage import SynoStorage
15- from synology_dsm .api .core .share import SynoCoreShare
1618from synology_dsm .api .surveillance_station import SynoSurveillanceStation
1719from synology_dsm .const import API_AUTH , API_INFO
1820
3436 DSM_6_CORE_UTILIZATION_ERROR_1055 ,
3537 DSM_6_CORE_SECURITY ,
3638 DSM_6_CORE_SECURITY_UPDATE_OUTOFDATE ,
39+ DSM_6_CORE_SYSTEM_DS918_PLUS ,
40+ DSM_6_CORE_UPGRADE ,
3741 DSM_6_STORAGE_STORAGE_DS213_PLUS_SHR1_2DISKS_2VOLS ,
3842 DSM_6_STORAGE_STORAGE_DS918_PLUS_RAID5_3DISKS_1VOL ,
3943 DSM_6_STORAGE_STORAGE_DS1819_PLUS_SHR2_8DISKS_1VOL ,
8387 "DSM_INFORMATION" : DSM_6_DSM_INFORMATION ,
8488 "DSM_NETWORK" : DSM_6_DSM_NETWORK ,
8589 "CORE_SECURITY" : DSM_6_CORE_SECURITY ,
86- "CORE_UTILIZATION" : DSM_6_CORE_UTILIZATION ,
8790 "CORE_SHARE" : DSM_6_CORE_SHARE ,
91+ "CORE_SYSTEM" : DSM_6_CORE_SYSTEM_DS918_PLUS ,
92+ "CORE_UTILIZATION" : DSM_6_CORE_UTILIZATION ,
93+ "CORE_UPGRADE" : DSM_6_CORE_UPGRADE ,
8894 "STORAGE_STORAGE" : {
8995 "RAID" : DSM_6_STORAGE_STORAGE_DS918_PLUS_RAID5_3DISKS_1VOL ,
9096 "SHR1" : DSM_6_STORAGE_STORAGE_DS213_PLUS_SHR1_2DISKS_2VOLS ,
97103
98104VALID_HOST = "nas.mywebsite.me"
99105VALID_PORT = "443"
100- VALID_SSL = True
106+ VALID_HTTPS = True
107+ VALID_VERIFY_SSL = True
101108VALID_USER = "valid_user"
102109VALID_USER_2SA = "valid_user_2sa"
103110VALID_PASSWORD = "valid_password"
@@ -118,6 +125,7 @@ def __init__(
118125 username ,
119126 password ,
120127 use_https = False ,
128+ verify_ssl = False ,
121129 timeout = None ,
122130 device_token = None ,
123131 debugmode = False ,
@@ -129,11 +137,13 @@ def __init__(
129137 username ,
130138 password ,
131139 use_https ,
140+ verify_ssl ,
132141 timeout ,
133142 device_token ,
134143 debugmode ,
135144 )
136145
146+ self .verify_ssl = verify_ssl
137147 self .dsm_version = 6 # 5 or 6
138148 self .disks_redundancy = "RAID" # RAID or SHR[number][_EXPANSION]
139149 self .error = False
@@ -171,6 +181,11 @@ def _execute_request(self, method, url, params, **kwargs):
171181 if "https" not in url :
172182 raise SynologyDSMRequestException (RequestException ("Bad request" ))
173183
184+ if not self .verify_ssl :
185+ raise SynologyDSMRequestException (
186+ SSLError (f"hostname '192.168.0.35' doesn't match '{ VALID_HOST } '" )
187+ )
188+
174189 if API_INFO in url :
175190 if self .with_surveillance :
176191 return DSM_6_API_INFO_SURVEILLANCE_STATION
@@ -209,10 +224,15 @@ def _execute_request(self, method, url, params, **kwargs):
209224 if SynoCoreShare .API_KEY in url :
210225 return API_SWITCHER [self .dsm_version ]["CORE_SHARE" ]
211226
212- if SynoCoreUtilization .API_KEY in url :
213- if self .error :
214- return DSM_6_CORE_UTILIZATION_ERROR_1055
215- return API_SWITCHER [self .dsm_version ]["CORE_UTILIZATION" ]
227+ if SynoCoreSystem .API_KEY in url :
228+ if SynoCoreUtilization .API_KEY in url :
229+ if self .error :
230+ return DSM_6_CORE_UTILIZATION_ERROR_1055
231+ return API_SWITCHER [self .dsm_version ]["CORE_UTILIZATION" ]
232+ return API_SWITCHER [self .dsm_version ]["CORE_SYSTEM" ]
233+
234+ if SynoCoreUpgrade .API_KEY in url :
235+ return API_SWITCHER [self .dsm_version ]["CORE_UPGRADE" ]
216236
217237 if SynoDSMInformation .API_KEY in url :
218238 return API_SWITCHER [self .dsm_version ]["DSM_INFORMATION" ]
0 commit comments