)]}'
{"tempest/api/network/test_networks.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"fbab16a00a87b6f00b7f3934c40c412770e923b9","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":223,"context_line":"    def test_port_list_filter_by_router_id(self):"},{"line_number":224,"context_line":"        # Create a router"},{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9h28%3D","line":225,"updated":"2014-02-06 09:46:58.000000000","message":"Do you really need to create new network and subnet? If it is so, why don\u0027t you do cleanUp of them?","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"1a5f7d909e384bdcc9825c935c5142e0cf45cf78","unresolved":false,"context_lines":[{"line_number":222,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":223,"context_line":"    def test_port_list_filter_by_router_id(self):"},{"line_number":224,"context_line":"        # Create a router"},{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9ZgY%3D","line":225,"in_reply_to":"AAAAUH%2F9h28%3D","updated":"2014-02-07 12:34:02.000000000","message":"Hi Ann Kamyshnikova\n\nHere network is required to create port and we are using self.create_network() which is from base.py and hence cleanUp activity is taken care by TearDownClass()\n\nsame is applicable to self.create_subnet, self.create_router also","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"fbab16a00a87b6f00b7f3934c40c412770e923b9","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        # Create a router"},{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9h38%3D","line":227,"updated":"2014-02-06 09:46:58.000000000","message":"It would be better if you add a \n\n    self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027]) \n\nafter the creation of each resource.","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"1a5f7d909e384bdcc9825c935c5142e0cf45cf78","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        # Create a router"},{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9ZgU%3D","line":227,"in_reply_to":"AAAAUH%2F9h38%3D","updated":"2014-02-07 12:34:02.000000000","message":"Actually we add assert statement only to meet the aim of test case. Here the resource creation is required to do list_ports filtered by router_id. Hence assert statements are added at that point (line 236 to 241)\n\nThis is according to general process we follow in tempest while writing a test case.","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"fbab16a00a87b6f00b7f3934c40c412770e923b9","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        self.assertEqual(len(port_list[\u0027ports\u0027]), 1)"},{"line_number":239,"context_line":"        self.assertEqual(port[\u0027port\u0027][\u0027id\u0027], port_list[\u0027ports\u0027][0][\u0027id\u0027])"},{"line_number":240,"context_line":"        self.assertEqual(router[\u0027id\u0027], port_list[\u0027ports\u0027][0][\u0027device_id\u0027])"},{"line_number":241,"context_line":"        self.addCleanup(self.client.remove_router_interface_with_port_id,"},{"line_number":242,"context_line":"                        router[\u0027id\u0027], port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9h4U%3D","line":241,"updated":"2014-02-06 09:46:58.000000000","message":"It is better to add cleanUp just after creation.","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"1a5f7d909e384bdcc9825c935c5142e0cf45cf78","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        self.assertEqual(len(port_list[\u0027ports\u0027]), 1)"},{"line_number":239,"context_line":"        self.assertEqual(port[\u0027port\u0027][\u0027id\u0027], port_list[\u0027ports\u0027][0][\u0027id\u0027])"},{"line_number":240,"context_line":"        self.assertEqual(router[\u0027id\u0027], port_list[\u0027ports\u0027][0][\u0027device_id\u0027])"},{"line_number":241,"context_line":"        self.addCleanup(self.client.remove_router_interface_with_port_id,"},{"line_number":242,"context_line":"                        router[\u0027id\u0027], port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9ZgQ%3D","line":241,"in_reply_to":"AAAAUH%2F9h4U%3D","updated":"2014-02-07 12:34:02.000000000","message":"Done","commit_id":"0d574d7e05ecd47004b67eb76b95cdac42113599"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"f9d5b8dd39eff60e3fba0616eebabdda30bbff07","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"},{"line_number":231,"context_line":"        resp, interface \u003d self.client.add_router_interface_with_port_id("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FdSw%3D","line":228,"updated":"2014-02-13 03:01:25.000000000","message":"self.client.create_port -\u003e self.create_port ? this port is not cleaned up.","commit_id":"51ea82065195fd26559e23bd141c0840b29e9d63"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"34e66cb2a6ed219497fbe59327c861bd1999b76f","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        network \u003d self.create_network()"},{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"},{"line_number":231,"context_line":"        resp, interface \u003d self.client.add_router_interface_with_port_id("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Fcf0%3D","line":228,"in_reply_to":"AAAAUX%2F%2FdSw%3D","updated":"2014-02-13 06:15:09.000000000","message":"Hi Liu,\n\nCall of \"client.create_port\" here is correct as port would be cleaned up as part of \"client.remove_router_interface_with_port_id\".\n\nIf we use \"self.create_port\" instead, we will get an error in tearDown stating that port is NotFound as addCleanUp is performed before tearDown. (port is deleted while remove_interface)\n\nPlease have a look at the following steps that I have performed manually to say that port is automatically cleaned up as part of remove interface:\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$ neutron port-list | grep port_test                                        | 9ec28eec-e0a6-405c-bdf0-c1ee97d33ae4 | port_test                                | fa:16:3e:84:7b:6a | {\"subnet_id\": \"202ab14e-fa69-42b6-a496-9514d7bcedeb\", \"ip_address\": \"10.0.0.2\"}   |\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$ neutron router-list | grep router_test                                    | 5f510fc3-566d-4c47-b219-b77b441373cf | router_test | null                                                                        |\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$ neutron router-interface-add 5f510fc3-566d-4c47-b219-b77b441373cf port\u003dport_test\nAdded interface 9ec28eec-e0a6-405c-bdf0-c1ee97d33ae4 to router 5f510fc3-566d-4c47-b219-b77b441373cf.\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$ neutron router-interface-delete 5f510fc3-566d-4c47-b219-b77b441373cf port\u003dport_test\nRemoved interface from router 5f510fc3-566d-4c47-b219-b77b441373cf.\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$ neutron port-list | grep port_test\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$\n\nvenkater@ravi-tempest-devstack2:~/r_tempest/feb13th/tempest/tempest/api/network$\n\nRegards,\n\nRajalakshmi Ganesan","commit_id":"51ea82065195fd26559e23bd141c0840b29e9d63"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"d24f53810050c79755bba05c08694b56eff7180f","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"},{"line_number":231,"context_line":"        resp, interface \u003d self.client.add_router_interface_with_port_id("},{"line_number":232,"context_line":"            router[\u0027id\u0027], port[\u0027port\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FZd0%3D","line":229,"updated":"2014-02-13 14:07:03.000000000","message":"Could you add a status check here and in 232?","commit_id":"51ea82065195fd26559e23bd141c0840b29e9d63"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"9e6438b32bd96a630155bb882811d447378f7481","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"},{"line_number":231,"context_line":"        resp, interface \u003d self.client.add_router_interface_with_port_id("},{"line_number":232,"context_line":"            router[\u0027id\u0027], port[\u0027port\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FXn8%3D","line":229,"in_reply_to":"AAAAUX%2F%2FX78%3D","updated":"2014-02-13 17:18:38.000000000","message":"That makes sense to me. But there is a tendency to enforce such explicit checks wherever it\u0027s possible. Well, let it be as it is.","commit_id":"51ea82065195fd26559e23bd141c0840b29e9d63"},{"author":{"_account_id":1795,"name":"Ravikumar Venkatesan","email":"ravikumar.venkatesan@hpe.com","username":"ravikumar-venkatesan"},"change_message_id":"c72bf963de2a7ccbed30ee7d328c2276d949b7ba","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        self.create_subnet(network)"},{"line_number":227,"context_line":"        router \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027))"},{"line_number":228,"context_line":"        resp, port \u003d self.client.create_port("},{"line_number":229,"context_line":"            network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":230,"context_line":"        # Add router interface to port created above"},{"line_number":231,"context_line":"        resp, interface \u003d self.client.add_router_interface_with_port_id("},{"line_number":232,"context_line":"            router[\u0027id\u0027], port[\u0027port\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FX78%3D","line":229,"in_reply_to":"AAAAUX%2F%2FZd0%3D","updated":"2014-02-13 16:35:33.000000000","message":"Hi Elena,\nThis testcase is for list operation and we do status check as part of list operation that makes sure that create is successful. We do not want to add many status checks for related operations .","commit_id":"51ea82065195fd26559e23bd141c0840b29e9d63"}]}
