def _remove_autonetwork(self, server_networks, request): """ Removes the automatically created network that was used prior to v1.4. """ server_networks_keys = list(server_networks.keys()) neutron_enabled = is_enabled_by_config('network') # delete only if vm has one network if neutron_enabled and len(server_networks) == 1: networks = network_list_for_tenant(request, request.user.tenant_id) autonetwork = filter(lambda network: network.name in server_networks_keys, networks) auto_subnet_name = autonetwork_subnet_name(request) if len(autonetwork) != 1: return autonetwork_subnet = filter(lambda subnet: subnet.name == auto_subnet_name, autonetwork[0].subnets) if len(autonetwork_subnet) != 1: return router = router_list(request, network_id=autonetwork_subnet[0]) if len(router) != 1: return router_remove_interface(request, router[0].id, subnet_id=autonetwork_subnet[0].id) router_delete(request, router[0].id) subnet_delete(request, autonetwork_subnet[0].id) network_delete(request, autonetwork[0].id)
def get_available_networks(request, include_subnets=True, filter=None, murano_networks=None): if murano_networks: env_names = [e.name for e in env_api.environments_list(request)] def get_net_env(name): for env_name in env_names: if name.startswith(env_name + '-network'): return env_name network_choices = [] tenant_id = request.user.tenant_id try: networks = neutron.network_list_for_tenant(request, tenant_id=tenant_id) except exceptions.ServiceCatalogException: LOG.warn("Neutron not found. Assuming Nova Network usage") return None # Remove external networks networks = [ network for network in networks if network.router__external is False ] if filter: networks = [ network for network in networks if re.match(filter, network.name) is not None ] for net in networks: env = None netname = None if murano_networks and len(net.subnets) == 1: env = get_net_env(net.name) if env: if murano_networks == 'exclude': continue else: netname = _("Network of '%s'") % env if include_subnets: for subnet in net.subnets: if not netname: full_name = "%(net)s: %(cidr)s" % dict(net=net.name, cidr=subnet.cidr) if subnet.name: full_name += " (%s)" % subnet.name network_choices.append(((net.id, subnet.id), netname or full_name)) else: netname = netname or net.name network_choices.append(((net.id, None), netname)) return network_choices
def populate_neutron_management_network_choices(self, request, context): try: tenant_id = self.request.user.tenant_id networks = neutron.network_list_for_tenant(request, tenant_id) network_list = [(network.id, network.name_or_id) for network in networks] except Exception: network_list = [] exceptions.handle(request, _("Unable to retrieve networks.")) return network_list
def populate_neutron_management_network_choices(self, request, context): try: tenant_id = self.request.user.tenant_id networks = neutron.network_list_for_tenant(request, tenant_id) network_list = [(network.id, network.name_or_id) for network in networks] except Exception: network_list = [] exceptions.handle(request, _('Unable to retrieve networks.')) return network_list
def get_available_networks(request, include_subnets=True, filter=None, murano_networks=None, exclude_ext_net=True): if murano_networks: env_names = [e.name for e in env_api.environments_list(request)] def get_net_env(name): for env_name in env_names: if name.startswith(env_name + '-network'): return env_name network_choices = [] tenant_id = request.user.tenant_id try: networks = neutron.network_list_for_tenant(request, tenant_id=tenant_id) except exceptions.ServiceCatalogException: LOG.warning("Neutron not found. Assuming Nova Network usage") return None # Remove external networks if exclude_ext_net: networks = [network for network in networks if network.router__external is False] if filter: networks = [network for network in networks if re.match(filter, network.name) is not None] for net in networks: env = None netname = None if murano_networks and len(net.subnets) == 1: env = get_net_env(net.name) if env: if murano_networks == 'exclude': continue else: netname = _("Network of '%s'") % env if include_subnets: for subnet in net.subnets: if not netname: full_name = ( "%(net)s: %(cidr)s %(subnet)s" % dict(net=net.name_or_id, cidr=subnet.cidr, subnet=subnet.name_or_id)) network_choices.append( ((net.id, subnet.id), netname or full_name)) else: netname = netname or net.name_or_id network_choices.append(((net.id, None), netname)) return network_choices
def get(self, request): """Get a list of the Networks for a project. Networks includes external and private. Also, each network has subnets. The returned result is an object with property 'items' and each item under this is a Network. """ tenant_id = request.user.tenant_id result = neutron.network_list_for_tenant(request, tenant_id, include_external=True) return {'items': [n.to_dict() for n in result]}
def get_network_name_mapping_for_tenant(request, tenant_id, **params): networks = neutron.network_list_for_tenant(request, tenant_id, **params) return create_network_name_mapping(networks)