)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"cbc6584a84f82d230df1f86a3e35791db575ccff","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"        ports \u003d self.search_ports(filters\u003d{\u0027device_id\u0027: router[\u0027id\u0027]})"},{"line_number":3362,"context_line":""},{"line_number":3363,"context_line":"        # L3 HA ports are not router interfaces so remove them before we filter"},{"line_number":3364,"context_line":"        ports \u003d [port for port in ports if \u0027HA port\u0027 not in port[\u0027name\u0027]]"},{"line_number":3365,"context_line":""},{"line_number":3366,"context_line":"        if interface_type:"},{"line_number":3367,"context_line":"            filtered_ports \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_4a5f0ee5","line":3364,"updated":"2017-07-10 17:16:51.000000000","message":"I think it\u0027s better to use device_owner because that\u0027s what neutron uses internally for filtering. The name is purely cosmetic for users and could easily change in the future.","commit_id":"a629a45a84b2ad205d47e29dae6b1c76ee9e39d0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66b5e9310e0856a6210c4de190f33d43ecb1bca2","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"        # Find only router interface and gateway ports, ignore L3 HA ports etc."},{"line_number":3362,"context_line":"        router_interfaces \u003d self.search_ports(filters\u003d{"},{"line_number":3363,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3364,"context_line":"            \u0027device_owner\u0027: \u0027network:router_interface\u0027})"},{"line_number":3365,"context_line":"        router_gateways \u003d self.search_ports(filters\u003d{"},{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_0312fc09","line":3364,"updated":"2017-07-11 16:03:24.000000000","message":"It\u0027s safer to get the values from neutron_lib constants file","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"a2681d4d92569cfd53a565ba93ff8b3695ebcfe7","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"        # Find only router interface and gateway ports, ignore L3 HA ports etc."},{"line_number":3362,"context_line":"        router_interfaces \u003d self.search_ports(filters\u003d{"},{"line_number":3363,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3364,"context_line":"            \u0027device_owner\u0027: \u0027network:router_interface\u0027})"},{"line_number":3365,"context_line":"        router_gateways \u003d self.search_ports(filters\u003d{"},{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_0dae05e7","line":3364,"in_reply_to":"3f1d235d_0198a218","updated":"2017-07-12 10:30:49.000000000","message":"Agreed.","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"df850f2160cef61d7892792cde3bfd060ef9d7c3","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"        # Find only router interface and gateway ports, ignore L3 HA ports etc."},{"line_number":3362,"context_line":"        router_interfaces \u003d self.search_ports(filters\u003d{"},{"line_number":3363,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3364,"context_line":"            \u0027device_owner\u0027: \u0027network:router_interface\u0027})"},{"line_number":3365,"context_line":"        router_gateways \u003d self.search_ports(filters\u003d{"},{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_fac55d8f","line":3364,"in_reply_to":"3f1d235d_0312fc09","updated":"2017-07-11 18:43:04.000000000","message":"Wouldn\u0027t this pull yet another dependency ?","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f75fa5e424b6ccefd5d5cbe291b2842c3b3bee95","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"        # Find only router interface and gateway ports, ignore L3 HA ports etc."},{"line_number":3362,"context_line":"        router_interfaces \u003d self.search_ports(filters\u003d{"},{"line_number":3363,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3364,"context_line":"            \u0027device_owner\u0027: \u0027network:router_interface\u0027})"},{"line_number":3365,"context_line":"        router_gateways \u003d self.search_ports(filters\u003d{"},{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_0198a218","line":3364,"in_reply_to":"3f1d235d_fac55d8f","updated":"2017-07-12 06:14:21.000000000","message":"I don\u0027t think we need to import neutron-lib now as the value is defined in our REST API. I think it is too much to import neutron-lib only for one constant.\n\n(Note that python-neutronclient does not import neutron-lib from the same reason now.)","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"874b6cb4c90383a7eff9889ae6489882a4e6d8fc","unresolved":false,"context_lines":[{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"},{"line_number":3368,"context_line":"        ports \u003d router_interfaces + router_gateways"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":"        if interface_type:"},{"line_number":3371,"context_line":"            filtered_ports \u003d []"},{"line_number":3372,"context_line":"            if (router.get(\u0027external_gateway_info\u0027) and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_2c6035a5","line":3369,"updated":"2017-07-12 06:35:41.000000000","message":"I think the logic below can be simplified as we already know router_interfaces (internal) and router_gateways (external).","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"a2681d4d92569cfd53a565ba93ff8b3695ebcfe7","unresolved":false,"context_lines":[{"line_number":3366,"context_line":"            \u0027device_id\u0027: router[\u0027id\u0027],"},{"line_number":3367,"context_line":"            \u0027device_owner\u0027: \u0027network:router_gateway\u0027})"},{"line_number":3368,"context_line":"        ports \u003d router_interfaces + router_gateways"},{"line_number":3369,"context_line":""},{"line_number":3370,"context_line":"        if interface_type:"},{"line_number":3371,"context_line":"            filtered_ports \u003d []"},{"line_number":3372,"context_line":"            if (router.get(\u0027external_gateway_info\u0027) and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f1a1f67_6d9fb9b4","line":3369,"in_reply_to":"3f1d235d_2c6035a5","updated":"2017-07-12 10:30:49.000000000","message":"The logic below suggests that router_interfaces can also be external, if that\u0027s not the case then yes I can rework this as well.","commit_id":"c41e8fc5db498993628744cf37fbad56150a8e35"}]}
