yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #68600
[Bug 1702466] Re: Subnet details page fails when a subnet uses IPv6 with prefix delegation
Reviewed: https://review.openstack.org/510302
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=5de6b3eb14e414364bc115225d6067e3a87ad0ac
Submitter: Zuul
Branch: master
commit 5de6b3eb14e414364bc115225d6067e3a87ad0ac
Author: Akihiro Motoki <amotoki@xxxxxxxxx>
Date: Sat Oct 7 16:02:50 2017 +0000
Show subnet detail with prefix_delegation subnetpool properly
Subnet pool ID 'prefix_delegation' is a special subnet pool in Neutron
and there is no real subnet pool with ID 'prefix_delegation',
so we need to skip subnetpool_get() call
if a subnet has 'prefix_delegation' subnet pool.
This commit also adds unit tests which covers subnet pool operations
in the subnet detail view.
Change-Id: I3227a92084ee79b60d2b10262ed94a034e396306
Closes-Bug: #1702466
** Changed in: horizon
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1702466
Title:
Subnet details page fails when a subnet uses IPv6 with prefix
delegation
Status in OpenStack Dashboard (Horizon):
Fix Released
Status in horizon package in Ubuntu:
New
Bug description:
Package: openstack-dashboard
Description: Ubuntu 16.04.2 LTS
Release: 16.04
openstack-dashboard:
Installed: 2:9.1.2-0ubuntu1
Candidate: 2:9.1.2-0ubuntu1
Description: problem occurs when using an IPv6 subnet with prefix
delegation (IPv4 subnets are ok). When using web interface, if we try
to see subnet details in menu System -> Networks -> Click on network
name -> Click on subnet name we got the following error:
neutron-server[22658]: 2017-07-04 16:29:21.186 22864 INFO neutron.wsgi
[req-0fbaad92-83ff-4179-8056-8521fbef5ff9
e85813733498d6d6b6678b77d4756aaddef55bba18166be7d3bc3a8d20a65fd8
769822d4bf984cfeb3ab910cec9fa5b3 - - -] 192.168.0.1 - - [04/Jul/2017
16:29:21] "GET /v2.0/subnetpools/prefix_delegation.json HTTP/1.1" 404
266 0.007587
The subnet is working fine. Here is the output of opentack CLI 'show'
statement:
$ openstack subnet show nti-subnet-ipv6
+-------------------+-------------------------------------------------------------+
| Field | Value |
+-------------------+-------------------------------------------------------------+
| allocation_pools | 2001:DB8:1400:5026::2-2001:DB8:1400:5026:ffff:ffff:ffff:ffff|
| cidr | 2001:DB8:1400:5026::/64 |
| created_at | 2016-09-12T13:01:15 |
| description | |
| dns_nameservers | 2001:DB8:1400:2127::FFFE |
| enable_dhcp | True |
| gateway_ip | 2001:DB8:1400:5026::1 |
| host_routes | |
| id | 129bd534-7121-4759-93a2-68ac907edf74 |
| ip_version | 6 |
| ipv6_address_mode | dhcpv6-stateless |
| ipv6_ra_mode | dhcpv6-stateless |
| name | nti-subnet-ipv6 |
| network_id | d204d9a2-bb8a-48af-bfa0-f0438970d98b |
| project_id | 769822d4bf984cfeb3ab910cec9fa5b3 |
| subnetpool_id | prefix_delegation |
| updated_at | 2017-05-31T18:59:50 |
+-------------------+------------------------------------------------------------ +
Trying to find the problem, I found the file
openstack_dashboard/dashboards/project/networks/subnets/views.py with
this code (comments are mine):
class DetailView(tabs.TabView):
tab_group_class = project_tabs.SubnetDetailTabs
template_name = 'horizon/common/_detail.html'
page_title = "{{ subnet.name|default:subnet.id }}"
@memoized.memoized_method
def get_data(self):
subnet_id = self.kwargs['subnet_id']
try:
subnet = api.neutron.subnet_get(self.request, subnet_id)
except Exception:
subnet = []
msg = _('Unable to retrieve subnet details.')
exceptions.handle(self.request, msg,
redirect=self.get_redirect_url())
else:
if subnet.ip_version == 6:
ipv6_modes = utils.get_ipv6_modes_menu_from_attrs(
subnet.ipv6_ra_mode, subnet.ipv6_address_mode)
subnet.ipv6_modes_desc = utils.IPV6_MODE_MAP.get(ipv6_modes)
# if ('subnetpool_id' in subnet and
# subnet.subnetpool_id and
# api.neutron.is_extension_supported(self.request,
# 'subnet_allocation')):
# subnetpool = api.neutron.subnetpool_get(self.request,
# subnet.subnetpool_id)
# subnet.subnetpool_name = subnetpool.name
The commented code snippet seems to be the problem. It tries to get
some information about the subnetpool. However, when a subnet uses
IPv6 prefix delegation this is automatically setted when creating de
subnet and if we try to read information about a subnetpool called
"prefix_delegation" we get nothing (empty).
So, as showed, if I comment that code snippet the web interface
succedds and show the subnet details.
I think it is necessary to correct something with this part of the
code.
Thanks!
To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1702466/+subscriptions