Try to connect to any available autoconnect networks
(self)
| 2242 | removed_from_ragnar = False |
| 2243 | original_count = len(self.known_networks) |
| 2244 | self.known_networks = [net for net in self.known_networks if net['ssid'] != ssid] |
| 2245 | |
| 2246 | if len(self.known_networks) < original_count: |
| 2247 | self.save_wifi_config() |
| 2248 | self.logger.info(f"Removed {ssid} from Ragnar's known networks list") |
| 2249 | removed_from_ragnar = True |
| 2250 | else: |
| 2251 | self.logger.warning(f"Network {ssid} not found in Ragnar's known networks") |
| 2252 | |
| 2253 | # Also delete the NetworkManager system profile so it no longer shows as saved |
| 2254 | removed_from_nm = False |
| 2255 | try: |
| 2256 | result = subprocess.run( |
| 2257 | ['sudo', 'nmcli', 'connection', 'delete', ssid], |
| 2258 | capture_output=True, text=True, timeout=10 |
| 2259 | ) |
| 2260 | if result.returncode == 0: |
| 2261 | self.logger.info(f"Deleted NetworkManager profile for {ssid}") |
| 2262 | removed_from_nm = True |
| 2263 | else: |
| 2264 | self.logger.debug(f"No NetworkManager profile found for {ssid}: {result.stderr.strip()}") |
| 2265 | except Exception as nm_err: |
| 2266 | self.logger.debug(f"Could not delete NetworkManager profile for {ssid}: {nm_err}") |
| 2267 | |
| 2268 | # Invalidate the scan cache so the network list refreshes correctly |
| 2269 | for iface in list(self.interface_scan_cache.keys()): |
| 2270 | self.interface_scan_cache.pop(iface, None) |
| 2271 | self.interface_cache_time.pop(iface, None) |
| 2272 | |
| 2273 | return removed_from_ragnar or removed_from_nm |
| 2274 | |
| 2275 | except Exception as e: |
| 2276 | self.logger.error(f"Error removing known network {ssid}: {e}") |
| 2277 | return False |
| 2278 |
no test coverage detected