)]}'
{"tempest/api/network/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            cls.mask_bits \u003d CONF.network.project_network_v6_mask_bits"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @classmethod"},{"line_number":104,"context_line":"    def resource_cleanup(cls):"},{"line_number":105,"context_line":"        if CONF.service_available.neutron:"},{"line_number":106,"context_line":"            # Clean up ports"},{"line_number":107,"context_line":"            for port in cls.ports:"},{"line_number":108,"context_line":"                test_utils.call_and_ignore_notfound_exc("},{"line_number":109,"context_line":"                    cls.ports_client.delete_port, port[\u0027id\u0027])"},{"line_number":110,"context_line":"            # Clean up routers"},{"line_number":111,"context_line":"            for router in cls.routers:"},{"line_number":112,"context_line":"                test_utils.call_and_ignore_notfound_exc("},{"line_number":113,"context_line":"                    cls.delete_router, router)"},{"line_number":114,"context_line":"            # Clean up subnets"},{"line_number":115,"context_line":"            for subnet in cls.subnets:"},{"line_number":116,"context_line":"                test_utils.call_and_ignore_notfound_exc("},{"line_number":117,"context_line":"                    cls.subnets_client.delete_subnet, subnet[\u0027id\u0027])"},{"line_number":118,"context_line":"            # Clean up networks"},{"line_number":119,"context_line":"            for network in cls.networks:"},{"line_number":120,"context_line":"                test_utils.call_and_ignore_notfound_exc("},{"line_number":121,"context_line":"                    cls.networks_client.delete_network, network[\u0027id\u0027])"},{"line_number":122,"context_line":"        super(BaseNetworkTest, cls).resource_cleanup()"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    @classmethod"},{"line_number":125,"context_line":"    def create_network(cls, network_name\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_96179ca4","side":"PARENT","line":122,"range":{"start_line":104,"start_character":0,"end_line":122,"end_character":54},"updated":"2017-11-30 12:58:51.000000000","message":"I am little worried about order of deletion we used to take care in resource_cleanup. With addClassResourceCleanup there are chances where order might be different or it would not as create order will be always in same sequence like create network first then subnet, port and router?","commit_id":"6154e314fb1bd79beef2cfb5e4b6984a02461be3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        body \u003d cls.networks_client.create_network(name\u003dnetwork_name, **kwargs)"},{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        cls.networks.append(network)"},{"line_number":112,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":113,"context_line":"                                    cls.networks_client.delete_network,"},{"line_number":114,"context_line":"                                    network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_b6750035","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"updated":"2017-11-30 12:58:51.000000000","message":"this should go away now","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e49ad3c0e39bfef5967d7cfa5bbc24db92fa5d24","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        body \u003d cls.networks_client.create_network(name\u003dnetwork_name, **kwargs)"},{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        cls.networks.append(network)"},{"line_number":112,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":113,"context_line":"                                    cls.networks_client.delete_network,"},{"line_number":114,"context_line":"                                    network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_9121c850","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"in_reply_to":"ff82abbf_b6750035","updated":"2017-12-04 06:37:14.000000000","message":"Done.\nAnd seems cls.networks is the only one that can be safely removed, some testcases will use cls.subnets/cls.ports/cls.routers to\ndeal with the problem of deletion sequence(just as you have mentioned), \nsuch as https://github.com/openstack/tempest/blob/c5d59c08d92f8df639148eafade170034b92f834/tempest/api/network/test_dhcp_ipv6.py#L66","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        body \u003d cls.networks_client.create_network(name\u003dnetwork_name, **kwargs)"},{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        cls.networks.append(network)"},{"line_number":112,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":113,"context_line":"                                    cls.networks_client.delete_network,"},{"line_number":114,"context_line":"                                    network[\u0027id\u0027])"},{"line_number":115,"context_line":"        return network"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_36e570dd","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":50},"updated":"2017-11-30 12:58:51.000000000","message":"can we move this just after create_network at L110.\n\nsame for all below places.","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e49ad3c0e39bfef5967d7cfa5bbc24db92fa5d24","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        body \u003d cls.networks_client.create_network(name\u003dnetwork_name, **kwargs)"},{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        cls.networks.append(network)"},{"line_number":112,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":113,"context_line":"                                    cls.networks_client.delete_network,"},{"line_number":114,"context_line":"                                    network[\u0027id\u0027])"},{"line_number":115,"context_line":"        return network"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_b11e4c0a","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":50},"in_reply_to":"ff82abbf_36e570dd","updated":"2017-12-04 06:37:14.000000000","message":"Done","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            message \u003d \u0027Available CIDR for subnet creation could not be found\u0027"},{"line_number":155,"context_line":"            raise exceptions.BuildErrorException(message)"},{"line_number":156,"context_line":"        subnet \u003d body[\u0027subnet\u0027]"},{"line_number":157,"context_line":"        cls.subnets.append(subnet)"},{"line_number":158,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":159,"context_line":"                                    cls.subnets_client.delete_subnet,"},{"line_number":160,"context_line":"                                    subnet[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_76b698df","line":157,"range":{"start_line":157,"start_character":8,"end_line":157,"end_character":34},"updated":"2017-11-30 12:58:51.000000000","message":"ditto","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        body \u003d cls.ports_client.create_port(network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":167,"context_line":"                                            **kwargs)"},{"line_number":168,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":169,"context_line":"        cls.ports.append(port)"},{"line_number":170,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":171,"context_line":"                                    cls.ports_client.delete_port, port[\u0027id\u0027])"},{"line_number":172,"context_line":"        return port"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_d6a764a7","line":169,"range":{"start_line":169,"start_character":8,"end_line":169,"end_character":30},"updated":"2017-11-30 12:58:51.000000000","message":"ditto","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b2ee8d5033bde626063527c46cf112ba88bc869","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            name\u003drouter_name, external_gateway_info\u003dext_gw_info,"},{"line_number":195,"context_line":"            admin_state_up\u003dadmin_state_up, **kwargs)"},{"line_number":196,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":197,"context_line":"        cls.routers.append(router)"},{"line_number":198,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":199,"context_line":"                                    cls.delete_router, router)"},{"line_number":200,"context_line":"        return router"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_56b594cc","line":197,"range":{"start_line":197,"start_character":8,"end_line":197,"end_character":34},"updated":"2017-11-30 12:58:51.000000000","message":"ditto","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3a8cbbaa62fca2716498f2075e72161dc02e3eb8","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":197,"context_line":"        cls.routers.append(router)"},{"line_number":198,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":199,"context_line":"                                    cls.delete_router, router)"},{"line_number":200,"context_line":"        return router"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff82abbf_362e05fb","line":199,"range":{"start_line":199,"start_character":55,"end_line":199,"end_character":61},"updated":"2017-12-19 17:47:29.000000000","message":"Oh, I see router only is inconsistent between network resources. That doesn\u0027t contain \u0027id\u0027 here","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"6e0f4468f4e869e5993f7b2a88120fddd4868a9e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        router \u003d body[\u0027router\u0027]"},{"line_number":197,"context_line":"        cls.routers.append(router)"},{"line_number":198,"context_line":"        cls.addClassResourceCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":199,"context_line":"                                    cls.delete_router, router)"},{"line_number":200,"context_line":"        return router"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_50ce485a","line":199,"range":{"start_line":199,"start_character":55,"end_line":199,"end_character":61},"in_reply_to":"ff82abbf_362e05fb","updated":"2017-12-20 05:23:48.000000000","message":"oh, yeah, indeed, maybe I\u0027ll make it consistency later in other patches:)","commit_id":"fa8d44e8080d31137fc4a71a6dc6201312fc4774"}]}
