)]}'
{"tempest/api/network/test_vpnaas_extensions.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6b55ff8d81e509d6ebddde4a47742387f337aff9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":43,"context_line":"        cls.network1 \u003d cls.create_network()"},{"line_number":44,"context_line":"        cls.network2 \u003d cls.create_network()"},{"line_number":45,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":46,"context_line":"        cls.subnet1 \u003d cls.create_subnet(cls.network1)"},{"line_number":47,"context_line":"        cls.subnet2 \u003d cls.create_subnet(cls.network1)"},{"line_number":48,"context_line":"        cls.router \u003d cls.create_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_edf75057","line":45,"updated":"2014-10-06 08:14:13.000000000","message":"This variable \"subnet\" seems unused.","commit_id":"5db43f7d70ac225ebe690793e6027684ecf544c5"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"c8398454766637be41cc35277c417d4c9ad08787","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":43,"context_line":"        cls.network1 \u003d cls.create_network()"},{"line_number":44,"context_line":"        cls.network2 \u003d cls.create_network()"},{"line_number":45,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":46,"context_line":"        cls.subnet1 \u003d cls.create_subnet(cls.network1)"},{"line_number":47,"context_line":"        cls.subnet2 \u003d cls.create_subnet(cls.network1)"},{"line_number":48,"context_line":"        cls.router \u003d cls.create_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_2a12de08","line":45,"in_reply_to":"baa201ad_1f6b9db7","updated":"2014-10-08 08:10:29.000000000","message":"You are right.\n\nI still think that router, subnet and vpn service should be created inside the test that uses them, if possible. For instance the vpnservice created line 60 is only used in test_list_vpn_services. Maybe you could create it there. \n\nThis make an individual test clearer to read and understand, as there\u0027s no need to scroll up in the file to see where/how the resource was created.","commit_id":"5db43f7d70ac225ebe690793e6027684ecf544c5"},{"author":{"_account_id":11447,"name":"vikas","email":"vikas.d-m@hpe.com","username":"vikas"},"change_message_id":"a57b9cd0689b35aded383d1f5bb54e6110ff8e77","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":43,"context_line":"        cls.network1 \u003d cls.create_network()"},{"line_number":44,"context_line":"        cls.network2 \u003d cls.create_network()"},{"line_number":45,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":46,"context_line":"        cls.subnet1 \u003d cls.create_subnet(cls.network1)"},{"line_number":47,"context_line":"        cls.subnet2 \u003d cls.create_subnet(cls.network1)"},{"line_number":48,"context_line":"        cls.router \u003d cls.create_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_20291d37","line":45,"in_reply_to":"baa201ad_2a12de08","updated":"2014-10-08 09:25:22.000000000","message":"IMHO..this function name is resource_setup.so obviously it makes sense to create resource here and then use in test cases.","commit_id":"5db43f7d70ac225ebe690793e6027684ecf544c5"},{"author":{"_account_id":11447,"name":"vikas","email":"vikas.d-m@hpe.com","username":"vikas"},"change_message_id":"f0f619ce89eb20db69ec044debaf637915d3bb77","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        cls.network \u003d cls.create_network()"},{"line_number":43,"context_line":"        cls.network1 \u003d cls.create_network()"},{"line_number":44,"context_line":"        cls.network2 \u003d cls.create_network()"},{"line_number":45,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":46,"context_line":"        cls.subnet1 \u003d cls.create_subnet(cls.network1)"},{"line_number":47,"context_line":"        cls.subnet2 \u003d cls.create_subnet(cls.network1)"},{"line_number":48,"context_line":"        cls.router \u003d cls.create_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_1f6b9db7","line":45,"in_reply_to":"baa201ad_edf75057","updated":"2014-10-08 04:40:11.000000000","message":"variable \u0027subnet\u0027 and  \u0027router\u0027 is used in line 60 for creating vpnservice.we cant use subnet1 ,subnet2 and router1,router2 in line 60 since vpnservice is already created for those.","commit_id":"5db43f7d70ac225ebe690793e6027684ecf544c5"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6b55ff8d81e509d6ebddde4a47742387f337aff9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":46,"context_line":"        cls.subnet1 \u003d cls.create_subnet(cls.network1)"},{"line_number":47,"context_line":"        cls.subnet2 \u003d cls.create_subnet(cls.network1)"},{"line_number":48,"context_line":"        cls.router \u003d cls.create_router("},{"line_number":49,"context_line":"            data_utils.rand_name(\"router\"),"},{"line_number":50,"context_line":"            external_network_id\u003dCONF.network.public_network_id)"},{"line_number":51,"context_line":"        cls.router1 \u003d cls.create_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_4d9e9c08","line":48,"updated":"2014-10-06 08:14:13.000000000","message":"This variable router seems unused","commit_id":"5db43f7d70ac225ebe690793e6027684ecf544c5"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b272528bee4989e9f2b22f1d531cbc8b783d4e82","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        tenant_id \u003d self._get_tenant_id()"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        # Create vpn service for the newly created tenant"},{"line_number":124,"context_line":"        name \u003d data_utils.rand_name(\u0027network2-\u0027)"},{"line_number":125,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":126,"context_line":"        network2 \u003d body[\u0027network\u0027]"},{"line_number":127,"context_line":"        subnet2 \u003d self.create_subnet(network2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_46418159","line":124,"updated":"2014-10-21 08:54:54.000000000","message":"The trailing \u0027-\u0027 is already added in the definition of \u0027rand_name()\u0027","commit_id":"b3d76bae20c118cd1c2417c0a1190828d0110473"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b272528bee4989e9f2b22f1d531cbc8b783d4e82","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":126,"context_line":"        network2 \u003d body[\u0027network\u0027]"},{"line_number":127,"context_line":"        subnet2 \u003d self.create_subnet(network2)"},{"line_number":128,"context_line":"        subnet_id \u003d subnet2[\u0027id\u0027]"},{"line_number":129,"context_line":"        name \u003d data_utils.rand_name(\u0027router2-\u0027)"},{"line_number":130,"context_line":"        _, create_body \u003d self.client.create_router("},{"line_number":131,"context_line":"            name, external_gateway_info\u003d{"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_862289b7","line":128,"updated":"2014-10-21 08:54:54.000000000","message":"You should either use the variable subnet_id or the variable subnet2[\u0027id\u0027]. You are using both, it\u0027s confusing.","commit_id":"b3d76bae20c118cd1c2417c0a1190828d0110473"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b272528bee4989e9f2b22f1d531cbc8b783d4e82","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":184,"context_line":"    def test_create_update_delete_vpn_service(self):"},{"line_number":185,"context_line":"        # Creates a VPN service and sets up deletion"},{"line_number":186,"context_line":"        name \u003d data_utils.rand_name(\u0027network1-\u0027)"},{"line_number":187,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":188,"context_line":"        network1 \u003d body[\u0027network\u0027]"},{"line_number":189,"context_line":"        subnet1 \u003d self.create_subnet(network1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_a91d9e68","line":186,"updated":"2014-10-21 08:54:54.000000000","message":"Same","commit_id":"b3d76bae20c118cd1c2417c0a1190828d0110473"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b272528bee4989e9f2b22f1d531cbc8b783d4e82","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":188,"context_line":"        network1 \u003d body[\u0027network\u0027]"},{"line_number":189,"context_line":"        subnet1 \u003d self.create_subnet(network1)"},{"line_number":190,"context_line":"        subnet_id \u003d subnet1[\u0027id\u0027]"},{"line_number":191,"context_line":"        name \u003d data_utils.rand_name(\u0027router1-\u0027)"},{"line_number":192,"context_line":"        _, create_body \u003d self.client.create_router("},{"line_number":193,"context_line":"            name, external_gateway_info\u003d{"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_c91ae26d","line":190,"updated":"2014-10-21 08:54:54.000000000","message":"Same","commit_id":"b3d76bae20c118cd1c2417c0a1190828d0110473"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"087e0fe7c72fc9579300c7695d13573bff386f2b","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        _, create_body \u003d self.client.create_router("},{"line_number":130,"context_line":"            name, external_gateway_info\u003d{"},{"line_number":131,"context_line":"                \"network_id\": CONF.network.public_network_id},"},{"line_number":132,"context_line":"            admin_state_up\u003dFalse)"},{"line_number":133,"context_line":"        router2 \u003d create_body[\u0027router\u0027]"},{"line_number":134,"context_line":"        _, interface \u003d self.client.add_router_interface_with_subnet_id("},{"line_number":135,"context_line":"            router2[\u0027id\u0027], subnet2[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa7fdbe_1bc0de29","line":132,"updated":"2014-10-29 08:53:21.000000000","message":"Why do you need admin_state_up\u003dFalse here ?","commit_id":"170325cecc611944b9a38ad3c97da748fd9c733e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"087e0fe7c72fc9579300c7695d13573bff386f2b","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        _, create_body \u003d self.client.create_router("},{"line_number":192,"context_line":"            name, external_gateway_info\u003d{"},{"line_number":193,"context_line":"                \"network_id\": CONF.network.public_network_id},"},{"line_number":194,"context_line":"            admin_state_up\u003dFalse)"},{"line_number":195,"context_line":"        router1 \u003d create_body[\u0027router\u0027]"},{"line_number":196,"context_line":"        _, interface \u003d self.client.add_router_interface_with_subnet_id("},{"line_number":197,"context_line":"            router1[\u0027id\u0027], subnet1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa7fdbe_5b7d06e7","line":194,"updated":"2014-10-29 08:53:21.000000000","message":"Same here","commit_id":"170325cecc611944b9a38ad3c97da748fd9c733e"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"917a8574b91253fe817c1c2432a84694ec82473b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        tenant_id \u003d self._get_tenant_id()"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        # Create vpn service for the newly created tenant"},{"line_number":124,"context_line":"        name \u003d data_utils.rand_name(\u0027network2\u0027)"},{"line_number":125,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":126,"context_line":"        network2 \u003d body[\u0027network\u0027]"},{"line_number":127,"context_line":"        subnet2 \u003d self.create_subnet(network2)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_0bc03e29","line":124,"updated":"2014-11-12 20:44:54.000000000","message":"This code will leak resources if any of the calls fail. Many of the self.client.create_xxx calls can be replaced by calls to the self.create_xxx helper methods which handle the cleanup. If not using the helper method, addCleanup is needed after creation.","commit_id":"7caf13dbf3f871b40f10c381949bd1f28c91d872"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"917a8574b91253fe817c1c2432a84694ec82473b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":147,"context_line":"        self.assertIsNotNone(vpnservice[\u0027id\u0027])"},{"line_number":148,"context_line":"        self.assertIn(vpnservice[\u0027id\u0027], vpn_services)"},{"line_number":149,"context_line":"        self._delete_vpn_service(vpnservice[\u0027id\u0027])"},{"line_number":150,"context_line":"        _, body \u003d self.client.remove_router_interface_with_subnet_id("},{"line_number":151,"context_line":"            router2[\u0027id\u0027], subnet2[\u0027id\u0027])"},{"line_number":152,"context_line":"        _, body \u003d self.client.delete_network(network2[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_cbf3969d","line":149,"updated":"2014-11-12 20:44:54.000000000","message":"Many of these delete calls are not necessary if helper methods or addCleanup is used above.","commit_id":"7caf13dbf3f871b40f10c381949bd1f28c91d872"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"917a8574b91253fe817c1c2432a84694ec82473b","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":184,"context_line":"    def test_create_update_delete_vpn_service(self):"},{"line_number":185,"context_line":"        # Creates a VPN service and sets up deletion"},{"line_number":186,"context_line":"        name \u003d data_utils.rand_name(\u0027network1\u0027)"},{"line_number":187,"context_line":"        _, body \u003d self.client.create_network(name\u003dname)"},{"line_number":188,"context_line":"        network1 \u003d body[\u0027network\u0027]"},{"line_number":189,"context_line":"        subnet1 \u003d self.create_subnet(network1)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_ebf21299","line":186,"updated":"2014-11-12 20:44:54.000000000","message":"Ditto.","commit_id":"7caf13dbf3f871b40f10c381949bd1f28c91d872"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"917a8574b91253fe817c1c2432a84694ec82473b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":207,"context_line":"        self.assertIsNotNone(vpnservice[\u0027id\u0027])"},{"line_number":208,"context_line":"        self.assertIn(vpnservice[\u0027id\u0027], vpn_services)"},{"line_number":209,"context_line":"        self._delete_vpn_service(vpnservice[\u0027id\u0027])"},{"line_number":210,"context_line":"        _, body \u003d self.client.remove_router_interface_with_subnet_id("},{"line_number":211,"context_line":"            router1[\u0027id\u0027], subnet1[\u0027id\u0027])"},{"line_number":212,"context_line":"        _, body \u003d self.client.delete_network(network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a890539_0bee7eb4","line":209,"updated":"2014-11-12 20:44:54.000000000","message":"Ditto.","commit_id":"7caf13dbf3f871b40f10c381949bd1f28c91d872"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"15538103fa26e788854f1b707babe385a4111f9e","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Create vpn service for the newly created tenant"},{"line_number":125,"context_line":"        network2 \u003d self.create_network()"},{"line_number":126,"context_line":"        subnet2 \u003d self.create_subnet(network2)"},{"line_number":127,"context_line":"        router2 \u003d self.create_router(data_utils.rand_name(\u0027router-\u0027),"},{"line_number":128,"context_line":"                                     external_network_id\u003dself.ext_net_id)"},{"line_number":129,"context_line":"        self.create_router_interface(router2[\u0027id\u0027], subnet2[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a890539_b2023509","line":126,"updated":"2014-11-13 08:09:37.000000000","message":"The number suffixes are not required, but it may help the readers to not mix them with the class variables.","commit_id":"a347ffd874e4d7c3f3277195557daf368f191dc4"}]}
