)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"65dd7cde453f8c09f1fdbfa269335ff775c75a9e","unresolved":false,"context_lines":[{"line_number":1697,"context_line":"                external_ipv6_networks.append(network)"},{"line_number":1698,"context_line":"            elif (((\u0027router:external\u0027 in network"},{"line_number":1699,"context_line":"                    and network[\u0027router:external\u0027]) or"},{"line_number":1700,"context_line":"                    network.get(\u0027provider:physical_network\u0027)) and"},{"line_number":1701,"context_line":"                    network[\u0027name\u0027] not in self._internal_ipv6_names and"},{"line_number":1702,"context_line":"                    network[\u0027id\u0027] not in self._internal_ipv6_names):"},{"line_number":1703,"context_line":"                external_ipv6_networks.append(network)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_266e81c9","line":1700,"updated":"2016-08-25 13:23:16.000000000","message":"Using the provider attributes to figure out if it\u0027s a public network or not is sort of iffy. I think I remember a patch set in Neutron where we did something similar (I can\u0027t remember which one) and we were warned away from this approach.\n\nI think the router:external flag is OK to use.\n\nReally I would consider using netaddr, loading up the CIDR and seeing if it exists either in the ULA prefix (for v6) or in RFC1918 space.","commit_id":"934945f69e727cb8eb91605932963b5d15fcdfea"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2fe87ad247ec25a959d70580d1497fda84734086","unresolved":false,"context_lines":[{"line_number":1697,"context_line":"                external_ipv6_networks.append(network)"},{"line_number":1698,"context_line":"            elif (((\u0027router:external\u0027 in network"},{"line_number":1699,"context_line":"                    and network[\u0027router:external\u0027]) or"},{"line_number":1700,"context_line":"                    network.get(\u0027provider:physical_network\u0027)) and"},{"line_number":1701,"context_line":"                    network[\u0027name\u0027] not in self._internal_ipv6_names and"},{"line_number":1702,"context_line":"                    network[\u0027id\u0027] not in self._internal_ipv6_names):"},{"line_number":1703,"context_line":"                external_ipv6_networks.append(network)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa7ab95a_f5f7ac88","line":1700,"in_reply_to":"1ac06dbe_266e81c9","updated":"2016-08-29 15:38:32.000000000","message":"Good point on provider attributes - especially since this is the IPv6 network.\n\nFor the CIDR - unfortunately CIDR is a thing that a subnet has, but servers are attached to networks, so we need to know the general quality of the network. We may have to go back in and implement a much deeper investigation of subnets ... but for now trying to avoid that.\n\nAlso, fwiw, router:external, it turns out, doesn\u0027t mean what it sounds like :)","commit_id":"934945f69e727cb8eb91605932963b5d15fcdfea"}]}
