)]}'
{"tempest/api/network/base.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        failure \u003d None"},{"line_number":157,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":158,"context_line":"            try:"},{"line_number":159,"context_line":"                kwargs \u003d {\"network_id\": network[\u0027id\u0027],"},{"line_number":160,"context_line":"                          \"cidr\": str(subnet_cidr),"},{"line_number":161,"context_line":"                          \"ip_version\": cls._ip_version}"},{"line_number":162,"context_line":"                if gateway_ip:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAU3%2F%2FZjU%3D","line":159,"updated":"2014-02-26 23:32:29.000000000","message":"How about setting up the unchanging elements of kwargs before the for loop, and change only kwargs[\u0027cidr\u0027] here inside the loop.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        failure \u003d None"},{"line_number":157,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":158,"context_line":"            try:"},{"line_number":159,"context_line":"                kwargs \u003d {\"network_id\": network[\u0027id\u0027],"},{"line_number":160,"context_line":"                          \"cidr\": str(subnet_cidr),"},{"line_number":161,"context_line":"                          \"ip_version\": cls._ip_version}"},{"line_number":162,"context_line":"                if gateway_ip:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FNw%3D","line":159,"in_reply_to":"AAAAU3%2F%2FZjU%3D","updated":"2014-02-27 00:30:11.000000000","message":"Made this change","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                          \"cidr\": str(subnet_cidr),"},{"line_number":161,"context_line":"                          \"ip_version\": cls._ip_version}"},{"line_number":162,"context_line":"                if gateway_ip:"},{"line_number":163,"context_line":"                    kwargs.update({\u0027gateway_ip\u0027: gateway_ip})"},{"line_number":164,"context_line":"                resp, body \u003d cls.client.create_subnet(**kwargs)"},{"line_number":165,"context_line":"                break"},{"line_number":166,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAU3%2F%2FZhE%3D","line":163,"updated":"2014-02-26 23:32:29.000000000","message":"The .update() method is overkill here. Just do kwargs[\u0027gateway_ip\u0027] \u003d gateway_ip","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                          \"cidr\": str(subnet_cidr),"},{"line_number":161,"context_line":"                          \"ip_version\": cls._ip_version}"},{"line_number":162,"context_line":"                if gateway_ip:"},{"line_number":163,"context_line":"                    kwargs.update({\u0027gateway_ip\u0027: gateway_ip})"},{"line_number":164,"context_line":"                resp, body \u003d cls.client.create_subnet(**kwargs)"},{"line_number":165,"context_line":"                break"},{"line_number":166,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FNg%3D","line":163,"in_reply_to":"AAAAU3%2F%2FZhE%3D","updated":"2014-02-27 00:30:11.000000000","message":"Made this change","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7196d533deae08c7483b3902d4391815e4811973","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                kwargs[\u0027cidr\u0027] \u003d str(subnet_cidr)"},{"line_number":162,"context_line":"                if gateway_ip:"},{"line_number":163,"context_line":"                    kwargs[\u0027gateway_ip\u0027] \u003d gateway_ip"},{"line_number":164,"context_line":"                resp, body \u003d cls.client.create_subnet(**kwargs)"},{"line_number":165,"context_line":"                break"},{"line_number":166,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":167,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F6Mw%3D","line":164,"updated":"2014-02-27 13:07:43.000000000","message":"Inside the try you should have only the statements that you are expecting to raise the specific exception. The assignment of kwargs should go outside the try.","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"99227f4197188094db2e7f885abcd960c7d6922d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                kwargs[\u0027cidr\u0027] \u003d str(subnet_cidr)"},{"line_number":162,"context_line":"                if gateway_ip:"},{"line_number":163,"context_line":"                    kwargs[\u0027gateway_ip\u0027] \u003d gateway_ip"},{"line_number":164,"context_line":"                resp, body \u003d cls.client.create_subnet(**kwargs)"},{"line_number":165,"context_line":"                break"},{"line_number":166,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":167,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F3c8%3D","line":164,"in_reply_to":"AAAAVX%2F%2F6Mw%3D","updated":"2014-02-27 18:48:41.000000000","message":"Thank you. Have made this change","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"5c7ddc63cc2fb2472d5663dd4710b57ad8d62cda","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        if gateway_ip:"},{"line_number":159,"context_line":"            kwargs[\u0027gateway_ip\u0027] \u003d gateway_ip"},{"line_number":160,"context_line":"        if subnet_args:"},{"line_number":161,"context_line":"            for key, value in subnet_args.iteritems():"},{"line_number":162,"context_line":"                kwargs.update({key: value})"},{"line_number":163,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":164,"context_line":"            kwargs[\u0027cidr\u0027] \u003d str(subnet_cidr)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FzyU%3D","line":161,"updated":"2014-03-13 17:22:51.000000000","message":"You dont need this for loop.\nyou can do:\nif subnet_args:\n    kwargs.update(subnet_args)","commit_id":"3efe67aff5156d06f5d0c95de8df1a8c58a1cdf5"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"69bee533ba22035a6eeb1073fb676f547068a908","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        if gateway_ip:"},{"line_number":159,"context_line":"            kwargs[\u0027gateway_ip\u0027] \u003d gateway_ip"},{"line_number":160,"context_line":"        if subnet_args:"},{"line_number":161,"context_line":"            for key, value in subnet_args.iteritems():"},{"line_number":162,"context_line":"                kwargs.update({key: value})"},{"line_number":163,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":164,"context_line":"            kwargs[\u0027cidr\u0027] \u003d str(subnet_cidr)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F%2FzWY%3D","line":161,"in_reply_to":"AAAAWH%2F%2FzyU%3D","updated":"2014-03-13 18:01:14.000000000","message":"Made this change.","commit_id":"3efe67aff5156d06f5d0c95de8df1a8c58a1cdf5"}],"tempest/api/network/test_networks.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"34c8b22c27d6a136a4caa51117a555ca58267a4a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                             \"Created port id not found in the list\")"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":238,"context_line":"    def test_create_update_subnet_with_non_default_gateway(self):"},{"line_number":239,"context_line":"        # Creates a network"},{"line_number":240,"context_line":"        name \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":241,"context_line":"        resp, body \u003d self.client.create_network(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9iT0%3D","line":238,"updated":"2014-02-06 08:00:57.000000000","message":"For me test_create_update_delete_network_subnet and this function is too similar. Can you try to introduce helper functions to get rid of the code duplication? Also can you check if BaseNetworkTest.create_subnet()  can be extended for this puprose?","commit_id":"31d4a2f2b3b88ff15d077bc3e231602369296f3d"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"24d6ecf9dc0324dc0c1a33b2c34b28d01b08ad5e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                             \"Created port id not found in the list\")"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":238,"context_line":"    def test_create_update_subnet_with_non_default_gateway(self):"},{"line_number":239,"context_line":"        # Creates a network"},{"line_number":240,"context_line":"        name \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":241,"context_line":"        resp, body \u003d self.client.create_network(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2FwiM%3D","line":238,"in_reply_to":"AAAAUH%2F9iT0%3D","updated":"2014-02-11 00:21:59.000000000","message":"Incorporating both the comment I have uploaded a patch","commit_id":"31d4a2f2b3b88ff15d077bc3e231602369296f3d"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ca83362fec925a427e23396e63f72ac74abe8657","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        cls.port \u003d cls.create_port(cls.network)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _create_verify_network(self, kwargs):"},{"line_number":68,"context_line":"        resp, body \u003d self.client.create_network(**kwargs)"},{"line_number":69,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":70,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":71,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FlAk%3D","line":68,"updated":"2014-02-12 08:31:41.000000000","message":"As if you the same parameter name in kwargs is not it better to add this to _create_verify_network method? So it will be \n\n    name \u003d data_utils.rand_name(\u0027network-\u0027)\n    resp, body \u003d self.client.create_network(name\u003dname)\t\n\nand in tests it will be just\n\n   network \u003d self._create_verify_network()\n\nin all its calls.","commit_id":"161ecdfb73b0a3a7ddac10fd46c40e49c5bea1b5"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def test_create_update_subnet_with_non_default_gateway(self):"},{"line_number":147,"context_line":"        # Creates a network"},{"line_number":148,"context_line":"        name \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":149,"context_line":"        kwargs \u003d {\u0027name\u0027: name}"},{"line_number":150,"context_line":"        network \u003d self._create_verify_network()"},{"line_number":151,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":152,"context_line":"        # Find a cidr that is not in use yet and create"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2Fsg%3D","line":149,"updated":"2014-02-26 23:32:29.000000000","message":"Not used.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    def test_create_update_subnet_with_non_default_gateway(self):"},{"line_number":147,"context_line":"        # Creates a network"},{"line_number":148,"context_line":"        name \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":149,"context_line":"        kwargs \u003d {\u0027name\u0027: name}"},{"line_number":150,"context_line":"        network \u003d self._create_verify_network()"},{"line_number":151,"context_line":"        net_id \u003d network[\u0027id\u0027]"},{"line_number":152,"context_line":"        # Find a cidr that is not in use yet and create"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FNM%3D","line":149,"in_reply_to":"AAAAVX%2F%2F%2Fsg%3D","updated":"2014-02-27 00:30:11.000000000","message":"Had left it there by mistake.Very sorry.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                gateway_ip \u003d str(subnet_cidr)[0:-3]"},{"line_number":163,"context_line":"            gateway_ip \u003d gateway_ip + \u00272\u0027"},{"line_number":164,"context_line":"            start_ip \u003d gateway_ip[0:-1] + \u00274\u0027"},{"line_number":165,"context_line":"            end_ip \u003d gateway_ip[0:-1] + \u002714\u0027"},{"line_number":166,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":167,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":168,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2F3s%3D","line":165,"updated":"2014-02-26 23:32:29.000000000","message":"Don\u0027t manipulate ip addresses as strings. Use the methods provided by netaddr. In this case you can use iter_hosts() I think. Replace lines 159-165 with:\n\n    subnet_hosts \u003d subnet_cidr.iter_hosts()\n    gateway_ip1 \u003d str(next(subnet_hosts))\n    gateway_ip2 \u003d str(next(subnet_hosts))\n    start_ip \u003d str(next(subnet_hosts))\n    end_ip \u003d next(subnet_hosts)\n    # Try to get a pool of 10, but stop if we run out.\n    for __ in xrange(9):\n        try:\n            end_ip \u003d next(subnet_hosts)\n        except StopIteration:\n            break\n    end_ip \u003d str(end_ip)\n\n(You need to use next since iter_hosts() is a generator.)\n\nThis code works for both ip versions.\nUse gateway_ip1 to create the subnet and gateway_ip2 to update it.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                gateway_ip \u003d str(subnet_cidr)[0:-3]"},{"line_number":163,"context_line":"            gateway_ip \u003d gateway_ip + \u00272\u0027"},{"line_number":164,"context_line":"            start_ip \u003d gateway_ip[0:-1] + \u00274\u0027"},{"line_number":165,"context_line":"            end_ip \u003d gateway_ip[0:-1] + \u002714\u0027"},{"line_number":166,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":167,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":168,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FM4%3D","line":165,"in_reply_to":"AAAAVX%2F%2F%2F3s%3D","updated":"2014-02-27 00:30:11.000000000","message":"used netaddr in place of string manipulations","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            gateway_ip \u003d gateway_ip + \u00272\u0027"},{"line_number":164,"context_line":"            start_ip \u003d gateway_ip[0:-1] + \u00274\u0027"},{"line_number":165,"context_line":"            end_ip \u003d gateway_ip[0:-1] + \u002714\u0027"},{"line_number":166,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":167,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":168,"context_line":"            else:"},{"line_number":169,"context_line":"                allocation_pool_dict \u003d {\u0027allocation_pool\u0027: {\"start\": start_ip,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2Fkk%3D","line":166,"updated":"2014-02-26 23:32:29.000000000","message":"This seems like the wrong place to be checking json vs. xml. Perhaps someone who knows how this should be done can chime in.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            gateway_ip \u003d gateway_ip + \u00272\u0027"},{"line_number":164,"context_line":"            start_ip \u003d gateway_ip[0:-1] + \u00274\u0027"},{"line_number":165,"context_line":"            end_ip \u003d gateway_ip[0:-1] + \u002714\u0027"},{"line_number":166,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":167,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":168,"context_line":"            else:"},{"line_number":169,"context_line":"                allocation_pool_dict \u003d {\u0027allocation_pool\u0027: {\"start\": start_ip,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FMk%3D","line":166,"in_reply_to":"AAAAVX%2F%2F%2Fkk%3D","updated":"2014-02-27 00:30:11.000000000","message":"I will keep this here for now","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                    raise"},{"line_number":182,"context_line":"        gateway_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":183,"context_line":"        #Update the gateway with another valid gateway"},{"line_number":184,"context_line":"        gateway_ip \u003d gateway_ip[0:-1] + \u00273\u0027"},{"line_number":185,"context_line":"         # Verification of subnet update"},{"line_number":186,"context_line":"        kwargs \u003d {\u0027gateway_ip\u0027: gateway_ip}"},{"line_number":187,"context_line":"        updated_subnet \u003d self._update_verify_subnet(subnet, kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2Fk8%3D","line":184,"updated":"2014-02-26 23:32:29.000000000","message":"Remove lines 182-184.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                    raise"},{"line_number":182,"context_line":"        gateway_ip \u003d subnet[\u0027gateway_ip\u0027]"},{"line_number":183,"context_line":"        #Update the gateway with another valid gateway"},{"line_number":184,"context_line":"        gateway_ip \u003d gateway_ip[0:-1] + \u00273\u0027"},{"line_number":185,"context_line":"         # Verification of subnet update"},{"line_number":186,"context_line":"        kwargs \u003d {\u0027gateway_ip\u0027: gateway_ip}"},{"line_number":187,"context_line":"        updated_subnet \u003d self._update_verify_subnet(subnet, kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FMc%3D","line":184,"in_reply_to":"AAAAVX%2F%2F%2Fk8%3D","updated":"2014-02-27 00:30:11.000000000","message":"Removed","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"668dc319ec12626c2b5d869a35f0ec646b296685","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        #Update the gateway with another valid gateway"},{"line_number":184,"context_line":"        gateway_ip \u003d gateway_ip[0:-1] + \u00273\u0027"},{"line_number":185,"context_line":"         # Verification of subnet update"},{"line_number":186,"context_line":"        kwargs \u003d {\u0027gateway_ip\u0027: gateway_ip}"},{"line_number":187,"context_line":"        updated_subnet \u003d self._update_verify_subnet(subnet, kwargs)"},{"line_number":188,"context_line":"        # Delete subnet and network"},{"line_number":189,"context_line":"        self._delete_verify_subnet(updated_subnet)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2Fk0%3D","line":186,"updated":"2014-02-26 23:32:29.000000000","message":"Use gateway_ip2 here.","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"61e242e17fef449ee60e7d0888cd71388022c4a4","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        #Update the gateway with another valid gateway"},{"line_number":184,"context_line":"        gateway_ip \u003d gateway_ip[0:-1] + \u00273\u0027"},{"line_number":185,"context_line":"         # Verification of subnet update"},{"line_number":186,"context_line":"        kwargs \u003d {\u0027gateway_ip\u0027: gateway_ip}"},{"line_number":187,"context_line":"        updated_subnet \u003d self._update_verify_subnet(subnet, kwargs)"},{"line_number":188,"context_line":"        # Delete subnet and network"},{"line_number":189,"context_line":"        self._delete_verify_subnet(updated_subnet)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVX%2F%2F%2FMU%3D","line":186,"in_reply_to":"AAAAVX%2F%2F%2Fk0%3D","updated":"2014-02-27 00:30:11.000000000","message":"used gateway_ip2","commit_id":"a77b051e238fe2cb9ff013e420e2b90d52cb4efa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7196d533deae08c7483b3902d4391815e4811973","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":128,"context_line":"            try:"},{"line_number":129,"context_line":"                kwargs \u003d {\"network_id\": net_id, \"cidr\": str(subnet_cidr),"},{"line_number":130,"context_line":"                          \"ip_version\": self._ip_version}"},{"line_number":131,"context_line":"                subnet \u003d self._create_verify_subnet(kwargs)"},{"line_number":132,"context_line":"                break"},{"line_number":133,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F6N4%3D","line":130,"updated":"2014-02-27 13:07:43.000000000","message":"The assignment of kwargs should go outside the try.","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"99227f4197188094db2e7f885abcd960c7d6922d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        for subnet_cidr in cidr.subnet(mask_bits):"},{"line_number":128,"context_line":"            try:"},{"line_number":129,"context_line":"                kwargs \u003d {\"network_id\": net_id, \"cidr\": str(subnet_cidr),"},{"line_number":130,"context_line":"                          \"ip_version\": self._ip_version}"},{"line_number":131,"context_line":"                subnet \u003d self._create_verify_subnet(kwargs)"},{"line_number":132,"context_line":"                break"},{"line_number":133,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F3bo%3D","line":130,"in_reply_to":"AAAAVX%2F%2F6N4%3D","updated":"2014-02-27 18:48:41.000000000","message":"Thank you. Have made this change","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"b92e4f4a18314d955bb1a29eed962ef638283f12","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                except StopIteration:"},{"line_number":167,"context_line":"                    break"},{"line_number":168,"context_line":"            end_ip \u003d str(end_ip)"},{"line_number":169,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":170,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                allocation_pool_dict \u003d {\u0027allocation_pool\u0027: {\"start\": start_ip,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F9GM%3D","line":169,"updated":"2014-02-27 06:35:17.000000000","message":"Use if else in case of xml\\json differences is bad idea. This came be fixed adding name \u0027allocation_pools\u0027 to  PLURALS list in tempest/services/network/xml/network_client.py I\u0027ve had the same problem, look at this change https://review.openstack.org/65943. Do the same as I\u0027ve done to \u0027members\u0027 and you will avoid using unnecessary if else contraction.","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7196d533deae08c7483b3902d4391815e4811973","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                except StopIteration:"},{"line_number":167,"context_line":"                    break"},{"line_number":168,"context_line":"            end_ip \u003d str(end_ip)"},{"line_number":169,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":170,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                allocation_pool_dict \u003d {\u0027allocation_pool\u0027: {\"start\": start_ip,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F6NU%3D","line":169,"in_reply_to":"AAAAVX%2F%2F9GM%3D","updated":"2014-02-27 13:07:43.000000000","message":"+1","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"99227f4197188094db2e7f885abcd960c7d6922d","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                except StopIteration:"},{"line_number":167,"context_line":"                    break"},{"line_number":168,"context_line":"            end_ip \u003d str(end_ip)"},{"line_number":169,"context_line":"            if self._interface \u003d\u003d \"json\":"},{"line_number":170,"context_line":"                allocation_pool_dict \u003d [{\"start\": start_ip, \"end\": end_ip}]"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                allocation_pool_dict \u003d {\u0027allocation_pool\u0027: {\"start\": start_ip,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F3KI%3D","line":169,"in_reply_to":"AAAAVX%2F%2F9GM%3D","updated":"2014-02-27 18:48:41.000000000","message":"Thank a lot Ann and Henry. Have made this change","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7196d533deae08c7483b3902d4391815e4811973","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                kwargs \u003d {\"network_id\": net_id, \"cidr\": str(subnet_cidr),"},{"line_number":176,"context_line":"                          \"ip_version\": self._ip_version,"},{"line_number":177,"context_line":"                          \"gateway_ip\": gateway_ip1,"},{"line_number":178,"context_line":"                          \"allocation_pools\": allocation_pool_dict}"},{"line_number":179,"context_line":"                subnet \u003d self._create_verify_subnet(kwargs)"},{"line_number":180,"context_line":"                break"},{"line_number":181,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F6NY%3D","line":178,"updated":"2014-02-27 13:07:43.000000000","message":"The assignment of kwargs should go outside the try.","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"99227f4197188094db2e7f885abcd960c7d6922d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                kwargs \u003d {\"network_id\": net_id, \"cidr\": str(subnet_cidr),"},{"line_number":176,"context_line":"                          \"ip_version\": self._ip_version,"},{"line_number":177,"context_line":"                          \"gateway_ip\": gateway_ip1,"},{"line_number":178,"context_line":"                          \"allocation_pools\": allocation_pool_dict}"},{"line_number":179,"context_line":"                subnet \u003d self._create_verify_subnet(kwargs)"},{"line_number":180,"context_line":"                break"},{"line_number":181,"context_line":"            except exceptions.BadRequest as e:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAVX%2F%2F3bU%3D","line":178,"in_reply_to":"AAAAVX%2F%2F6NY%3D","updated":"2014-02-27 18:48:41.000000000","message":"Thank you have made this change","commit_id":"ed01624beedc309650617e2108c88586c716d8e8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"98ce9bbd7b3552fcd63aed2c8a1f3dc0690b8c87","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        resp, body \u003d self.client.update_network(net_id, **kwargs)"},{"line_number":84,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":85,"context_line":"        updated_network \u003d body[\u0027network\u0027]"},{"line_number":86,"context_line":"        for key in kwargs:"},{"line_number":87,"context_line":"            self.assertEqual(updated_network[key], kwargs[key])"},{"line_number":88,"context_line":"        return network"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2F9Hk%3D","line":86,"updated":"2014-03-03 07:41:00.000000000","message":"Why not\n\n    for key, value in kwargs.iteritems():\n         self.assertEqual(value, updated_network[key]) ?","commit_id":"2c51fc4a76f93ea6f144e26f1617ddd1cb8e2baf"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"58a17ee85168eadfb8da4ec3a39c6e3b3bcd4e80","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        resp, body \u003d self.client.update_network(net_id, **kwargs)"},{"line_number":84,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":85,"context_line":"        updated_network \u003d body[\u0027network\u0027]"},{"line_number":86,"context_line":"        for key in kwargs:"},{"line_number":87,"context_line":"            self.assertEqual(updated_network[key], kwargs[key])"},{"line_number":88,"context_line":"        return network"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2F3ig%3D","line":86,"in_reply_to":"AAAAVn%2F%2F9Hk%3D","updated":"2014-03-03 18:23:05.000000000","message":"Sure Ann. Made that change.","commit_id":"2c51fc4a76f93ea6f144e26f1617ddd1cb8e2baf"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"98ce9bbd7b3552fcd63aed2c8a1f3dc0690b8c87","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":105,"context_line":"        updated_subnet \u003d body[\u0027subnet\u0027]"},{"line_number":106,"context_line":"        for key in kwargs:"},{"line_number":107,"context_line":"            self.assertEqual(updated_subnet[key], kwargs[key])"},{"line_number":108,"context_line":"        return updated_subnet"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _delete_verify_subnet(self, subnet):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2F9Hg%3D","line":107,"updated":"2014-03-03 07:41:00.000000000","message":"the same here","commit_id":"2c51fc4a76f93ea6f144e26f1617ddd1cb8e2baf"},{"author":{"_account_id":10162,"name":"Aniket Dandekar","email":"aniketad88@gmail.com","username":"aniketad"},"change_message_id":"58a17ee85168eadfb8da4ec3a39c6e3b3bcd4e80","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":105,"context_line":"        updated_subnet \u003d body[\u0027subnet\u0027]"},{"line_number":106,"context_line":"        for key in kwargs:"},{"line_number":107,"context_line":"            self.assertEqual(updated_subnet[key], kwargs[key])"},{"line_number":108,"context_line":"        return updated_subnet"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _delete_verify_subnet(self, subnet):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAVn%2F%2F3ic%3D","line":107,"in_reply_to":"AAAAVn%2F%2F9Hg%3D","updated":"2014-03-03 18:23:05.000000000","message":"Same here. Thank you","commit_id":"2c51fc4a76f93ea6f144e26f1617ddd1cb8e2baf"}],"tempest/services/network/xml/network_client.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ca83362fec925a427e23396e63f72ac74abe8657","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                elt \u003d Element(name)"},{"line_number":56,"context_line":"                deep_dict_to_xml(elt, attr)"},{"line_number":57,"context_line":"                post_body.append(elt)"},{"line_number":58,"context_line":"            else:"},{"line_number":59,"context_line":"                elt \u003d self._get_element(name, attr)"},{"line_number":60,"context_line":"                post_body.append(elt)"},{"line_number":61,"context_line":"        return str(Document(post_body))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Fk8g%3D","line":58,"updated":"2014-02-12 08:31:41.000000000","message":"This changes should be done not in serialize, but in _get_element method. I has the same problem in my change https://review.openstack.org/71251.","commit_id":"161ecdfb73b0a3a7ddac10fd46c40e49c5bea1b5"}]}
