)]}'
{"networking_ovn/common/ovn_client.py":[{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"997130e0aeaa287188f6574ebb963b4d49581830","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_aa0b9727","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"updated":"2017-11-28 09:49:37.000000000","message":"Do we need to concern updating device owner to or from Floating IP?","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"52975c5ec85183c9c8188fe1709bfe64e451cafa","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_9a01216d","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"in_reply_to":"ff82abbf_1ab99113","updated":"2017-11-29 11:04:33.000000000","message":"That\u0027s an option as well, although, it may behaves strange at times.\n\nSay a user has a port where device_owner !\u003d floatingip. Now he/she updates device_owner to floatingip and it gets deleted from OVN. From now on, that port won\u0027t be update-able anymore, if a user wants to change it back it won\u0027t be possible. In case someone changed the owner by mistake it can be a PITA.\n\nThat\u0027s why I thought about just plain simple not allowing any updates to or from a port that the device_owner is floatingip.","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"66a4b3141a02c2192d2f8cab1c71fb6ae0048d90","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_8f01e16c","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"in_reply_to":"ff82abbf_4c01a737","updated":"2017-11-29 10:28:41.000000000","message":"Do you mean this? We neither allow a floating ip to modify its device_owner nor allow other port to change its device_owner to floating-ip,","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"cdfc2ca79e534af07ce4c56889b233248730e0f3","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_1ab99113","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"in_reply_to":"ff82abbf_6f39fdef","updated":"2017-11-29 10:53:01.000000000","message":"Thanks. I think this makes sense, security problems are big problems.\nHow about this: deleting the lsp when updating owner from other to floating IP, and just reject changing owner from floating IP to other.","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2879c607cbf63bfb60fbffa48be47afe5d57306b","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_6f39fdef","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"in_reply_to":"ff82abbf_8f01e16c","updated":"2017-11-29 10:42:14.000000000","message":"Pretty much, I mean it\u0027s just a suggestion, I\u0027m not aware of any use case for that even tho it\u0027s allowed by the API. I wonder what neutron developers think about it.\n\nBut as you said:\n\n1) The port was created with --device-owner network:floatingip. That port doesn\u0027t exist in OVN so there\u0027s no reason to allow updates for that.\n\n2) If a port was created in another way but then updated to --device-owner network:floatingip. Is there any consequence in just leaving it as-is and doing nothing in the update method ? Cause that port will still exist in OVN, maybe I\u0027m just overthinking but I wonder if that would cause some misbehave in OVN in some situations or even security problems.\n\nTherefore blocking updates for this type of ports may prevent some of it.\n\nBut again, only a suggestion. If people think it\u0027s overthinking I\u0027m fine in just having the code as you proposed now.","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1cf2de5da507d7b097b73eb5af611c3490bb1e24","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                                if_exists\u003dFalse))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def update_port(self, port, original_port, qos_options\u003dNone):"},{"line_number":310,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":311,"context_line":"            return"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        port_info \u003d self._get_port_options(port, qos_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_4c01a737","line":310,"range":{"start_line":310,"start_character":11,"end_line":310,"end_character":38},"in_reply_to":"ff82abbf_aa0b9727","updated":"2017-11-29 10:12:05.000000000","message":"It does seem to be allowed by the API [0], I just don\u0027t know what someone doing it would expect to happen.\n\nSay a user does:\n\n$ openstack port create porttest\n$ openstack port set porttest --device-owner network:floatingip\n\nWhy he would even do that, is there a use case for it ?\n\nIf not, perhaps we should block updates on floatingip owned ports in networking-ovn to avoid confusion. E.g:\n\n def update_port(...):\n     if utils.is_lsp_ignored(port):\n          raise PortUpdateError(\u0027Updates on ports owned \u0027\n                                \u0027by %s are not supported\u0027) \n\n\nThat would at least would give a useful feedback to the user of networking-ovn, and if there\u0027s a case where he needs to update to/from a floatingip owned port he/she can file a bug against it.\n\nI mean, it\u0027s better than failing silently you know ? IMHO\n\n[0] openstack port set \u003cUUID\u003e --device-owner blah","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"}],"networking_ovn/common/utils.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1cf2de5da507d7b097b73eb5af611c3490bb1e24","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    return n_utils.is_port_trusted(port) if port.get(\u0027device_owner\u0027) else False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def is_lsp_ignored(port):"},{"line_number":114,"context_line":"    return port.get(\u0027device_owner\u0027) in [const.DEVICE_OWNER_FLOATINGIP]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_ccc13756","line":113,"updated":"2017-11-29 10:12:05.000000000","message":"Someone looking into this method might question why it\u0027s ignored. It would be nice to have a docstring briefly saying that this floating IP ports are unnecessary in OVN.","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"66a4b3141a02c2192d2f8cab1c71fb6ae0048d90","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    return n_utils.is_port_trusted(port) if port.get(\u0027device_owner\u0027) else False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def is_lsp_ignored(port):"},{"line_number":114,"context_line":"    return port.get(\u0027device_owner\u0027) in [const.DEVICE_OWNER_FLOATINGIP]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_0fedd1b5","line":113,"in_reply_to":"ff82abbf_ccc13756","updated":"2017-11-29 10:28:41.000000000","message":"OK","commit_id":"c171ff5ff394447d6a84ee90865dcdd5aba9a071"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"9685bd11817a0cf52af93d27f5e056388b542361","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    # Since the floating IP port is not bound to any chassis, packets from vm"},{"line_number":115,"context_line":"    # destined to floating IP will be dropped. To overcome this, we do not"},{"line_number":116,"context_line":"    # create/update floating IP port in OVN."},{"line_number":117,"context_line":"    return port.get(\u0027device_owner\u0027) in [const.DEVICE_OWNER_FLOATINGIP]"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"def get_lsp_security_groups(port, skip_trusted_port\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_c2f8024b","line":117,"range":{"start_line":117,"start_character":11,"end_line":117,"end_character":70},"updated":"2017-11-30 09:35:06.000000000","message":"just use \u003d\u003d","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"b2a23f37d76521e9a08ca26760e2580de742ffea","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    # Since the floating IP port is not bound to any chassis, packets from vm"},{"line_number":115,"context_line":"    # destined to floating IP will be dropped. To overcome this, we do not"},{"line_number":116,"context_line":"    # create/update floating IP port in OVN."},{"line_number":117,"context_line":"    return port.get(\u0027device_owner\u0027) in [const.DEVICE_OWNER_FLOATINGIP]"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"def get_lsp_security_groups(port, skip_trusted_port\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_a9c11ee7","line":117,"range":{"start_line":117,"start_character":11,"end_line":117,"end_character":70},"in_reply_to":"ff82abbf_119e3654","updated":"2017-11-30 15:30:32.000000000","message":"@Miguel Yeah, you said what I want to.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e62c117ded7439a074a7491f09e8c1802a682b04","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    # Since the floating IP port is not bound to any chassis, packets from vm"},{"line_number":115,"context_line":"    # destined to floating IP will be dropped. To overcome this, we do not"},{"line_number":116,"context_line":"    # create/update floating IP port in OVN."},{"line_number":117,"context_line":"    return port.get(\u0027device_owner\u0027) in [const.DEVICE_OWNER_FLOATINGIP]"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"def get_lsp_security_groups(port, skip_trusted_port\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_119e3654","line":117,"range":{"start_line":117,"start_character":11,"end_line":117,"end_character":70},"in_reply_to":"ff82abbf_c2f8024b","updated":"2017-11-30 13:57:02.000000000","message":"I\u0027m ok with in or \u003d\u003d, in reflects that eventually we can add more. It\u0027s not even noticeable from a performance perspective.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"}],"networking_ovn/ml2/mech_driver.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ee6b1cb2c1795ca857015cddd2acc5862db0a03b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class OVNPortUpdateError(Exception):"},{"line_number":58,"context_line":"    pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_fcce095a","line":57,"updated":"2017-11-30 14:18:15.000000000","message":"If we raise something other than a NeutronException here it will show up to the user as am 500 error (internal error) for example:\n\n$ openstack port set porttest --device-owner \"network:floatingip\"\n\nHttpException: Internal Server Error (HTTP 500) (Request-ID: req-483a97e5-02e8-474b-871a-9a23eb1d51f3), Request Failed: internal server error while processing your request.\n\nThat\u0027s not very helpful.\n\nLet\u0027s change it to a BadRequest, which means that the request to change the device owner is not supported, e.g:\n\n class OVNPortUpdateError(n_exec.BadRequest):\n     message \u003d _(\u0027Updating port failed: %(reason)s\u0027)\n\n\nThen on L400 and 4900:\n\n    raise OVNPortUpdateError(reason\u003dmsg)\n\nThat will give us:\n\n$ openstack port set porttest --device-owner \"network:floatingip\"\nHttpException: Bad Request (HTTP 400) (Request-ID: req-2cc14bca-83c6-40b8-b668-63e5faf83bb9), Port update error: Update device_owner to network:floatingip for port e8910026-9fda-4d2a-9b6c-87032011348a is not supported\n\nThat more user-friendly because he/she won\u0027t need to even look at the logs to know what the request was rejected.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2f58791e539b9bcc82d58c4ec9f4384cd830546a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class OVNPortUpdateError(Exception):"},{"line_number":58,"context_line":"    pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_a7d84c7f","line":57,"in_reply_to":"ff82abbf_6d20f0b1","updated":"2017-12-01 09:49:02.000000000","message":"Hi Dong,\n\nYes you totally can... The example you posted:\n\n class OVNPortUpdateError(n_exc.BadRequest):\n     pass\n \n raise OVNPortUpdateError(resource\u003d\u0027port\u0027, reason\u003dmsg)\n\nWill do it.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"a1e07ac9310ac7d5dc6b129cb4f58bf80bc8d4c8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class OVNPortUpdateError(Exception):"},{"line_number":58,"context_line":"    pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_c7b470f5","line":57,"in_reply_to":"ff82abbf_a7d84c7f","updated":"2017-12-01 09:58:47.000000000","message":"OK","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"3625a915112ba121f8fdd11d9aec566ed23ef81a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class OVNPortUpdateError(Exception):"},{"line_number":58,"context_line":"    pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_6d20f0b1","line":57,"in_reply_to":"ff82abbf_a92efef7","updated":"2017-12-01 03:19:15.000000000","message":"I have looked into neutron code about rasing  BadRequest exception. Could I use the similar format in OVN?\nAs you have much more experience on neutron, I look forward to your opinions.\ne.g. in neutron: \n    msg \u003d _(\"Network %s is not an external network\") % network_id\n    raise n_exc.BadRequest(resource\u003d\u0027router\u0027, msg\u003dmsg)\nThe output is:\nBad router request: Network 86cccb12-ecac-4d1b-8a50-163f4cefd1b1 is not an external network.\n\nAssume I use the same format,\n    class OVNPortUpdateError(n_exc.BadRequest):\n        pass\n    raise OVNPortUpdateError(resource\u003d\u0027port\u0027, reason\u003dmsg)\nthe output is:\nBad port request: Updating device_owner to network:floatingip for port 4ef33b29-9fbe-4843-a689-a9e9e78b942c is not supported.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"b2a23f37d76521e9a08ca26760e2580de742ffea","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class OVNPortUpdateError(Exception):"},{"line_number":58,"context_line":"    pass"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_a92efef7","line":57,"in_reply_to":"ff82abbf_fcce095a","updated":"2017-11-30 15:30:32.000000000","message":"@Lucas Thanks，it is useful indeed. I will update the patch tomorrow.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e62c117ded7439a074a7491f09e8c1802a682b04","unresolved":false,"context_lines":[{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    def _validate_ignored_port(self, port, original_port):"},{"line_number":399,"context_line":"        if utils.is_lsp_ignored(port):"},{"line_number":400,"context_line":"            if not utils.is_lsp_ignored(original_port):"},{"line_number":401,"context_line":"                # From not ignored port to ignored port"},{"line_number":402,"context_line":"                msg \u003d (_(\u0027Update device_owner to %(device_owner)s for port \u0027"},{"line_number":403,"context_line":"                         \u0027%(port_id)s is not supported\u0027) %"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_b1f18a98","line":400,"updated":"2017-11-30 13:57:02.000000000","message":"That seems like a reasonable safeguard.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"1563fbafd1a1c106b719e2417b28b1d4374c5836","unresolved":false,"context_lines":[{"line_number":403,"context_line":"                         \u0027%(port_id)s is not supported\u0027) %"},{"line_number":404,"context_line":"                       {\u0027device_owner\u0027: port[\u0027device_owner\u0027],"},{"line_number":405,"context_line":"                        \u0027port_id\u0027: port[\u0027id\u0027]})"},{"line_number":406,"context_line":"                raise OVNPortUpdateError(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":407,"context_line":"        elif utils.is_lsp_ignored(original_port):"},{"line_number":408,"context_line":"            # From ignored port to not ignored port"},{"line_number":409,"context_line":"            msg \u003d (_(\u0027Updating device_owner for port %(port_id)s owned by \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_459a956e","line":406,"updated":"2017-12-01 13:30:47.000000000","message":"^ being nitpick, we could call on the constructor of OVNPortUpdateError, I guess we can\u0027t have a OVNPortUpdateError on other resource (at least, thinking naively :) )","commit_id":"7d73643c82bef58d9f40173f76834174b11f3312"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a0dbe116d8a54937fbe9cdeb2c0db7d93da4c616","unresolved":false,"context_lines":[{"line_number":403,"context_line":"                         \u0027%(port_id)s is not supported\u0027) %"},{"line_number":404,"context_line":"                       {\u0027device_owner\u0027: port[\u0027device_owner\u0027],"},{"line_number":405,"context_line":"                        \u0027port_id\u0027: port[\u0027id\u0027]})"},{"line_number":406,"context_line":"                raise OVNPortUpdateError(resource\u003d\u0027port\u0027, msg\u003dmsg)"},{"line_number":407,"context_line":"        elif utils.is_lsp_ignored(original_port):"},{"line_number":408,"context_line":"            # From ignored port to not ignored port"},{"line_number":409,"context_line":"            msg \u003d (_(\u0027Updating device_owner for port %(port_id)s owned by \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_84ed2827","line":406,"in_reply_to":"ff82abbf_459a956e","updated":"2017-12-01 14:35:17.000000000","message":"a-ha yeah that makes sense, it\u0027s always gonna be the \"port\" resource for this error. Good catch.\n\nAs you already approved this patch, I think that a follow up patch for it would be fine.","commit_id":"7d73643c82bef58d9f40173f76834174b11f3312"}],"networking_ovn/ovn_db_sync.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"620139bd279e121d6d52659635e30cc334d55e6d","unresolved":false,"context_lines":[{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Ignore the floating ip ports with device_owner set to"},{"line_number":800,"context_line":"        # constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":801,"context_line":"        db_ports \u003d {port[\u0027id\u0027]: port for port in"},{"line_number":802,"context_line":"                    self.core_plugin.get_ports(ctx) if not"},{"line_number":803,"context_line":"                    utils.is_lsp_ignored(port)}"},{"line_number":804,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_87498833","line":801,"updated":"2017-12-01 09:51:56.000000000","message":"If we\u0027re ignoring FIP ports for creation I think we should delete them from OVN when syncing in repair mode. What do you think?","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"d4d4a1de26adba742837e19062bffcada477ab52","unresolved":false,"context_lines":[{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Ignore the floating ip ports with device_owner set to"},{"line_number":800,"context_line":"        # constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":801,"context_line":"        db_ports \u003d {port[\u0027id\u0027]: port for port in"},{"line_number":802,"context_line":"                    self.core_plugin.get_ports(ctx) if not"},{"line_number":803,"context_line":"                    utils.is_lsp_ignored(port)}"},{"line_number":804,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_c726b069","line":801,"in_reply_to":"ff82abbf_87498833","updated":"2017-12-01 09:58:04.000000000","message":"Yeah we are doing this implied in L821 as the db_ports does not contain fip ports and fip ports are appended to del_lport_list.","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"c06ec6081b80fcfc8ffd538b772c45e8ef747f83","unresolved":false,"context_lines":[{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Ignore the floating ip ports with device_owner set to"},{"line_number":800,"context_line":"        # constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":801,"context_line":"        db_ports \u003d {port[\u0027id\u0027]: port for port in"},{"line_number":802,"context_line":"                    self.core_plugin.get_ports(ctx) if not"},{"line_number":803,"context_line":"                    utils.is_lsp_ignored(port)}"},{"line_number":804,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_e512c9b4","line":801,"in_reply_to":"ff82abbf_c726b069","updated":"2017-12-01 13:38:28.000000000","message":"Right, sorry! I looked into it very quickly. Thanks for clarifying Dong!","commit_id":"0c8f5c14cdfdc7b2805f95661a1057874b715dbd"}]}
