)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"886dfd86a70a38c06e57da8d42b127a210238909","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cleanup networks and subnets created during RouterTest"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Remove networks and subnets for each test using self.addCleanup"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #1670693"},{"line_number":12,"context_line":"Change-Id: I811a64cf7f8d29ce8678b31e6856848ccc9dcbe1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_e6e251d4","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":63},"updated":"2018-06-11 08:49:09.000000000","message":"please add more info here about this change. at least benefit of cleaning up the resource at test level instead of class level. Something like below:\n\nCleanup networks resources at test level\n\nThere are network tests which create resource using class method which cleanup the created resources at class level. Those resources are needed by single tests and not being shared at class level. Such resources are good to create and cleanup at test level only. \n\nThese kind of cleanup as per their scope helps during debugging. When any test fail and we dump the created test resources, we can get better info of that tests resources only. \n\nCloses-Bug: #1670693","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"}],"tempest/api/network/test_floating_ips.py":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"9f3cd81d4aaea83c7d39ff239534c0ee04828819","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                        created_floating_ip[\u0027id\u0027])"},{"line_number":160,"context_line":"        self.assertEqual(created_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":161,"context_line":"        network2 \u003d self.create_network()"},{"line_number":162,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":163,"context_line":"                        network2[\u0027id\u0027])"},{"line_number":164,"context_line":"        subnet2 \u003d self.create_subnet(network2)"},{"line_number":165,"context_line":"        self.addCleanup(self.subnets_client.delete_subnet, subnet2[\u0027id\u0027])"},{"line_number":166,"context_line":"        router2 \u003d self.create_router(external_network_id\u003dself.ext_net_id)"},{"line_number":167,"context_line":"        self.create_router_interface(router2[\u0027id\u0027], subnet2[\u0027id\u0027])"},{"line_number":168,"context_line":"        port_other_router \u003d self.create_port(network2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2fe755af","line":165,"range":{"start_line":162,"start_character":7,"end_line":165,"end_character":73},"updated":"2018-06-04 06:31:47.000000000","message":"I think cleanup for network and subnet should be after end of each test instead of just after creating the network or subnet. So that these network/subnet can be used in test wherever it is required and in last of each test delete them to clean.","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"886dfd86a70a38c06e57da8d42b127a210238909","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                        created_floating_ip[\u0027id\u0027])"},{"line_number":160,"context_line":"        self.assertEqual(created_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":161,"context_line":"        network2 \u003d self.create_network()"},{"line_number":162,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":163,"context_line":"                        network2[\u0027id\u0027])"},{"line_number":164,"context_line":"        subnet2 \u003d self.create_subnet(network2)"},{"line_number":165,"context_line":"        self.addCleanup(self.subnets_client.delete_subnet, subnet2[\u0027id\u0027])"},{"line_number":166,"context_line":"        router2 \u003d self.create_router(external_network_id\u003dself.ext_net_id)"},{"line_number":167,"context_line":"        self.create_router_interface(router2[\u0027id\u0027], subnet2[\u0027id\u0027])"},{"line_number":168,"context_line":"        port_other_router \u003d self.create_port(network2)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_e6fb3178","line":165,"range":{"start_line":162,"start_character":7,"end_line":165,"end_character":73},"in_reply_to":"5f7c97a3_2fe755af","updated":"2018-06-11 08:49:09.000000000","message":"yea so by adding cleanup using addCleanup, resources are cleaned up after teardown() method. So resources will stay till test and removed after test only.","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"886dfd86a70a38c06e57da8d42b127a210238909","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                        network2[\u0027id\u0027])"},{"line_number":164,"context_line":"        subnet2 \u003d self.create_subnet(network2)"},{"line_number":165,"context_line":"        self.addCleanup(self.subnets_client.delete_subnet, subnet2[\u0027id\u0027])"},{"line_number":166,"context_line":"        router2 \u003d self.create_router(external_network_id\u003dself.ext_net_id)"},{"line_number":167,"context_line":"        self.create_router_interface(router2[\u0027id\u0027], subnet2[\u0027id\u0027])"},{"line_number":168,"context_line":"        port_other_router \u003d self.create_port(network2)"},{"line_number":169,"context_line":"        # Associate floating IP to the other port on another router"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_8115873f","line":166,"range":{"start_line":166,"start_character":23,"end_line":166,"end_character":36},"updated":"2018-06-11 08:49:09.000000000","message":"you need to delete these resources also at tests level and port etc also otherwise network delete will fail as in log.","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        public_network_id which is the id for the external network present"},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":"    def _remove_router_interface_with_subnet_id(self, router_id, subnet_id):"},{"line_number":44,"context_line":"        body \u003d self.routers_client.remove_router_interface(router_id,"},{"line_number":45,"context_line":"                                                           subnet_id\u003dsubnet_id)"},{"line_number":46,"context_line":"        self.assertEqual(subnet_id, body[\u0027subnet_id\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_63e70ae5","line":45,"range":{"start_line":44,"start_character":15,"end_line":45,"end_character":79},"updated":"2018-06-11 14:11:44.000000000","message":"you can add this only as addCleanup.","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.addCleanup(self.floating_ips_client.delete_floatingip,"},{"line_number":164,"context_line":"                        created_floating_ip[\u0027id\u0027])"},{"line_number":165,"context_line":"        self.assertEqual(created_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":166,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":167,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":168,"context_line":"            name\u003dnetwork)[\u0027network\u0027]"},{"line_number":169,"context_line":"        self.addCleanup(self.networks_client.delete_network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_c3eb7eda","line":166,"range":{"start_line":166,"start_character":8,"end_line":166,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"network_name","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c8bea2f422aa1d5d118ae90c5862b30b59a8f08","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        public_network_id which is the id for the external network present"},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":"    @classmethod"},{"line_number":44,"context_line":"    def skip_checks(cls):"},{"line_number":45,"context_line":"        super(FloatingIPTestJSON, cls).skip_checks()"},{"line_number":46,"context_line":"        if not utils.is_extension_enabled(\u0027router\u0027, \u0027network\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_a6e7cfe3","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":1},"updated":"2018-06-18 23:51:17.000000000","message":"unnecessary change.","commit_id":"e6fb89b00e99783624195585cf77202f202fc918"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c8bea2f422aa1d5d118ae90c5862b30b59a8f08","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                        created_floating_ip[\u0027id\u0027])"},{"line_number":160,"context_line":"        self.assertEqual(created_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":161,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":162,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":163,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":164,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":165,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_e6062786","line":162,"range":{"start_line":162,"start_character":8,"end_line":162,"end_character":16},"updated":"2018-06-18 23:51:17.000000000","message":"network1, subnet2 and so on looks odd. let\u0027s keep the original name \u0027network2\u0027","commit_id":"e6fb89b00e99783624195585cf77202f202fc918"}],"tempest/api/network/test_ports.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"886dfd86a70a38c06e57da8d42b127a210238909","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @decorators.idempotent_id(\u002767f1b811-f8db-43e2-86bd-72c074d4a42c\u0027)"},{"line_number":74,"context_line":"    def test_create_bulk_port(self):"},{"line_number":75,"context_line":"        network1 \u003d self.network"},{"line_number":76,"context_line":"        network2 \u003d self.create_network()"},{"line_number":77,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":78,"context_line":"                        network2[\u0027id\u0027])"},{"line_number":79,"context_line":"        network_list \u003d [network1[\u0027id\u0027], network2[\u0027id\u0027]]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_214d9371","line":76,"range":{"start_line":76,"start_character":24,"end_line":76,"end_character":38},"updated":"2018-06-11 08:49:09.000000000","message":"at least for network create where you do not need to do much, you should not use this class method if deleting network at test level. \n\ncreate network directly using network client here.","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"886dfd86a70a38c06e57da8d42b127a210238909","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":93,"context_line":"    @decorators.idempotent_id(\u00270435f278-40ae-48cb-a404-b8a087bc09b1\u0027)"},{"line_number":94,"context_line":"    def test_create_port_in_allowed_allocation_pools(self):"},{"line_number":95,"context_line":"        network \u003d self.create_network()"},{"line_number":96,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":97,"context_line":"                        network[\u0027id\u0027])"},{"line_number":98,"context_line":"        net_id \u003d network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_a140c336","line":95,"range":{"start_line":95,"start_character":23,"end_line":95,"end_character":37},"updated":"2018-06-11 08:49:09.000000000","message":"ditto and other place also. at least for create network.","commit_id":"f288faa8378e9fc97d79e500c99cc096ee3f0921"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @decorators.idempotent_id(\u002767f1b811-f8db-43e2-86bd-72c074d4a42c\u0027)"},{"line_number":74,"context_line":"    def test_create_bulk_port(self):"},{"line_number":75,"context_line":"        network1 \u003d self.network"},{"line_number":76,"context_line":"        network2 \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":77,"context_line":"        network3 \u003d self.networks_client.create_network("},{"line_number":78,"context_line":"            name\u003dnetwork2)[\u0027network\u0027]"},{"line_number":79,"context_line":"        self.addCleanup(self.networks_client.delete_network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_43b1ae00","line":76,"range":{"start_line":76,"start_character":8,"end_line":76,"end_character":16},"updated":"2018-06-11 14:11:44.000000000","message":"network_name","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":95,"context_line":"    @decorators.idempotent_id(\u00270435f278-40ae-48cb-a404-b8a087bc09b1\u0027)"},{"line_number":96,"context_line":"    def test_create_port_in_allowed_allocation_pools(self):"},{"line_number":97,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":98,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":99,"context_line":"            name\u003dnetwork)[\u0027network\u0027]"},{"line_number":100,"context_line":"        self.addCleanup(self.networks_client.delete_network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_23ccb287","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"network_name","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    @decorators.idempotent_id(\u0027e7fe260b-1e79-4dd3-86d9-bec6a7959fc5\u0027)"},{"line_number":162,"context_line":"    def test_port_list_filter_by_ip(self):"},{"line_number":163,"context_line":"        # Create network and subnet"},{"line_number":164,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":165,"context_line":"        network1 \u003d self.networks_client.create_network(name\u003dnetwork)[\u0027network\u0027]"},{"line_number":166,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":167,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_83a026a7","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"ditto","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        \u0027ip-substring-filtering extension not enabled.\u0027)"},{"line_number":199,"context_line":"    def test_port_list_filter_by_ip_substr(self):"},{"line_number":200,"context_line":"        # Create network and subnet"},{"line_number":201,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":202,"context_line":"        network1 \u003d self.networks_client.create_network(name\u003dnetwork)[\u0027network\u0027]"},{"line_number":203,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":204,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_03941643","line":201,"range":{"start_line":201,"start_character":8,"end_line":201,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"ditto","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    @decorators.idempotent_id(\u002763aeadd4-3b49-427f-a3b1-19ca81f06270\u0027)"},{"line_number":310,"context_line":"    def test_create_update_port_with_second_ip(self):"},{"line_number":311,"context_line":"        # Create a network with two subnets"},{"line_number":312,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":313,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":314,"context_line":"            name\u003dnetwork)[\u0027network\u0027]"},{"line_number":315,"context_line":"        self.addCleanup(self.networks_client.delete_network, network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a38e822b","line":312,"range":{"start_line":312,"start_character":8,"end_line":312,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"ditto","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1e6b3fd1fc17f5729ce7a6d74a62d812dadb6b37","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        utils.is_extension_enabled(\u0027security-group\u0027, \u0027network\u0027),"},{"line_number":431,"context_line":"        \u0027security-group extension not enabled.\u0027)"},{"line_number":432,"context_line":"    def test_create_port_with_no_securitygroups(self):"},{"line_number":433,"context_line":"        network \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":434,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":435,"context_line":"            name\u003dnetwork)[\u0027network\u0027]"},{"line_number":436,"context_line":"        self.addCleanup(self.networks_client.delete_network,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_c3729e4a","line":433,"range":{"start_line":433,"start_character":8,"end_line":433,"end_character":15},"updated":"2018-06-11 14:11:44.000000000","message":"ditto","commit_id":"c99a1b299c566015ff36333f61742f1cd6237f8b"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"746fb019dac9fe26ffcbed857a50983d56d4ccbe","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def test_port_list_filter_by_ip(self):"},{"line_number":163,"context_line":"        # Create network and subnet"},{"line_number":164,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":165,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":166,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":167,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":168,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f38f3520","line":165,"updated":"2018-06-13 11:01:13.000000000","message":"https://en.wikipedia.org/wiki/Boilerplate_code","commit_id":"aedb0df57acac5964f4ea1214169493742d7fc62"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a40b2944fdabd44cd26ca71b08dbc1b5a5d7aee1","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def test_port_list_filter_by_ip(self):"},{"line_number":163,"context_line":"        # Create network and subnet"},{"line_number":164,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":165,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":166,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":167,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":168,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_25e22c02","line":165,"in_reply_to":"5f7c97a3_978268c6","updated":"2018-06-14 04:21:31.000000000","message":"+1, let\u0027s keep the \u0027network\u0027.","commit_id":"aedb0df57acac5964f4ea1214169493742d7fc62"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fcc2e950e3062196d866dfb80f24eaec00d7ee70","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def test_port_list_filter_by_ip(self):"},{"line_number":163,"context_line":"        # Create network and subnet"},{"line_number":164,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":165,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":166,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":167,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":168,"context_line":"                        network1[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_978268c6","line":165,"in_reply_to":"5f7c97a3_f38f3520","updated":"2018-06-13 14:24:47.000000000","message":"nit: If there is only 1 network, might as well just call it \"network\" to avoid less changes in the code. If there is \u003e 1 network, can use \"network1\" and \"network2\"","commit_id":"aedb0df57acac5964f4ea1214169493742d7fc62"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c8bea2f422aa1d5d118ae90c5862b30b59a8f08","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    @decorators.attr(type\u003d\u0027smoke\u0027)"},{"line_number":101,"context_line":"    @decorators.idempotent_id(\u00270435f278-40ae-48cb-a404-b8a087bc09b1\u0027)"},{"line_number":102,"context_line":"    def test_create_port_in_allowed_allocation_pools(self):"},{"line_number":103,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":104,"context_line":"        network \u003d self.networks_client.create_network("},{"line_number":105,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":106,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":107,"context_line":"                        network[\u0027id\u0027])"},{"line_number":108,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":109,"context_line":"        address \u003d self.cidr"},{"line_number":110,"context_line":"        address.prefixlen \u003d self.mask_bits"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_a6358f47","line":107,"range":{"start_line":103,"start_character":0,"end_line":107,"end_character":38},"updated":"2018-06-18 23:51:17.000000000","message":"this class use the same code block in lot of place so let\u0027s define this also as local function and then use everywhere.\n\nI thought of putting this in base class and then use that in all other file also but then there will be confusion between create_network() and _create_network().","commit_id":"e6fb89b00e99783624195585cf77202f202fc918"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9efacb429104ec6b2e718eedc072dd6f795732a6","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    @decorators.idempotent_id(\u002767f1b811-f8db-43e2-86bd-72c074d4a42c\u0027)"},{"line_number":89,"context_line":"    def test_create_bulk_port(self):"},{"line_number":90,"context_line":"        network1 \u003d self.network"},{"line_number":91,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":92,"context_line":"        network2 \u003d self.networks_client.create_network("},{"line_number":93,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":94,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":95,"context_line":"                        network2[\u0027id\u0027])"},{"line_number":96,"context_line":"        network_list \u003d [network1[\u0027id\u0027], network2[\u0027id\u0027]]"},{"line_number":97,"context_line":"        port_list \u003d [{\u0027network_id\u0027: net_id} for net_id in network_list]"},{"line_number":98,"context_line":"        body \u003d self.ports_client.create_bulk_ports(ports\u003dport_list)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0b897f6d","line":95,"range":{"start_line":91,"start_character":8,"end_line":95,"end_character":39},"updated":"2018-06-23 15:13:03.000000000","message":"Should use\n\n    self._create_network()\n\ninstead","commit_id":"2f54351451ac65b56d1245d733929e023fedad22"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9efacb429104ec6b2e718eedc072dd6f795732a6","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    @decorators.idempotent_id(\u00275ad01ed0-0e6e-4c5d-8194-232801b15c72\u0027)"},{"line_number":277,"context_line":"    def test_port_list_filter_by_router_id(self):"},{"line_number":278,"context_line":"        # Create a router"},{"line_number":279,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":280,"context_line":"        network \u003d self.networks_client.create_network("},{"line_number":281,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":282,"context_line":"        self.addCleanup(self.networks_client.delete_network, network[\u0027id\u0027])"},{"line_number":283,"context_line":"        self._create_subnet(network)"},{"line_number":284,"context_line":"        router \u003d self.create_router()"},{"line_number":285,"context_line":"        self.addCleanup(self.routers_client.delete_router, router[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_abe72b46","line":282,"range":{"start_line":279,"start_character":0,"end_line":282,"end_character":75},"updated":"2018-06-23 15:13:03.000000000","message":"Ditto","commit_id":"2f54351451ac65b56d1245d733929e023fedad22"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9efacb429104ec6b2e718eedc072dd6f795732a6","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    @decorators.idempotent_id(\u002763aeadd4-3b49-427f-a3b1-19ca81f06270\u0027)"},{"line_number":311,"context_line":"    def test_create_update_port_with_second_ip(self):"},{"line_number":312,"context_line":"        # Create a network with two subnets"},{"line_number":313,"context_line":"        network_name \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":314,"context_line":"        network \u003d self.networks_client.create_network("},{"line_number":315,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":316,"context_line":"        self.addCleanup(self.networks_client.delete_network, network[\u0027id\u0027])"},{"line_number":317,"context_line":"        subnet_1 \u003d self._create_subnet(network)"},{"line_number":318,"context_line":"        subnet_2 \u003d self._create_subnet(network)"},{"line_number":319,"context_line":"        fixed_ip_1 \u003d [{\u0027subnet_id\u0027: subnet_1[\u0027id\u0027]}]"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_cbece72a","line":316,"range":{"start_line":313,"start_character":0,"end_line":316,"end_character":75},"updated":"2018-06-23 15:13:03.000000000","message":"Ditto.","commit_id":"2f54351451ac65b56d1245d733929e023fedad22"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"9efacb429104ec6b2e718eedc072dd6f795732a6","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        self.assertEqual(2, len(port[\u0027fixed_ips\u0027]))"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    def _update_port_with_security_groups(self, security_groups_names):"},{"line_number":342,"context_line":"        subnet_1 \u003d self.create_subnet(self.network)"},{"line_number":343,"context_line":"        fixed_ip_1 \u003d [{\u0027subnet_id\u0027: subnet_1[\u0027id\u0027]}]"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        security_groups_list \u003d list()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_6bed9322","line":342,"range":{"start_line":342,"start_character":24,"end_line":342,"end_character":37},"updated":"2018-06-23 15:13:03.000000000","message":"_create_subnet?\n\nWhy remove addCleanup on LHS","commit_id":"2f54351451ac65b56d1245d733929e023fedad22"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0f2459aa86ebd58eb256fe88711238037a4006a2","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    @decorators.idempotent_id(\u002763aeadd4-3b49-427f-a3b1-19ca81f06270\u0027)"},{"line_number":304,"context_line":"    def test_create_update_port_with_second_ip(self):"},{"line_number":305,"context_line":"        # Create a network with two subnets"},{"line_number":306,"context_line":"        network \u003d  self._create_network()"},{"line_number":307,"context_line":"        subnet_1 \u003d self._create_subnet(network)"},{"line_number":308,"context_line":"        subnet_2 \u003d self._create_subnet(network)"},{"line_number":309,"context_line":"        fixed_ip_1 \u003d [{\u0027subnet_id\u0027: subnet_1[\u0027id\u0027]}]"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_8ce605e7","line":306,"range":{"start_line":306,"start_character":17,"end_line":306,"end_character":19},"updated":"2018-06-24 14:03:45.000000000","message":"Extra whitespace, will fail pep8","commit_id":"3c08fc1c9716993b801af936e954b62245aebb67"}],"tempest/api/network/test_routers.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"27e4666ffd3c60c03cf204ed6a7b0786a01fec8f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        network1 \u003d self.networks_client.create_network("},{"line_number":102,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":103,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":104,"context_line":"                        network1[\u0027id\u0027])"},{"line_number":105,"context_line":"        subnet \u003d self.create_subnet(network1)"},{"line_number":106,"context_line":"        self.addCleanup(self.subnets_client.delete_subnet, subnet[\u0027id\u0027])"},{"line_number":107,"context_line":"        router \u003d self._create_router()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_3a18221c","line":104,"updated":"2018-06-13 08:56:28.000000000","message":"Why not adding a method _create_subnet() like self._create_router() for these? Yeah, this is more straightforward, though.","commit_id":"aedb0df57acac5964f4ea1214169493742d7fc62"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c8bea2f422aa1d5d118ae90c5862b30b59a8f08","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            self.addCleanup(self.networks_client.delete_network,"},{"line_number":203,"context_line":"                            network[\u0027id\u0027])"},{"line_number":204,"context_line":"            subnet \u003d self.create_subnet(network, cidr\u003dnext_cidr)"},{"line_number":205,"context_line":"            next_cidr \u003d next_cidr.next()"},{"line_number":206,"context_line":"            # Add router interface with subnet id"},{"line_number":207,"context_line":"            self.create_router_interface(router[\u0027id\u0027], subnet[\u0027id\u0027])"},{"line_number":208,"context_line":"            self.addCleanup(self._remove_router_interface_with_subnet_id,"},{"line_number":209,"context_line":"                            router[\u0027id\u0027], subnet[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_46f7db8d","line":206,"range":{"start_line":205,"start_character":40,"end_line":206,"end_character":1},"updated":"2018-06-18 23:51:17.000000000","message":"unnecessary change","commit_id":"e6fb89b00e99783624195585cf77202f202fc918"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2c8bea2f422aa1d5d118ae90c5862b30b59a8f08","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":266,"context_line":"                        network01[\u0027id\u0027])"},{"line_number":267,"context_line":"        network02 \u003d self.networks_client.create_network("},{"line_number":268,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":269,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":270,"context_line":"                        network02[\u0027id\u0027])"},{"line_number":271,"context_line":"        subnet01 \u003d self._create_subnet(network01)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_c628cbef","line":268,"range":{"start_line":268,"start_character":17,"end_line":268,"end_character":29},"updated":"2018-06-18 23:51:17.000000000","message":"it should be different name then network01. keep the name like it was original + append self.__class__.__name__","commit_id":"e6fb89b00e99783624195585cf77202f202fc918"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"97a46b1c9f9ddad1a8c9ef782bba3cf889f7b6bf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        network \u003d self.networks_client.create_network("},{"line_number":107,"context_line":"            name\u003dnetwork_name)[\u0027network\u0027]"},{"line_number":108,"context_line":"        self.addCleanup(self.networks_client.delete_network,"},{"line_number":109,"context_line":"                        network[\u0027id\u0027])"},{"line_number":110,"context_line":"        subnet \u003d self._create_subnet(network)"},{"line_number":111,"context_line":"        router \u003d self._create_router()"},{"line_number":112,"context_line":"        # Add router interface with subnet id"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_d702ee0c","line":109,"updated":"2018-06-28 07:09:34.000000000","message":"For keeping consistency, it might be good to make and use _create_network() here and following if possible. But we can update with a following patch if we need it.","commit_id":"b4fb4381b11146658007f3f078981266f6bb58ba"}]}
