)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e12b8af5f4658a31f57136c948bb1bc45019795b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Tighten exception handler for import_object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"oslo_utils raise ImportError if import fails. We should propagate other"},{"line_number":10,"context_line":"failures to callers. Otherwise we may hide issues."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also report exact failure from import_object in case L3 agent fails to"},{"line_number":13,"context_line":"import interface_driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_b81652ef","line":10,"updated":"2015-07-14 13:21:31.000000000","message":"actually it can raise other exceptions, depending on the reason of import failure.  your intention is make them uncaught?","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ff3c0446a8363c987e33422766483703e7f836d7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Tighten exception handler for import_object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"oslo_utils raise ImportError if import fails. We should propagate other"},{"line_number":10,"context_line":"failures to callers. Otherwise we may hide issues."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also report exact failure from import_object in case L3 agent fails to"},{"line_number":13,"context_line":"import interface_driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_b87df2b2","line":10,"in_reply_to":"9a41bdd9_b81652ef","updated":"2015-07-14 13:28:01.000000000","message":"Yes, that\u0027s the idea: to see the actual (unexpected) traceback instead of swallowing it.","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"33da10e2ba0d702657e698d9d5730e679ed49861","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Tighten exception handler for import_object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"oslo_utils raise ImportError if import fails. We should propagate other"},{"line_number":10,"context_line":"failures to callers. Otherwise we may hide issues."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also report exact failure from import_object in case L3 agent fails to"},{"line_number":13,"context_line":"import interface_driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_d522fc51","line":10,"in_reply_to":"9a41bdd9_b87df2b2","updated":"2015-07-14 14:22:10.000000000","message":"ok, thank for you for clarification.","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"}],"neutron/agent/common/config.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c4ecdb38ea8603a114110b91d99ba5b0a6ed9a87","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    return conf"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def load_interface_driver(conf):"},{"line_number":150,"context_line":"    if not conf.interface_driver:"},{"line_number":151,"context_line":"        LOG.error(_LE(\u0027An interface driver must be specified\u0027))"},{"line_number":152,"context_line":"        raise SystemExit(1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_23e532db","line":149,"updated":"2015-07-14 14:59:17.000000000","message":"why choosing agen/common/config.py and not agen/common/utils.py for this function?","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":9911,"name":"Wei Wang","email":"wangwei@unitedstack.com","username":"DamonWang"},"change_message_id":"bfbb8bc4a5633325d2c42eeb938500f2de968732","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    return conf"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def load_interface_driver(conf):"},{"line_number":150,"context_line":"    if not conf.interface_driver:"},{"line_number":151,"context_line":"        LOG.error(_LE(\u0027An interface driver must be specified\u0027))"},{"line_number":152,"context_line":"        raise SystemExit(1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_43eb9678","line":149,"in_reply_to":"9a41bdd9_23e532db","updated":"2015-07-14 15:03:07.000000000","message":"+1","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":9911,"name":"Wei Wang","email":"wangwei@unitedstack.com","username":"DamonWang"},"change_message_id":"b0016baf62180a443d38b64e7da096506785da00","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    return conf"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def load_interface_driver(conf):"},{"line_number":150,"context_line":"    if not conf.interface_driver:"},{"line_number":151,"context_line":"        LOG.error(_LE(\u0027An interface driver must be specified\u0027))"},{"line_number":152,"context_line":"        raise SystemExit(1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_c98ee5cf","line":149,"in_reply_to":"9a41bdd9_3e478578","updated":"2015-07-14 15:32:23.000000000","message":"I think it make sense in either of two files, it used for import driver, that\u0027s why utils.py is a appropriate place, but meantime, it process config and its parameter is config, that\u0027s why config.py also make sense.","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"600c0bf08f26d6960342525af37aef480b2d5412","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    return conf"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def load_interface_driver(conf):"},{"line_number":150,"context_line":"    if not conf.interface_driver:"},{"line_number":151,"context_line":"        LOG.error(_LE(\u0027An interface driver must be specified\u0027))"},{"line_number":152,"context_line":"        raise SystemExit(1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_295671ce","line":149,"in_reply_to":"9a41bdd9_3e478578","updated":"2015-07-14 15:28:37.000000000","message":"My feeling is that there is nothing config specific in loading interface driver  and handling possible import errors. Also it seems not in a row with other functions in this module","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"497c42cd1081efa07b78dda63e5172bb73f3e465","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    return conf"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"def load_interface_driver(conf):"},{"line_number":150,"context_line":"    if not conf.interface_driver:"},{"line_number":151,"context_line":"        LOG.error(_LE(\u0027An interface driver must be specified\u0027))"},{"line_number":152,"context_line":"        raise SystemExit(1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_3e478578","line":149,"in_reply_to":"9a41bdd9_43eb9678","updated":"2015-07-14 15:19:55.000000000","message":"I felt like it\u0027s config thingy. Do you want me to move it there? I\u0027m happy to adopt.","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e12b8af5f4658a31f57136c948bb1bc45019795b","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        LOG.error(_LE(\"Error importing interface driver \""},{"line_number":157,"context_line":"                      \"\u0027%(driver)s\u0027: %(inner)s\"),"},{"line_number":158,"context_line":"                  {\u0027driver\u0027: conf.interface_driver,"},{"line_number":159,"context_line":"                   \u0027inner\u0027: e})"},{"line_number":160,"context_line":"        raise SystemExit(1)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_98a02ea1","line":159,"range":{"start_line":159,"start_character":20,"end_line":159,"end_character":25},"updated":"2015-07-14 13:21:31.000000000","message":"inner?","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"33da10e2ba0d702657e698d9d5730e679ed49861","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        LOG.error(_LE(\"Error importing interface driver \""},{"line_number":157,"context_line":"                      \"\u0027%(driver)s\u0027: %(inner)s\"),"},{"line_number":158,"context_line":"                  {\u0027driver\u0027: conf.interface_driver,"},{"line_number":159,"context_line":"                   \u0027inner\u0027: e})"},{"line_number":160,"context_line":"        raise SystemExit(1)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_b5fe58ac","line":159,"in_reply_to":"9a41bdd9_38480287","updated":"2015-07-14 14:22:10.000000000","message":"\u0027error\u0027 sounds better but i don\u0027t insist.","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ff3c0446a8363c987e33422766483703e7f836d7","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        LOG.error(_LE(\"Error importing interface driver \""},{"line_number":157,"context_line":"                      \"\u0027%(driver)s\u0027: %(inner)s\"),"},{"line_number":158,"context_line":"                  {\u0027driver\u0027: conf.interface_driver,"},{"line_number":159,"context_line":"                   \u0027inner\u0027: e})"},{"line_number":160,"context_line":"        raise SystemExit(1)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a41bdd9_38480287","line":159,"in_reply_to":"9a41bdd9_98a02ea1","updated":"2015-07-14 13:28:01.000000000","message":"It\u0027s what I got from the agent code when I consolidated it here. I can change it to e.g. \u0027error\u0027. Comments?","commit_id":"bace9fe6eeb09b32f46cdd26b034b7684d0c1070"}]}
