)]}'
{"neutron/tests/tempest/scenario/base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c9596093a2ce9786aeeb617b4a1b4aceda4ebe7","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        self.assertTrue(self._check_remote_connectivity("},{"line_number":279,"context_line":"            source, dest, should_succeed, nic, mtu, fragmentation))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def ping_ip_address(self, ip_address, should_succeed\u003dTrue,"},{"line_number":282,"context_line":"                        ping_timeout\u003dNone):"},{"line_number":283,"context_line":"        timeout \u003d ping_timeout or CONF.validation.ping_timeout"},{"line_number":284,"context_line":"        cmd \u003d [\u0027ping\u0027, \u0027-c1\u0027, \u0027-w1\u0027, ip_address]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_a31ca8c1","line":281,"updated":"2017-08-31 21:07:25.000000000","message":"I believe it\u0027s a copy paste from http://git.openstack.org/cgit/openstack/tempest/tree/tempest/scenario/manager.py#n530\n\nPlease mention it here so that we know the origin of the code and if there are bugs/need to enhance, we can check the latest version of the method from tempest.\n\nbtw it\u0027s not an exact copy, you don\u0027t have mtu logic here. Is it intended?","commit_id":"8b66a245fc115f95ed5d14c4277bf8c66eebc7d7"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"609d20f5054a7523b686549664712f312e684074","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        self.assertTrue(self._check_remote_connectivity("},{"line_number":279,"context_line":"            source, dest, should_succeed, nic, mtu, fragmentation))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def ping_ip_address(self, ip_address, should_succeed\u003dTrue,"},{"line_number":282,"context_line":"                        ping_timeout\u003dNone, mtu\u003dNone):"},{"line_number":283,"context_line":"        # the code is taken from tempest/scenario/manager.py in tempest git"},{"line_number":284,"context_line":"        timeout \u003d ping_timeout or CONF.validation.ping_timeout"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_3498aa68","line":281,"updated":"2017-09-05 08:51:06.000000000","message":"Nit: This could be a static method","commit_id":"951d1cb14210285160be8c303755efda26563ec6"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"92ffa17cb5e29043a4b4350a79dfaa0121f8ad36","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        self.assertTrue(self._check_remote_connectivity("},{"line_number":279,"context_line":"            source, dest, should_succeed, nic, mtu, fragmentation))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def ping_ip_address(self, ip_address, should_succeed\u003dTrue,"},{"line_number":282,"context_line":"                        ping_timeout\u003dNone, mtu\u003dNone):"},{"line_number":283,"context_line":"        # the code is taken from tempest/scenario/manager.py in tempest git"},{"line_number":284,"context_line":"        timeout \u003d ping_timeout or CONF.validation.ping_timeout"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_5707b8ca","line":281,"in_reply_to":"7f287b81_3498aa68","updated":"2017-09-05 11:11:53.000000000","message":"I wanted to keep it aligned with the tempest code, as it\u0027s only copy/paste.\nDoes it makes sense to change it anyway?","commit_id":"951d1cb14210285160be8c303755efda26563ec6"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a658a16454fe240f42941e6101420d5c560edf40","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        self.assertTrue(self._check_remote_connectivity("},{"line_number":279,"context_line":"            source, dest, should_succeed, nic, mtu, fragmentation))"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    def ping_ip_address(self, ip_address, should_succeed\u003dTrue,"},{"line_number":282,"context_line":"                        ping_timeout\u003dNone, mtu\u003dNone):"},{"line_number":283,"context_line":"        # the code is taken from tempest/scenario/manager.py in tempest git"},{"line_number":284,"context_line":"        timeout \u003d ping_timeout or CONF.validation.ping_timeout"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_0880ed45","line":281,"in_reply_to":"7f287b81_5707b8ca","updated":"2017-09-05 11:16:04.000000000","message":"imho yes, important is the body of the method","commit_id":"951d1cb14210285160be8c303755efda26563ec6"}],"neutron/tests/tempest/scenario/test_default_sec_grp.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c9596093a2ce9786aeeb617b4a1b4aceda4ebe7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            self.os_primary.network_client.list_security_groups()["},{"line_number":71,"context_line":"                \u0027security_groups\u0027][0][\u0027id\u0027]"},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.check_connectivity(fips[0][\u0027floating_ip_address\u0027],"},{"line_number":75,"context_line":"                                CONF.validation.image_ssh_user,"},{"line_number":76,"context_line":"                                self.keypair[\u0027private_key\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_a34a68a9","line":73,"updated":"2017-08-31 21:07:25.000000000","message":"nit: you probably should remove this newline and add one before line 77 to maintain logical sections","commit_id":"8b66a245fc115f95ed5d14c4277bf8c66eebc7d7"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8c9596093a2ce9786aeeb617b4a1b4aceda4ebe7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            server_ssh_clients[0], fips[1][\u0027fixed_ip_address\u0027])"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        # check icmp connectivity from VM to external network"},{"line_number":87,"context_line":"        subnet \u003d self.os_admin.network_client.list_subnets("},{"line_number":88,"context_line":"            network_id\u003dCONF.network.public_network_id)[\u0027subnets\u0027]"},{"line_number":89,"context_line":"        ext_net_ip \u003d subnet[0][\u0027gateway_ip\u0027]"},{"line_number":90,"context_line":"        self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_e31f506e","line":87,"updated":"2017-08-31 21:07:25.000000000","message":"you pick first subnet, but it can be ipv6, and it seems that cirros doesn\u0027t correctly configure the stack, so it fails to reach the network:\n\nhttp://logs.openstack.org/83/493883/3/check/gate-tempest-dsvm-neutron-dvr-multinode-scenario-ubuntu-xenial-nv/8f68676/logs/tempest.txt.gz#_2017-08-30_08_40_50_863\n\nI think you want to filter subnets with ip_version\u003d4.","commit_id":"8b66a245fc115f95ed5d14c4277bf8c66eebc7d7"}],"neutron/tests/tempest/scenario/test_security_groups.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e0bc22f37caade87c3a4d7c87ba780f8f0888b20","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                key_name\u003dself.keypair[\u0027name\u0027],"},{"line_number":47,"context_line":"                networks\u003d[{\u0027uuid\u0027: self.network[\u0027id\u0027]}]))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"            waiters.wait_for_server_status("},{"line_number":50,"context_line":"                self.os_primary.servers_client, servers[i][\u0027server\u0027][\u0027id\u0027],"},{"line_number":51,"context_line":"                constants.SERVER_STATUS_ACTIVE)"},{"line_number":52,"context_line":"            port \u003d self.client.list_ports("},{"line_number":53,"context_line":"                network_id\u003dself.network[\u0027id\u0027], device_id\u003dservers[i][\u0027server\u0027]["},{"line_number":54,"context_line":"                    \u0027id\u0027])[\u0027ports\u0027][0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_b2970dec","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":47},"updated":"2017-09-05 08:50:47.000000000","message":"Suggestion: I assume it will be faster if you\u0027d make a second loop where you\u0027d wait for the server to become active. Current approach:\n\n create_server_1()\n wait_for_server_1()\n create_server_2()\n wait_for_server_2()\n\nwhile you can be creating second server while waiting for the first one:\n\n create_server_1()\n create_server_2()\n wait_server_1()\n wait_server_2()\n\njust by adding a loop like\n\n for server in servers:\n     waiters.wait_for_server_status(\n         self.os_primary.servers_client, server[\u0027server\u0027][\u0027id\u0027],\n         constants.SERVER_STATUS_ACTIVE)","commit_id":"951d1cb14210285160be8c303755efda26563ec6"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"92ffa17cb5e29043a4b4350a79dfaa0121f8ad36","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                key_name\u003dself.keypair[\u0027name\u0027],"},{"line_number":47,"context_line":"                networks\u003d[{\u0027uuid\u0027: self.network[\u0027id\u0027]}]))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"            waiters.wait_for_server_status("},{"line_number":50,"context_line":"                self.os_primary.servers_client, servers[i][\u0027server\u0027][\u0027id\u0027],"},{"line_number":51,"context_line":"                constants.SERVER_STATUS_ACTIVE)"},{"line_number":52,"context_line":"            port \u003d self.client.list_ports("},{"line_number":53,"context_line":"                network_id\u003dself.network[\u0027id\u0027], device_id\u003dservers[i][\u0027server\u0027]["},{"line_number":54,"context_line":"                    \u0027id\u0027])[\u0027ports\u0027][0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f287b81_684c1176","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":47},"in_reply_to":"7f287b81_b2970dec","updated":"2017-09-05 11:11:53.000000000","message":"Done","commit_id":"951d1cb14210285160be8c303755efda26563ec6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3c1280978acf47991301978183c49690059d4f62","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            network_id\u003dCONF.network.public_network_id)[\u0027subnets\u0027]"},{"line_number":89,"context_line":"        for subnet in subnets:"},{"line_number":90,"context_line":"            if subnet[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":91,"context_line":"                ext_net_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":92,"context_line":"        self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_9e4ac952","line":91,"updated":"2017-09-05 20:48:07.000000000","message":"if no subnets are ipv4 then you will have an unknown variable referenced in line 92. Probably worth to fail more explicitly then. For example, you could do:\n\next_net_ip \u003d None\nfor ...:\n    if ...:\n        ext_net_ip \u003d ...\nself.assertTrue(ext_net_ip)","commit_id":"5e5fbb6e4f20ad05f4c937e16148b9746c4a4a07"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3c1280978acf47991301978183c49690059d4f62","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            network_id\u003dCONF.network.public_network_id)[\u0027subnets\u0027]"},{"line_number":89,"context_line":"        for subnet in subnets:"},{"line_number":90,"context_line":"            if subnet[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":91,"context_line":"                ext_net_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":92,"context_line":"        self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_be6465e6","line":91,"range":{"start_line":91,"start_character":15,"end_line":91,"end_character":19},"updated":"2017-09-05 20:48:07.000000000","message":"once you\u0027ve found a good candidate, I think it makes sense to bail out of the loop with \u0027break\u0027","commit_id":"5e5fbb6e4f20ad05f4c937e16148b9746c4a4a07"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"daf16402b8652c637fd87c5f2ce226d9a1b1c1b3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            network_id\u003dCONF.network.public_network_id)[\u0027subnets\u0027]"},{"line_number":89,"context_line":"        for subnet in subnets:"},{"line_number":90,"context_line":"            if subnet[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":91,"context_line":"                ext_net_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":92,"context_line":"        self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_6da99fdb","line":91,"in_reply_to":"7f287b81_9e4ac952","updated":"2017-09-06 12:06:02.000000000","message":"Done","commit_id":"5e5fbb6e4f20ad05f4c937e16148b9746c4a4a07"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"daf16402b8652c637fd87c5f2ce226d9a1b1c1b3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            network_id\u003dCONF.network.public_network_id)[\u0027subnets\u0027]"},{"line_number":89,"context_line":"        for subnet in subnets:"},{"line_number":90,"context_line":"            if subnet[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":91,"context_line":"                ext_net_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":92,"context_line":"        self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_2db3974f","line":91,"range":{"start_line":91,"start_character":15,"end_line":91,"end_character":19},"in_reply_to":"7f287b81_be6465e6","updated":"2017-09-06 12:06:02.000000000","message":"Done","commit_id":"5e5fbb6e4f20ad05f4c937e16148b9746c4a4a07"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"042c6d709e60a1f968e36cbf060a6d3ab720de87","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return server_ssh_clients, fips"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @decorators.idempotent_id(\u00273d73ec1a-2ec6-45a9-b0f8-04a283d9d764\u0027)"},{"line_number":62,"context_line":"    def test_default_sec_grp_scenarios(self):"},{"line_number":63,"context_line":"        server_ssh_clients, fips \u003d self.create_vm_default_sec_grp()"},{"line_number":64,"context_line":"        # Check ssh connectivity when you add sec group rule, enabling ssh"},{"line_number":65,"context_line":"        self.create_loginable_secgroup_rule("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_1396aef1","line":62,"updated":"2017-09-06 20:53:54.000000000","message":"I am sorry that I missed it the previous times, but I now realize that the test targets several api extensions that we should mark it with.\n\nSpecifically, it requires \u0027security-group\u0027 and \u0027router\u0027 extensions.","commit_id":"6883ed4e9f0931ed2068c9c37d3f4c0bfcd2951b"},{"author":{"_account_id":21302,"name":"Gena","email":"gcheresh@redhat.com","username":"gcheresh"},"change_message_id":"444f1118df31c3e0f4270180a8e23b21c1d8307f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        return server_ssh_clients, fips"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @decorators.idempotent_id(\u00273d73ec1a-2ec6-45a9-b0f8-04a283d9d764\u0027)"},{"line_number":62,"context_line":"    def test_default_sec_grp_scenarios(self):"},{"line_number":63,"context_line":"        server_ssh_clients, fips \u003d self.create_vm_default_sec_grp()"},{"line_number":64,"context_line":"        # Check ssh connectivity when you add sec group rule, enabling ssh"},{"line_number":65,"context_line":"        self.create_loginable_secgroup_rule("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f287b81_06b3fc0b","line":62,"in_reply_to":"7f287b81_1396aef1","updated":"2017-09-07 08:30:49.000000000","message":"Done","commit_id":"6883ed4e9f0931ed2068c9c37d3f4c0bfcd2951b"}]}
