)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e816a70a2f92fa17454c2241c4656ec73143bd9a","unresolved":false,"context_lines":[{"line_number":245,"context_line":"provider_network_type \u003d local"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"# Provider network device."},{"line_number":248,"context_line":"provider_physical_network \u003d "},{"line_number":249,"context_line":"# Example: provider_physical_network \u003d physnet1"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Available provider network vlan ID to create test network."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATH%2F%2FSSc%3D","line":248,"updated":"2013-10-18 12:44:55.000000000","message":"red space.","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"25011c4d06ea4fa902652b92698ba7c0fdd2176a","unresolved":false,"context_lines":[{"line_number":245,"context_line":"provider_network_type \u003d local"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"# Provider network device."},{"line_number":248,"context_line":"provider_physical_network \u003d "},{"line_number":249,"context_line":"# Example: provider_physical_network \u003d physnet1"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Available provider network vlan ID to create test network."}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATH%2F%2FOXw%3D","line":248,"in_reply_to":"AAAATH%2F%2FSSc%3D","updated":"2013-10-21 03:17:11.000000000","message":"Done","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e816a70a2f92fa17454c2241c4656ec73143bd9a","unresolved":false,"context_lines":[{"line_number":249,"context_line":"# Example: provider_physical_network \u003d physnet1"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Available provider network vlan ID to create test network."},{"line_number":252,"context_line":"provider_segmentation_id \u003d "},{"line_number":253,"context_line":"# Example: provider_segmentation_id \u003d 1000"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"[volume]"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATH%2F%2FSSA%3D","line":252,"updated":"2013-10-18 12:44:55.000000000","message":"red space.","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"25011c4d06ea4fa902652b92698ba7c0fdd2176a","unresolved":false,"context_lines":[{"line_number":249,"context_line":"# Example: provider_physical_network \u003d physnet1"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"# Available provider network vlan ID to create test network."},{"line_number":252,"context_line":"provider_segmentation_id \u003d "},{"line_number":253,"context_line":"# Example: provider_segmentation_id \u003d 1000"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"[volume]"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"AAAATH%2F%2FOXs%3D","line":252,"in_reply_to":"AAAATH%2F%2FSSA%3D","updated":"2013-10-21 03:17:11.000000000","message":"Done","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"368774d7822016752d98fdac447690a6cbdb1c03","unresolved":false,"context_lines":[{"line_number":242,"context_line":"# and provides no connectivity between hosts. You can change this"},{"line_number":243,"context_line":"# to \u0027vlan\u0027 and must configure provider_physical_network and"},{"line_number":244,"context_line":"# provider_segmentation_id."},{"line_number":245,"context_line":"provider_network_type \u003d local"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"# Provider network device."},{"line_number":248,"context_line":"provider_physical_network \u003d"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAATn%2F%2FyJU%3D","line":245,"updated":"2013-10-29 06:00:44.000000000","message":"Why it cannot be a multi-select option ?","commit_id":"5c6384056177e421943ffc978f78cd2f9d20838c"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"c1d27812042213198e81dca96747160df32a9e7e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"# and provides no connectivity between hosts. You can change this"},{"line_number":243,"context_line":"# to \u0027vlan\u0027 and must configure provider_physical_network and"},{"line_number":244,"context_line":"# provider_segmentation_id."},{"line_number":245,"context_line":"provider_network_type \u003d local"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"# Provider network device."},{"line_number":248,"context_line":"provider_physical_network \u003d"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAATn%2F%2FyDw%3D","line":245,"in_reply_to":"AAAATn%2F%2FyJU%3D","updated":"2013-10-29 06:05:32.000000000","message":"Because one suite OpenStack should only support one type of network","commit_id":"5c6384056177e421943ffc978f78cd2f9d20838c"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":368,"context_line":"# provider_segmentation_id (string value)"},{"line_number":369,"context_line":"#provider_network_type\u003dlocal"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"# Provider network device (string value)"},{"line_number":372,"context_line":"#provider_physical_network\u003d"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"# Available provider network vlan ID to create test network"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"AAAATn%2F%2BSv4%3D","line":371,"updated":"2013-11-27 19:31:54.000000000","message":"Is that like \u0027eth0\u0027 or a Neutron network ID ?","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":368,"context_line":"# provider_segmentation_id (string value)"},{"line_number":369,"context_line":"#provider_network_type\u003dlocal"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"# Provider network device (string value)"},{"line_number":372,"context_line":"#provider_physical_network\u003d"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"# Available provider network vlan ID to create test network"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"AAAATn%2F%2BReo%3D","line":371,"in_reply_to":"AAAATn%2F%2BSv4%3D","updated":"2013-11-28 02:41:17.000000000","message":"It\u0027s like eth0.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":372,"context_line":"#provider_physical_network\u003d"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"# Available provider network vlan ID to create test network"},{"line_number":375,"context_line":"# (string value)"},{"line_number":376,"context_line":"#provider_segmentation_id\u003d"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"AAAATn%2F%2BSvw%3D","line":375,"updated":"2013-11-27 19:31:54.000000000","message":"It seems odd to me that tempest would create a provider network. At least today, without a full top to bottom SDN stack, provider networks are fairly static.\n\nPerhaps it would be better to pass in a network ID and use that.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":372,"context_line":"#provider_physical_network\u003d"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"# Available provider network vlan ID to create test network"},{"line_number":375,"context_line":"# (string value)"},{"line_number":376,"context_line":"#provider_segmentation_id\u003d"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"AAAATn%2F%2BRd4%3D","line":375,"in_reply_to":"AAAATn%2F%2BSvw%3D","updated":"2013-11-28 02:41:17.000000000","message":"It\u0027s means to cover the neutron api, so it\u0027s not quite odd as you saw.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"cff2ec9d7c4dfd1c56e89b6352617ec5b878e75a","unresolved":false,"context_lines":[{"line_number":369,"context_line":"#provider_network_type\u003dlocal"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"# Provider network device (string value)"},{"line_number":372,"context_line":"#provider_physical_network\u003d"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"# Available provider network vlan ID to create test network"},{"line_number":375,"context_line":"# (string value)"}],"source_content_type":"application/octet-stream","patch_set":30,"id":"AAAATn%2F%2BONI%3D","line":372,"updated":"2013-11-28 18:27:23.000000000","message":"I still think we should put example here - it\u0027s just a matter of changing the help to be more explicit.","commit_id":"6b1f397208188d2b73083a6f44445df8f23726c1"}],"tempest/api/network/admin/test_provider_network_extension.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e816a70a2f92fa17454c2241c4656ec73143bd9a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FSSk%3D","line":85,"updated":"2013-10-18 12:44:55.000000000","message":"In test case you should never make decision based on the _interface.\n\nPlease have xml service/rest_client to return back with the same name as the json version.","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"25011c4d06ea4fa902652b92698ba7c0fdd2176a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FOX0%3D","line":85,"in_reply_to":"AAAATH%2F%2FSSk%3D","updated":"2013-10-21 03:17:11.000000000","message":"Why I try to make decision based on the _interface is that OpenStack return different   content attributes name. I wonder why it comes out like this, Do you have some better idea,  IMO OpenStack should return same attributes in XML and JSON","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e816a70a2f92fa17454c2241c4656ec73143bd9a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        for n in networks:"},{"line_number":100,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":101,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":102,"context_line":"                if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":103,"context_line":"                    self.assertEqual(n[\u0027network_type\u0027],"},{"line_number":104,"context_line":"                                     self.config.network.provider_network_type)"},{"line_number":105,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FSS0%3D","line":102,"updated":"2013-10-18 12:44:55.000000000","message":"In test case you should never make decision based on the _interface.\n\nPlease have xml service/rest_client to return back with the same name as the json version.","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"25011c4d06ea4fa902652b92698ba7c0fdd2176a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        for n in networks:"},{"line_number":100,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":101,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":102,"context_line":"                if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":103,"context_line":"                    self.assertEqual(n[\u0027network_type\u0027],"},{"line_number":104,"context_line":"                                     self.config.network.provider_network_type)"},{"line_number":105,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FOYA%3D","line":102,"in_reply_to":"AAAATH%2F%2FSS0%3D","updated":"2013-10-21 03:17:11.000000000","message":"Done","commit_id":"03ae07579218d3c6e80448eb73a9b3d07042ffa0"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"aa2bd2ded051d0ed3e35cebeb37b538e51a9c4a0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKx8%3D","line":84,"updated":"2013-10-22 04:46:12.000000000","message":"Please remove print network","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"16c8835881862dbd5b17ffaac8a7c6bd0dea2d35","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKvM%3D","line":84,"in_reply_to":"AAAATH%2F%2FKx8%3D","updated":"2013-10-22 05:31:10.000000000","message":"Done","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"aa2bd2ded051d0ed3e35cebeb37b538e51a9c4a0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKxs%3D","line":85,"updated":"2013-10-22 04:46:12.000000000","message":"As afazekas mentioned, don\u0027t use _interface to make decision.  You may have two choice: modify show_network in xml client to return same attribute name with json client, or make decision base on attribute name\n\nif self.network[\u0027network_type\u0027]:\n    self.assertEqual(self.network[\u0027network_type\u0027],\n                             self.config.network.provider_network_type)\nelse:\n    self.assertEqual(self.network[\u0027provider:network_type\u0027],\n                             self.config.network.provider_network_type)","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"16c8835881862dbd5b17ffaac8a7c6bd0dea2d35","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":84,"context_line":"        print network"},{"line_number":85,"context_line":"        if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":86,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":87,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":88,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKvA%3D","line":85,"in_reply_to":"AAAATH%2F%2FKxs%3D","updated":"2013-10-22 05:31:10.000000000","message":"Done","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"aa2bd2ded051d0ed3e35cebeb37b538e51a9c4a0","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        for n in networks:"},{"line_number":100,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":101,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":102,"context_line":"                if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":103,"context_line":"                    self.assertEqual(n[\u0027network_type\u0027],"},{"line_number":104,"context_line":"                                     self.config.network.provider_network_type)"},{"line_number":105,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKw8%3D","line":102,"updated":"2013-10-22 04:46:12.000000000","message":"ditto","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"16c8835881862dbd5b17ffaac8a7c6bd0dea2d35","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        for n in networks:"},{"line_number":100,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":101,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":102,"context_line":"                if(self._interface \u003d\u003d \u0027xml\u0027):"},{"line_number":103,"context_line":"                    self.assertEqual(n[\u0027network_type\u0027],"},{"line_number":104,"context_line":"                                     self.config.network.provider_network_type)"},{"line_number":105,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FKu8%3D","line":102,"in_reply_to":"AAAATH%2F%2FKw8%3D","updated":"2013-10-22 05:31:10.000000000","message":"Done","commit_id":"f16a24731cdb0fcb1dec041f87ee2aade6f15a19"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"3dadeb836a3073e02c45006b6084b137a2294c68","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        updated_net \u003d body[\u0027network\u0027]"},{"line_number":71,"context_line":"        self.assertEqual(updated_net[\u0027name\u0027], new_name)"},{"line_number":72,"context_line":"        # Delete network"},{"line_number":73,"context_line":"        resp, body \u003d self.client.delete_network(net_id)"},{"line_number":74,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FjUM%3D","line":73,"updated":"2013-11-01 14:29:09.000000000","message":"Use addCleanup, please. \n\nIf previous lines(say L69, L71) fail, current delete_network won\u0027t be called.\n\nThus, result in garbage resource not reclaimed.","commit_id":"5c6384056177e421943ffc978f78cd2f9d20838c"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"3dadeb836a3073e02c45006b6084b137a2294c68","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":77,"context_line":"    def test_show_network_with_provider_attributes(self):"},{"line_number":78,"context_line":"        # Verifies the details of a network"},{"line_number":79,"context_line":"        resp, body \u003d self.client.show_network(self.network[\u0027id\u0027])"},{"line_number":80,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":81,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":82,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAATn%2F%2FjT0%3D","line":79,"updated":"2013-11-01 14:29:09.000000000","message":"Should we create a random network first, before this?","commit_id":"5c6384056177e421943ffc978f78cd2f9d20838c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"28677b4d672563c4d6e4bafc2bd9ad31913df70d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.api.network import base"},{"line_number":18,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BXcg%3D","line":18,"updated":"2013-11-26 21:30:42.000000000","message":"Please change here to:\n\n from tempest.common.utils import data_utils\n\nNow this kind of import has been changed to the above.","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f4f1946f8aab728a026083885fb53cb1d0f38288","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from tempest.api.network import base"},{"line_number":18,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BWgM%3D","line":18,"in_reply_to":"AAAATn%2F%2BXcg%3D","updated":"2013-11-27 02:09:29.000000000","message":"Done","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"28677b4d672563c4d6e4bafc2bd9ad31913df70d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        create a network for a tenant with provider attributes"},{"line_number":30,"context_line":"        list tenant\u0027s networks with provider attributes"},{"line_number":31,"context_line":"        show a tenant network details"},{"line_number":32,"context_line":"        update tenant\u0027s networks with provider attributes"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    v2.0 of the Neutron API is assumed. It is also assumed that the following"},{"line_number":35,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BXdA%3D","line":32,"updated":"2013-11-26 21:30:42.000000000","message":"line 29-32 must be necessary?\nIt would be difficult to maintain these lines when adding some tests in the future.\nIn addition, current test names are good to understand them.","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e911db4c00cfc33208d591767a92b920dc11dff4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        create a network for a tenant with provider attributes"},{"line_number":30,"context_line":"        list tenant\u0027s networks with provider attributes"},{"line_number":31,"context_line":"        show a tenant network details"},{"line_number":32,"context_line":"        update tenant\u0027s networks with provider attributes"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    v2.0 of the Neutron API is assumed. It is also assumed that the following"},{"line_number":35,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BWdc%3D","line":32,"in_reply_to":"AAAATn%2F%2BWgA%3D","updated":"2013-11-27 02:16:26.000000000","message":"Thanks for your explanation. I see.","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f4f1946f8aab728a026083885fb53cb1d0f38288","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        create a network for a tenant with provider attributes"},{"line_number":30,"context_line":"        list tenant\u0027s networks with provider attributes"},{"line_number":31,"context_line":"        show a tenant network details"},{"line_number":32,"context_line":"        update tenant\u0027s networks with provider attributes"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    v2.0 of the Neutron API is assumed. It is also assumed that the following"},{"line_number":35,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BWgA%3D","line":32,"in_reply_to":"AAAATn%2F%2BXdA%3D","updated":"2013-11-27 02:09:29.000000000","message":"all other network tests have covered this part. It showed out the coverage of this test.","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"28677b4d672563c4d6e4bafc2bd9ad31913df70d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            resp, body \u003d self.admin_client.create_local_network("},{"line_number":55,"context_line":"                name,"},{"line_number":56,"context_line":"                self.config.network.provider_network_type)"},{"line_number":57,"context_line":"        if (self.config.network.provider_network_type) \u003d\u003d \u0027vlan\u0027:"},{"line_number":58,"context_line":"            resp, body \u003d self.admin_client.create_vlan_network("},{"line_number":59,"context_line":"                name,"},{"line_number":60,"context_line":"                self.config.network.provider_network_type,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BXcQ%3D","line":57,"updated":"2013-11-26 21:30:42.000000000","message":"s/if/elif/","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f4f1946f8aab728a026083885fb53cb1d0f38288","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            resp, body \u003d self.admin_client.create_local_network("},{"line_number":55,"context_line":"                name,"},{"line_number":56,"context_line":"                self.config.network.provider_network_type)"},{"line_number":57,"context_line":"        if (self.config.network.provider_network_type) \u003d\u003d \u0027vlan\u0027:"},{"line_number":58,"context_line":"            resp, body \u003d self.admin_client.create_vlan_network("},{"line_number":59,"context_line":"                name,"},{"line_number":60,"context_line":"                self.config.network.provider_network_type,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BWf8%3D","line":57,"in_reply_to":"AAAATn%2F%2BXcQ%3D","updated":"2013-11-27 02:09:29.000000000","message":"Done","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    Tests the following operations in the Neutron API using the REST client for"},{"line_number":27,"context_line":"    Neutron:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        create a network for a tenant with provider attributes"},{"line_number":30,"context_line":"        list tenant\u0027s networks with provider attributes"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BSvY%3D","line":27,"updated":"2013-11-27 19:31:54.000000000","message":"PEP-257 - this should be a single line paragraph.\n\ne.g.\n\n\"\"\"Test Neutron provider network using the REST client.\n\nThe following operations are tested:\n\n* ...\n\n\"\"\"","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    Tests the following operations in the Neutron API using the REST client for"},{"line_number":27,"context_line":"    Neutron:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        create a network for a tenant with provider attributes"},{"line_number":30,"context_line":"        list tenant\u0027s networks with provider attributes"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BRck%3D","line":27,"in_reply_to":"AAAATn%2F%2BSvY%3D","updated":"2013-11-28 02:41:17.000000000","message":"Done","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        can be allocated for tenant networks"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        tenant_network_mask_bits with the mask bits to be used to partition the"},{"line_number":41,"context_line":"        block defined by tenant-network_cidr"},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BSvI%3D","line":41,"updated":"2013-11-27 19:31:54.000000000","message":"This list seems to be incomplete since it\u0027s missing the new options you added - but perhaps they aren\u0027t relevant here?","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        can be allocated for tenant networks"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        tenant_network_mask_bits with the mask bits to be used to partition the"},{"line_number":41,"context_line":"        block defined by tenant-network_cidr"},{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BRco%3D","line":41,"in_reply_to":"AAAATn%2F%2BSvI%3D","updated":"2013-11-28 02:41:17.000000000","message":"Will add new options.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bc45b5b69d8231f648bf464859c84169e75386b7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            resp, body \u003d self.admin_client.create_local_network("},{"line_number":60,"context_line":"                name,"},{"line_number":61,"context_line":"                self.config.network.provider_network_type)"},{"line_number":62,"context_line":"        elif (self.config.network.provider_network_type) \u003d\u003d \u0027vlan\u0027:"},{"line_number":63,"context_line":"            resp, body \u003d self.admin_client.create_vlan_network("},{"line_number":64,"context_line":"                name,"},{"line_number":65,"context_line":"                self.config.network.provider_network_type,"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAATn%2F9irQ%3D","line":62,"updated":"2013-12-10 12:47:14.000000000","message":"instead of doing a conditional here, I\u0027d rather break these out as 2 different test cases. Then depending on network type, one of them is skipped. Factor the checks into a common function to call in these cases.","commit_id":"e9713833c2b20daa85f8d2e882562b7adc865c21"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e8b5cefe598b7d138c58dfb9a993da0291141805","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FwMI%3D","line":1,"updated":"2014-02-11 02:09:27.000000000","message":"this line should be removed.","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2Flrg%3D","line":1,"in_reply_to":"AAAAUX%2F%2FwMI%3D","updated":"2014-02-12 06:46:33.000000000","message":"Done","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e8b5cefe598b7d138c58dfb9a993da0291141805","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.network import base"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class NetworkProviderExtJSON(base.BaseAdminNetworkTest):"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FwLs%3D","line":22,"updated":"2014-02-11 02:09:27.000000000","message":"better to import module:\nfrom tempest.test import attr -\u003e \tfrom tempest import test","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.network import base"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class NetworkProviderExtJSON(base.BaseAdminNetworkTest):"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2Flrc%3D","line":22,"in_reply_to":"AAAAUX%2F%2FwLs%3D","updated":"2014-02-12 06:46:33.000000000","message":"Done","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e8b5cefe598b7d138c58dfb9a993da0291141805","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        cls.network \u003d cls.create_network_with_provider_attributes()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @testtools.skipIf("},{"line_number":58,"context_line":"        config.TempestConfig().network.provider_network_type is \u0027vlan\u0027,"},{"line_number":59,"context_line":"        \"Neutron provider network type is not local\")"},{"line_number":60,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":61,"context_line":"    def test_create_update_local_network_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FwK8%3D","line":58,"updated":"2014-02-11 02:09:27.000000000","message":"Please use \"config.CONF\" instead of \"config.TempestConfig()\" and self.config. \n\n CONF \u003d config.CONF\n CONF.network.provider_network_type","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        cls.network \u003d cls.create_network_with_provider_attributes()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @testtools.skipIf("},{"line_number":58,"context_line":"        config.TempestConfig().network.provider_network_type is \u0027vlan\u0027,"},{"line_number":59,"context_line":"        \"Neutron provider network type is not local\")"},{"line_number":60,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":61,"context_line":"    def test_create_update_local_network_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2Flqk%3D","line":58,"in_reply_to":"AAAAUX%2F%2FwK8%3D","updated":"2014-02-12 06:46:33.000000000","message":"Done","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"b68c822f57de905f05cee8b25cf31ee4fda2003b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":112,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":113,"context_line":"        if \u0027network_type\u0027 in self.network:"},{"line_number":114,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":115,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":116,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2F4MQ%3D","line":113,"updated":"2014-02-10 08:20:03.000000000","message":"This if else contraction is here because of xml/json differences. This is looks bad. I has the same problem in my tests for external network, so I created a change that fix it. I suggest you to rebase on this https://review.openstack.org/64130, but, please be careful and use \"git review -R\" when you will push new pathes. This would also may help you to avoid creating create_network_with_provider_attrs in xml and json clients.","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":111,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":112,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":113,"context_line":"        if \u0027network_type\u0027 in self.network:"},{"line_number":114,"context_line":"            self.assertEqual(self.network[\u0027network_type\u0027],"},{"line_number":115,"context_line":"                             self.config.network.provider_network_type)"},{"line_number":116,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FlqI%3D","line":113,"in_reply_to":"AAAAUX%2F%2F4MQ%3D","updated":"2014-02-12 06:46:33.000000000","message":"ok, I understood your commit and I will wait until your commit merge and thanks for your comments.","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"}],"tempest/api/network/base.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        if not (admin_username and admin_password and admin_tenant):"},{"line_number":175,"context_line":"            msg \u003d (\"Missing Compute Network API credentials \""},{"line_number":176,"context_line":"                   \"in configuration.\")"},{"line_number":177,"context_line":"            raise cls.skipException(msg)"},{"line_number":178,"context_line":"        cls.os_adm \u003d clients.AdminManager(interface\u003dcls._interface)"},{"line_number":179,"context_line":"        cls.client \u003d cls.os_adm.network_client"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FwbU%3D","line":177,"updated":"2013-10-10 09:31:18.000000000","message":"in https://review.openstack.org/#/c/47554/4 the admin client has been added directly to BaseNetworkTest as some API tests need the same operation to be performed with and without admin credentials.\nI suggest going into that direction instead of creating another class.\n\nThe checks for presence of admin username and password make sense if it\u0027s agreed it\u0027s ok to skip rather than fail in this cases; if merged in a single class, this check should be performed possibly with a decorator on the method requiring admin credentials.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"1513a536959cf4e2c968f3d5880b61474d99da96","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        if not (admin_username and admin_password and admin_tenant):"},{"line_number":175,"context_line":"            msg \u003d (\"Missing Compute Network API credentials \""},{"line_number":176,"context_line":"                   \"in configuration.\")"},{"line_number":177,"context_line":"            raise cls.skipException(msg)"},{"line_number":178,"context_line":"        cls.os_adm \u003d clients.AdminManager(interface\u003dcls._interface)"},{"line_number":179,"context_line":"        cls.client \u003d cls.os_adm.network_client"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fr4Q%3D","line":177,"in_reply_to":"AAAATH%2F%2FwbU%3D","updated":"2013-10-11 18:14:08.000000000","message":"Done","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"28677b4d672563c4d6e4bafc2bd9ad31913df70d","unresolved":false,"context_lines":[{"line_number":258,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027local\u0027:"},{"line_number":259,"context_line":"            resp, body \u003d cls.admin_client.create_local_network("},{"line_number":260,"context_line":"                network_name, network_type)"},{"line_number":261,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027vlan\u0027:"},{"line_number":262,"context_line":"            resp, body \u003d cls.admin_client.create_vlan_network("},{"line_number":263,"context_line":"                network_name,"},{"line_number":264,"context_line":"                network_type,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BXaY%3D","line":261,"updated":"2013-11-26 21:30:42.000000000","message":"s/if/elif/","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"f4f1946f8aab728a026083885fb53cb1d0f38288","unresolved":false,"context_lines":[{"line_number":258,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027local\u0027:"},{"line_number":259,"context_line":"            resp, body \u003d cls.admin_client.create_local_network("},{"line_number":260,"context_line":"                network_name, network_type)"},{"line_number":261,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027vlan\u0027:"},{"line_number":262,"context_line":"            resp, body \u003d cls.admin_client.create_vlan_network("},{"line_number":263,"context_line":"                network_name,"},{"line_number":264,"context_line":"                network_type,"}],"source_content_type":"text/x-python","patch_set":24,"id":"AAAATn%2F%2BWf0%3D","line":261,"in_reply_to":"AAAATn%2F%2BXaY%3D","updated":"2013-11-27 02:09:29.000000000","message":"Done","commit_id":"981a1c333a1a6f87296f8b2f086c88c1748729cf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c7d37499bb98817eb8415d9dd8405cb67cbd0c4a","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                                physical_network\u003dNone,"},{"line_number":248,"context_line":"                                                segmentation_id\u003dNone):"},{"line_number":249,"context_line":"        \"\"\"Wrapper utility that returns a test network with attributes.\"\"\""},{"line_number":250,"context_line":"        network_name \u003d network_name or rand_name(\u0027test-network-\u0027)"},{"line_number":251,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":252,"context_line":"        physical_network \u003d physical_network or ("},{"line_number":253,"context_line":"            cls.config.network.provider_physical_network)"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAATn%2F%2BWdw%3D","line":250,"updated":"2013-11-27 02:15:57.000000000","message":"s/rand_name/data_utils.rand_name/","commit_id":"34af401b0e5f98bae022742e319d93f0b2cad4a0"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"a40c151e96299439a54435e59cce407bf9fc607d","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                                                physical_network\u003dNone,"},{"line_number":248,"context_line":"                                                segmentation_id\u003dNone):"},{"line_number":249,"context_line":"        \"\"\"Wrapper utility that returns a test network with attributes.\"\"\""},{"line_number":250,"context_line":"        network_name \u003d network_name or rand_name(\u0027test-network-\u0027)"},{"line_number":251,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":252,"context_line":"        physical_network \u003d physical_network or ("},{"line_number":253,"context_line":"            cls.config.network.provider_physical_network)"}],"source_content_type":"text/x-python","patch_set":25,"id":"AAAATn%2F%2BWcY%3D","line":250,"in_reply_to":"AAAATn%2F%2BWdw%3D","updated":"2013-11-27 02:20:39.000000000","message":"Done","commit_id":"34af401b0e5f98bae022742e319d93f0b2cad4a0"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                network_type\u003dNone,"},{"line_number":247,"context_line":"                                                physical_network\u003dNone,"},{"line_number":248,"context_line":"                                                segmentation_id\u003dNone):"},{"line_number":249,"context_line":"        \"\"\"Wrapper utility that returns a test network with attributes.\"\"\""},{"line_number":250,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"},{"line_number":251,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":252,"context_line":"        physical_network \u003d physical_network or ("}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BSuk%3D","line":249,"updated":"2013-11-27 19:31:54.000000000","message":"What attributes does it return?","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                network_type\u003dNone,"},{"line_number":247,"context_line":"                                                physical_network\u003dNone,"},{"line_number":248,"context_line":"                                                segmentation_id\u003dNone):"},{"line_number":249,"context_line":"        \"\"\"Wrapper utility that returns a test network with attributes.\"\"\""},{"line_number":250,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"},{"line_number":251,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":252,"context_line":"        physical_network \u003d physical_network or ("}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BRbg%3D","line":249,"in_reply_to":"AAAATn%2F%2BSuk%3D","updated":"2013-11-28 02:41:17.000000000","message":"a network with attributes.\n| provider:network_type\n| provider:physical_network\n| provider:segmentation_id","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"824aef84885cbaa8e0df9e1194f397b127427def","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        segmentation_id \u003d segmentation_id or ("},{"line_number":255,"context_line":"            cls.config.network.provider_segmentation_id)"},{"line_number":256,"context_line":"        if segmentation_id:"},{"line_number":257,"context_line":"                segmentation_id \u003d str(eval(segmentation_id) + 1)"},{"line_number":258,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027local\u0027:"},{"line_number":259,"context_line":"            resp, body \u003d cls.admin_client.create_local_network("},{"line_number":260,"context_line":"                network_name, network_type)"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BSuE%3D","line":257,"updated":"2013-11-27 19:31:54.000000000","message":"This is very odd code: you\u0027re evaluating the segmentation id as python, and then adding 1?\n\nSo if I put a segmentation id of \"subprocess.call(\u0027sudo rm -rf /\u0027)\" it\u0027s going to go very badly.\n\nIf you want this to be an int, use an int parser :) - int(segmentation_id)\n\nBut then there is the +1 thing - that means that what a user types into the config isn\u0027t what will be used. Thats super odd.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"b40b998832bdfb9ff55356c179544f5459523668","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        segmentation_id \u003d segmentation_id or ("},{"line_number":255,"context_line":"            cls.config.network.provider_segmentation_id)"},{"line_number":256,"context_line":"        if segmentation_id:"},{"line_number":257,"context_line":"                segmentation_id \u003d str(eval(segmentation_id) + 1)"},{"line_number":258,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027local\u0027:"},{"line_number":259,"context_line":"            resp, body \u003d cls.admin_client.create_local_network("},{"line_number":260,"context_line":"                network_name, network_type)"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATn%2F%2BRcM%3D","line":257,"in_reply_to":"AAAATn%2F%2BSuE%3D","updated":"2013-11-28 02:41:17.000000000","message":"This +1 thing is for make the create vlan network api work, if not +1. It will fail due to the the segmentation_id is used.","commit_id":"02268d22643545699983506ed27cd058015877b2"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"cff2ec9d7c4dfd1c56e89b6352617ec5b878e75a","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def tearDownClass(cls):"},{"line_number":238,"context_line":"        # Clean up networks"},{"line_number":239,"context_line":"        for network in cls.admin_networks:"},{"line_number":240,"context_line":"            cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":241,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BOM4%3D","line":240,"updated":"2013-11-28 18:27:23.000000000","message":"This needs a try: finally: or the parent tearDownClass may not run.","commit_id":"6b1f397208188d2b73083a6f44445df8f23726c1"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"cff2ec9d7c4dfd1c56e89b6352617ec5b878e75a","unresolved":false,"context_lines":[{"line_number":246,"context_line":"                                                network_type\u003dNone,"},{"line_number":247,"context_line":"                                                physical_network\u003dNone,"},{"line_number":248,"context_line":"                                                segmentation_id\u003dNone):"},{"line_number":249,"context_line":"        \"\"\"Wrapper utility that returns a test network with attributes.\"\"\""},{"line_number":250,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"},{"line_number":251,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":252,"context_line":"        physical_network \u003d physical_network or ("}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BOM0%3D","line":249,"updated":"2013-11-28 18:27:23.000000000","message":"Ok, so please add that description to the docstring :)","commit_id":"6b1f397208188d2b73083a6f44445df8f23726c1"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"cff2ec9d7c4dfd1c56e89b6352617ec5b878e75a","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        segmentation_id \u003d segmentation_id or ("},{"line_number":255,"context_line":"            cls.config.network.provider_segmentation_id)"},{"line_number":256,"context_line":"        if segmentation_id:"},{"line_number":257,"context_line":"            segmentation_id \u003d str(eval(segmentation_id) + 1)"},{"line_number":258,"context_line":"        if (cls.config.network.provider_network_type) \u003d\u003d \u0027local\u0027:"},{"line_number":259,"context_line":"            resp, body \u003d cls.admin_client.create_local_network("},{"line_number":260,"context_line":"                network_name, network_type)"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATn%2F%2BOMY%3D","line":257,"updated":"2013-11-28 18:27:23.000000000","message":"If I understand correctly, that means this will fail if there is another class using this parameter at the same time, because both will try to use the same segmentation id.\n\nThis needs to be fixed (or a warning put on the option to help other developers not use it).\n\nThe +1 may be a symptom of that: what happens if you do not add +1? E.g. if the user just puts the right value in?\n\nLastly you left it as eval() which is something that must change.","commit_id":"6b1f397208188d2b73083a6f44445df8f23726c1"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"f20866b56292139d470496c51983b816165fe194","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def tearDownClass(cls):"},{"line_number":238,"context_line":"        # Clean up networks"},{"line_number":239,"context_line":"        for network in cls.admin_networks:"},{"line_number":240,"context_line":"            cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":241,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAATn%2F%2BJXA%3D","line":240,"updated":"2013-12-01 22:46:09.000000000","message":"Still needs a try:finally.","commit_id":"5345fcb1bf9d26b6234e2e4129e9edfce4704c88"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"3a95c89325a19d24666712313176474b3de349d3","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def tearDownClass(cls):"},{"line_number":238,"context_line":"        # Clean up networks"},{"line_number":239,"context_line":"        for network in cls.admin_networks:"},{"line_number":240,"context_line":"            cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":241,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAATn%2F%2BJGc%3D","line":240,"in_reply_to":"AAAATn%2F%2BJXA%3D","updated":"2013-12-02 02:12:13.000000000","message":"I don not think we need a try:finally here.","commit_id":"5345fcb1bf9d26b6234e2e4129e9edfce4704c88"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"f20866b56292139d470496c51983b816165fe194","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        \"\"\""},{"line_number":251,"context_line":"        Wrapper utility that returns a test network with network_type,"},{"line_number":252,"context_line":"        physical_network and segmentation_id."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAATn%2F%2BJW8%3D","line":252,"updated":"2013-12-01 22:46:09.000000000","message":"But now you\u0027ve broken PEP-257.\n\nSomething like this:\n\n \"\"\"Wrapper utilitty that creates a test network.\n\n :param network_name: The name to give the created network.\n :param network_type: The network type to use. Defaults to the Tempest config for  \n     provider_network_type.\n :param physical_network: The physical network to use. Defaults to the Tempest config\n     for provider_physical_network.\n :param segmentation_id: The segmentation id to use for the physical network.\n     Defaults to the Tempest config for provider_segementation_id.\n \"\"\"","commit_id":"5345fcb1bf9d26b6234e2e4129e9edfce4704c88"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"3a95c89325a19d24666712313176474b3de349d3","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        \"\"\""},{"line_number":251,"context_line":"        Wrapper utility that returns a test network with network_type,"},{"line_number":252,"context_line":"        physical_network and segmentation_id."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"AAAATn%2F%2BJGY%3D","line":252,"in_reply_to":"AAAATn%2F%2BJW8%3D","updated":"2013-12-02 02:12:13.000000000","message":"Done","commit_id":"5345fcb1bf9d26b6234e2e4129e9edfce4704c88"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6ada7462284c231daac22d08fb603123f016d5fe","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def tearDownClass(cls):"},{"line_number":238,"context_line":"        # Clean up networks"},{"line_number":239,"context_line":"        for network in cls.admin_networks:"},{"line_number":240,"context_line":"            cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":241,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAATn%2F%2BDIM%3D","line":240,"updated":"2013-12-03 03:10:15.000000000","message":"If delete_network throws, the base class teardown will not run.\n\n-\u003e you need a try:finally.\n\nThis is a well known basic and fundamental problem with tearDown and tearDownClass.\n\nWhy do you think you don\u0027t need this?","commit_id":"8f7f77a2a0d12a15b23a53818b6f20048751b2d8"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"a953a631d6f2be02fb8dc67f629bb65de7de2016","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def tearDownClass(cls):"},{"line_number":238,"context_line":"        # Clean up networks"},{"line_number":239,"context_line":"        for network in cls.admin_networks:"},{"line_number":240,"context_line":"            cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":241,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":32,"id":"AAAATn%2F%2BDFo%3D","line":240,"in_reply_to":"AAAATn%2F%2BDIM%3D","updated":"2013-12-03 03:24:30.000000000","message":"Done","commit_id":"8f7f77a2a0d12a15b23a53818b6f20048751b2d8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"2f513bad5b95b144ec99661d5844211becb44fc5","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            try:"},{"line_number":241,"context_line":"                cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":242,"context_line":"            except exceptions.NotFound:"},{"line_number":243,"context_line":"                pass"},{"line_number":244,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F99k0%3D","line":243,"updated":"2013-12-03 23:43:52.000000000","message":"Much better, thank you. It can still fail to run tearDownClass though, e.g. if the network is broken for some reason - so the super call does need to be in a finally:...\n\n try:\n     for network in cls.admin_networks:\n         try:\n         ...\n finally:\n     super(...)","commit_id":"b0b89b7aef2543844e33b6a32929b9690c3dd3c3"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"cd301d98c4e7e524d5553deda2022f5fcd7ac326","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            try:"},{"line_number":241,"context_line":"                cls.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":242,"context_line":"            except exceptions.NotFound:"},{"line_number":243,"context_line":"                pass"},{"line_number":244,"context_line":"        super(BaseAdminNetworkTest, cls).tearDownClass()"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F99DY%3D","line":243,"in_reply_to":"AAAATn%2F99k0%3D","updated":"2013-12-04 02:32:41.000000000","message":"Done","commit_id":"b0b89b7aef2543844e33b6a32929b9690c3dd3c3"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e8b5cefe598b7d138c58dfb9a993da0291141805","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        \"\"\""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"},{"line_number":322,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":323,"context_line":"        physical_network \u003d physical_network or ("},{"line_number":324,"context_line":"            cls.config.network.provider_physical_network)"},{"line_number":325,"context_line":"        segmentation_id \u003d segmentation_id or ("}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FwHM%3D","line":322,"updated":"2014-02-11 02:09:27.000000000","message":"using \"config.CONF\" instead of \"cls.config\"","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        \"\"\""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network-\u0027)"},{"line_number":322,"context_line":"        network_type \u003d network_type or cls.config.network.provider_network_type"},{"line_number":323,"context_line":"        physical_network \u003d physical_network or ("},{"line_number":324,"context_line":"            cls.config.network.provider_physical_network)"},{"line_number":325,"context_line":"        segmentation_id \u003d segmentation_id or ("}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FlpM%3D","line":322,"in_reply_to":"AAAAUX%2F%2FwHM%3D","updated":"2014-02-12 06:46:33.000000000","message":"Done","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"}],"tempest/api/network/test_provider_network_extension.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class NetworkProviderExtJSON(base.BaseAdminNetworkTest):"},{"line_number":23,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FwY0%3D","line":22,"updated":"2013-10-10 09:31:18.000000000","message":"We might need a facility to skip the test if the plugin does not support the extension.\n\nThis won\u0027t be important for gate testing, but might be useful for people running tempest on plugins not supporting this extension.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class NetworkProviderExtJSON(base.BaseAdminNetworkTest):"},{"line_number":23,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoA8%3D","line":22,"in_reply_to":"AAAATH%2F%2FwY0%3D","updated":"2013-10-12 07:15:29.000000000","message":"Add a attribute in configuration file to adapt the network_type.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        name \u003d rand_name(\u0027network-\u0027)"},{"line_number":53,"context_line":"        network_type \u003d \u0027local\u0027"},{"line_number":54,"context_line":"        resp, body \u003d self.client.create_network_with_provider_attributes("},{"line_number":55,"context_line":"            name, network_type)"},{"line_number":56,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":57,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":58,"context_line":"        net_id \u003d network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FwbA%3D","line":55,"updated":"2013-10-10 09:31:18.000000000","message":"This test is actually adding little - merely just that the API is accepting the provider attribute.\n\nwith these attribute being technology specific I agree it\u0027s hard. However the VLAN network type is currently supported by all the plugins I know of. Why not try with that type? If a plugin does not support that network type, we can turn off the test with a conf variable.\n\nAlso, in the (near) future we might expose an admin feature to reveal network types supported in the plugin via neutron admin  API extensions.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        name \u003d rand_name(\u0027network-\u0027)"},{"line_number":53,"context_line":"        network_type \u003d \u0027local\u0027"},{"line_number":54,"context_line":"        resp, body \u003d self.client.create_network_with_provider_attributes("},{"line_number":55,"context_line":"            name, network_type)"},{"line_number":56,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":57,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":58,"context_line":"        net_id \u003d network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoA4%3D","line":55,"in_reply_to":"AAAATH%2F%2FwbA%3D","updated":"2013-10-12 07:15:29.000000000","message":"Will add vlan network_type test in following patch.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":74,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":75,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":76,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_networks_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fwa4%3D","line":76,"updated":"2013-10-10 09:31:18.000000000","message":"you\u0027re not checking if the provider attributes are present","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":74,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":75,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], network[\u0027id\u0027])"},{"line_number":76,"context_line":"        self.assertEqual(self.network[\u0027name\u0027], network[\u0027name\u0027])"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_networks_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoA0%3D","line":76,"in_reply_to":"AAAATH%2F%2Fwa4%3D","updated":"2013-10-12 07:15:29.000000000","message":"Done","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":87,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":88,"context_line":"        msg \u003d \"Network list doesn\u0027t contain created network\""},{"line_number":89,"context_line":"        self.assertIsNotNone(found, msg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class NetworkProviderExtXML(NetworkProviderExtJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fwa0%3D","line":89,"updated":"2013-10-10 09:31:18.000000000","message":"you should check the provider attributes are present","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            if (n[\u0027id\u0027] \u003d\u003d self.network[\u0027id\u0027]):"},{"line_number":87,"context_line":"                found \u003d n[\u0027id\u0027]"},{"line_number":88,"context_line":"        msg \u003d \"Network list doesn\u0027t contain created network\""},{"line_number":89,"context_line":"        self.assertIsNotNone(found, msg)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class NetworkProviderExtXML(NetworkProviderExtJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoAw%3D","line":89,"in_reply_to":"AAAATH%2F%2Fwa0%3D","updated":"2013-10-12 07:15:29.000000000","message":"Done","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"}],"tempest/config.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bc45b5b69d8231f648bf464859c84169e75386b7","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                    \"provider_physical_network and \""},{"line_number":333,"context_line":"                    \"provider_segmentation_id\"),"},{"line_number":334,"context_line":"    cfg.StrOpt(\u0027provider_physical_network\u0027,"},{"line_number":335,"context_line":"               default\u003d\"eth0\","},{"line_number":336,"context_line":"               help\u003d\"Provider network device name\"),"},{"line_number":337,"context_line":"    cfg.StrOpt(\u0027provider_segmentation_id\u0027,"},{"line_number":338,"context_line":"               default\u003d\"1000\","}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAATn%2F9iqk%3D","line":335,"updated":"2013-12-10 12:47:14.000000000","message":"I think these should not have default values","commit_id":"e9713833c2b20daa85f8d2e882562b7adc865c21"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bc45b5b69d8231f648bf464859c84169e75386b7","unresolved":false,"context_lines":[{"line_number":335,"context_line":"               default\u003d\"eth0\","},{"line_number":336,"context_line":"               help\u003d\"Provider network device name\"),"},{"line_number":337,"context_line":"    cfg.StrOpt(\u0027provider_segmentation_id\u0027,"},{"line_number":338,"context_line":"               default\u003d\"1000\","},{"line_number":339,"context_line":"               help\u003d\"Available provider network vlan ID to create \""},{"line_number":340,"context_line":"                    \"test network\"),"},{"line_number":341,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAATn%2F9iqY%3D","line":338,"updated":"2013-12-10 12:47:14.000000000","message":"Same here, not default values, as the default for this is local. I also think the bulk of the help should be on these options instead of the provider_network_type option","commit_id":"e9713833c2b20daa85f8d2e882562b7adc865c21"}],"tempest/services/network/json/network_client.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        body \u003d json.loads(body)"},{"line_number":602,"context_line":"        return resp, body"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_network_with_provider_attributes(self, name, network_type):"},{"line_number":605,"context_line":"        post_body \u003d {"},{"line_number":606,"context_line":"            \u0027network\u0027: {"},{"line_number":607,"context_line":"                \u0027name\u0027: name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FwZU%3D","line":604,"updated":"2013-10-10 09:31:18.000000000","message":"It appears you can avoid doing a new method by adopting the same substitution technique as neutron unit tests: replacing \u0027__\u0027 with \u0027:\u0027.\nIn this way provider__network_type will be translated into provider:network_type.\n\nThis can be achieved with a simple change in create_network and I think it will keep this client module more manageable.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        body \u003d json.loads(body)"},{"line_number":602,"context_line":"        return resp, body"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_network_with_provider_attributes(self, name, network_type):"},{"line_number":605,"context_line":"        post_body \u003d {"},{"line_number":606,"context_line":"            \u0027network\u0027: {"},{"line_number":607,"context_line":"                \u0027name\u0027: name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoBM%3D","line":604,"in_reply_to":"AAAATH%2F%2FwZU%3D","updated":"2013-10-12 07:15:29.000000000","message":"It will be addressed in next patch.","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bc45b5b69d8231f648bf464859c84169e75386b7","unresolved":false,"context_lines":[{"line_number":698,"context_line":"        body \u003d json.loads(body)"},{"line_number":699,"context_line":"        return resp, body"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    def create_local_network(self, name, network_type):"},{"line_number":702,"context_line":"        post_body \u003d {"},{"line_number":703,"context_line":"            \u0027network\u0027: {"},{"line_number":704,"context_line":"                \u0027name\u0027: name,"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAATn%2F9ipk%3D","line":701,"updated":"2013-12-10 12:47:14.000000000","message":"I think it would be better to have this as a single method \n\ncreate_network_with_provider_attrs(self, name, network_type\u003d\u0027local\u0027, physical_network\u003dNone, seg_id\u003dNone)\n\nThen add physical_network \u0026 seg_id to the dictionary only if needed","commit_id":"e9713833c2b20daa85f8d2e882562b7adc865c21"},{"author":{"_account_id":7930,"name":"jun xie","email":"easonxie160@163.com","username":"jeffreycoho"},"change_message_id":"f233e8afb5d4620bc4f2f054a1d7b11176ef3042","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                    \u0027name\u0027: name,"},{"line_number":549,"context_line":"                    \u0027provider:network_type\u0027: network_type,"},{"line_number":550,"context_line":"                }"},{"line_number":551,"context_line":"            }"},{"line_number":552,"context_line":"        elif network_type \u003d\u003d \u0027vlan\u0027:"},{"line_number":553,"context_line":"            post_body \u003d {"},{"line_number":554,"context_line":"                \u0027network\u0027: {"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAATn%2F8nuU%3D","line":551,"updated":"2013-12-24 07:57:38.000000000","message":"better if doing it like the following?:\ndefine the post_body like line 546, and then check \nif the type is \u0027vlan\u0027, add the provider:physical_network and \n\"segmentation_id\" into the dict. (based on that the default type is local), then we can avoid checking if it is local in the code.","commit_id":"f5f9d198b70ea6285d4212068509f3764d01d231"},{"author":{"_account_id":7930,"name":"jun xie","email":"easonxie160@163.com","username":"jeffreycoho"},"change_message_id":"0440bce82027bfddafee10a472ecf36c36e1a1a4","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                    \u0027name\u0027: name,"},{"line_number":549,"context_line":"                    \u0027provider:network_type\u0027: network_type,"},{"line_number":550,"context_line":"                }"},{"line_number":551,"context_line":"            }"},{"line_number":552,"context_line":"        elif network_type \u003d\u003d \u0027vlan\u0027:"},{"line_number":553,"context_line":"            post_body \u003d {"},{"line_number":554,"context_line":"                \u0027network\u0027: {"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAAUH%2F%2Fp0w%3D","line":551,"in_reply_to":"AAAAT3%2F%2F%2BCI%3D","updated":"2014-01-10 02:34:57.000000000","message":"Hi,chen, I mean sth like this:\npost_body \u003d {# line 546 till 551}\nif network_type \u003d\u003d \u0027vlan\u0027:\n   {change the post_body to what Line553 like} \n....Line 561...","commit_id":"f5f9d198b70ea6285d4212068509f3764d01d231"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"36238a84f874eee8888313f763426a060c9655ea","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                    \u0027name\u0027: name,"},{"line_number":549,"context_line":"                    \u0027provider:network_type\u0027: network_type,"},{"line_number":550,"context_line":"                }"},{"line_number":551,"context_line":"            }"},{"line_number":552,"context_line":"        elif network_type \u003d\u003d \u0027vlan\u0027:"},{"line_number":553,"context_line":"            post_body \u003d {"},{"line_number":554,"context_line":"                \u0027network\u0027: {"}],"source_content_type":"text/x-python","patch_set":40,"id":"AAAAT3%2F%2F%2BCI%3D","line":551,"in_reply_to":"AAAATn%2F8nuU%3D","updated":"2013-12-26 05:20:41.000000000","message":"It seems that we can not judge the type in post_body definition part. So suggest to keep it this way. Thanks for the comments.","commit_id":"f5f9d198b70ea6285d4212068509f3764d01d231"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e8b5cefe598b7d138c58dfb9a993da0291141805","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                \u0027name\u0027: name,"},{"line_number":427,"context_line":"                \u0027provider:network_type\u0027: network_type,"},{"line_number":428,"context_line":"            }"},{"line_number":429,"context_line":"        }"},{"line_number":430,"context_line":"        if network_type \u003d\u003d \u0027vlan\u0027:"},{"line_number":431,"context_line":"            post_body \u003d {"},{"line_number":432,"context_line":"                \u0027network\u0027: {"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2FwGI%3D","line":429,"updated":"2014-02-11 02:09:27.000000000","message":"line 421~429 could be moved to the \u0027else\u0027 of \"if network_type \u003d\u003d vlan\"","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"714ab0984fcfa1a524e1caa27cb7035a272cfd71","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                \u0027name\u0027: name,"},{"line_number":427,"context_line":"                \u0027provider:network_type\u0027: network_type,"},{"line_number":428,"context_line":"            }"},{"line_number":429,"context_line":"        }"},{"line_number":430,"context_line":"        if network_type \u003d\u003d \u0027vlan\u0027:"},{"line_number":431,"context_line":"            post_body \u003d {"},{"line_number":432,"context_line":"                \u0027network\u0027: {"}],"source_content_type":"text/x-python","patch_set":42,"id":"AAAAUX%2F%2Flos%3D","line":429,"in_reply_to":"AAAAUX%2F%2FwGI%3D","updated":"2014-02-12 06:46:33.000000000","message":"Done","commit_id":"3ef74bf1b9c71321109a1a7bf6048839731c8769"}],"tempest/services/network/xml/network_client.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0efa46a1db058ce0748a0b822ad5c3ec6fb33eab","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        body \u003d _root_tag_fetcher_and_xml_to_json_parse(body)"},{"line_number":548,"context_line":"        return resp, body"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    def create_network_with_provider_attributes(self, name, network_type):"},{"line_number":551,"context_line":"        uri \u003d \u0027%s/networks\u0027 % (self.uri_prefix)"},{"line_number":552,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":553,"context_line":"        post_body.add_attr(\u0027xmlns\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FwZI%3D","line":550,"updated":"2013-10-10 09:31:18.000000000","message":"see similar comment in the json client module","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":8607,"name":"ChenZheng","email":"czheng@cn.ibm.com","username":"ChenZheng"},"change_message_id":"6de12a48f03a98dd9827d8221d1e93fab3b4cc56","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        body \u003d _root_tag_fetcher_and_xml_to_json_parse(body)"},{"line_number":548,"context_line":"        return resp, body"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"    def create_network_with_provider_attributes(self, name, network_type):"},{"line_number":551,"context_line":"        uri \u003d \u0027%s/networks\u0027 % (self.uri_prefix)"},{"line_number":552,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":553,"context_line":"        post_body.add_attr(\u0027xmlns\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoBI%3D","line":550,"in_reply_to":"AAAATH%2F%2FwZI%3D","updated":"2013-10-12 07:15:29.000000000","message":"Done","commit_id":"bcb16dec91b9944d598342dcad3d4ef2a908efe4"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bc45b5b69d8231f648bf464859c84169e75386b7","unresolved":false,"context_lines":[{"line_number":580,"context_line":"        body \u003d {\u0027service_providers\u0027: providers}"},{"line_number":581,"context_line":"        return resp, body"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def create_local_network(self, name, network_type):"},{"line_number":584,"context_line":"        uri \u003d \u0027%s/networks\u0027 % (self.uri_prefix)"},{"line_number":585,"context_line":"        post_body \u003d Element(\"network\")"},{"line_number":586,"context_line":"        post_body.add_attr(\u0027xmlns\u0027,"}],"source_content_type":"text/x-python","patch_set":35,"id":"AAAATn%2F9ipg%3D","line":583,"updated":"2013-12-10 12:47:14.000000000","message":"same as before, I think this is one method and not 2","commit_id":"e9713833c2b20daa85f8d2e882562b7adc865c21"}]}
