)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"698061993ba41e8c67b4780173056c40ae3f3346","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add \"test_port_forwardings_negative\" module"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The moudle currently contains the following tests:"},{"line_number":10,"context_line":"1. Mapping the same fip + port to different destinations"},{"line_number":11,"context_line":"2. Mapping fip + different ports to the same destination"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ff570b3c_4be1decf","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":10},"updated":"2020-06-05 09:33:15.000000000","message":"nit: module","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"071a1cfae03d6fbe9080d05b717b88d20f09d68f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add \"test_port_forwardings_negative\" module"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The moudle currently contains the following tests:"},{"line_number":10,"context_line":"1. Mapping the same fip + port to different destinations"},{"line_number":11,"context_line":"2. Mapping fip + different ports to the same destination"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ff570b3c_366e5c96","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":10},"updated":"2020-06-09 11:52:03.000000000","message":"nit: module","commit_id":"2457a889bb2e13e4d1084d1b1d132b4f06228dc4"}],"neutron_tempest_plugin/api/test_port_forwarding_negative.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6b8dd62af8f31633e6aee9176bb51e4118209f67","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"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":"from tempest.common import utils"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_93492434","line":15,"updated":"2020-05-26 12:45:49.000000000","message":"pep8: F401 \u0027utils\u0027 imported but unused","commit_id":"6820418ad510b5d4ce720564fc01cf0e3c41501d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"453f5277f51fe8546d02703669e4363b6592b490","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"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":"from tempest.common import utils"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_c41bcd70","line":15,"updated":"2020-05-26 16:08:49.000000000","message":"pep8: F401 \u0027utils\u0027 imported but unused","commit_id":"6820418ad510b5d4ce720564fc01cf0e3c41501d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6b8dd62af8f31633e6aee9176bb51e4118209f67","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":"from tempest.lib import exceptions"},{"line_number":20,"context_line":"from neutron_tempest_plugin.api import base"},{"line_number":21,"context_line":"from neutron_tempest_plugin import config"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_73461024","line":20,"updated":"2020-05-26 12:45:49.000000000","message":"pep8: H306  imports not in alphabetical order (tempest.lib.exceptions, neutron_tempest_plugin.api.base)","commit_id":"6820418ad510b5d4ce720564fc01cf0e3c41501d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"453f5277f51fe8546d02703669e4363b6592b490","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":"from tempest.lib import exceptions"},{"line_number":20,"context_line":"from neutron_tempest_plugin.api import base"},{"line_number":21,"context_line":"from neutron_tempest_plugin import config"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_a4185975","line":20,"updated":"2020-05-26 16:08:49.000000000","message":"pep8: H306  imports not in alphabetical order (tempest.lib.exceptions, neutron_tempest_plugin.api.base)","commit_id":"6820418ad510b5d4ce720564fc01cf0e3c41501d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"698061993ba41e8c67b4780173056c40ae3f3346","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u002763c0d406-99d5-11ea-bb37-0242ac130002\u0027)"},{"line_number":42,"context_line":"    def test_mapping_the_same_fip_and_port_to_different_destinations(self):"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        port1 \u003d self.create_port(self.network)"},{"line_number":45,"context_line":"        port2 \u003d self.create_port(self.network)"},{"line_number":46,"context_line":"        fip_for_pf \u003d self.create_floatingip()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_cbccce62","line":43,"updated":"2020-06-05 09:33:15.000000000","message":"nit: This whitespace seems unnecessary","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"698061993ba41e8c67b4780173056c40ae3f3346","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            exceptions.BadRequest,"},{"line_number":57,"context_line":"            self.create_port_forwarding,"},{"line_number":58,"context_line":"            fip_for_pf[\u0027id\u0027],"},{"line_number":59,"context_line":"            internal_port_id\u003dport2[\u0027id\u0027],"},{"line_number":60,"context_line":"            internal_ip_address\u003dport2[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027],"},{"line_number":61,"context_line":"            internal_port\u003d3333, external_port\u003d2222,"},{"line_number":62,"context_line":"            protocol\u003d\"tcp\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_2b7e2aae","line":61,"range":{"start_line":59,"start_character":12,"end_line":61,"end_character":51},"updated":"2020-06-05 09:33:15.000000000","message":"Perhaps I misunderstand something but as I see here\n(neutron)port is not the same (port1 originally and port2 in 2n case) so the testname is not fully correct","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"698061993ba41e8c67b4780173056c40ae3f3346","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":65,"context_line":"    @decorators.idempotent_id(\u00270c229a4c-9f28-11ea-bb37-0242ac130002\u0027)"},{"line_number":66,"context_line":"    def test_mapping_different_ports_to_the_same_destination(self):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        port \u003d self.create_port(self.network)"},{"line_number":69,"context_line":"        fip_for_pf \u003d self.create_floatingip()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_0b524635","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":60},"updated":"2020-06-05 09:33:15.000000000","message":"Here as I see you test\nmapping of same port to different destination, am I wrong?","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":30920,"name":"Noy fridman","email":"nfridman@redhat.com","username":"nfridman"},"change_message_id":"dd86c5aa9ccede26b2b684b4bc067dedb1b3c63f","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":65,"context_line":"    @decorators.idempotent_id(\u00270c229a4c-9f28-11ea-bb37-0242ac130002\u0027)"},{"line_number":66,"context_line":"    def test_mapping_different_ports_to_the_same_destination(self):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        port \u003d self.create_port(self.network)"},{"line_number":69,"context_line":"        fip_for_pf \u003d self.create_floatingip()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_2db90ccb","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":60},"in_reply_to":"ff570b3c_0b524635","updated":"2020-06-07 08:48:41.000000000","message":"Hi!\nThanks for your review.\nI agree with you that the test name is not clear enough.\n\nThe test checks that mapping of fip + 2 different external port numbers to the same destination is forbidden.\n\nI tried to change the test name, please let me know if you think that its enough or perhaps its better to add a description\n\nThanks!","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"698061993ba41e8c67b4780173056c40ae3f3346","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":65,"context_line":"    @decorators.idempotent_id(\u00270c229a4c-9f28-11ea-bb37-0242ac130002\u0027)"},{"line_number":66,"context_line":"    def test_mapping_different_ports_to_the_same_destination(self):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        port \u003d self.create_port(self.network)"},{"line_number":69,"context_line":"        fip_for_pf \u003d self.create_floatingip()"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_2bd8ea1b","line":67,"updated":"2020-06-05 09:33:15.000000000","message":"ditto","commit_id":"599ffb9e9cca1e00bd698957c445464aa8e66935"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"068502632d83ffa982955d3a1da40f37659a7f65","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u002763c0d406-99d5-11ea-bb37-0242ac130002\u0027)"},{"line_number":42,"context_line":"    def test_mapping_same_fip_and_external_port_to_different_destinations(self):"},{"line_number":43,"context_line":"        port1 \u003d self.create_port(self.network)"},{"line_number":44,"context_line":"        port2 \u003d self.create_port(self.network)"},{"line_number":45,"context_line":"        fip_for_pf \u003d self.create_floatingip()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff570b3c_4d5c407c","line":42,"updated":"2020-06-07 11:07:27.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"79de61265f2ae63f3fd877167609f4da80d60f2c"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"8bdfc6608f4cb387c3d5f5faf941cae4060e13ef","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortForwardingNegativeTestJSON(base.BaseNetworkTest):"},{"line_number":26,"context_line":"    required_extensions \u003d [\u0027router\u0027, \u0027floating-ip-port-forwarding\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @classmethod"},{"line_number":29,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_3daf542c","line":26,"range":{"start_line":26,"start_character":27,"end_line":26,"end_character":35},"updated":"2020-06-09 18:08:11.000000000","message":"In a very near future, this test should be used against ml2/OVN! One caveat in that case is that instead of \u0027router\u0027, the extension should be \u0027ovn-router\u0027.\nref: https://review.opendev.org/#/c/723863/30/neutron/cmd/ovn/neutron_ovn_db_sync_util.py\nCan we have this test written so that is configurable?","commit_id":"2457a889bb2e13e4d1084d1b1d132b4f06228dc4"},{"author":{"_account_id":11952,"name":"Flavio Fernandes","email":"flavio@flaviof.com","username":"ffernand"},"change_message_id":"c0572d56f1e419873e6016ade5558bd375fcd38d","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortForwardingNegativeTestJSON(base.BaseNetworkTest):"},{"line_number":26,"context_line":"    required_extensions \u003d [\u0027router\u0027, \u0027floating-ip-port-forwarding\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @classmethod"},{"line_number":29,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_917c2e84","line":26,"range":{"start_line":26,"start_character":27,"end_line":26,"end_character":35},"in_reply_to":"bf51134e_0b9ab861","updated":"2020-06-20 19:13:35.000000000","message":"Sounds good to me! I will definitely be looking into this in the near future and any changes needed -- if any -- can be done in a separate Gerrit.\nI also realize now that \u0027required_extensions\u0027 and \u0027service_plugin\u0027 are not the same thing. Apologies for the confusion.","commit_id":"2457a889bb2e13e4d1084d1b1d132b4f06228dc4"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"0fe3d17946ad2b4d94d61e43418e99f9f1e352af","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortForwardingNegativeTestJSON(base.BaseNetworkTest):"},{"line_number":26,"context_line":"    required_extensions \u003d [\u0027router\u0027, \u0027floating-ip-port-forwarding\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @classmethod"},{"line_number":29,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_0b9ab861","line":26,"range":{"start_line":26,"start_character":27,"end_line":26,"end_character":35},"in_reply_to":"ff570b3c_3daf542c","updated":"2020-06-19 19:57:26.000000000","message":"Right, this is an option. Another option is simply to have an OVN test class that inherit from this class and changes the extension.\n\nIn any case, I think this can be done in a separated patch (unless the author is willing to accommodate it into this patch).","commit_id":"2457a889bb2e13e4d1084d1b1d132b4f06228dc4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7654835bd420622a4849581270b82054ccbd2003","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class PortForwardingNegativeTestJSON(base.BaseNetworkTest):"},{"line_number":26,"context_line":"    required_extensions \u003d [\u0027router\u0027, \u0027floating-ip-port-forwarding\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @classmethod"},{"line_number":29,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_f64bfc55","line":26,"range":{"start_line":26,"start_character":27,"end_line":26,"end_character":35},"in_reply_to":"ff570b3c_3daf542c","updated":"2020-06-18 23:06:51.000000000","message":"Seems to be a reasonable request","commit_id":"2457a889bb2e13e4d1084d1b1d132b4f06228dc4"}]}
