Network topology crashes with timing issue

Due to a timing issue, the network topology page can issue a 500 error
if a subnet is deleted at the inopportune moment.

Inside openstack_dashboard/dashboards/project/network_topology/views.py
---> JSONView.get method:

neutron_networks = api.neutron.network_list_for_tenant(
                request,
                request.user.tenant_id)

This can return a list of network objects whose subnet list can be [None]

Later, we attempt to iterate over that list and pull the .cidr attribute
off each element:

...
                    'subnets': [{'cidr': subnet.cidr}
                                for subnet in network.subnets],
...

Obviously, None doesn't have a .cidr attribute.

The real cause is inside the api.neutron.network_list_for_tenant call
above. Each network's list of subnets should never include None.

Change-Id: Ia88c5821bec73c80c4e743180354a69dabc93735
Closes-Bug: 1304600
Merge "Network topology crashes with timing issue"