)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"133c7ffb47627b97656aa643bb40851b4b0fb29b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adam Harwell \u003cflux.adam@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-27 05:47:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When SG delete fails on vip deallocate, try harder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Go out and find the ports that are using the SG and remove them."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2f97f969ea4ff699bef6a7fcd86d5aac6ad3b423"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_807b4cbc","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":64},"updated":"2018-03-29 10:32:40.000000000","message":"Could you add some detailed information about this problem?Also maybe add a link to a story or an email discussion.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"3515fdeb1e156887a0e4a9907f29f8fd41973617","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adam Harwell \u003cflux.adam@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-27 05:47:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When SG delete fails on vip deallocate, try harder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Go out and find the ports that are using the SG and remove them."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2f97f969ea4ff699bef6a7fcd86d5aac6ad3b423"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_29954833","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":64},"in_reply_to":"bf659307_4691c14d","updated":"2018-04-03 08:11:06.000000000","message":"Can you add this text (your answer to me) to the comment message?","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"8285038c271b503bd9ed6143b3f6477069514d62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adam Harwell \u003cflux.adam@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-27 05:47:44 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When SG delete fails on vip deallocate, try harder"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Go out and find the ports that are using the SG and remove them."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I2f97f969ea4ff699bef6a7fcd86d5aac6ad3b423"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_4691c14d","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":64},"in_reply_to":"bf659307_807b4cbc","updated":"2018-03-29 19:35:00.000000000","message":"I wonder if there is a story for this somewhere...\n\nBasically, sometimes there are extra ports that get left around because of neutron/nova failures, or if our process gets interrupted for some reason. This often happens in cases where something bad happens in the middle of a flow and we have to revert (or a process is killed mid-flow) and our revert just doesn\u0027t do a perfect job of cleaning up things in external services, because it\u0027s hard to predict exactly what the state will be when we get failures from them.\nWhen things are in this broken state, deleting the LB will fail and you\u0027ll get a LB stuck forever in ERROR that would need direct operator intervention (mucking with the DB and nova manually).\nThis is insurance for those cases.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"}],"octavia/network/drivers/neutron/allowed_address_pairs.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3cd51530f0aee78a1b3b0da93019bbc51d20ba00","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.debug(\u0027Deleting extra port on SG: %s\u0027, port_id)"},{"line_number":283,"context_line":"                            self.neutron_client.delete_port(port_id)"},{"line_number":284,"context_line":"                        except Exception:"},{"line_number":285,"context_line":"                            LOG.debug(\u0027Failed to delete extra port on SG: %s\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9dbf25_5c9fb902","line":282,"range":{"start_line":282,"start_character":32,"end_line":282,"end_character":37},"updated":"2018-03-02 15:54:43.000000000","message":"This is severe enough it\u0027s at least warning, if not ERROR.  Dude, you are deleting ports.","commit_id":"763d6433b0c4b8e6e874ede6c0f7218e9bceccb4"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"a8a4b1360de7310c95eac66e5aebf4e544e5ecd5","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                except base.DeallocateVIPException:"},{"line_number":277,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":278,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_44bf4bd0","line":279,"range":{"start_line":279,"start_character":20,"end_line":279,"end_character":44},"updated":"2018-03-15 09:10:40.000000000","message":"This could be troublesome in case users associate their own ports to this security group, i.e. ports not managed by Octavia. Expectations are that they\u0027ll not do that, though.","commit_id":"f95ec1ea10c4806c916e0e6334b7f6703a6d2617"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"4135c0f10805bdf10415e693c0272c20dde7cb86","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                except base.DeallocateVIPException:"},{"line_number":277,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":278,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_4b750ef9","line":279,"range":{"start_line":279,"start_character":20,"end_line":279,"end_character":44},"in_reply_to":"df7087c5_44bf4bd0","updated":"2018-03-15 14:45:39.000000000","message":"Note that we actually specifically look for ones that are owned by *our project* in `_get_ports_by_security_group`, so user ports would be safe, though we\u0027d then still fail to delete the SG. :/","commit_id":"f95ec1ea10c4806c916e0e6334b7f6703a6d2617"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"a8a4b1360de7310c95eac66e5aebf4e544e5ecd5","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"},{"line_number":283,"context_line":"                                        port_id)"},{"line_number":284,"context_line":"                            self.neutron_client.delete_port(port_id)"},{"line_number":285,"context_line":"                        except Exception:"},{"line_number":286,"context_line":"                            LOG.warning("},{"line_number":287,"context_line":"                                \u0027Failed to delete extra port on SG: %s\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_24ec978d","line":284,"range":{"start_line":284,"start_character":28,"end_line":284,"end_character":68},"updated":"2018-03-15 09:10:40.000000000","message":"neutronclient supports bulk deletes, but pity that it\u0027s handled on client side only not server otherwise we could speedup things here.","commit_id":"f95ec1ea10c4806c916e0e6334b7f6703a6d2617"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"fff47555313907e3e78ee2f2a4f99070ba585db3","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":278,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"},{"line_number":283,"context_line":"                                        port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_c247cc76","line":280,"updated":"2018-04-02 22:43:30.000000000","message":"we should probably look at the device owner and not necessarily blindly delete ports. Also here we delete ports as opposed to remove the from the sec grp... way do we try removing in the first place?","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"3515fdeb1e156887a0e4a9907f29f8fd41973617","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":278,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"},{"line_number":283,"context_line":"                                        port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_c9a92c90","line":280,"in_reply_to":"bf659307_c247cc76","updated":"2018-04-03 08:11:06.000000000","message":"I was also concerned about this issue. But I looked comments to patchset 3 and I saw there the answer to this question. AFAIU in `_get_ports_by_security_group` we search ports by the service (Octavia\u0027s) project and this protects client\u0027s ports.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"b1d1efa526fdc8338c3e7e0407f8d60eadeb250d","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":278,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":279,"context_line":"                    for port in extra_ports:"},{"line_number":280,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":281,"context_line":"                        try:"},{"line_number":282,"context_line":"                            LOG.warning(\u0027Deleting extra port on SG: %s\u0027,"},{"line_number":283,"context_line":"                                        port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_418ba4c1","line":280,"in_reply_to":"bf659307_c9a92c90","updated":"2018-04-03 17:56:13.000000000","message":"Correct, the only ports we will delete here are ports that are owned by the Octavia project. User ports are safe.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"133c7ffb47627b97656aa643bb40851b4b0fb29b","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027Failed to delete extra port on SG: %s\u0027,"},{"line_number":288,"context_line":"                                port_id)"},{"line_number":289,"context_line":"                    # Now try it again"},{"line_number":290,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def deallocate_vip(self, vip):"},{"line_number":293,"context_line":"        \"\"\"Delete the vrrp_port (instance port) in case nova didn\u0027t"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_207b60f5","line":290,"range":{"start_line":290,"start_character":20,"end_line":290,"end_character":63},"updated":"2018-03-29 10:32:40.000000000","message":"nit: If extra_ports \u003d\u003d [] in line 278, why do we try to delete the security group again? Probably, the best way check here that some ports existed. Yes, it\u0027s anomaly situation, but I think it might be.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"8285038c271b503bd9ed6143b3f6477069514d62","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027Failed to delete extra port on SG: %s\u0027,"},{"line_number":288,"context_line":"                                port_id)"},{"line_number":289,"context_line":"                    # Now try it again"},{"line_number":290,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def deallocate_vip(self, vip):"},{"line_number":293,"context_line":"        \"\"\"Delete the vrrp_port (instance port) in case nova didn\u0027t"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_4635418e","line":290,"range":{"start_line":290,"start_character":20,"end_line":290,"end_character":63},"in_reply_to":"bf659307_207b60f5","updated":"2018-03-29 19:35:00.000000000","message":"Honestly, because it\u0027s worth just giving it another try. Sometimes neutron has some dumb timing issues so there is a non-zero chance that just *doing it again* even if we didn\u0027t have to adjust anything might simply resolve the issue. Also, because this is all async and it doesn\u0027t hurt to at least give it a shot even if it might fail. I don\u0027t think it\u0027s worth \"fixing\".","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"3515fdeb1e156887a0e4a9907f29f8fd41973617","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                \u0027Failed to delete extra port on SG: %s\u0027,"},{"line_number":288,"context_line":"                                port_id)"},{"line_number":289,"context_line":"                    # Now try it again"},{"line_number":290,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def deallocate_vip(self, vip):"},{"line_number":293,"context_line":"        \"\"\"Delete the vrrp_port (instance port) in case nova didn\u0027t"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_89ced460","line":290,"range":{"start_line":290,"start_character":20,"end_line":290,"end_character":63},"in_reply_to":"bf659307_4635418e","updated":"2018-04-03 08:11:06.000000000","message":"It\u0027s abnormal process, but you\u0027re right.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"a6e3dfa215a2e8b7c42efd219c407646b4c70637","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":272,"context_line":"                except base.DeallocateVIPException:"},{"line_number":273,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":274,"context_line":"                    # This function only returns ports owned by Octavia!"},{"line_number":275,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":276,"context_line":"                    for port in extra_ports:"},{"line_number":277,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf659307_9b57eb01","line":274,"updated":"2018-04-13 22:30:21.000000000","message":"Log that we are in the exception flow at info","commit_id":"d10ffee52201dfb6fe82bfaaccd68da4888d42f7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"67eab6dfe120f0c41dbba227ce93f766e8b1e7ee","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":272,"context_line":"                except base.DeallocateVIPException:"},{"line_number":273,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":274,"context_line":"                    # This function only returns ports owned by Octavia!"},{"line_number":275,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"},{"line_number":276,"context_line":"                    for port in extra_ports:"},{"line_number":277,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f6a8fd7_73e68419","line":274,"in_reply_to":"bf659307_9b57eb01","updated":"2018-04-16 21:30:12.000000000","message":"Done","commit_id":"d10ffee52201dfb6fe82bfaaccd68da4888d42f7"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"80d3668ac7b05cb0f5b4491890db3a5d71b77961","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                    for port in extra_ports:"},{"line_number":279,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":280,"context_line":"                        try:"},{"line_number":281,"context_line":"                            LOG.warning(\u0027Deleting extra port on security \u0027"},{"line_number":282,"context_line":"                                        \u0027group: %s\u0027, port_id)"},{"line_number":283,"context_line":"                            self.neutron_client.delete_port(port_id)"},{"line_number":284,"context_line":"                        except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_99cc978a","line":281,"updated":"2018-04-16 23:20:17.000000000","message":"ok, wish it would be port %s on security group %s -","commit_id":"6399dc7057b809e2b12e2e902b3e9c4d80c6f4cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"df6eaf9b843054fa9ac7f0c37d80b34369f89974","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                    for port in extra_ports:"},{"line_number":279,"context_line":"                        port_id \u003d port.get(\u0027id\u0027)"},{"line_number":280,"context_line":"                        try:"},{"line_number":281,"context_line":"                            LOG.warning(\u0027Deleting extra port on security \u0027"},{"line_number":282,"context_line":"                                        \u0027group: %s\u0027, port_id)"},{"line_number":283,"context_line":"                            self.neutron_client.delete_port(port_id)"},{"line_number":284,"context_line":"                        except Exception:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_2f099430","line":281,"in_reply_to":"9f6a8fd7_99cc978a","updated":"2018-04-26 20:42:50.000000000","message":"OK you\u0027re right, it could be that. The sec-grp IS right above this... But that wording is clearer.","commit_id":"6399dc7057b809e2b12e2e902b3e9c4d80c6f4cf"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"80d3668ac7b05cb0f5b4491890db3a5d71b77961","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                            self.neutron_client.delete_port(port_id)"},{"line_number":284,"context_line":"                        except Exception:"},{"line_number":285,"context_line":"                            LOG.warning(\u0027Failed to delete extra port on \u0027"},{"line_number":286,"context_line":"                                        \u0027security group: %s\u0027, port_id)"},{"line_number":287,"context_line":"                    # Now try it again"},{"line_number":288,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_39c9cb77","line":286,"updated":"2018-04-16 23:20:17.000000000","message":"same","commit_id":"6399dc7057b809e2b12e2e902b3e9c4d80c6f4cf"},{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"f7adf93e2bfe0715c8744ba59d14dd6ee2072db5","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                    self._delete_vip_security_group(sec_grp_id)"},{"line_number":272,"context_line":"                except base.DeallocateVIPException:"},{"line_number":273,"context_line":"                    # Try to delete any leftover ports on this security group"},{"line_number":274,"context_line":"                    # This function only returns ports owned by Octavia!"},{"line_number":275,"context_line":"                    LOG.warning(\u0027Failed to delete security group on first \u0027"},{"line_number":276,"context_line":"                                \u0027pass: %s\u0027, sec_grp_id)"},{"line_number":277,"context_line":"                    extra_ports \u003d self._get_ports_by_security_group(sec_grp_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f7c97a3_1bf0a3fd","line":274,"range":{"start_line":274,"start_character":35,"end_line":274,"end_character":71},"updated":"2018-06-03 20:53:50.000000000","message":"Since the security group got create by Octavia, this is true.\nThat being said, the wording here might mislead a bit.\nThe port list that _get_ports_by_security_group() return is not filtered by device owner \u003d\u003d Octavia and therefore *any* port in that security group will eventually be deleted.\nIMO, this by itself is not an issue (users are not supposed to fiddle with that security group, to begin with), but I think we should change the \"owned by Octavia\" wording.","commit_id":"481ed45aa62e672b1e1146005d0af9c236de585f"}],"octavia/network/drivers/neutron/base.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3cd51530f0aee78a1b3b0da93019bbc51d20ba00","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            raise base.NetworkException(str(e))"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _get_ports_by_security_group(self, sec_grp_id):"},{"line_number":121,"context_line":"        all_ports \u003d self.neutron_client.list_ports(project\u003dself.project_id)"},{"line_number":122,"context_line":"        filtered_ports \u003d []"},{"line_number":123,"context_line":"        for port in all_ports.get(\u0027ports\u0027, []):"},{"line_number":124,"context_line":"            if sec_grp_id in port.get(\u0027security_groups\u0027, []):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f9dbf25_5cb259e8","line":121,"updated":"2018-03-02 15:54:43.000000000","message":"I might like to see this list in a DEBUG log as I\u0027m always curious to see *what* is blocking this.\nPlus, this is pulling back EVERY port in our project, which is at least two per AMP in the whole project. There is no way to go from SG to the ports?","commit_id":"763d6433b0c4b8e6e874ede6c0f7218e9bceccb4"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"fff47555313907e3e78ee2f2a4f99070ba585db3","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            raise base.NetworkException(str(e))"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _get_ports_by_security_group(self, sec_grp_id):"},{"line_number":121,"context_line":"        all_ports \u003d self.neutron_client.list_ports(project\u003dself.project_id)"},{"line_number":122,"context_line":"        filtered_ports \u003d []"},{"line_number":123,"context_line":"        for port in all_ports.get(\u0027ports\u0027, []):"},{"line_number":124,"context_line":"            if sec_grp_id in port.get(\u0027security_groups\u0027, []):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_e21c5079","line":121,"updated":"2018-04-02 22:43:30.000000000","message":"can\u0027t we search somehow by security groups? I thought I saw that in the openstack client -- also how do w handle paging if we end up in a strange place with tons of ports? At least add a comment saying that we ignore paging since we don\u0027t expect that many ports...","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"b1d1efa526fdc8338c3e7e0407f8d60eadeb250d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            raise base.NetworkException(str(e))"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _get_ports_by_security_group(self, sec_grp_id):"},{"line_number":121,"context_line":"        all_ports \u003d self.neutron_client.list_ports(project\u003dself.project_id)"},{"line_number":122,"context_line":"        filtered_ports \u003d []"},{"line_number":123,"context_line":"        for port in all_ports.get(\u0027ports\u0027, []):"},{"line_number":124,"context_line":"            if sec_grp_id in port.get(\u0027security_groups\u0027, []):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf659307_01912cf1","line":121,"in_reply_to":"bf659307_e21c5079","updated":"2018-04-03 17:56:13.000000000","message":"No, we can\u0027t, unfortunately. I\u0027ve looked into this quite a bit, as I thought the same originally. I would love to be proven wrong, but I did do quite a bit of research here. Feel free to do your own.\n\nAs for pagination, the clients handle paging with the generator object they return to us, so it\u0027s not ignored.","commit_id":"0e0a39acadc43fcc53a5403cd765fb89d81b1fb1"}]}
