)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3e6e40fd00612e2680f9222646a4dd97e924eacc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     sukhdev \u003csukhdev@aristanetworks.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-18 15:03:58 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Networks: shared, other tentans, delete with subnet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Following three tests are added:"},{"line_number":10,"context_line":" - Creation of shared networks by an admin user"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUX%2F%2Bx6Y%3D","line":7,"updated":"2014-02-19 04:50:08.000000000","message":"Looks like you need to update this summary, and the descriptions below.","commit_id":"81e21fc00b440861af419a7f5e09349b637ba4bb"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"4210d5825b4eb647649b2195778b606e3203f986","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     sukhdev \u003csukhdev@aristanetworks.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-18 15:03:58 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Networks: shared, other tentans, delete with subnet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Following three tests are added:"},{"line_number":10,"context_line":" - Creation of shared networks by an admin user"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAUX%2F%2BTkQ%3D","line":7,"in_reply_to":"AAAAUX%2F%2Bx6Y%3D","updated":"2014-02-22 01:00:15.000000000","message":"Done","commit_id":"81e21fc00b440861af419a7f5e09349b637ba4bb"}],"tempest/api/network/test_networks.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"aef350f101ac791ad08dac6a18ad25f79ba9e403","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        # Verify that the subnet got automatically deleted."},{"line_number":263,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.show_subnet,"},{"line_number":264,"context_line":"                          subnet_id)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":267,"context_line":"    def test_create_port_with_no_ip(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FCW4%3D","line":264,"updated":"2014-01-18 05:00:09.000000000","message":"It would be better to have lines 258-264 in a separate function which is then invoked by addCleanup().","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        # Verify that the subnet got automatically deleted."},{"line_number":263,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.show_subnet,"},{"line_number":264,"context_line":"                          subnet_id)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":267,"context_line":"    def test_create_port_with_no_ip(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B0H0%3D","line":264,"in_reply_to":"AAAAUH%2F%2FCW4%3D","updated":"2014-01-22 23:51:59.000000000","message":"Done","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"aef350f101ac791ad08dac6a18ad25f79ba9e403","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        self.assertEqual(port_resp[\u0027fixed_ips\u0027], [])"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        # Delete the port"},{"line_number":292,"context_line":"        resp, body \u003d self.client.delete_port(port_id)"},{"line_number":293,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FCW0%3D","line":292,"updated":"2014-01-18 05:00:09.000000000","message":"Use addCleanup()","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        self.assertEqual(port_resp[\u0027fixed_ips\u0027], [])"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        # Delete the port"},{"line_number":292,"context_line":"        resp, body \u003d self.client.delete_port(port_id)"},{"line_number":293,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B0Hk%3D","line":292,"in_reply_to":"AAAAUH%2F%2FCW0%3D","updated":"2014-01-22 23:51:59.000000000","message":"Done","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"17ce5f4a03b3b8f8a9ec0d1b28db09bb0d8090f7","unresolved":false,"context_lines":[{"line_number":452,"context_line":"    _interface \u003d \u0027xml\u0027"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"class SharedNetworksTestJSON(base.BaseAdminNetworkTest):"},{"line_number":456,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4uw%3D","line":455,"updated":"2014-01-21 03:33:46.000000000","message":"@Sukhdev, this is good job. I create a dup patch to cover this test due to my sloppy.\nhttps://review.openstack.org/#/c/67024. So I\u0027d like to give some comments here. :)","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":452,"context_line":"    _interface \u003d \u0027xml\u0027"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"class SharedNetworksTestJSON(base.BaseAdminNetworkTest):"},{"line_number":456,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B0HY%3D","line":455,"in_reply_to":"AAAAUH%2F%2B4uw%3D","updated":"2014-01-22 23:51:59.000000000","message":"I can not open this link for some reason. I would take your word for it. We decided to implement these tests as a part of tempest sprint last week in Montreal. There are several tests still to be implemented. Please feel free to grab any.","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"17ce5f4a03b3b8f8a9ec0d1b28db09bb0d8090f7","unresolved":false,"context_lines":[{"line_number":470,"context_line":"    @classmethod"},{"line_number":471,"context_line":"    def setUpClass(cls):"},{"line_number":472,"context_line":"        super(SharedNetworksTestJSON, cls).setUpClass()"},{"line_number":473,"context_line":"        admin_manager \u003d clients.AdminManager()"},{"line_number":474,"context_line":"        cls.admin_client \u003d admin_manager.network_client"},{"line_number":475,"context_line":"        cls.identity_admin_client \u003d admin_manager.identity_client"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4vA%3D","line":473,"updated":"2014-01-21 03:33:46.000000000","message":"don\u0027t need admin_manager here. admin_client has been defined in BaseAdminNetworkTest","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":470,"context_line":"    @classmethod"},{"line_number":471,"context_line":"    def setUpClass(cls):"},{"line_number":472,"context_line":"        super(SharedNetworksTestJSON, cls).setUpClass()"},{"line_number":473,"context_line":"        admin_manager \u003d clients.AdminManager()"},{"line_number":474,"context_line":"        cls.admin_client \u003d admin_manager.network_client"},{"line_number":475,"context_line":"        cls.identity_admin_client \u003d admin_manager.identity_client"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B0CM%3D","line":473,"in_reply_to":"AAAAUH%2F%2B4vA%3D","updated":"2014-01-22 23:51:59.000000000","message":"Done","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"17ce5f4a03b3b8f8a9ec0d1b28db09bb0d8090f7","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        cls.identity_admin_client \u003d admin_manager.identity_client"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":478,"context_line":"    def test_shared_networks(self):"},{"line_number":479,"context_line":"        # Creates a shared network"},{"line_number":480,"context_line":"        name \u003d data_utils.rand_name(\u0027shared_network-\u0027)"},{"line_number":481,"context_line":"        resp, body \u003d self.admin_client.create_network(name, shared\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4ug%3D","line":478,"updated":"2014-01-21 03:33:46.000000000","message":"the two test method could be merged together.","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        cls.identity_admin_client \u003d admin_manager.identity_client"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":478,"context_line":"    def test_shared_networks(self):"},{"line_number":479,"context_line":"        # Creates a shared network"},{"line_number":480,"context_line":"        name \u003d data_utils.rand_name(\u0027shared_network-\u0027)"},{"line_number":481,"context_line":"        resp, body \u003d self.admin_client.create_network(name, shared\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B0C8%3D","line":478,"in_reply_to":"AAAAUH%2F%2B4ug%3D","updated":"2014-01-22 23:51:59.000000000","message":"Each method represents a separate test. Therefore, it is better to keep them separate. \nWe used this etherpad for list of tests: https://etherpad.openstack.org/p/icehouse-summit-qa-neutron","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"aef350f101ac791ad08dac6a18ad25f79ba9e403","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":491,"context_line":"        self.assertTrue(resp_network[\u0027shared\u0027])"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        resp, body \u003d self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":494,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FCWw%3D","line":493,"updated":"2014-01-18 05:00:09.000000000","message":"Ditto.","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":491,"context_line":"        self.assertTrue(resp_network[\u0027shared\u0027])"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        resp, body \u003d self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":494,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BzM0%3D","line":493,"in_reply_to":"AAAAUH%2F%2FCWw%3D","updated":"2014-01-22 23:51:59.000000000","message":"Done","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"17ce5f4a03b3b8f8a9ec0d1b28db09bb0d8090f7","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        _, tenant \u003d self.identity_admin_client.create_tenant("},{"line_number":502,"context_line":"            name\u003dtest_tenant,"},{"line_number":503,"context_line":"            description\u003dtest_description)"},{"line_number":504,"context_line":"        tenant_id \u003d tenant[\u0027id\u0027]"},{"line_number":505,"context_line":"        self.addCleanup(self.identity_admin_client.delete_tenant, tenant_id)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # As an admin create network for other tenant"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4vo%3D","line":504,"updated":"2014-01-21 03:33:46.000000000","message":"IMO, a fake tenant id is fine for this tests.","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        _, tenant \u003d self.identity_admin_client.create_tenant("},{"line_number":502,"context_line":"            name\u003dtest_tenant,"},{"line_number":503,"context_line":"            description\u003dtest_description)"},{"line_number":504,"context_line":"        tenant_id \u003d tenant[\u0027id\u0027]"},{"line_number":505,"context_line":"        self.addCleanup(self.identity_admin_client.delete_tenant, tenant_id)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        # As an admin create network for other tenant"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BzM4%3D","line":504,"in_reply_to":"AAAAUH%2F%2B4vo%3D","updated":"2014-01-22 23:51:59.000000000","message":"Well, during the tempest sprint, folks in the room felt it was better to mimic the real test scenarios where possible. So, we decided to use a real tenant - as the framework is readily available.","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"aef350f101ac791ad08dac6a18ad25f79ba9e403","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":520,"context_line":"        self.assertEqual(resp_network[\u0027tenant_id\u0027], network[\u0027tenant_id\u0027])"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"        resp, body \u003d self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":523,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FCWs%3D","line":522,"updated":"2014-01-18 05:00:09.000000000","message":"Ditto","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"772f22b49719d34ff127c04baa287a0342cd3320","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":520,"context_line":"        self.assertEqual(resp_network[\u0027tenant_id\u0027], network[\u0027tenant_id\u0027])"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"        resp, body \u003d self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":523,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BzNE%3D","line":522,"in_reply_to":"AAAAUH%2F%2FCWs%3D","updated":"2014-01-22 23:51:59.000000000","message":"Done","commit_id":"a81756066bec9b70224f0a6faeb72266d6547124"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"4bc1271c5bca938d2cc6423accb9c941c3c7a27b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        port list"},{"line_number":42,"context_line":"        port show"},{"line_number":43,"context_line":"        port update"},{"line_number":44,"context_line":"        network update"},{"line_number":45,"context_line":"        subnet update"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    v2.0 of the Neutron API is assumed. It is also assumed that the following"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BaVs%3D","line":44,"updated":"2014-01-27 07:58:50.000000000","message":"just for completeness and consistency you might want to add your new tests to this list as well","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"990a2e5f00fa58b0313096af1e63c3c05a6be91b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        port list"},{"line_number":42,"context_line":"        port show"},{"line_number":43,"context_line":"        port update"},{"line_number":44,"context_line":"        network update"},{"line_number":45,"context_line":"        subnet update"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    v2.0 of the Neutron API is assumed. It is also assumed that the following"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BWiU%3D","line":44,"in_reply_to":"AAAAUH%2F%2BaVs%3D","updated":"2014-01-27 22:37:12.000000000","message":"Done","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e1ffe75dcee2e883befba67d560df7107cd70ba8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":296,"context_line":"        port_resp \u003d body[\u0027port\u0027]"},{"line_number":297,"context_line":"        self.assertEqual(port_id, port_resp[\u0027id\u0027])"},{"line_number":298,"context_line":"        self.assertEqual(port_resp[\u0027fixed_ips\u0027], [])"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"class NetworksTestXML(NetworksTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BbbM%3D","line":298,"updated":"2014-01-26 22:51:10.000000000","message":"Not a big deal, but I would just do:\n\nself.assertFalse(port_resp[\u0027fixed_ips\u0027])","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"990a2e5f00fa58b0313096af1e63c3c05a6be91b","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":296,"context_line":"        port_resp \u003d body[\u0027port\u0027]"},{"line_number":297,"context_line":"        self.assertEqual(port_id, port_resp[\u0027id\u0027])"},{"line_number":298,"context_line":"        self.assertEqual(port_resp[\u0027fixed_ips\u0027], [])"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"class NetworksTestXML(NetworksTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BavI%3D","line":298,"in_reply_to":"AAAAUH%2F%2BbbM%3D","updated":"2014-01-27 22:37:12.000000000","message":"The test is specifically to ensure that there are no fixed IPs - i.e to test that the list is empty. Even though self.assertFalse() will do the trick as well, but, I feel testing for empty list is a better way to go.","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"4bc1271c5bca938d2cc6423accb9c941c3c7a27b","unresolved":false,"context_lines":[{"line_number":503,"context_line":"            name\u003dtest_tenant,"},{"line_number":504,"context_line":"            description\u003dtest_description)"},{"line_number":505,"context_line":"        tenant_id \u003d tenant[\u0027id\u0027]"},{"line_number":506,"context_line":"        self.addCleanup(self.identity_admin_client.delete_tenant, tenant_id)"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        # As an admin create network for other tenant"},{"line_number":509,"context_line":"        name \u003d data_utils.rand_name(\u0027other_tenant_network-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BaVY%3D","line":506,"updated":"2014-01-27 07:58:50.000000000","message":"tempest usually makes available three identities. One is admin, another is the \u0027default\u0027 tenant, and then there should be an alt_tenant, which you perhaps can use here rather than create your own tenant.\n\nHave your tried that?","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"990a2e5f00fa58b0313096af1e63c3c05a6be91b","unresolved":false,"context_lines":[{"line_number":503,"context_line":"            name\u003dtest_tenant,"},{"line_number":504,"context_line":"            description\u003dtest_description)"},{"line_number":505,"context_line":"        tenant_id \u003d tenant[\u0027id\u0027]"},{"line_number":506,"context_line":"        self.addCleanup(self.identity_admin_client.delete_tenant, tenant_id)"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        # As an admin create network for other tenant"},{"line_number":509,"context_line":"        name \u003d data_utils.rand_name(\u0027other_tenant_network-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BWJ4%3D","line":506,"in_reply_to":"AAAAUH%2F%2BaVY%3D","updated":"2014-01-27 22:37:12.000000000","message":"Done\n\nYes, I tried it and it works - it uses alt_demo as an alt_tenant.","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e1ffe75dcee2e883befba67d560df7107cd70ba8","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        resp_network \u003d body[\u0027network\u0027]"},{"line_number":520,"context_line":"        self.assertEqual(resp_network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":521,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":522,"context_line":"        self.assertEqual(resp_network[\u0027tenant_id\u0027], network[\u0027tenant_id\u0027])"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"class SharedNetworksTestXML(SharedNetworksTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2Bbag%3D","line":522,"updated":"2014-01-26 22:51:10.000000000","message":"We need a stronger assert. What we really want to assert is:\n\nself.assertEqual(resp_network[\u0027tenant_id\u0027], tenant_id)\n\nThis way we are sure that the api created the network with the tenant id in tenant_id","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"990a2e5f00fa58b0313096af1e63c3c05a6be91b","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        resp_network \u003d body[\u0027network\u0027]"},{"line_number":520,"context_line":"        self.assertEqual(resp_network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":521,"context_line":"        self.assertEqual(resp_network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":522,"context_line":"        self.assertEqual(resp_network[\u0027tenant_id\u0027], network[\u0027tenant_id\u0027])"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"class SharedNetworksTestXML(SharedNetworksTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BWJ0%3D","line":522,"in_reply_to":"AAAAUH%2F%2Bbag%3D","updated":"2014-01-27 22:37:12.000000000","message":"Done","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"f2630c8822d2e92d65b47c770bf2d7b70e17f801","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":256,"context_line":"            try:"},{"line_number":257,"context_line":"                resp, body \u003d self.client.create_subnet(net_id,"},{"line_number":258,"context_line":"                                                       str(subnet_cidr))"},{"line_number":259,"context_line":"                break"},{"line_number":260,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":261,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9wMM%3D","line":258,"updated":"2014-02-04 11:12:18.000000000","message":"Now, the usage is \n\n    self.client.create_subnet(network_id\u003dnet_id, cidr\u003dstr(subnet_cidr), ip_version\u003d4)\n\nYour change needs a rebase.","commit_id":"033e3b17499c35759980448124321030caf93d8a"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"b4717fb75815062b3ba597cd88024ea8a68f6fd3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":256,"context_line":"            try:"},{"line_number":257,"context_line":"                resp, body \u003d self.client.create_subnet(net_id,"},{"line_number":258,"context_line":"                                                       str(subnet_cidr))"},{"line_number":259,"context_line":"                break"},{"line_number":260,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":261,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2F%2BXU%3D","line":258,"in_reply_to":"AAAAUH%2F9wMM%3D","updated":"2014-02-08 02:44:40.000000000","message":"Done","commit_id":"033e3b17499c35759980448124321030caf93d8a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5c82a06e474bd4ce9f9e5a8cab7ff89b9bf8f235","unresolved":false,"context_lines":[{"line_number":465,"context_line":"    _interface \u003d \u0027xml\u0027"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class SharedNetworksTestJSON(base.BaseAdminNetworkTest):"},{"line_number":469,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2FDTU%3D","line":468,"updated":"2014-02-17 12:51:19.000000000","message":"Shared networks test are not parallel safe until we not specify the network explicitly with all server creation.","commit_id":"3af61690c1e1d5909993af4917de067966dcf756"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"d96100c4c7c8768a9b76b26d27346798df0c629e","unresolved":false,"context_lines":[{"line_number":465,"context_line":"    _interface \u003d \u0027xml\u0027"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"class SharedNetworksTestJSON(base.BaseAdminNetworkTest):"},{"line_number":469,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2BzWQ%3D","line":468,"in_reply_to":"AAAAUX%2F%2FDTU%3D","updated":"2014-02-18 23:09:08.000000000","message":"Done","commit_id":"3af61690c1e1d5909993af4917de067966dcf756"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5c82a06e474bd4ce9f9e5a8cab7ff89b9bf8f235","unresolved":false,"context_lines":[{"line_number":494,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":495,"context_line":"        self.addCleanup(self.admin_client.delete_network, network[\u0027id\u0027])"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        #Verify that the network actually got created"},{"line_number":498,"context_line":"        resp, body \u003d self.admin_client.show_network(network[\u0027id\u0027])"},{"line_number":499,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":500,"context_line":"        resp_network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2FDXY%3D","line":497,"updated":"2014-02-17 12:51:19.000000000","message":"Space after #.","commit_id":"3af61690c1e1d5909993af4917de067966dcf756"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5c82a06e474bd4ce9f9e5a8cab7ff89b9bf8f235","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":519,"context_line":"        self.addCleanup(self.admin_client.delete_network, network[\u0027id\u0027])"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        #Verify that the network actually got created"},{"line_number":522,"context_line":"        resp, body \u003d self.admin_client.show_network(network[\u0027id\u0027])"},{"line_number":523,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":524,"context_line":"        resp_network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2FDXQ%3D","line":521,"updated":"2014-02-17 12:51:19.000000000","message":"Space after #.","commit_id":"3af61690c1e1d5909993af4917de067966dcf756"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"3e6e40fd00612e2680f9222646a4dd97e924eacc","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":283,"context_line":"    def test_create_port_with_no_ip(self):"},{"line_number":284,"context_line":"        # For this test create a new network - do not use any previously"},{"line_number":285,"context_line":"        # created netwroks."},{"line_number":286,"context_line":"        name \u003d data_utils.rand_name(\u0027network-nosubnet-\u0027)"},{"line_number":287,"context_line":"        resp, body \u003d self.client.create_network(name\u003dname)"},{"line_number":288,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2Bx6U%3D","line":285,"updated":"2014-02-19 04:50:08.000000000","message":"networks","commit_id":"81e21fc00b440861af419a7f5e09349b637ba4bb"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"4210d5825b4eb647649b2195778b606e3203f986","unresolved":false,"context_lines":[{"line_number":282,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":283,"context_line":"    def test_create_port_with_no_ip(self):"},{"line_number":284,"context_line":"        # For this test create a new network - do not use any previously"},{"line_number":285,"context_line":"        # created netwroks."},{"line_number":286,"context_line":"        name \u003d data_utils.rand_name(\u0027network-nosubnet-\u0027)"},{"line_number":287,"context_line":"        resp, body \u003d self.client.create_network(name\u003dname)"},{"line_number":288,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2BTkM%3D","line":285,"in_reply_to":"AAAAUX%2F%2Bx6U%3D","updated":"2014-02-22 01:00:15.000000000","message":"Done","commit_id":"81e21fc00b440861af419a7f5e09349b637ba4bb"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"d3a85bf85f707175a9399183f4d25167961d5d25","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":258,"context_line":"        cidr \u003d netaddr.IPNetwork(self.network_cfg.tenant_network_cidr)"},{"line_number":259,"context_line":"        mask_bits \u003d self.network_cfg.tenant_network_mask_bits"},{"line_number":260,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":261,"context_line":"            try:"},{"line_number":262,"context_line":"                resp, body \u003d self.client.create_subnet(network_id\u003dnet_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAU3%2F%2F5sQ%3D","line":259,"updated":"2014-02-24 07:00:05.000000000","message":"To use CONF.network instead of self.network_cfg:\n\n self.network_cfg.tenant_network_cidr -\u003e CONF.network.tenant_network_cidr\n self.network_cfg.tenant_network_mask_bits -\u003e CONF.network.tenant_network_mask_bits","commit_id":"5ae665281d00bc5f7e42231bab23e253a7babe73"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"33b2dc9be1d4b218a66bc12c5b2863d25f4e1e7d","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":258,"context_line":"        cidr \u003d netaddr.IPNetwork(self.network_cfg.tenant_network_cidr)"},{"line_number":259,"context_line":"        mask_bits \u003d self.network_cfg.tenant_network_mask_bits"},{"line_number":260,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":261,"context_line":"            try:"},{"line_number":262,"context_line":"                resp, body \u003d self.client.create_subnet(network_id\u003dnet_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2F0Bo%3D","line":259,"in_reply_to":"AAAAU3%2F%2F1oU%3D","updated":"2014-03-04 00:27:27.000000000","message":"Done","commit_id":"5ae665281d00bc5f7e42231bab23e253a7babe73"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"033732c7e52f329a4518e754b2466cec80efbe20","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":258,"context_line":"        cidr \u003d netaddr.IPNetwork(self.network_cfg.tenant_network_cidr)"},{"line_number":259,"context_line":"        mask_bits \u003d self.network_cfg.tenant_network_mask_bits"},{"line_number":260,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":261,"context_line":"            try:"},{"line_number":262,"context_line":"                resp, body \u003d self.client.create_subnet(network_id\u003dnet_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAU3%2F%2F1oU%3D","line":259,"in_reply_to":"AAAAU3%2F%2F5sQ%3D","updated":"2014-02-24 15:13:19.000000000","message":"No, this needs to be rebased and use the class cidr and mask so that both ipv4 and ipv6 tests work.\n\n  self.network_cfg.tenant_network_cidr -\u003e self._tenant_network_cidr\n  self.network_cfg.tenant_network_mask_bits -\u003e self._tenant_network_mask_bits","commit_id":"5ae665281d00bc5f7e42231bab23e253a7babe73"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e9fe82ef0be8b0cd4fcff0de39ea07315cc95f16","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                             \"Created port id not found in the list\")"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def _try_delete_network(self, net_id):"},{"line_number":308,"context_line":"        #delete network, if it exists"},{"line_number":309,"context_line":"        try:"},{"line_number":310,"context_line":"            self.client.delete_network(net_id)"},{"line_number":311,"context_line":"        #if network is not found, this means it was deleted in the test"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAVn%2F%2FnWU%3D","line":308,"updated":"2014-03-05 02:21:09.000000000","message":"pep8: need a space after #.","commit_id":"655f5771d8f48d925f038a859c4dbbc14250d15d"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"3eb85bfe53c5d7a86bf2d6b85977e0b5017892bd","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                             \"Created port id not found in the list\")"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def _try_delete_network(self, net_id):"},{"line_number":308,"context_line":"        #delete network, if it exists"},{"line_number":309,"context_line":"        try:"},{"line_number":310,"context_line":"            self.client.delete_network(net_id)"},{"line_number":311,"context_line":"        #if network is not found, this means it was deleted in the test"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAVn%2F%2FmAs%3D","line":308,"in_reply_to":"AAAAVn%2F%2FnWU%3D","updated":"2014-03-05 06:26:42.000000000","message":"I ran pep8 before submitting. If a space is required by pep8, how come it did not flag?","commit_id":"655f5771d8f48d925f038a859c4dbbc14250d15d"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e9fe82ef0be8b0cd4fcff0de39ea07315cc95f16","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        #delete network, if it exists"},{"line_number":309,"context_line":"        try:"},{"line_number":310,"context_line":"            self.client.delete_network(net_id)"},{"line_number":311,"context_line":"        #if network is not found, this means it was deleted in the test"},{"line_number":312,"context_line":"        except exceptions.NotFound:"},{"line_number":313,"context_line":"            pass"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAVn%2F%2FnWM%3D","line":311,"updated":"2014-03-05 02:21:09.000000000","message":"ditto","commit_id":"655f5771d8f48d925f038a859c4dbbc14250d15d"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c49b0d88087aa36be2d3fbafb3e35d940dedb02c","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        try:"},{"line_number":310,"context_line":"            self.client.delete_network(net_id)"},{"line_number":311,"context_line":"        # if network is not found, this means it was deleted in the test"},{"line_number":312,"context_line":"        except exceptions.NotFound:"},{"line_number":313,"context_line":"            pass"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FRkY%3D","line":312,"updated":"2014-03-07 05:25:51.000000000","message":"When you rebase on the latest code, exceptions is no longer imported. So you need add it:\n\n  from tempest import exceptions","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"f65ec44af29fa39eb969dcb19a5770d7ff772e53","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        try:"},{"line_number":310,"context_line":"            self.client.delete_network(net_id)"},{"line_number":311,"context_line":"        # if network is not found, this means it was deleted in the test"},{"line_number":312,"context_line":"        except exceptions.NotFound:"},{"line_number":313,"context_line":"            pass"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FK1k%3D","line":312,"in_reply_to":"AAAAVn%2F%2FRkY%3D","updated":"2014-03-07 22:01:42.000000000","message":"Done","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c49b0d88087aa36be2d3fbafb3e35d940dedb02c","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                    raise"},{"line_number":339,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":340,"context_line":"        subnet \u003d body[\u0027subnet\u0027]"},{"line_number":341,"context_line":"        subnet_id \u003d subnet[\u0027id\u0027]"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        # Delete network while the subnet still exists"},{"line_number":344,"context_line":"        resp, body \u003d self.client.delete_network(net_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FRjg%3D","line":341,"updated":"2014-03-07 05:25:51.000000000","message":"The BaseNetworkTest class now contains a create_subnet() method. So you need to replace lines 325-341 with:\n\n    subnet_id \u003d self.create_subnet(network)[\u0027id\u0027]","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"f65ec44af29fa39eb969dcb19a5770d7ff772e53","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                    raise"},{"line_number":339,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":340,"context_line":"        subnet \u003d body[\u0027subnet\u0027]"},{"line_number":341,"context_line":"        subnet_id \u003d subnet[\u0027id\u0027]"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        # Delete network while the subnet still exists"},{"line_number":344,"context_line":"        resp, body \u003d self.client.delete_network(net_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FK1Y%3D","line":341,"in_reply_to":"AAAAVn%2F%2FRjg%3D","updated":"2014-03-07 22:01:42.000000000","message":"Done","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c49b0d88087aa36be2d3fbafb3e35d940dedb02c","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        # Verify that the subnet got automatically deleted."},{"line_number":348,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.show_subnet,"},{"line_number":349,"context_line":"                          subnet_id)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":352,"context_line":"    def test_create_port_with_no_ip(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FRjI%3D","line":349,"updated":"2014-03-07 05:25:51.000000000","message":"The base create_subnet() method added the subnet to the list of subnets to be cleaned up, but you have deleted it in this test. Therefore you need to finish this function with:\n\n    # The subnet was deleted, so remove it from the cleanup list\n    self.subnets.pop()","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"f65ec44af29fa39eb969dcb19a5770d7ff772e53","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        # Verify that the subnet got automatically deleted."},{"line_number":348,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.show_subnet,"},{"line_number":349,"context_line":"                          subnet_id)"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":352,"context_line":"    def test_create_port_with_no_ip(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAVn%2F%2FK1I%3D","line":349,"in_reply_to":"AAAAVn%2F%2FRjI%3D","updated":"2014-03-07 22:01:42.000000000","message":"Done","commit_id":"beec973633dff3d2e6a92dda92b363a31b23d6c4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"33604ff2d3b85bf49859d991412ac34a854cb051","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        port update"},{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBqo%3D","line":47,"updated":"2014-03-10 16:26:03.000000000","message":"What do you think of : \"delete a network also deletes its subnets\".","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"0764292fc8d12c77f0f1ca133ddea820ecfc0a3f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        port update"},{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FdVU%3D","line":47,"in_reply_to":"AAAAVn%2F%2FBXY%3D","updated":"2014-03-17 19:29:16.000000000","message":"Agree with Jordan here for what it\u0027s worth, comment consistency is important.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae384b24a175f22457972c4291d8d81d3f69e179","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        port update"},{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBXY%3D","line":47,"in_reply_to":"AAAAVn%2F%2FBYk%3D","updated":"2014-03-10 16:46:27.000000000","message":"Sure, it\u0027s just for \"comment consistency\" (if such thing matters :p). We already know this is a test that is testing a thing.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"79ad572bb251b7ffa0a6a27329251d17cfa98080","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        port update"},{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBYk%3D","line":47,"in_reply_to":"AAAAVn%2F%2FBqo%3D","updated":"2014-03-10 16:41:36.000000000","message":"Both are just fine.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"87a2639a0fcaa30b67b8c30c122d2a0920d1c74a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        port update"},{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FaGA%3D","line":47,"in_reply_to":"AAAAWH%2F%2FdVU%3D","updated":"2014-03-18 03:24:42.000000000","message":"Done","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"33604ff2d3b85bf49859d991412ac34a854cb051","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBqE%3D","line":48,"updated":"2014-03-10 16:26:03.000000000","message":"create a port with no IP address associated to it","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"0764292fc8d12c77f0f1ca133ddea820ecfc0a3f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FdVI%3D","line":48,"in_reply_to":"AAAAVn%2F%2FBYc%3D","updated":"2014-03-17 19:29:16.000000000","message":"Agree with Jordan again.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"79ad572bb251b7ffa0a6a27329251d17cfa98080","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBYc%3D","line":48,"in_reply_to":"AAAAVn%2F%2FBqE%3D","updated":"2014-03-10 16:41:36.000000000","message":"ditto","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"87a2639a0fcaa30b67b8c30c122d2a0920d1c74a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        network update"},{"line_number":46,"context_line":"        subnet update"},{"line_number":47,"context_line":"        test that deleting a network deletes the subnets as well"},{"line_number":48,"context_line":"        test creating a port with no IP address associated with it"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        All subnet tests are run once with ipv4 and once with ipv6."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F%2FaGw%3D","line":48,"in_reply_to":"AAAAWH%2F%2FdVI%3D","updated":"2014-03-18 03:24:42.000000000","message":"Done","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"33604ff2d3b85bf49859d991412ac34a854cb051","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":309,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":310,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":311,"context_line":"        self.addCleanup(self._try_delete_network, net_id)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":314,"context_line":"        subnet \u003d self.create_subnet(network)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBpg%3D","line":311,"updated":"2014-03-10 16:26:03.000000000","message":"Is this really necessary ? Can you rely on the cleanup already done in tempest/api/network/base.py ? If not could you do the same \"self.networks.pop()\" trick ?","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ae384b24a175f22457972c4291d8d81d3f69e179","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":309,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":310,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":311,"context_line":"        self.addCleanup(self._try_delete_network, net_id)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":314,"context_line":"        subnet \u003d self.create_subnet(network)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBWs%3D","line":311,"in_reply_to":"AAAAVn%2F%2FBZI%3D","updated":"2014-03-10 16:46:27.000000000","message":"Okay. It\u0027s just that if each class overrides the delete() method or add its own delete() method that would duplicate a lot of code. But if there\u0027s no other way, i\u0027m fine with that.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"79ad572bb251b7ffa0a6a27329251d17cfa98080","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":309,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":310,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":311,"context_line":"        self.addCleanup(self._try_delete_network, net_id)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # Find a cidr that is not in use yet and create a subnet with it"},{"line_number":314,"context_line":"        subnet \u003d self.create_subnet(network)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAVn%2F%2FBZI%3D","line":311,"in_reply_to":"AAAAVn%2F%2FBpg%3D","updated":"2014-03-10 16:41:36.000000000","message":"No self.networks.pop() may not produce desired effects all the times. Depending upon which path the test takes to exit, this may or may not work. The present mechanism to cleanup is bullet proof.","commit_id":"ecdc8885beb3fc8c2fb7eaed2b25a9bad6a31485"}],"tempest/services/network/xml/network_client.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e1ffe75dcee2e883befba67d560df7107cd70ba8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":57,"context_line":"        p2 \u003d Element(\"name\", name)"},{"line_number":58,"context_line":"        post_body.append(p2)"},{"line_number":59,"context_line":"        for key, val in kwargs.iteritems():"},{"line_number":60,"context_line":"            p \u003d Element(key, val)"},{"line_number":61,"context_line":"            post_body.append(p)"},{"line_number":62,"context_line":"        resp, body \u003d self.post(uri, str(Document(post_body)))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BbZw%3D","line":59,"updated":"2014-01-26 22:51:10.000000000","message":"I think you can replace this loop with:\n\ndeep_dict_to_xml(post_body, kwargs)\n\nThis function is imported in line 17\n\nPlease make sure it works before you change it","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"990a2e5f00fa58b0313096af1e63c3c05a6be91b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":57,"context_line":"        p2 \u003d Element(\"name\", name)"},{"line_number":58,"context_line":"        post_body.append(p2)"},{"line_number":59,"context_line":"        for key, val in kwargs.iteritems():"},{"line_number":60,"context_line":"            p \u003d Element(key, val)"},{"line_number":61,"context_line":"            post_body.append(p)"},{"line_number":62,"context_line":"        resp, body \u003d self.post(uri, str(Document(post_body)))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F%2BVdg%3D","line":59,"in_reply_to":"AAAAUH%2F%2BbZw%3D","updated":"2014-01-27 22:37:12.000000000","message":"Done\n\nYes, I tested it and it works just fine.","commit_id":"1fc35d0bb69da07c2c70cfdfc16edbc36d955eee"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"f2630c8822d2e92d65b47c770bf2d7b70e17f801","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":57,"context_line":"        p2 \u003d Element(\"name\", name)"},{"line_number":58,"context_line":"        post_body.append(p2)"},{"line_number":59,"context_line":"        deep_dict_to_xml(post_body, kwargs)"},{"line_number":60,"context_line":"        resp, body \u003d self.post(uri, str(Document(post_body)))"},{"line_number":61,"context_line":"        body \u003d _root_tag_fetcher_and_xml_to_json_parse(body)"},{"line_number":62,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9wLw%3D","line":59,"updated":"2014-02-04 11:12:18.000000000","message":"This is not necessary now. There is no create_network method in tempest/services/network/xml/network_client.py","commit_id":"033e3b17499c35759980448124321030caf93d8a"},{"author":{"_account_id":6558,"name":"Sukhdev Kapur","email":"sukhdevkapur@gmail.com","username":"sukhdev-8"},"change_message_id":"b4717fb75815062b3ba597cd88024ea8a68f6fd3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":57,"context_line":"        p2 \u003d Element(\"name\", name)"},{"line_number":58,"context_line":"        post_body.append(p2)"},{"line_number":59,"context_line":"        deep_dict_to_xml(post_body, kwargs)"},{"line_number":60,"context_line":"        resp, body \u003d self.post(uri, str(Document(post_body)))"},{"line_number":61,"context_line":"        body \u003d _root_tag_fetcher_and_xml_to_json_parse(body)"},{"line_number":62,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2F%2BW4%3D","line":59,"in_reply_to":"AAAAUH%2F9wLw%3D","updated":"2014-02-08 02:44:40.000000000","message":"Done","commit_id":"033e3b17499c35759980448124321030caf93d8a"}]}
