diff --git a/app.py b/app.py index 6bdca42..3bebd63 100644 --- a/app.py +++ b/app.py @@ -56,25 +56,28 @@ class UnifiAPI: self.site_id = "default" def get_devices(self): - url = f"{self.base_url}/proxy/network/v2/api/site/{self.site_id}/device" - response = self.session.get(url, headers=self.headers) - response.raise_for_status() - devices = response.json() - return [{ - 'name': device['name'], - 'ip': device['ip'], - 'type': device['type'], - 'connection_type': 'fiber' if device.get('uplink', {}).get('media') == 'sfp' else 'copper', - 'critical': True if device['type'] in ['udm-pro', 'switch'] else False, - 'device_id': device['mac'] - } for device in devices] + try: + url = f"{self.base_url}/proxy/network/v2/api/site/{self.site_id}/device" + response = self.session.get(url, headers=self.headers) + response.raise_for_status() + devices = response.json() + return [{ + 'name': device['name'], + 'ip': device['ip'], + 'type': device['type'], + 'connection_type': 'fiber' if device.get('uplink', {}).get('media') == 'sfp' else 'copper', + 'critical': True if device['type'] in ['udm-pro', 'switch'] else False, + 'device_id': device['mac'] + } for device in devices] + except Exception as e: + logger.error(f"Error fetching devices: {e}") + return [] def get_device_details(self, device_id): url = f"{self.base_url}/proxy/network/v2/api/site/{self.site_id}/device/{device_id}" response = self.session.get(url, headers=self.headers) response.raise_for_status() return response.json() - def get_device_diagnostics(self, device): details = self.get_device_details(device['device_id']) if not details: