)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"2d73de90d33c5c134afd6673a1132d8bdd69a57c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3ac371cc_34916048","line":16,"updated":"2016-08-16 23:03:17.000000000","message":"This patch is dependent on https://review.openstack.org/#/c/351955/7.\nTo address this (Depends on: I83e2c7bbab3bd59cc9d2af71c66c0662c7724ecc ) needs to be added to the commit message.","commit_id":"f568f50b7feb4e89c06f3343df693a0dc7a30b1e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"1dbe6f4e0aa8a581a253da4acad38b33804de3f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3ac371cc_627c93b5","line":16,"in_reply_to":"3ac371cc_34916048","updated":"2016-08-17 15:57:50.000000000","message":"I made this mistake before. Depends-On is for cross-project dependencies.\nhttp://docs.openstack.org/infra/manual/developers.html#adding-a-dependency\nEssentially since both patches are within Neutron. Cherrypicked the DB Integration patch, then pulled down the object patch on top. :)","commit_id":"f568f50b7feb4e89c06f3343df693a0dc7a30b1e"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6591f1e57e05f7f9d9ae46ba1082a5d06289d435","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVO External Networks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds introduce and implements OVO for"},{"line_number":10,"context_line":"network extension, External Networks."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Manjeet Singh Bhatia \u003cmanjeet.s.bhatia@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"fa7ab95a_4ab619dd","line":9,"updated":"2016-09-01 13:34:31.000000000","message":"nit: \"This patch adds and implements...\" or \"This patch introduces and implements...\"","commit_id":"9637d954df44856a57cfd84d00dbd75b28a38adc"}],"neutron/db/external_net_db.py":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6591f1e57e05f7f9d9ae46ba1082a5d06289d435","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"            if external_net_obj:"},{"line_number":96,"context_line":"                return True"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                return False"},{"line_number":99,"context_line":"        except exc.NoResultFound:"},{"line_number":100,"context_line":"            return False"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa7ab95a_ed6387db","line":98,"range":{"start_line":97,"start_character":12,"end_line":98,"end_character":28},"updated":"2016-09-01 13:34:31.000000000","message":"This is redundant","commit_id":"9637d954df44856a57cfd84d00dbd75b28a38adc"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"92e18763b40bdc4f5f091c1c62824bc922413671","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"            if external_net_obj:"},{"line_number":96,"context_line":"                return True"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                return False"},{"line_number":99,"context_line":"        except exc.NoResultFound:"},{"line_number":100,"context_line":"            return False"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"fa7ab95a_d8e2f59f","line":98,"range":{"start_line":97,"start_character":12,"end_line":98,"end_character":28},"in_reply_to":"fa7ab95a_ed6387db","updated":"2016-09-01 16:51:51.000000000","message":"I had to add that if else, because get object will either give a result or none, where one() would have returned exactly one or exception. may be i\u0027ll embed exception below with in else and remove try, except","commit_id":"9637d954df44856a57cfd84d00dbd75b28a38adc"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"6591f1e57e05f7f9d9ae46ba1082a5d06289d435","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                return True"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                return False"},{"line_number":99,"context_line":"        except exc.NoResultFound:"},{"line_number":100,"context_line":"            return False"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa7ab95a_8d6d9b06","line":99,"range":{"start_line":99,"start_character":15,"end_line":99,"end_character":33},"updated":"2016-09-01 13:34:31.000000000","message":"Will this error be thrown anymore? If so, is L95 necessary?","commit_id":"9637d954df44856a57cfd84d00dbd75b28a38adc"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"18cf488386bbd157818f8b7903d852e264a23b4e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                return True"},{"line_number":97,"context_line":"            else:"},{"line_number":98,"context_line":"                return False"},{"line_number":99,"context_line":"        except exc.NoResultFound:"},{"line_number":100,"context_line":"            return False"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a89bdaa_f1aefd83","line":99,"range":{"start_line":99,"start_character":15,"end_line":99,"end_character":33},"in_reply_to":"fa7ab95a_8d6d9b06","updated":"2016-09-06 18:30:52.000000000","message":"removing this useless for now will leave a note","commit_id":"9637d954df44856a57cfd84d00dbd75b28a38adc"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"241c7b7fdeac92d3c97d5295a2d6fda4a2bec3bc","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        # code any way."},{"line_number":92,"context_line":"        external_net_obj \u003d ext_net_obj.ExternalNetwork.get_object("},{"line_number":93,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":94,"context_line":"        if external_net_obj:"},{"line_number":95,"context_line":"            return True"},{"line_number":96,"context_line":"        else:"},{"line_number":97,"context_line":"            return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a8bc5a2_b07a4bbb","line":97,"range":{"start_line":94,"start_character":8,"end_line":97,"end_character":24},"updated":"2016-10-03 10:58:21.000000000","message":"you do not need \u0027else\u0027 statement, you just return False:\n\nif external_net_obj:\n    return True\nreturn False","commit_id":"5c89408ccd9e5e8adbcb6f451e97b099d5b1609d"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"b1f8a71ecb86acfe1612c9b00ee755ee8ef96045","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \u0027_network_result_filter_hook\u0027)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d ext_net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a95cdbc_5547754a","line":92,"range":{"start_line":91,"start_character":8,"end_line":92,"end_character":23},"updated":"2016-10-07 10:47:25.000000000","message":"Does this note really add anything useful for future developers?","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"096521ff43da1ea1139dd519c02816c51a661351","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \u0027_network_result_filter_hook\u0027)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d ext_net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a95cdbc_7d71a643","line":92,"range":{"start_line":91,"start_character":8,"end_line":92,"end_character":23},"in_reply_to":"1a95cdbc_5547754a","updated":"2016-10-07 17:08:08.000000000","message":"it is just to let them know the reason why it was removed","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"b1f8a71ecb86acfe1612c9b00ee755ee8ef96045","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a95cdbc_fa0eae39","line":97,"updated":"2016-10-07 10:47:25.000000000","message":"I think this line is redundant now that the exception handling is gone. Returning False is often the same as not returning anything at all.","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"096521ff43da1ea1139dd519c02816c51a661351","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a95cdbc_5d7f8aaa","line":97,"in_reply_to":"1a95cdbc_fa0eae39","updated":"2016-10-07 17:08:08.000000000","message":"It depends on how the condition is checked, I did to have the same behavior","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"44eaca96b7fa5cf6f7c6952a3ec88445b173957a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a95cdbc_290b2825","line":97,"in_reply_to":"1a95cdbc_fa0eae39","updated":"2016-10-10 14:09:23.000000000","message":"We should not change the current behavior.","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"01f528b1bbf44663ab3e523e8737b213ab75885b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \u0027_network_result_filter_hook\u0027)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_bb0b3323","line":91,"range":{"start_line":91,"start_character":10,"end_line":91,"end_character":14},"updated":"2016-10-14 14:28:57.000000000","message":"nit: s/Note/TODO (Some IDEs recognized better TODO comments)","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b5f38a95144e69d665e67be849a4592eec03522","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \u0027_network_result_filter_hook\u0027)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"}],"source_content_type":"text/x-python","patch_set":22,"id":"da6895a0_819e9954","line":91,"range":{"start_line":91,"start_character":10,"end_line":91,"end_character":14},"in_reply_to":"fa6399be_bb0b3323","updated":"2016-10-25 18:34:15.000000000","message":"it is Note to let people know try catch has been ripped.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"01f528b1bbf44663ab3e523e8737b213ab75885b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_7b7a7b89","line":97,"range":{"start_line":93,"start_character":8,"end_line":97,"end_character":20},"updated":"2016-10-14 14:28:57.000000000","message":"nit: What about reducing some lines and variables\n\n    return bool(net_obj.ExternalNetwork.get_object(\n            context, network_id\u003dnet_id))","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"7b5f38a95144e69d665e67be849a4592eec03522","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":91,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":92,"context_line":"        # code any way."},{"line_number":93,"context_line":"        external_net_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":94,"context_line":"            context, network_id\u003dnet_id)"},{"line_number":95,"context_line":"        if external_net_obj:"},{"line_number":96,"context_line":"            return True"},{"line_number":97,"context_line":"        return False"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":100,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":22,"id":"da6895a0_e176753d","line":97,"range":{"start_line":93,"start_character":8,"end_line":97,"end_character":20},"in_reply_to":"fa6399be_7b7a7b89","updated":"2016-10-25 18:34:15.000000000","message":"Done","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"83e154a3ecb89b271dda4b8f124d86b2baec17c1","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            except c_exc.CallbackFailure as e:"},{"line_number":125,"context_line":"                # raise the underlying exception"},{"line_number":126,"context_line":"                raise e.errors[0].error"},{"line_number":127,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork("},{"line_number":128,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027])"},{"line_number":129,"context_line":"            external_net_obj.create()"},{"line_number":130,"context_line":"            context.session.add(rbac_db.NetworkRBAC("},{"line_number":131,"context_line":"                  object_id\u003dnet_data[\u0027id\u0027], action\u003d\u0027access_as_external\u0027,"},{"line_number":132,"context_line":"                  target_tenant\u003d\u0027*\u0027, tenant_id\u003dnet_data[\u0027tenant_id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_19ad95e9","line":129,"range":{"start_line":127,"start_character":12,"end_line":129,"end_character":37},"updated":"2016-10-11 20:44:53.000000000","message":"What about not creating an instance?\n    net_obj.ExternalNetwork(context, \n        network_id\u003dnet_data[\u0027id\u0027]).create()","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d0b8869fddebeacf3a72cfdcb504faecaed7cbd7","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            except c_exc.CallbackFailure as e:"},{"line_number":125,"context_line":"                # raise the underlying exception"},{"line_number":126,"context_line":"                raise e.errors[0].error"},{"line_number":127,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork("},{"line_number":128,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027])"},{"line_number":129,"context_line":"            external_net_obj.create()"},{"line_number":130,"context_line":"            context.session.add(rbac_db.NetworkRBAC("},{"line_number":131,"context_line":"                  object_id\u003dnet_data[\u0027id\u0027], action\u003d\u0027access_as_external\u0027,"},{"line_number":132,"context_line":"                  target_tenant\u003d\u0027*\u0027, tenant_id\u003dnet_data[\u0027tenant_id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_d9723de5","line":129,"range":{"start_line":127,"start_character":12,"end_line":129,"end_character":37},"in_reply_to":"fa6399be_19ad95e9","updated":"2016-10-11 20:55:26.000000000","message":"what is added benefit to that ?? I followed the way other objects were created","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"01f528b1bbf44663ab3e523e8737b213ab75885b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            except c_exc.CallbackFailure as e:"},{"line_number":125,"context_line":"                # raise the underlying exception"},{"line_number":126,"context_line":"                raise e.errors[0].error"},{"line_number":127,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork("},{"line_number":128,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027])"},{"line_number":129,"context_line":"            external_net_obj.create()"},{"line_number":130,"context_line":"            context.session.add(rbac_db.NetworkRBAC("},{"line_number":131,"context_line":"                  object_id\u003dnet_data[\u0027id\u0027], action\u003d\u0027access_as_external\u0027,"},{"line_number":132,"context_line":"                  target_tenant\u003d\u0027*\u0027, tenant_id\u003dnet_data[\u0027tenant_id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_1bb97f2e","line":129,"range":{"start_line":127,"start_character":12,"end_line":129,"end_character":37},"in_reply_to":"fa6399be_853036ea","updated":"2016-10-14 14:28:57.000000000","message":"+1 to Rohan, that\u0027s more pythonic","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"4c92646f84a88540e592f7a5c1047e5669dc4031","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            except c_exc.CallbackFailure as e:"},{"line_number":125,"context_line":"                # raise the underlying exception"},{"line_number":126,"context_line":"                raise e.errors[0].error"},{"line_number":127,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork("},{"line_number":128,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027])"},{"line_number":129,"context_line":"            external_net_obj.create()"},{"line_number":130,"context_line":"            context.session.add(rbac_db.NetworkRBAC("},{"line_number":131,"context_line":"                  object_id\u003dnet_data[\u0027id\u0027], action\u003d\u0027access_as_external\u0027,"},{"line_number":132,"context_line":"                  target_tenant\u003d\u0027*\u0027, tenant_id\u003dnet_data[\u0027tenant_id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_853036ea","line":129,"range":{"start_line":127,"start_character":12,"end_line":129,"end_character":37},"in_reply_to":"fa6399be_d9723de5","updated":"2016-10-12 13:35:15.000000000","message":"external_net_obj is not used later in the code, so it is a waste to declare the variable and have a reference to it as opposed to just running the .create() function without creating a named variable.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"83e154a3ecb89b271dda4b8f124d86b2baec17c1","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            return"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        if new_value:"},{"line_number":158,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork("},{"line_number":159,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027])"},{"line_number":160,"context_line":"            external_net_obj.create()"},{"line_number":161,"context_line":"            net_data[external_net.EXTERNAL] \u003d True"},{"line_number":162,"context_line":"            if allow_all:"},{"line_number":163,"context_line":"                context.session.add(rbac_db.NetworkRBAC("}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_79821154","line":160,"range":{"start_line":158,"start_character":12,"end_line":160,"end_character":37},"updated":"2016-10-11 20:44:53.000000000","message":"Same as L127-129","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"83e154a3ecb89b271dda4b8f124d86b2baec17c1","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            if port:"},{"line_number":174,"context_line":"                raise external_net.ExternalNetworkInUse(net_id\u003dnet_id)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"            external_net_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":177,"context_line":"                context, network_id\u003dnet_id)"},{"line_number":178,"context_line":"            external_net_obj.delete()"},{"line_number":179,"context_line":"            context.session.query(rbac_db.NetworkRBAC).filter_by("},{"line_number":180,"context_line":"                object_id\u003dnet_id, action\u003d\u0027access_as_external\u0027).delete()"},{"line_number":181,"context_line":"            net_data[external_net.EXTERNAL] \u003d False"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_3991799a","line":178,"range":{"start_line":176,"start_character":12,"end_line":178,"end_character":37},"updated":"2016-10-11 20:44:53.000000000","message":"Same as L127-129","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"08aaef1ff4a70b331a4280d2c8320a82d955df24","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            if port:"},{"line_number":171,"context_line":"                raise external_net.ExternalNetworkInUse(net_id\u003dnet_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            net_obj.ExternalNetwork.get_object("},{"line_number":174,"context_line":"                context, network_id\u003dnet_id).delete()"},{"line_number":175,"context_line":"            context.session.query(rbac_db.NetworkRBAC).filter_by("},{"line_number":176,"context_line":"                object_id\u003dnet_id, action\u003d\u0027access_as_external\u0027).delete()"},{"line_number":177,"context_line":"            net_data[external_net.EXTERNAL] \u003d False"}],"source_content_type":"text/x-python","patch_set":24,"id":"9a629dbe_e2a7d708","line":174,"range":{"start_line":173,"start_character":12,"end_line":174,"end_character":52},"updated":"2016-11-10 12:31:37.000000000","message":"what if get_object returns None? is it expected to return AttributeError? \nDoes query().filter_by().delete() also return AttributeError when no result is found?","commit_id":"66ce97492ed1b95f6a0c93681004e47cd4855af6"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"187ffe28589e32aa47f07cd9551fd626e3972af2","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            if port:"},{"line_number":171,"context_line":"                raise external_net.ExternalNetworkInUse(net_id\u003dnet_id)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"            net_obj.ExternalNetwork.get_object("},{"line_number":174,"context_line":"                context, network_id\u003dnet_id).delete()"},{"line_number":175,"context_line":"            context.session.query(rbac_db.NetworkRBAC).filter_by("},{"line_number":176,"context_line":"                object_id\u003dnet_id, action\u003d\u0027access_as_external\u0027).delete()"},{"line_number":177,"context_line":"            net_data[external_net.EXTERNAL] \u003d False"}],"source_content_type":"text/x-python","patch_set":24,"id":"9a629dbe_72d61e50","line":174,"range":{"start_line":173,"start_character":12,"end_line":174,"end_character":52},"in_reply_to":"9a629dbe_e2a7d708","updated":"2016-11-10 19:33:29.000000000","message":"I agree with Artur, perhaps you could wrap it in a try except block.","commit_id":"66ce97492ed1b95f6a0c93681004e47cd4855af6"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"a42db51a54b1e82e43416e4461e016d40906fd9f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":93,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":94,"context_line":"        # code any way."},{"line_number":95,"context_line":"        return bool(net_obj.ExternalNetwork.get_object("},{"line_number":96,"context_line":"            context, network_id\u003dnet_id))"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"},{"line_number":99,"context_line":"        # Comparing with None for converting uuid into bool"}],"source_content_type":"text/x-python","patch_set":25,"id":"7a77a97e_d5bf485e","line":96,"range":{"start_line":95,"start_character":8,"end_line":96,"end_character":40},"updated":"2016-11-16 10:14:16.000000000","message":"nit: This is a good candidate to use objects_exist:\nhttps://review.openstack.org/#/c/395748/\n\nor use count().\n\nI\u0027m also thinking if .one() will throw exception MultipleResultFound here. Maybe we can use count() and check if count \u003e 1 then throw above exception.","commit_id":"d5e236823a91d4c277ca47614b573e8c7f46d00a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3d3c7f34ebf112429e0b2986b09dd9627f8db24c","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":93,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":94,"context_line":"        # code any way."},{"line_number":95,"context_line":"        return bool(net_obj.ExternalNetwork.get_object("},{"line_number":96,"context_line":"            context, network_id\u003dnet_id))"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"}],"source_content_type":"text/x-python","patch_set":26,"id":"7a77a97e_f3f9a381","line":95,"updated":"2016-11-16 17:18:56.000000000","message":"why not:\nreturn (net_obj.ExternalNetwork.get_object !\u003d None)","commit_id":"c95d880ece4deb5bd5fa466729fa1df735996227"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"e1ab640d4580e37ad72911fa12b49562f11861f5","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def _network_is_external(self, context, net_id):"},{"line_number":93,"context_line":"        # Note(manjeets) removed exception catching as it won\u0027t hit that"},{"line_number":94,"context_line":"        # code any way."},{"line_number":95,"context_line":"        return bool(net_obj.ExternalNetwork.get_object("},{"line_number":96,"context_line":"            context, network_id\u003dnet_id))"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def _extend_network_dict_l3(self, network_res, network_db):"}],"source_content_type":"text/x-python","patch_set":26,"id":"7a77a97e_eefa98bc","line":95,"in_reply_to":"7a77a97e_f3f9a381","updated":"2016-11-16 17:57:24.000000000","message":"Done","commit_id":"c95d880ece4deb5bd5fa466729fa1df735996227"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"9040cf4367d5bf97a231695fb885aa5b37d9a011","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            if port:"},{"line_number":168,"context_line":"                raise external_net.ExternalNetworkInUse(net_id\u003dnet_id)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"            en_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":171,"context_line":"                context, network_id\u003dnet_id)"},{"line_number":172,"context_line":"            if en_obj:"},{"line_number":173,"context_line":"                en_obj.delete()"},{"line_number":174,"context_line":"            context.session.query(rbac_db.NetworkRBAC).filter_by("},{"line_number":175,"context_line":"                object_id\u003dnet_id, action\u003d\u0027access_as_external\u0027).delete()"},{"line_number":176,"context_line":"            net_data[external_net.EXTERNAL] \u003d False"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a71b18c_891bf41a","line":173,"range":{"start_line":170,"start_character":12,"end_line":173,"end_character":31},"updated":"2016-12-02 16:16:01.000000000","message":"It would be nice here to use delete_objects() here (when ready):\nhttps://review.openstack.org/403832","commit_id":"0b59c55e0bd2930c7df083dc7e7f43de7ca1a788"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"a8b9a80576a39c52c7ae0dc391981818b93d7f6e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            if port:"},{"line_number":168,"context_line":"                raise external_net.ExternalNetworkInUse(net_id\u003dnet_id)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"            en_obj \u003d net_obj.ExternalNetwork.get_object("},{"line_number":171,"context_line":"                context, network_id\u003dnet_id)"},{"line_number":172,"context_line":"            if en_obj:"},{"line_number":173,"context_line":"                en_obj.delete()"},{"line_number":174,"context_line":"            context.session.query(rbac_db.NetworkRBAC).filter_by("},{"line_number":175,"context_line":"                object_id\u003dnet_id, action\u003d\u0027access_as_external\u0027).delete()"},{"line_number":176,"context_line":"            net_data[external_net.EXTERNAL] \u003d False"}],"source_content_type":"text/x-python","patch_set":30,"id":"ba5201f7_0a2ecca4","line":173,"range":{"start_line":170,"start_character":12,"end_line":173,"end_character":31},"in_reply_to":"3a71b18c_891bf41a","updated":"2017-01-04 22:38:13.000000000","message":"Done","commit_id":"0b59c55e0bd2930c7df083dc7e7f43de7ca1a788"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"924dbed7767398584da3dd22c57146758b50e935","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if new_value:"},{"line_number":145,"context_line":"            net_obj.ExternalNetwork("},{"line_number":146,"context_line":"                context, network_id\u003dnet_data[\u0027id\u0027]).create()"},{"line_number":147,"context_line":"            net_data[external_net.EXTERNAL] \u003d True"},{"line_number":148,"context_line":"            if allow_all:"},{"line_number":149,"context_line":"                context.session.add(rbac_db.NetworkRBAC("}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_8b4d209c","line":146,"range":{"start_line":146,"start_character":36,"end_line":146,"end_character":50},"updated":"2017-02-08 17:38:31.000000000","message":"any reason not to use net_id?","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"}],"neutron/objects/base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"924dbed7767398584da3dd22c57146758b50e935","unresolved":false,"context_lines":[{"line_number":418,"context_line":"                return cls._load_object(context, db_obj)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    @classmethod"},{"line_number":421,"context_line":"    def get_objects(cls, context, _pager\u003dNone, _order_by\u003dNone,"},{"line_number":422,"context_line":"                    validate_filters\u003dTrue, **kwargs):"},{"line_number":423,"context_line":"        \"\"\""},{"line_number":424,"context_line":"        Fetch objects from DB and convert them to versioned objects."}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_0676876f","line":421,"range":{"start_line":421,"start_character":47,"end_line":421,"end_character":62},"updated":"2017-02-08 17:38:31.000000000","message":"if you want to add support for that, you should do it in a separate patch, targeting this specific new feature.","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"924dbed7767398584da3dd22c57146758b50e935","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                **cls.modify_fields_to_db(kwargs)"},{"line_number":440,"context_line":"            )"},{"line_number":441,"context_line":"            if _order_by is not None:"},{"line_number":442,"context_line":"                sorted(db_objs, key\u003dlambda obj: getattr(obj, _order_by))"},{"line_number":443,"context_line":"            return [cls._load_object(context, db_obj) for db_obj in db_objs]"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_c6255f5c","line":442,"updated":"2017-02-08 17:38:31.000000000","message":"I think it\u0027s not efficient. instead, we want to make database to order as requested.","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"}],"neutron/objects/external_net.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"44eaca96b7fa5cf6f7c6952a3ec88445b173957a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"1a95cdbc_e93ce094","updated":"2016-10-10 14:09:23.000000000","message":"This should be moved to neutron/objects/network.py and integrated with network object.","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"cdd37e31d5959216e146c8ea11a2c845f03c1ad8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"fa6399be_14810c4b","in_reply_to":"1a95cdbc_e93ce094","updated":"2016-10-10 21:54:47.000000000","message":"+1","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"29254145caee2bef44c9e53a41b9d61b5e9318e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"fa6399be_0440d0a4","in_reply_to":"1a95cdbc_e93ce094","updated":"2016-10-11 17:41:36.000000000","message":"Done","commit_id":"56cd3fa563a732f4861721834a0244fac6a5d691"}],"neutron/objects/network.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"01f528b1bbf44663ab3e523e8737b213ab75885b","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    db_model \u003d ext_net_model.ExternalNetwork"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    foreign_keys \u003d {\u0027Network\u0027: {\u0027network_id\u0027: \u0027id\u0027}}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    primary_keys \u003d [\u0027network_id\u0027]"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_3b5003d4","line":87,"range":{"start_line":87,"start_character":4,"end_line":87,"end_character":52},"updated":"2016-10-14 14:28:57.000000000","message":"Given that Network OVO doesn\u0027have any synthetic field that refers to ExternalNetwork OVO, this foreign key is not required.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"08aaef1ff4a70b331a4280d2c8320a82d955df24","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    rbac_db_model \u003d rbac_db_models.NetworkRBAC"},{"line_number":103,"context_line":"    db_model \u003d models_v2.Network"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    fields \u003d {"},{"line_number":106,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":107,"context_line":"        \u0027project_id\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":108,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":24,"id":"9a629dbe_622ae791","line":105,"updated":"2016-11-10 12:31:37.000000000","message":"ExternalNetwork should be added to Network OVO fields. Something like:\nhttps://review.openstack.org/#/c/269658/8/neutron/objects/network/network.py@169\n\nBut it can be done in separate review.","commit_id":"66ce97492ed1b95f6a0c93681004e47cd4855af6"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"36741b3269f6de32030b8ee477eb393202fe7eaa","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    fields \u003d {"},{"line_number":92,"context_line":"        \u0027network_id\u0027: common_types.UUIDField(),"},{"line_number":93,"context_line":"        \u0027is_default\u0027: obj_fields.BooleanField(),"},{"line_number":94,"context_line":"    }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"ba5201f7_163ed88a","line":93,"range":{"start_line":93,"start_character":45,"end_line":93,"end_character":47},"updated":"2017-01-12 07:19:05.000000000","message":"default\u003dFalse","commit_id":"f4d23f380e49bf22bdb112ac1d1d7773b93f7743"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"38851e5d7f0e6e5f40b7f3d915295a1ef7bd46ae","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    fields \u003d {"},{"line_number":92,"context_line":"        \u0027network_id\u0027: common_types.UUIDField(),"},{"line_number":93,"context_line":"        \u0027is_default\u0027: obj_fields.BooleanField(),"},{"line_number":94,"context_line":"    }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"5a3905b3_6b608636","line":93,"range":{"start_line":93,"start_character":45,"end_line":93,"end_character":47},"in_reply_to":"ba5201f7_163ed88a","updated":"2017-01-19 21:41:52.000000000","message":"Done","commit_id":"f4d23f380e49bf22bdb112ac1d1d7773b93f7743"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c2508c29b64c3466669ca336f1f241ff18f7a91a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        # since it\u0027s a feature that will probably later be added for other"},{"line_number":131,"context_line":"        # resources too"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        # TODO(ihrachys): expose external network attributes"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    synthetic_fields \u003d ["}],"source_content_type":"text/x-python","patch_set":35,"id":"5a3905b3_6dc0d52b","line":133,"updated":"2017-01-24 17:37:27.000000000","message":"(No action required) It would probably make sense in the future to expose the object into Network itself, so that users can do something like:\n\nif network_obj.external:\n    ...\nelse:\n    ...","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fe702d682be7b20ae9b6aa22ddde5bef8b8fa0eb","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        # since it\u0027s a feature that will probably later be added for other"},{"line_number":113,"context_line":"        # resources too"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # TODO(ihrachys): expose external network attributes"},{"line_number":116,"context_line":"    }"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    synthetic_fields \u003d ["}],"source_content_type":"text/x-python","patch_set":47,"id":"ba2be162_1e5bf22f","side":"PARENT","line":115,"updated":"2017-03-06 20:35:10.000000000","message":"I don\u0027t think we should remove the TODO, it\u0027s supposed to track exposure of the attribute on Network object. You don\u0027t cover it here.","commit_id":"cb536842785bad933f8e9f59dd55de71d5aba0dc"}],"neutron/objects/network/extensions/external_net.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4db1d6452ada62548c4420cd6a9e7f969bfcc136","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b4a60d0e","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":45},"updated":"2016-08-09 22:15:09.000000000","message":"s/id/network_id","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bf796e61aa309cfd58f67672089c6d68b429cce1","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7542bd11","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":45},"in_reply_to":"9ad45d7e_b4a60d0e","updated":"2016-08-10 09:39:01.000000000","message":"+1","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4db1d6452ada62548c4420cd6a9e7f969bfcc136","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_34921d9f","line":31,"updated":"2016-08-09 22:15:09.000000000","message":"primary_keys \u003d [\u0027network_id\u0027]","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bf796e61aa309cfd58f67672089c6d68b429cce1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b54c3543","line":31,"in_reply_to":"9ad45d7e_34921d9f","updated":"2016-08-10 09:39:01.000000000","message":"+1","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4db1d6452ada62548c4420cd6a9e7f969bfcc136","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027is_default\u0027: obj_fields.BooleanField(),"},{"line_number":36,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_34c05d7b","line":33,"range":{"start_line":33,"start_character":8,"end_line":33,"end_character":37},"updated":"2016-08-09 22:15:09.000000000","message":"The model doesn\u0027t have this column","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bf796e61aa309cfd58f67672089c6d68b429cce1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027network_id\u0027}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    fields \u003d {"},{"line_number":33,"context_line":"        \u0027id\u0027: obj_fields.UUIDField(),"},{"line_number":34,"context_line":"        \u0027network_id\u0027: obj_fields.UUIDField(),"},{"line_number":35,"context_line":"        \u0027is_default\u0027: obj_fields.BooleanField(),"},{"line_number":36,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_d551e9d9","line":33,"range":{"start_line":33,"start_character":8,"end_line":33,"end_character":37},"in_reply_to":"9ad45d7e_34c05d7b","updated":"2016-08-10 09:39:01.000000000","message":"+1","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"eba62b3996a2ae7da8501a850a489116bb5fa700","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027id\u0027}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    primary_keys \u003d [\u0027network_id\u0027]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a89bdaa_09ad7f9a","line":29,"updated":"2016-09-08 16:06:53.000000000","message":"The foreign keys format is updated. Check: https://review.openstack.org/#/c/357207/3/neutron/objects/securitygroup.py","commit_id":"79ba0c51dc892721c1a7b4b0765e05dbf937fec1"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"ff0cfc910ec82b619c787db517660222b73969d6","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    db_model \u003d models.ExternalNetwork"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    foreign_keys \u003d {\u0027network_id\u0027: \u0027id\u0027}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    primary_keys \u003d [\u0027network_id\u0027]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a89bdaa_bea682be","line":29,"in_reply_to":"9a89bdaa_09ad7f9a","updated":"2016-09-08 17:14:28.000000000","message":"done !!","commit_id":"79ba0c51dc892721c1a7b4b0765e05dbf937fec1"}],"neutron/services/auto_allocate/db.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d7a6b60fc6313609bc9ffedf4e3944611a336096","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                net_id\u003dobj.network_id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    # Reflect the status of the is_default on the create/update request"},{"line_number":66,"context_line":"    obj \u003d net_obj.ExternalNetwork(context,"},{"line_number":67,"context_line":"                                  network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":68,"context_line":"    if obj:"},{"line_number":69,"context_line":"        obj.is_default \u003d is_default"},{"line_number":70,"context_line":"        obj.update()"}],"source_content_type":"text/x-python","patch_set":26,"id":"7a77a97e_f373637e","line":67,"range":{"start_line":66,"start_character":10,"end_line":67,"end_character":59},"updated":"2016-11-16 17:12:12.000000000","message":"this should be doing a get object call","commit_id":"c95d880ece4deb5bd5fa466729fa1df735996227"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"36741b3269f6de32030b8ee477eb393202fe7eaa","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        # NOTE(manjeets) The defaults networks can be fetched from"},{"line_number":224,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":225,"context_line":"        # it has foreign key constraint in networks"},{"line_number":226,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":227,"context_line":"            context, is_default\u003dTrue)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        if not default_external_networks:"}],"source_content_type":"text/x-python","patch_set":32,"id":"ba5201f7_f6bb14c2","line":226,"updated":"2017-01-12 07:19:05.000000000","message":"I\u0027m thinking if ordering by standard attribute id make any difference...","commit_id":"f4d23f380e49bf22bdb112ac1d1d7773b93f7743"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"38851e5d7f0e6e5f40b7f3d915295a1ef7bd46ae","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        # NOTE(manjeets) The defaults networks can be fetched from"},{"line_number":224,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":225,"context_line":"        # it has foreign key constraint in networks"},{"line_number":226,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":227,"context_line":"            context, is_default\u003dTrue)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        if not default_external_networks:"}],"source_content_type":"text/x-python","patch_set":32,"id":"5a3905b3_4b758af7","line":226,"in_reply_to":"ba5201f7_f6bb14c2","updated":"2017-01-19 21:41:52.000000000","message":"how can be it confirmed ? or other thing we can do is implement a classmethod in ExtenalNetwork object ?","commit_id":"f4d23f380e49bf22bdb112ac1d1d7773b93f7743"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c2508c29b64c3466669ca336f1f241ff18f7a91a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    obj \u003d net_obj.ExternalNetwork.get_object(context,"},{"line_number":67,"context_line":"                                             network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":68,"context_line":"    if obj:"},{"line_number":69,"context_line":"        obj.update_fields({IS_DEFAULT: is_default})"},{"line_number":70,"context_line":"        obj.update()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"5a3905b3_4df15995","line":69,"updated":"2017-01-24 17:37:27.000000000","message":"I think it\u0027s overly complex. Instead, you could just do:\n\nobj.is_default \u003d is_default\n\nUsing update_fields makes sense when you need to filter out non-updatable fields, or when you don\u0027t know which fields are requested for update.","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"896255a04e478cd9f22a6071df76ec7435041882","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    obj \u003d net_obj.ExternalNetwork.get_object(context,"},{"line_number":67,"context_line":"                                             network_id\u003dnetwork[\u0027id\u0027])"},{"line_number":68,"context_line":"    if obj:"},{"line_number":69,"context_line":"        obj.update_fields({IS_DEFAULT: is_default})"},{"line_number":70,"context_line":"        obj.update()"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"3a461143_f8c9d6ad","line":69,"in_reply_to":"5a3905b3_4df15995","updated":"2017-01-25 17:53:59.000000000","message":"Done","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4eaebf54b2626010694099a24cbde7ced92dfa28","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    def _get_default_external_network(self, context):"},{"line_number":220,"context_line":"        \"\"\"Get the default external network for the deployment.\"\"\""},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE(manjeets) The defaults networks can be fetched from"},{"line_number":223,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":224,"context_line":"        # it has foreign key constraint in networks"},{"line_number":225,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":226,"context_line":"            context, is_default\u003dTrue)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        if not default_external_networks:"},{"line_number":229,"context_line":"            LOG.error(_LE(\"Unable to find default external network \""}],"source_content_type":"text/x-python","patch_set":35,"id":"5a3905b3_f5a01144","line":226,"range":{"start_line":222,"start_character":8,"end_line":226,"end_character":37},"updated":"2017-01-24 17:23:46.000000000","message":"I\u0027m not sure that this is correct, joins ensure that a given record has a corresponding value in another table, in other words, this reduces the possible number of retrieved rows.  Maybe this can keep it as class method and work later on the joins logic.","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"896255a04e478cd9f22a6071df76ec7435041882","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    def _get_default_external_network(self, context):"},{"line_number":220,"context_line":"        \"\"\"Get the default external network for the deployment.\"\"\""},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE(manjeets) The defaults networks can be fetched from"},{"line_number":223,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":224,"context_line":"        # it has foreign key constraint in networks"},{"line_number":225,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":226,"context_line":"            context, is_default\u003dTrue)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        if not default_external_networks:"},{"line_number":229,"context_line":"            LOG.error(_LE(\"Unable to find default external network \""}],"source_content_type":"text/x-python","patch_set":35,"id":"3a461143_989c526b","line":226,"range":{"start_line":222,"start_character":8,"end_line":226,"end_character":37},"in_reply_to":"5a3905b3_2d5a4d51","updated":"2017-01-25 17:53:59.000000000","message":"how about adding a optional argument as we still have query in object/db/api if that argument is set we can do a order by on network_id ? I guess that will make sure the same order of networks returned","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c2508c29b64c3466669ca336f1f241ff18f7a91a","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    def _get_default_external_network(self, context):"},{"line_number":220,"context_line":"        \"\"\"Get the default external network for the deployment.\"\"\""},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE(manjeets) The defaults networks can be fetched from"},{"line_number":223,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":224,"context_line":"        # it has foreign key constraint in networks"},{"line_number":225,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":226,"context_line":"            context, is_default\u003dTrue)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        if not default_external_networks:"},{"line_number":229,"context_line":"            LOG.error(_LE(\"Unable to find default external network \""}],"source_content_type":"text/x-python","patch_set":35,"id":"5a3905b3_2d5a4d51","line":226,"range":{"start_line":222,"start_character":8,"end_line":226,"end_character":37},"in_reply_to":"5a3905b3_f5a01144","updated":"2017-01-24 17:37:27.000000000","message":"Network existence is guaranteed by foreign key.\n\nBut I see another problem: in the old side, we order by standard attribute IDs of corresponding networks. I suspect that\u0027s done so that the method always returns the same network for consequent calls. Without it, consequent calls may end up returning different networks. We need to figure out how to keep the order stable. For example, we may make it the default marker order in get_objects() for this particular object.","commit_id":"ec15381f98d307f19cba960b1b0de87cb7102c18"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c0cbcd4881fa2a86b63269440823b53161193d10","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    is_default \u003d request.get(IS_DEFAULT, False)"},{"line_number":56,"context_line":"    if event in (events.BEFORE_CREATE, events.BEFORE_UPDATE) and is_default:"},{"line_number":57,"context_line":"        # ensure there is only one default external network at any given time"},{"line_number":58,"context_line":"        objs \u003d net_obj.ExternalNetwork.get_objects(context, is_default\u003dTrue)"},{"line_number":59,"context_line":"        if objs:"},{"line_number":60,"context_line":"            if objs[0] and network[\u0027id\u0027] !\u003d objs[0].network_id:"},{"line_number":61,"context_line":"                raise exceptions.DefaultExternalNetworkExists("}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_27bd7802","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":76},"updated":"2017-02-07 14:55:04.000000000","message":"You can restrict the number of result to 1 using a pager\n\n    pager \u003d base_obj.Pager(limit\u003d1)\n    objs \u003d net_obj.ExternalNetwork.get_objects(context, _pager\u003dpager, is_default\u003dTrue)","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"924dbed7767398584da3dd22c57146758b50e935","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    is_default \u003d request.get(IS_DEFAULT, False)"},{"line_number":56,"context_line":"    if event in (events.BEFORE_CREATE, events.BEFORE_UPDATE) and is_default:"},{"line_number":57,"context_line":"        # ensure there is only one default external network at any given time"},{"line_number":58,"context_line":"        objs \u003d net_obj.ExternalNetwork.get_objects(context, is_default\u003dTrue)"},{"line_number":59,"context_line":"        if objs:"},{"line_number":60,"context_line":"            if objs[0] and network[\u0027id\u0027] !\u003d objs[0].network_id:"},{"line_number":61,"context_line":"                raise exceptions.DefaultExternalNetworkExists("}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_ff4f3531","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":76},"in_reply_to":"1a430d35_27bd7802","updated":"2017-02-08 17:38:31.000000000","message":"Yep.","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"924dbed7767398584da3dd22c57146758b50e935","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        # externalnetworks table, no need of join with networks as"},{"line_number":223,"context_line":"        # it has foreign key constraint in networks"},{"line_number":224,"context_line":"        default_external_networks \u003d net_obj.ExternalNetwork.get_objects("},{"line_number":225,"context_line":"            context, _order_by\u003d\u0027network_id\u0027, is_default\u003dTrue)"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        if not default_external_networks:"},{"line_number":228,"context_line":"            LOG.error(_LE(\"Unable to find default external network \""}],"source_content_type":"text/x-python","patch_set":41,"id":"1a430d35_1f0881d9","line":225,"range":{"start_line":225,"start_character":21,"end_line":225,"end_character":43},"updated":"2017-02-08 17:38:31.000000000","message":"couldn\u0027t we set that as the default order for the object? what\u0027s the drawback?\n\nAlso, it seems like you do here something different from what the old code does. The old code orders by standard attribute IDs (which are integers), while your code orders by network_id (which is a UUID, meaning it does not really have a semantically significant order - a second network created as default may be as well returned here, depending on UUID picked by uuidutils module).","commit_id":"cbfc24cad9411755616dd7f1d68beb6cfdadf5de"}],"neutron/tests/functional/scheduler/test_l3_agent_scheduler.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"00db5acdd9be4283dcfc20f81366f442989c214c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from oslo_utils import uuidutils"},{"line_number":22,"context_line":"import testscenarios"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from neutron import context"},{"line_number":25,"context_line":"from neutron.objects import network as net_obj"},{"line_number":26,"context_line":"from neutron.scheduler import l3_agent_scheduler"},{"line_number":27,"context_line":"from neutron.services.l3_router import l3_router_plugin"}],"source_content_type":"text/x-python","patch_set":49,"id":"9a30ddce_cf889fea","line":24,"updated":"2017-03-07 20:02:57.000000000","message":"remove","commit_id":"d908f29fad32ee17ac32658732e18961c33c0cfd"}],"neutron/tests/unit/objects/network/extensions/test_external_net.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"a7c4e5e26ac1a0f39f92cab5e3aeb8027f6420be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9ad45d7e_6534214a","updated":"2016-08-12 20:44:05.000000000","message":"Note @Artur, test test_count and test_get_objects_queries_constant in test_base complains if name `id\u0027 is not primary key which is `network_id` in this case, when multiple entries will created it would have same network id and test will crash","commit_id":"0e07fc73ae929a8ded448d3d1d8cf99f2b1d7b09"}],"neutron/tests/unit/objects/test_base.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fe702d682be7b20ae9b6aa22ddde5bef8b8fa0eb","unresolved":false,"context_lines":[{"line_number":1278,"context_line":"    def _create_external_network(self):"},{"line_number":1279,"context_line":"        test_network \u003d self._create_network()"},{"line_number":1280,"context_line":"        ext_net \u003d net_obj.ExternalNetwork(self.context,"},{"line_number":1281,"context_line":"            network_id\u003dtest_network[\u0027id\u0027])"},{"line_number":1282,"context_line":"        return ext_net"},{"line_number":1283,"context_line":""},{"line_number":1284,"context_line":"    def _create_test_fip(self):"}],"source_content_type":"text/x-python","patch_set":47,"id":"ba2be162_3e3996d9","line":1281,"updated":"2017-03-06 20:35:10.000000000","message":"hm, aren\u0027t you supposed to .create() it?","commit_id":"8531ac1f8ba733bc2123f0ebc6a5e5d96fd7cadd"}],"neutron/tests/unit/objects/test_external_network.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bf796e61aa309cfd58f67672089c6d68b429cce1","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    _test_class \u003d external_net.ExternalNetwork"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ExternalNetworkDbObjectTestCase(obj_test_base._BaseObjectTestCase,"},{"line_number":26,"context_line":"                                   testlib_api.SqlTestCase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _test_class \u003d external_net.ExternalNetwork"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_cb02ea0a","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":37},"updated":"2016-08-10 09:39:01.000000000","message":"You need to create network to test External Network object.","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"b96aa65cac0fa389694f7264cc93d4dd81c6f262","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    _test_class \u003d external_net.ExternalNetwork"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ExternalNetworkDbObjectTestCase(obj_test_base._BaseObjectTestCase,"},{"line_number":26,"context_line":"                                   testlib_api.SqlTestCase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _test_class \u003d external_net.ExternalNetwork"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_d4041419","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":37},"in_reply_to":"9ad45d7e_14622c3e","updated":"2016-08-11 07:00:36.000000000","message":"I have changed it in PS6.","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"68ed870c5faf1f8195920311a2e4010b2673394b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    _test_class \u003d external_net.ExternalNetwork"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ExternalNetworkDbObjectTestCase(obj_test_base._BaseObjectTestCase,"},{"line_number":26,"context_line":"                                   testlib_api.SqlTestCase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _test_class \u003d external_net.ExternalNetwork"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_14622c3e","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":37},"in_reply_to":"9ad45d7e_43752c30","updated":"2016-08-11 06:53:43.000000000","message":"I mean like this one:\ndef setUp(self):\n        super(NetworkSegmentDbObjectTestCase, self).setUp()\n        self._create_test_network()\n        for obj in itertools.chain(self.db_objs, self.obj_fields):\n            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2870b2ee7b1e6b34e7e0b01e3a26ec2da887a160","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    _test_class \u003d external_net.ExternalNetwork"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ExternalNetworkDbObjectTestCase(obj_test_base._BaseObjectTestCase,"},{"line_number":26,"context_line":"                                   testlib_api.SqlTestCase):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _test_class \u003d external_net.ExternalNetwork"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_43752c30","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":37},"in_reply_to":"9ad45d7e_cb02ea0a","updated":"2016-08-10 15:53:34.000000000","message":"Should I wait for Network OVO to develop a bit more before writing out these tests?","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"}],"neutron/tests/unit/objects/test_network.py":[{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"83e154a3ecb89b271dda4b8f124d86b2baec17c1","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def setUp(self):"},{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_f9954140","line":172,"range":{"start_line":172,"start_character":35,"end_line":172,"end_character":38},"updated":"2016-10-11 20:44:53.000000000","message":"Is itertools.chain() preferred?","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"4c92646f84a88540e592f7a5c1047e5669dc4031","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def setUp(self):"},{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_aadd0916","line":172,"range":{"start_line":172,"start_character":35,"end_line":172,"end_character":38},"in_reply_to":"fa6399be_d9179d4f","updated":"2016-10-12 13:35:15.000000000","message":"Thanks for the info.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d0b8869fddebeacf3a72cfdcb504faecaed7cbd7","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def setUp(self):"},{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_d9179d4f","line":172,"range":{"start_line":172,"start_character":35,"end_line":172,"end_character":38},"in_reply_to":"fa6399be_f9954140","updated":"2016-10-11 20:55:26.000000000","message":"it was used previously, I am not sure if you\u0027ve looked at neutron tree, use of itertool is getting replaced with this.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"83e154a3ecb89b271dda4b8f124d86b2baec17c1","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":176,"context_line":"            fields[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":177,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_59746d34","line":174,"range":{"start_line":174,"start_character":12,"end_line":174,"end_character":39},"updated":"2016-10-11 20:44:53.000000000","message":"This should be outside of the for loop.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":23674,"name":"Rohan Arora","email":"ra271w@att.com","username":"rarora"},"change_message_id":"4c92646f84a88540e592f7a5c1047e5669dc4031","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":176,"context_line":"            fields[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":177,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_cae07dcf","line":174,"range":{"start_line":174,"start_character":12,"end_line":174,"end_character":39},"in_reply_to":"fa6399be_195cb54a","updated":"2016-10-12 13:35:15.000000000","message":"Thanks for the info.","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"d0b8869fddebeacf3a72cfdcb504faecaed7cbd7","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":172,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":173,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":174,"context_line":"            self._create_test_network()"},{"line_number":175,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":176,"context_line":"            fields[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":177,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa6399be_195cb54a","line":174,"range":{"start_line":174,"start_character":12,"end_line":174,"end_character":39},"in_reply_to":"fa6399be_59746d34","updated":"2016-10-11 20:55:26.000000000","message":"as network id is unique id it needs to be inside, otherwise tests for multiple object creation would fail with same id for all networks","commit_id":"47f3995f2f6c8c78a8a21196310929f90b422c07"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"9040cf4367d5bf97a231695fb885aa5b37d9a011","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def setUp(self):"},{"line_number":198,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":199,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":200,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":201,"context_line":"            self._create_test_network()"},{"line_number":202,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":203,"context_line":"            fields[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":204,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"3a71b18c_497d5c1b","line":204,"range":{"start_line":199,"start_character":8,"end_line":204,"end_character":51},"updated":"2016-12-02 16:16:01.000000000","message":"use update_obj_fields from:\nhttps://review.openstack.org/#/c/404259/","commit_id":"0b59c55e0bd2930c7df083dc7e7f43de7ca1a788"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"a8b9a80576a39c52c7ae0dc391981818b93d7f6e","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def setUp(self):"},{"line_number":198,"context_line":"        super(ExternalNetworkDbObjectTestCase, self).setUp()"},{"line_number":199,"context_line":"        for db_obj, fields, obj in zip("},{"line_number":200,"context_line":"            self.db_objs, self.obj_fields, self.objs):"},{"line_number":201,"context_line":"            self._create_test_network()"},{"line_number":202,"context_line":"            db_obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":203,"context_line":"            fields[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"},{"line_number":204,"context_line":"            obj[\u0027network_id\u0027] \u003d self._network[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":30,"id":"ba5201f7_8a10fc5a","line":204,"range":{"start_line":199,"start_character":8,"end_line":204,"end_character":51},"in_reply_to":"3a71b18c_497d5c1b","updated":"2017-01-04 22:38:13.000000000","message":"Done","commit_id":"0b59c55e0bd2930c7df083dc7e7f43de7ca1a788"}],"neutron/tests/unit/objects/test_objects.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4db1d6452ada62548c4420cd6a9e7f969bfcc136","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027AddressScope\u0027: \u00271.0-25560799db384acfe1549634959a82b4\u0027,"},{"line_number":30,"context_line":"    \u0027DNSNameServer\u0027: \u00271.0-bf87a85327e2d812d1666ede99d9918b\u0027,"},{"line_number":31,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":32,"context_line":"    \u0027ExternalNetwork\u0027: \u00271.0-d1a6df6a312b4ef5ba695618b5026176\u0027,"},{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_9424a9af","line":32,"updated":"2016-08-09 22:15:09.000000000","message":"nit: alphabetic order, so this should be before ExtraDhcpOpt","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2870b2ee7b1e6b34e7e0b01e3a26ec2da887a160","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027AddressScope\u0027: \u00271.0-25560799db384acfe1549634959a82b4\u0027,"},{"line_number":30,"context_line":"    \u0027DNSNameServer\u0027: \u00271.0-bf87a85327e2d812d1666ede99d9918b\u0027,"},{"line_number":31,"context_line":"    \u0027ExtraDhcpOpt\u0027: \u00271.0-632f689cbeb36328995a7aed1d0a78d3\u0027,"},{"line_number":32,"context_line":"    \u0027ExternalNetwork\u0027: \u00271.0-d1a6df6a312b4ef5ba695618b5026176\u0027,"},{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_235e3812","line":32,"in_reply_to":"9ad45d7e_9424a9af","updated":"2016-08-10 15:53:34.000000000","message":"Done","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4db1d6452ada62548c4420cd6a9e7f969bfcc136","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":37,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":38,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"},{"line_number":39,"context_line":"    \u0027QosRuleType\u0027: \u00271.1-8a53fef4c6a43839d477a85b787d22ce\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b458cd33","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":23},"updated":"2016-08-09 22:15:09.000000000","message":"could you move also this one?  I\u0027m know that\u0027s not related with your patch but it help us to keep that logic","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"bf796e61aa309cfd58f67672089c6d68b429cce1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":37,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":38,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"},{"line_number":39,"context_line":"    \u0027QosRuleType\u0027: \u00271.1-8a53fef4c6a43839d477a85b787d22ce\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_b7439841","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":23},"in_reply_to":"9ad45d7e_b458cd33","updated":"2016-08-10 09:39:01.000000000","message":"I\u0027ve seen several patches trying to move it so, we can leave it out of this patch.","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2870b2ee7b1e6b34e7e0b01e3a26ec2da887a160","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \u0027IPAllocationPool\u0027: \u00271.0-371016a6480ed0b4299319cb46d9215d\u0027,"},{"line_number":34,"context_line":"    \u0027NetworkPortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":35,"context_line":"    \u0027PortSecurity\u0027: \u00271.0-b30802391a87945ee9c07582b4ff95e3\u0027,"},{"line_number":36,"context_line":"    \u0027AllowedAddressPair\u0027: \u00271.0-9f9186b6f952fbf31d257b0458b852c0\u0027,"},{"line_number":37,"context_line":"    \u0027QosBandwidthLimitRule\u0027: \u00271.1-4e44a8f5c2895ab1278399f87b40a13d\u0027,"},{"line_number":38,"context_line":"    \u0027QosDscpMarkingRule\u0027: \u00271.1-0313c6554b34fd10c753cb63d638256c\u0027,"},{"line_number":39,"context_line":"    \u0027QosRuleType\u0027: \u00271.1-8a53fef4c6a43839d477a85b787d22ce\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_c3a3dcfe","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":23},"in_reply_to":"9ad45d7e_b7439841","updated":"2016-08-10 15:53:34.000000000","message":"Will ignore for now then","commit_id":"69368e5e221a44bdb494658d1b69b99eb13b1afd"}]}
