Summary
ListExternalNetworks bypasses the normal paginated Neutron helpers and performs a one-shot raw GET against ?router:external=true. That silently truncates results on larger deployments.
Evidence
src/internal/network/networks.go:329-352 uses client.Get() with a raw query string instead of paginated iteration.
- Callers include
src/internal/ui/routercreate/routercreate.go:494, src/internal/ui/fippicker/fippicker.go:274, and src/internal/ui/networkview/networkview.go:1316.
Impact
Users can miss external networks in router creation and floating-IP workflows once the deployment exceeds a single Neutron page.
Suggested fix
Switch to a paginated Neutron listing path and preserve the router:external=true filter across all pages.
Summary
ListExternalNetworksbypasses the normal paginated Neutron helpers and performs a one-shot raw GET against?router:external=true. That silently truncates results on larger deployments.Evidence
src/internal/network/networks.go:329-352usesclient.Get()with a raw query string instead of paginated iteration.src/internal/ui/routercreate/routercreate.go:494,src/internal/ui/fippicker/fippicker.go:274, andsrc/internal/ui/networkview/networkview.go:1316.Impact
Users can miss external networks in router creation and floating-IP workflows once the deployment exceeds a single Neutron page.
Suggested fix
Switch to a paginated Neutron listing path and preserve the
router:external=truefilter across all pages.