)]}'
{"neutron_tempest_plugin/api/base.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2ab646e523033f761cecca0eef0c63f278240935","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        return body[\u0027port\u0027]"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    @classmethod"},{"line_number":577,"context_line":"    def delete_port(cls, port):"},{"line_number":578,"context_line":"        \"\"\"Wrapper utility that deletes a test port.\"\"\""},{"line_number":579,"context_line":"        cls.client.delete_port(port[\u0027id\u0027])"},{"line_number":580,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f3d94228","line":577,"updated":"2020-10-06 12:34:59.000000000","message":"why You didn\u0027t add optional \"client\" argument here?","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"b98e3d9a70ee29296b342d6b2239f45912b0c111","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        return body[\u0027port\u0027]"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    @classmethod"},{"line_number":577,"context_line":"    def delete_port(cls, port):"},{"line_number":578,"context_line":"        \"\"\"Wrapper utility that deletes a test port.\"\"\""},{"line_number":579,"context_line":"        cls.client.delete_port(port[\u0027id\u0027])"},{"line_number":580,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_878a40b9","line":577,"in_reply_to":"9f560f44_bc62f713","updated":"2020-10-12 14:37:49.000000000","message":"Turns out we no longer need this, based on other review feedback. Removing it, as less is more! ;)","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"ee0fc4aea456ef234ae69f1a389c4484371c204e","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        return body[\u0027port\u0027]"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    @classmethod"},{"line_number":577,"context_line":"    def delete_port(cls, port):"},{"line_number":578,"context_line":"        \"\"\"Wrapper utility that deletes a test port.\"\"\""},{"line_number":579,"context_line":"        cls.client.delete_port(port[\u0027id\u0027])"},{"line_number":580,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_bc62f713","line":577,"in_reply_to":"9f560f44_f3d94228","updated":"2020-10-06 14:16:53.000000000","message":"Hm... good point. Will do.","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"}],"neutron_tempest_plugin/api/test_port_forwarding_negative.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a56d2238219eb26a2cd255d86f00ddd3d4b9c7e7","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            exceptions.BadRequest,"},{"line_number":104,"context_line":"            self.update_port_forwarding,"},{"line_number":105,"context_line":"            fip_for_pf[\u0027id\u0027], pf[\u0027id\u0027], external_port\u003d108343)"},{"line_number":106,"context_line":"        self.assertIn(\u0027Invalid input for external_port\u0027,"},{"line_number":107,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_ecc46a62","line":106,"range":{"start_line":106,"start_character":23,"end_line":106,"end_character":54},"updated":"2020-10-12 14:34:14.000000000","message":"Perhaps it\u0027s better to check on error code rather than message. The message could be different with other non-english localization.","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"c7821a29156919b5570eb07eeb90de7cf27e2a13","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            exceptions.BadRequest,"},{"line_number":104,"context_line":"            self.update_port_forwarding,"},{"line_number":105,"context_line":"            fip_for_pf[\u0027id\u0027], pf[\u0027id\u0027], external_port\u003d108343)"},{"line_number":106,"context_line":"        self.assertIn(\u0027Invalid input for external_port\u0027,"},{"line_number":107,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_e71645f2","line":106,"range":{"start_line":106,"start_character":23,"end_line":106,"end_character":54},"in_reply_to":"9f560f44_0cdf1e0c","updated":"2020-10-12 15:29:36.000000000","message":"Done","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"b98e3d9a70ee29296b342d6b2239f45912b0c111","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            exceptions.BadRequest,"},{"line_number":104,"context_line":"            self.update_port_forwarding,"},{"line_number":105,"context_line":"            fip_for_pf[\u0027id\u0027], pf[\u0027id\u0027], external_port\u003d108343)"},{"line_number":106,"context_line":"        self.assertIn(\u0027Invalid input for external_port\u0027,"},{"line_number":107,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_0cdf1e0c","line":106,"range":{"start_line":106,"start_character":23,"end_line":106,"end_character":54},"in_reply_to":"9f560f44_ecc46a62","updated":"2020-10-12 14:37:49.000000000","message":"good point. will do.","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a56d2238219eb26a2cd255d86f00ddd3d4b9c7e7","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertIn(\u0027Invalid input for internal_port\u0027,"},{"line_number":114,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        pf_params_bad \u003d copy.deepcopy(pf_params)"},{"line_number":117,"context_line":"        pf_params_bad[\u0027internal_port\u0027] \u003d 4444"},{"line_number":118,"context_line":"        pf_params_bad[\u0027external_port\u0027] \u003d 333333"},{"line_number":119,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_ec990a7a","line":116,"updated":"2020-10-12 14:34:14.000000000","message":"Just wondering why do we need to copy if pf_params is no longer used anywhere below?","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"c7821a29156919b5570eb07eeb90de7cf27e2a13","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertIn(\u0027Invalid input for internal_port\u0027,"},{"line_number":114,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        pf_params_bad \u003d copy.deepcopy(pf_params)"},{"line_number":117,"context_line":"        pf_params_bad[\u0027internal_port\u0027] \u003d 4444"},{"line_number":118,"context_line":"        pf_params_bad[\u0027external_port\u0027] \u003d 333333"},{"line_number":119,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_c71181fa","line":116,"in_reply_to":"9f560f44_ac3d522d","updated":"2020-10-12 15:29:36.000000000","message":"Done","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"b98e3d9a70ee29296b342d6b2239f45912b0c111","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertIn(\u0027Invalid input for internal_port\u0027,"},{"line_number":114,"context_line":"                      failure.resp_body[\u0027message\u0027])"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        pf_params_bad \u003d copy.deepcopy(pf_params)"},{"line_number":117,"context_line":"        pf_params_bad[\u0027internal_port\u0027] \u003d 4444"},{"line_number":118,"context_line":"        pf_params_bad[\u0027external_port\u0027] \u003d 333333"},{"line_number":119,"context_line":"        failure \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_ac3d522d","line":116,"in_reply_to":"9f560f44_ec990a7a","updated":"2020-10-12 14:37:49.000000000","message":"good question. I think I was being a bit too purist on that. Let me just use pf_params.","commit_id":"56b3efc1e45be35c6b53803037922b45f529930b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cad50ff2dc14df10ae1207aa80581cb683aa9658","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import copy"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest.lib import decorators"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_b0775c08","line":16,"updated":"2020-10-13 04:39:46.000000000","message":"pep8: F401 \u0027copy\u0027 imported but unused","commit_id":"3d70661959eafe64cebb12a4e96d250c6c052935"}],"neutron_tempest_plugin/api/test_port_forwardings.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2ab646e523033f761cecca0eef0c63f278240935","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.assertIsNotNone(internal_ip_address2)"},{"line_number":199,"context_line":"        self.delete_port(temp_port)"},{"line_number":200,"context_line":"        port[\u0027fixed_ips\u0027].append({\u0027subnet_id\u0027: internal_subnet_id,"},{"line_number":201,"context_line":"                                  \u0027ip_address\u0027: internal_ip_address2})"},{"line_number":202,"context_line":"        port \u003d self.update_port(port, fixed_ips\u003dport[\u0027fixed_ips\u0027])"},{"line_number":203,"context_line":"        forwardings_data \u003d [(4001, internal_ip_address1),"},{"line_number":204,"context_line":"                            (4002, internal_ip_address2)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_560a9c1d","line":201,"updated":"2020-10-06 12:34:59.000000000","message":"why do You need all this strange things to do? Can\u0027t You simply update port by giving just \"subnet_id\" there? Neutron should then allocate additional IP address from the given subnet.","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"b98e3d9a70ee29296b342d6b2239f45912b0c111","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.assertIsNotNone(internal_ip_address2)"},{"line_number":199,"context_line":"        self.delete_port(temp_port)"},{"line_number":200,"context_line":"        port[\u0027fixed_ips\u0027].append({\u0027subnet_id\u0027: internal_subnet_id,"},{"line_number":201,"context_line":"                                  \u0027ip_address\u0027: internal_ip_address2})"},{"line_number":202,"context_line":"        port \u003d self.update_port(port, fixed_ips\u003dport[\u0027fixed_ips\u0027])"},{"line_number":203,"context_line":"        forwardings_data \u003d [(4001, internal_ip_address1),"},{"line_number":204,"context_line":"                            (4002, internal_ip_address2)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_07b8f072","line":201,"in_reply_to":"9f560f44_3ca9c724","updated":"2020-10-12 14:37:49.000000000","message":"Done","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"ee0fc4aea456ef234ae69f1a389c4484371c204e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.assertIsNotNone(internal_ip_address2)"},{"line_number":199,"context_line":"        self.delete_port(temp_port)"},{"line_number":200,"context_line":"        port[\u0027fixed_ips\u0027].append({\u0027subnet_id\u0027: internal_subnet_id,"},{"line_number":201,"context_line":"                                  \u0027ip_address\u0027: internal_ip_address2})"},{"line_number":202,"context_line":"        port \u003d self.update_port(port, fixed_ips\u003dport[\u0027fixed_ips\u0027])"},{"line_number":203,"context_line":"        forwardings_data \u003d [(4001, internal_ip_address1),"},{"line_number":204,"context_line":"                            (4002, internal_ip_address2)]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_3ca9c724","line":201,"in_reply_to":"9f560f44_560a9c1d","updated":"2020-10-06 14:16:53.000000000","message":"oh... did not know that! Will do. thanks!","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"}],"neutron_tempest_plugin/scenario/test_port_forwardings.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2ab646e523033f761cecca0eef0c63f278240935","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                    server[0][\u0027id\u0027],"},{"line_number":188,"context_line":"                    server[0][\u0027port_forwarding_tcp\u0027][\u0027external_port\u0027])))"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @test.unstable_test(\"bug 1896735\")"},{"line_number":191,"context_line":"    @decorators.idempotent_id(\u00276d05b1b2-6109-4c30-b402-1503f4634acb\u0027)"},{"line_number":192,"context_line":"    def test_port_forwarding_editing_and_deleting_udp_rule(self):"},{"line_number":193,"context_line":"        test_ext_port \u003d 3344"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_d69a2cc2","line":190,"updated":"2020-10-06 12:34:59.000000000","message":"Hopefully patch https://review.opendev.org/#/c/756107/ will make those tests to be stable again","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"ee0fc4aea456ef234ae69f1a389c4484371c204e","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                    server[0][\u0027id\u0027],"},{"line_number":188,"context_line":"                    server[0][\u0027port_forwarding_tcp\u0027][\u0027external_port\u0027])))"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    @test.unstable_test(\"bug 1896735\")"},{"line_number":191,"context_line":"    @decorators.idempotent_id(\u00276d05b1b2-6109-4c30-b402-1503f4634acb\u0027)"},{"line_number":192,"context_line":"    def test_port_forwarding_editing_and_deleting_udp_rule(self):"},{"line_number":193,"context_line":"        test_ext_port \u003d 3344"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_1c6a03ec","line":190,"in_reply_to":"9f560f44_d69a2cc2","updated":"2020-10-06 14:16:53.000000000","message":"yeah! cool beans.","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2ab646e523033f761cecca0eef0c63f278240935","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    server[0][\u0027id\u0027],"},{"line_number":245,"context_line":"                    server[0][\u0027port_forwarding_udp\u0027][\u0027external_port\u0027])))"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @test.unstable_test(\"bug 1896735\")"},{"line_number":248,"context_line":"    @decorators.idempotent_id(\u00275971881d-06a0-459e-b636-ce5d1929e2d4\u0027)"},{"line_number":249,"context_line":"    def test_port_forwarding_to_2_fixed_ips(self):"},{"line_number":250,"context_line":"        port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_36a288fd","line":247,"updated":"2020-10-06 12:34:59.000000000","message":"same here","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"ee0fc4aea456ef234ae69f1a389c4484371c204e","unresolved":false,"context_lines":[{"line_number":244,"context_line":"                    server[0][\u0027id\u0027],"},{"line_number":245,"context_line":"                    server[0][\u0027port_forwarding_udp\u0027][\u0027external_port\u0027])))"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    @test.unstable_test(\"bug 1896735\")"},{"line_number":248,"context_line":"    @decorators.idempotent_id(\u00275971881d-06a0-459e-b636-ce5d1929e2d4\u0027)"},{"line_number":249,"context_line":"    def test_port_forwarding_to_2_fixed_ips(self):"},{"line_number":250,"context_line":"        port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_3c6ee7fd","line":247,"in_reply_to":"9f560f44_36a288fd","updated":"2020-10-06 14:16:53.000000000","message":"ack.","commit_id":"2c13cd9351a5918182c32a0fcf8a5a059caf2902"}]}
