)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"5a75b2b226a2309fbfe150997842485b2357944f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\"Port XXXX could not be found on network None\" for some plugins."},{"line_number":11,"context_line":"\"network None\" is not correct enough here."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"bug 1203631"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie5d1ec99a2726ff3fec07f83f83a12d24613ae57"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAQn%2F%2Fy%2BE%3D","line":13,"updated":"2013-07-23 03:40:02.000000000","message":"use \"Fixes bug #1203631\" to keep consistent with others","commit_id":"d88cbccb939ce368f22dd85a700212086d4814d4"}],"neutron/common/exceptions.py":[{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"5a75b2b226a2309fbfe150997842485b2357944f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    message \u003d _(\"Subnet %(subnet_id)s could not be found\")"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    def __init__(self, port_id, net_id\u003dNone):"},{"line_number":75,"context_line":"        if net_id is None:"},{"line_number":76,"context_line":"            self.message \u003d _(\"Port %(port_id)s could not be found\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fy%2Bs%3D","line":73,"updated":"2013-07-23 03:40:02.000000000","message":"here should have a new line","commit_id":"d88cbccb939ce368f22dd85a700212086d4814d4"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"2c551f4f89af2481ced9f26e96ab413a00fe7f6d","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    def __init__(self, port_id, net_id\u003dNone):"},{"line_number":75,"context_line":"        if net_id is None:"},{"line_number":76,"context_line":"            self.message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":77,"context_line":"            super(PortNotFound, self).__init__(port_id\u003dport_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F2Ms%3D","line":74,"updated":"2013-07-22 07:41:19.000000000","message":"IMHO, To remove net_id parameter and change msg accordingly is enough.","commit_id":"d88cbccb939ce368f22dd85a700212086d4814d4"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"df04d3c58d83e5f569e2999efae6dcba29965960","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    def __init__(self, port_id, net_id\u003dNone):"},{"line_number":75,"context_line":"        if net_id is None:"},{"line_number":76,"context_line":"            self.message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":77,"context_line":"            super(PortNotFound, self).__init__(port_id\u003dport_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F2Lg%3D","line":74,"in_reply_to":"AAAAQn%2F%2F2Ms%3D","updated":"2013-07-22 07:52:10.000000000","message":"I do not think so, some plugins will pass the net_id in. So we can not delete the net_id easily.","commit_id":"d88cbccb939ce368f22dd85a700212086d4814d4"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"5a75b2b226a2309fbfe150997842485b2357944f","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    def __init__(self, port_id, net_id\u003dNone):"},{"line_number":75,"context_line":"        if net_id is None:"},{"line_number":76,"context_line":"            self.message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":77,"context_line":"            super(PortNotFound, self).__init__(port_id\u003dport_id)"},{"line_number":78,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fy%2Bc%3D","line":75,"updated":"2013-07-23 03:40:02.000000000","message":"use \"if not net_id\" to cover the suituation that net_id is empty but is not None","commit_id":"d88cbccb939ce368f22dd85a700212086d4814d4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a06113b312534780514e1cc1b5c8cff04d047131","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class PolicyFileNotFound(NotFound):"},{"line_number":79,"context_line":"    message \u003d _(\"Policy configuration policy.json could not be found\")"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"class PolicyRuleNotFound(NotFound):"},{"line_number":83,"context_line":"    message \u003d _(\"Requested rule:%(rule)s cannot be found\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2FjrM%3D","side":"PARENT","line":80,"updated":"2013-07-29 08:55:03.000000000","message":"You need the new line here. Why the change?","commit_id":"f11dbbe748980d3ddcad298b2b8fea579d93f1e0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"a06113b312534780514e1cc1b5c8cff04d047131","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    message \u003d _(\"Subnet %(subnet_id)s could not be found\")"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class PolicyFileNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fjq4%3D","line":73,"updated":"2013-07-29 08:55:03.000000000","message":"How about the idea of 2 different exceptions. The one above and one where there is a network ID?\nSay for example PortNotFoundOnNetwork\nThis would enable us to also preserve the old code where network id was used","commit_id":"d350f8c0fe4b33018ef662f85f0ae14d7c2901f0"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"a405e5584e4c11c69a75752d994ce0fea5cc8b37","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    message \u003d _(\"Subnet %(subnet_id)s could not be found\")"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class PolicyFileNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fjpg%3D","line":73,"in_reply_to":"AAAAQn%2F%2Fjq4%3D","updated":"2013-07-29 09:06:42.000000000","message":"It is ok for me. And I also think the idea of different exceptions is a good option.","commit_id":"d350f8c0fe4b33018ef662f85f0ae14d7c2901f0"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"e32c3a622d9b063fd5fc9fd8a6a18ca806b85dab","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class PolicyFileNotFound(NotFound):"},{"line_number":77,"context_line":"    message \u003d _(\"Policy configuration policy.json could not be found\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fji8%3D","line":74,"updated":"2013-07-29 10:05:50.000000000","message":"in neutron/plugins/nicira/NeutronPlugin.py \ndef _nvp_delete_port(self, context, port_data):\n    try:\n            nvplib.delete_port(self.cluster,\n                               port_data[\u0027network_id\u0027],\n                               nvp_port_id)\nthis nvp_port_id is checked already, so the exception may only caused by port on wrong network. Although i don\u0027t know how it happen or if it would happen, but for nicira plugin, this seems useful detail","commit_id":"d350f8c0fe4b33018ef662f85f0ae14d7c2901f0"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"666a7565a8ae576749d3888f445e0a8463c3e6c1","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PortNotFound(NotFound):"},{"line_number":74,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class PolicyFileNotFound(NotFound):"},{"line_number":77,"context_line":"    message \u003d _(\"Policy configuration policy.json could not be found\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2FjhY%3D","line":74,"in_reply_to":"AAAAQn%2F%2Fji8%3D","updated":"2013-07-29 10:21:58.000000000","message":"Thanks for your comments. I will modify it per comment from garyk.","commit_id":"d350f8c0fe4b33018ef662f85f0ae14d7c2901f0"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"e32c3a622d9b063fd5fc9fd8a6a18ca806b85dab","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class PolicyFileNotFound(NotFound):"},{"line_number":77,"context_line":"    message \u003d _(\"Policy configuration policy.json could not be found\")"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"class PolicyRuleNotFound(NotFound):"},{"line_number":80,"context_line":"    message \u003d _(\"Requested rule:%(rule)s cannot be found\")"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fjs4%3D","line":78,"updated":"2013-07-29 10:05:50.000000000","message":"pep8 need two blank lines here","commit_id":"d350f8c0fe4b33018ef662f85f0ae14d7c2901f0"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"18c4d1873b432783121e37535d3737cb75a7460b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found\")"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class PortNotFoundOnNetwork(NotFound):"},{"line_number":78,"context_line":"    message \u003d _(\"Port %(port_id)s could not be found \""},{"line_number":79,"context_line":"                \"on network %(net_id)s\")"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2Ffow%3D","line":77,"updated":"2013-07-30 09:23:49.000000000","message":"Please move this to the Nicira plugin\u0027s exception module","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"}],"neutron/plugins/nicira/nvplib.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"633db3f1b2a53166f59a7da1c69aca434e327ec7","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    except exception.NotFound:"},{"line_number":621,"context_line":"        LOG.exception(_(\"Port or Network not found\"))"},{"line_number":622,"context_line":"        raise exception.PortNotFoundOnNetwork(net_id\u003dswitch,"},{"line_number":623,"context_line":"                                              port_id\u003dport)"},{"line_number":624,"context_line":"    except NvpApiClient.NvpApiException:"},{"line_number":625,"context_line":"        raise exception.NeutronException()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FgLE%3D","line":623,"updated":"2013-07-30 05:36:33.000000000","message":"for good code style, please make indent aligned\n\nif i\u0027m not wrong, this problem has been addressed for several times, do not skip it","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"18c4d1873b432783121e37535d3737cb75a7460b","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    except exception.NotFound:"},{"line_number":621,"context_line":"        LOG.exception(_(\"Port or Network not found\"))"},{"line_number":622,"context_line":"        raise exception.PortNotFoundOnNetwork(net_id\u003dswitch,"},{"line_number":623,"context_line":"                                              port_id\u003dport)"},{"line_number":624,"context_line":"    except NvpApiClient.NvpApiException:"},{"line_number":625,"context_line":"        raise exception.NeutronException()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2Ffo4%3D","line":623,"in_reply_to":"AAAAQn%2F%2Ff%2BM%3D","updated":"2013-07-30 09:23:49.000000000","message":"It might be just gerrit not displaying correctly.\nIndent errors are gated, and gate is happy.\nIf gate is happy, developers are happy.\n\nhowever, please avoid right-alignment - can you go to a new line for all parameters?\n\nraise exception.PortNotFoundOnNetwork(\n      net_id\u003dswitch, port_id\u003dport)","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"f713e0ef696533c23c658d528135e2693503c6bb","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    except exception.NotFound:"},{"line_number":621,"context_line":"        LOG.exception(_(\"Port or Network not found\"))"},{"line_number":622,"context_line":"        raise exception.PortNotFoundOnNetwork(net_id\u003dswitch,"},{"line_number":623,"context_line":"                                              port_id\u003dport)"},{"line_number":624,"context_line":"    except NvpApiClient.NvpApiException:"},{"line_number":625,"context_line":"        raise exception.NeutronException()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdQo%3D","line":623,"in_reply_to":"AAAAQn%2F%2Ffo4%3D","updated":"2013-07-30 22:09:48.000000000","message":"+1 to Salvatore\u0027s suggestion","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"8c6afa1560ece592324270f29ff54e6c70c2bc51","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    except exception.NotFound:"},{"line_number":621,"context_line":"        LOG.exception(_(\"Port or Network not found\"))"},{"line_number":622,"context_line":"        raise exception.PortNotFoundOnNetwork(net_id\u003dswitch,"},{"line_number":623,"context_line":"                                              port_id\u003dport)"},{"line_number":624,"context_line":"    except NvpApiClient.NvpApiException:"},{"line_number":625,"context_line":"        raise exception.NeutronException()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2Ff%2BM%3D","line":623,"in_reply_to":"AAAAQn%2F%2FgBA%3D","updated":"2013-07-30 06:23:37.000000000","message":"you can check if there are tabs and spaces mixed, if you\u0027re using vim, please set .vimrc to the recommanded setting, or if you\u0027re using emacs, it will automatically convert to space when you use tab.","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"9d6f1085edccf83034a137b54e8773d3f74c140e","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    except exception.NotFound:"},{"line_number":621,"context_line":"        LOG.exception(_(\"Port or Network not found\"))"},{"line_number":622,"context_line":"        raise exception.PortNotFoundOnNetwork(net_id\u003dswitch,"},{"line_number":623,"context_line":"                                              port_id\u003dport)"},{"line_number":624,"context_line":"    except NvpApiClient.NvpApiException:"},{"line_number":625,"context_line":"        raise exception.NeutronException()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FgBA%3D","line":623,"in_reply_to":"AAAAQn%2F%2FgLE%3D","updated":"2013-07-30 06:08:45.000000000","message":"To Zhiqiang,\nThis is not discovered in my local code, I am not sure why there is on indention here.","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"f713e0ef696533c23c658d528135e2693503c6bb","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        return do_request(HTTP_GET, uri, cluster\u003dcluster)"},{"line_number":663,"context_line":"    except exception.NotFound as e:"},{"line_number":664,"context_line":"        LOG.error(_(\"Port or Network not found, Error: %s\"), str(e))"},{"line_number":665,"context_line":"        raise exception.PortNotFoundOnNetwork(port_id\u003dport,"},{"line_number":666,"context_line":"                                              net_id\u003dnetwork)"},{"line_number":667,"context_line":""},{"line_number":668,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdQQ%3D","line":665,"updated":"2013-07-30 22:09:48.000000000","message":"Same above","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"f713e0ef696533c23c658d528135e2693503c6bb","unresolved":false,"context_lines":[{"line_number":717,"context_line":"        return result"},{"line_number":718,"context_line":"    except exception.NotFound as e:"},{"line_number":719,"context_line":"        LOG.error(_(\"Port or Network not found, Error: %s\"), str(e))"},{"line_number":720,"context_line":"        raise exception.PortNotFoundOnNetwork(port_id\u003dlport_uuid,"},{"line_number":721,"context_line":"                                              net_id\u003dlswitch_uuid)"},{"line_number":722,"context_line":""},{"line_number":723,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdQM%3D","line":720,"updated":"2013-07-30 22:09:48.000000000","message":"Same as above","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"f713e0ef696533c23c658d528135e2693503c6bb","unresolved":false,"context_lines":[{"line_number":880,"context_line":"                       (lswitch_id, port_id), cluster\u003dcluster)"},{"line_number":881,"context_line":"    except exception.NotFound as e:"},{"line_number":882,"context_line":"        LOG.error(_(\"Port not found, Error: %s\"), str(e))"},{"line_number":883,"context_line":"        raise exception.PortNotFoundOnNetwork(port_id\u003dport_id,"},{"line_number":884,"context_line":"                                              net_id\u003dlswitch_id)"},{"line_number":885,"context_line":"    if r[\u0027link_status_up\u0027] is True:"},{"line_number":886,"context_line":"        return constants.PORT_STATUS_ACTIVE"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdQI%3D","line":883,"updated":"2013-07-30 22:09:48.000000000","message":"Same as above","commit_id":"865239e6aaad4e8454da6613b402d6ad24e014d6"}]}
