)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a35a6d32eca8b314f4ef3dee18ce6a0100e709d3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This test doesn\u0027t cleanup the networks and subnets that it created. Following"},{"line_number":10,"context_line":"Tempest tests in non-isolated environments are consequently failing because"},{"line_number":11,"context_line":"multiple networks are found. This change deleted those networks and subnets."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id618aeeb85e3d4767ed07b4d29b908274eba76df"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baa201ad_4aa562a0","line":12,"updated":"2014-10-17 15:05:35.000000000","message":"Can we throw Partial-Bug or Related-Bug: #1329065 in here?","commit_id":"6827fa1e013040164ac7d12c45e444995a872440"}],"tempest/api/compute/servers/test_create_server.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a35a6d32eca8b314f4ef3dee18ce6a0100e709d3","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        _, server_multi_nics \u003d self.create_test_server("},{"line_number":151,"context_line":"            networks\u003dnetworks, wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Cleanup networks and subnets"},{"line_number":154,"context_line":"        def cleanup():"},{"line_number":155,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":156,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_8ad90a24","line":153,"updated":"2014-10-17 15:05:35.000000000","message":"This looks OK, but would it be better to do a cleanup after each type of resource, i.e. cleanup for networks, cleanup for subnets and cleanup for the server separately in case one fails before getting to the next, i.e. we create the networks and subnets but the server create fails, so we never run the cleanup.","commit_id":"6827fa1e013040164ac7d12c45e444995a872440"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"15a590d83a444c9394248c208f47d56a9ed6ec4e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        # Verify that the networks order given at the server creation is"},{"line_number":132,"context_line":"        # preserved within the server."},{"line_number":133,"context_line":"        name_net1 \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":134,"context_line":"        _, net1 \u003d self.network_client.create_network(name\u003dname_net1)"},{"line_number":135,"context_line":"        name_net2 \u003d data_utils.rand_name(self.__class__.__name__)"},{"line_number":136,"context_line":"        _, net2 \u003d self.network_client.create_network(name\u003dname_net2)"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_e51727a1","line":134,"updated":"2014-10-17 15:39:02.000000000","message":"Probably want a single addCleanup call after each network/subnet create call, e.g.:\n\nself.addCleanup(self.network_client.delete_network, net1[\u0027network\u0027][\u0027id\u0027])","commit_id":"c62105db963e78ed1d546a978b47d652ae60b7be"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"9455aa43fd216d5585b3cc48f0498f0ce5c6f8c6","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Cleanup networks"},{"line_number":139,"context_line":"        def cleanup_networks():"},{"line_number":140,"context_line":"            self.network_client.delete_network(net1[\u0027network\u0027][\u0027id\u0027])"},{"line_number":141,"context_line":"            self.network_client.delete_network(net2[\u0027network\u0027][\u0027id\u0027])"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        self.addCleanup(cleanup_networks)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_a5199fd2","line":140,"updated":"2014-10-17 15:40:19.000000000","message":"Yeah the better pattern here is to do:\n\n\n_, net1 \u003d self.network_client.create_network(name\u003dname_net1)\nself.addCleanup(self.network_client.delete_network, net1[\u0027network\u0027][\u0027id\u0027])\n_, net2 \u003d self.network_client.create_network(name\u003dname_net2)\nself.addCleanup(self.network_client.delete_network, net2[\u0027network\u0027][\u0027id\u0027])\n\n\nthis is because addCleanup is a LIFO as Matt said so we should just be adding the cleanups as resources are getting created.","commit_id":"c62105db963e78ed1d546a978b47d652ae60b7be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c5ff88f282a309b69fa00c8b40c18776575df235","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        # Cleanup networks"},{"line_number":139,"context_line":"        def cleanup_networks():"},{"line_number":140,"context_line":"            self.network_client.delete_network(net1[\u0027network\u0027][\u0027id\u0027])"},{"line_number":141,"context_line":"            self.network_client.delete_network(net2[\u0027network\u0027][\u0027id\u0027])"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        self.addCleanup(cleanup_networks)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_65a09790","line":140,"updated":"2014-10-17 15:36:41.000000000","message":"nit: in the spirit of LIFO and test case cleanups, you could delete net2 first and then net1, but it\u0027s not a huge deal to me.\n\nI guess we could still have an exposure here if net1 was created but net2 wasn\u0027t, then we\u0027d leak net1...","commit_id":"c62105db963e78ed1d546a978b47d652ae60b7be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9674ab55089ab3bafb92d1f79289cbc8412ddd10","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            cidr\u003d\u002719.86.0.0/24\u0027,"},{"line_number":152,"context_line":"            ip_version\u003d4)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Cleanup subnets"},{"line_number":155,"context_line":"        def cleanup_subnets():"},{"line_number":156,"context_line":"            self.network_client.delete_subnet(subnet1[\u0027subnet\u0027][\u0027id\u0027])"},{"line_number":157,"context_line":"            self.network_client.delete_subnet(subnet2[\u0027subnet\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_e5656745","line":154,"updated":"2014-10-17 15:39:55.000000000","message":"Ditto as how we should do a separate addCleanup after each subnet create.","commit_id":"c62105db963e78ed1d546a978b47d652ae60b7be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9674ab55089ab3bafb92d1f79289cbc8412ddd10","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        _, server_multi_nics \u003d self.create_test_server("},{"line_number":165,"context_line":"            networks\u003dnetworks, wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        # Cleanup server"},{"line_number":168,"context_line":"        def cleanup_server():"},{"line_number":169,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":170,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa201ad_851e5bb9","line":167,"updated":"2014-10-17 15:39:55.000000000","message":"This is fine.","commit_id":"c62105db963e78ed1d546a978b47d652ae60b7be"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"9b47f10b2c8dea0aa4931abfa7f58b6bf91a6c74","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            networks\u003dnetworks, wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        # Cleanup server"},{"line_number":164,"context_line":"        def cleanup_server():"},{"line_number":165,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":166,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_5bc7f244","line":164,"updated":"2014-10-17 16:37:15.000000000","message":"This is not wrong, but is it necessary? create_test_server should add the server to the class cleanup list.","commit_id":"6e8a57dd139c11cc19fcab5dd24c554e3c79fbe1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5e4fc1dd8a29c22dd280de6a55582573394c3151","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            networks\u003dnetworks, wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        # Cleanup server"},{"line_number":164,"context_line":"        def cleanup_server():"},{"line_number":165,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":166,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_7675abf8","line":164,"in_reply_to":"baa201ad_5bc7f244","updated":"2014-10-17 17:29:48.000000000","message":"Oh right, it\u0027s probably not needed, no, the bug is really that the networks/subnets aren\u0027t getting cleaned up which causes later tests to blow up because there are too many networks to choose from when allow_tenant_isolation\u003dFalse.","commit_id":"6e8a57dd139c11cc19fcab5dd24c554e3c79fbe1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c1457a641e15829f20d1259675781a8aff7ad8b3","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            networks\u003dnetworks, wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        # Cleanup server"},{"line_number":164,"context_line":"        def cleanup_server():"},{"line_number":165,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":166,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baa201ad_ddb593ed","line":164,"in_reply_to":"baa201ad_7675abf8","updated":"2014-10-17 20:13:42.000000000","message":"Crap, we actually needed this because otherwise the subnet delete fails since the server still has the port in the subnet:\n\nhttp://logs.openstack.org/91/129291/4/check/check-tempest-dsvm-neutron-full/363c7c3/console.html#_2014-10-17_19_39_06_789\n\nThis will do a double-delete in the base class tear down but it ignores the 404 so that\u0027s fine.","commit_id":"6e8a57dd139c11cc19fcab5dd24c554e3c79fbe1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ec7eb0eaec3fc6b53984807966206d36e9e3acc4","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # when trying to delete the subnet. The tear down in the base class"},{"line_number":167,"context_line":"        # will try to delete the server and get a 404 but it\u0027s ignored so"},{"line_number":168,"context_line":"        # we\u0027re OK."},{"line_number":169,"context_line":"        def cleanup_server():"},{"line_number":170,"context_line":"            self.client.delete_server(server_multi_nics[\u0027id\u0027])"},{"line_number":171,"context_line":"            self.client.wait_for_server_termination(server_multi_nics[\u0027id\u0027])"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"baa201ad_bdb44f82","line":169,"updated":"2014-10-17 20:35:22.000000000","message":"This could have just been 2 addCleanups but this works too","commit_id":"e59f0fffb28a1b98476e3cc7dfaaed33f469711b"}]}
