)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"3894e9f72b683eacefab8e611205a0464d6d2eb6","unresolved":false,"context_lines":[{"line_number":11,"context_line":"1) In the current ML2 Manager, we are using sys.exit(1)"},{"line_number":12,"context_line":"if the network_type isn\u0027t found in self.drivers:"},{"line_number":13,"context_line":"https://github.com/openstack/neutron/blob/master/ \\"},{"line_number":14,"context_line":"neutron/plugins/ml2/managers.py#L70"},{"line_number":15,"context_line":"Here we should probably throw an exception."},{"line_number":16,"context_line":"When running unit test, if we hit this condition"},{"line_number":17,"context_line":"the unit tests will exit as well."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F89JI%3D","line":14,"updated":"2013-12-18 12:31:19.000000000","message":"please don\u0027t add links to github in the commit message.\n\nIndeed once your commit merges, the line you link would be changed and this message won\u0027t make sense anymore","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"734248331065c8978e5b2f6a6d66b31694232ac4","unresolved":false,"context_lines":[{"line_number":11,"context_line":"1) In the current ML2 Manager, we are using sys.exit(1)"},{"line_number":12,"context_line":"if the network_type isn\u0027t found in self.drivers:"},{"line_number":13,"context_line":"https://github.com/openstack/neutron/blob/master/ \\"},{"line_number":14,"context_line":"neutron/plugins/ml2/managers.py#L70"},{"line_number":15,"context_line":"Here we should probably throw an exception."},{"line_number":16,"context_line":"When running unit test, if we hit this condition"},{"line_number":17,"context_line":"the unit tests will exit as well."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8sik%3D","line":14,"in_reply_to":"AAAATn%2F89JI%3D","updated":"2013-12-23 03:09:53.000000000","message":"Done","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"3894e9f72b683eacefab8e611205a0464d6d2eb6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"neutron/plugins/ml2/managers.py#L70"},{"line_number":15,"context_line":"Here we should probably throw an exception."},{"line_number":16,"context_line":"When running unit test, if we hit this condition"},{"line_number":17,"context_line":"the unit tests will exit as well."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"2) We should also be mindful of using the reserved keyword"},{"line_number":20,"context_line":"\u0027type\u0027 and rename type in this case to something else:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F89IM%3D","line":17,"updated":"2013-12-18 12:31:19.000000000","message":"Just say something like \"replace sys.exit(1) with raise SystemExit(1)","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"734248331065c8978e5b2f6a6d66b31694232ac4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"neutron/plugins/ml2/managers.py#L70"},{"line_number":15,"context_line":"Here we should probably throw an exception."},{"line_number":16,"context_line":"When running unit test, if we hit this condition"},{"line_number":17,"context_line":"the unit tests will exit as well."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"2) We should also be mindful of using the reserved keyword"},{"line_number":20,"context_line":"\u0027type\u0027 and rename type in this case to something else:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8sig%3D","line":17,"in_reply_to":"AAAATn%2F89IM%3D","updated":"2013-12-23 03:09:53.000000000","message":"Done","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"3894e9f72b683eacefab8e611205a0464d6d2eb6","unresolved":false,"context_lines":[{"line_number":19,"context_line":"2) We should also be mindful of using the reserved keyword"},{"line_number":20,"context_line":"\u0027type\u0027 and rename type in this case to something else:"},{"line_number":21,"context_line":"https://github.com/openstack/neutron/blob/master/ \\"},{"line_number":22,"context_line":"neutron/plugins/ml2/managers.py#L49"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I921bfaec7d3e31503942b3ca4a1b2218c44b14ac"},{"line_number":25,"context_line":"Closes-Bug: #1259646"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F89H4%3D","line":22,"updated":"2013-12-18 12:31:19.000000000","message":"again, not the link.\nJust use something like: \"replace reserved keywork type with network_type\"","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"734248331065c8978e5b2f6a6d66b31694232ac4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"2) We should also be mindful of using the reserved keyword"},{"line_number":20,"context_line":"\u0027type\u0027 and rename type in this case to something else:"},{"line_number":21,"context_line":"https://github.com/openstack/neutron/blob/master/ \\"},{"line_number":22,"context_line":"neutron/plugins/ml2/managers.py#L49"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I921bfaec7d3e31503942b3ca4a1b2218c44b14ac"},{"line_number":25,"context_line":"Closes-Bug: #1259646"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F8sic%3D","line":22,"in_reply_to":"AAAATn%2F89H4%3D","updated":"2013-12-23 03:09:53.000000000","message":"Done","commit_id":"d4b28672c7342cf877a646394ed2100993364b43"}],"neutron/plugins/ml2/managers.py":[{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"bcf9a9c9db6510990d95d68d27fdf2498b957fd5","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9aUo%3D","line":47,"updated":"2013-12-11 19:59:30.000000000","message":"I\u0027d prefer calling this network_type or something similar, since it is the network_type that is supported by the driver.","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"597b2cb6757c9587042b1fbc3ab6c59017274b7e","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89%2BM%3D","line":47,"in_reply_to":"AAAATn%2F9aUo%3D","updated":"2013-12-18 10:00:40.000000000","message":"Done","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"8f1bf6ca9b50cefbf284a8c927aa9fde4d034efd","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""},{"line_number":51,"context_line":"                            \" for type \u0027%(type)s\u0027\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9HCI%3D","line":48,"updated":"2013-12-16 17:59:14.000000000","message":"Since tests passed on this change and:\n\n  if type in self.drivers:\n\nlooks like it was not caught, I\u0027d strongly suggest you to increase coverage for this...that unless I am barking at the wrong tree.","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d311f2936fca6b98a2b0442c363ad713a61503b3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""},{"line_number":51,"context_line":"                            \" for type \u0027%(type)s\u0027\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ZCc%3D","line":48,"updated":"2013-12-11 23:53:56.000000000","message":"You missed this occurrence of type.","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"597b2cb6757c9587042b1fbc3ab6c59017274b7e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""},{"line_number":51,"context_line":"                            \" for type \u0027%(type)s\u0027\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F896E%3D","line":48,"in_reply_to":"AAAATn%2F9HCI%3D","updated":"2013-12-18 10:00:40.000000000","message":"Hi Armando, I check the code and found the code will never run into this \"if type in self.drivers\" code logic because all network_type comes from entry points of pkg resources which means it will never repeat.\nsetuptools will throw \"Duplicate entry point\u0027 error first if the endpint entry is redundant. So if we can remove this code in another patch ?","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"597b2cb6757c9587042b1fbc3ab6c59017274b7e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def _register_types(self):"},{"line_number":46,"context_line":"        for ext in self:"},{"line_number":47,"context_line":"            driver_type \u003d ext.obj.get_type()"},{"line_number":48,"context_line":"            if type in self.drivers:"},{"line_number":49,"context_line":"                LOG.error(_(\"Type driver \u0027%(new_driver)s\u0027 ignored because type\""},{"line_number":50,"context_line":"                            \" driver \u0027%(old_driver)s\u0027 is already registered\""},{"line_number":51,"context_line":"                            \" for type \u0027%(type)s\u0027\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89%2BI%3D","line":48,"in_reply_to":"AAAATn%2F9ZCc%3D","updated":"2013-12-18 10:00:40.000000000","message":"Done","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"bcf9a9c9db6510990d95d68d27fdf2498b957fd5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        LOG.info(_(\"Tenant network_types: %s\"), self.tenant_network_types)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def initialize(self):"},{"line_number":72,"context_line":"        for driver_type, driver in self.drivers.iteritems():"},{"line_number":73,"context_line":"            LOG.info(_(\"Initializing driver for type \u0027%s\u0027\"), driver_type)"},{"line_number":74,"context_line":"            driver.obj.initialize()"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9aUU%3D","line":72,"updated":"2013-12-11 19:59:30.000000000","message":"Same here.","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"597b2cb6757c9587042b1fbc3ab6c59017274b7e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        LOG.info(_(\"Tenant network_types: %s\"), self.tenant_network_types)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def initialize(self):"},{"line_number":72,"context_line":"        for driver_type, driver in self.drivers.iteritems():"},{"line_number":73,"context_line":"            LOG.info(_(\"Initializing driver for type \u0027%s\u0027\"), driver_type)"},{"line_number":74,"context_line":"            driver.obj.initialize()"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89%2BE%3D","line":72,"in_reply_to":"AAAATn%2F9aUU%3D","updated":"2013-12-18 10:00:40.000000000","message":"Done","commit_id":"f280859090d19b311598cb3229adea6ca5d1c2e1"},{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"dce7d7a1de65c99269b34ad1e9c6a2caf5a6496c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                LOG.error(_(\"No type driver for tenant network_type: %s. \""},{"line_number":66,"context_line":"                            \"Service terminated!\"),"},{"line_number":67,"context_line":"                          network_type)"},{"line_number":68,"context_line":"                raise SystemExit(1)"},{"line_number":69,"context_line":"        LOG.info(_(\"Tenant network_types: %s\"), self.tenant_network_types)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def initialize(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2Frwk%3D","line":68,"updated":"2014-01-03 15:03:57.000000000","message":"Nit: You should give the logged message as parameter to SystemExit.","commit_id":"a09b796e60fa584a6d2002fdb9ddff51b5c61b92"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"33ebe56660a41b5080774a0dd0eda693c90ecd14","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                LOG.error(_(\"No type driver for tenant network_type: %s. \""},{"line_number":66,"context_line":"                            \"Service terminated!\"),"},{"line_number":67,"context_line":"                          network_type)"},{"line_number":68,"context_line":"                raise SystemExit(1)"},{"line_number":69,"context_line":"        LOG.info(_(\"Tenant network_types: %s\"), self.tenant_network_types)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def initialize(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2F4no%3D","line":68,"in_reply_to":"AAAAT3%2F%2Frwk%3D","updated":"2014-01-07 08:41:34.000000000","message":"thanks, done","commit_id":"a09b796e60fa584a6d2002fdb9ddff51b5c61b92"}]}
