)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8cefbb58217cf634f2c044e04b11472140c3af96","unresolved":false,"context_lines":[{"line_number":12,"context_line":"omit that so that the real causes can be seen from API."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I6e3903a3cf8a81607b66deb54c7d5d81cfa704e8"},{"line_number":15,"context_line":"Closes-Bug: 1431203"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"fa1b9901_439cba0e","line":15,"updated":"2015-08-20 13:07:31.000000000","message":"This bug is already closed, you should really open a new bug for this fix.","commit_id":"7c8a863c4d100b4dca5717ec1bce33016883f8db"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"3ebdf62bf31e9987920d77665eaf5811c3560cc1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"omit that so that the real causes can be seen from API."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I6e3903a3cf8a81607b66deb54c7d5d81cfa704e8"},{"line_number":15,"context_line":"Closes-Bug: 1431203"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"fa1b9901_db81e090","line":15,"in_reply_to":"fa1b9901_439cba0e","updated":"2015-08-25 06:18:48.000000000","message":"Done","commit_id":"7c8a863c4d100b4dca5717ec1bce33016883f8db"}],"nova/compute/manager.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f302e27ba7daa03dfa0cddf0afea3ec02c8883b7","unresolved":false,"context_lines":[{"line_number":2130,"context_line":"                orig_exc \u003d exception.RawNovaException("},{"line_number":2131,"context_line":"                    reason\u003de.kwargs[\u0027reason\u0027])"},{"line_number":2132,"context_line":"                compute_utils.add_instance_fault_from_exc(context,"},{"line_number":2133,"context_line":"                        instance, orig_exc, sys.exc_info())"},{"line_number":2134,"context_line":"                self._set_instance_error_state(context, instance)"},{"line_number":2135,"context_line":"                return build_results.FAILED"},{"line_number":2136,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_5cd55d41","line":2133,"updated":"2015-03-19 13:48:21.000000000","message":"can we change add_instance_fault_from_exc a little or wrap it\nso we don\u0027t need to build a helper exception into it?\n\nlooks like exc_info[2] is the callback and we want to use it\nso can we pass it from here? \n\n73 def _get_fault_details(exc_info, error_code):\n74     details \u003d \u0027\u0027\n75     if exc_info and error_code \u003d\u003d 500:\n76         tb \u003d exc_info[2]\n77         if tb:\n78             details \u003d \u0027\u0027.join(traceback.format_tb(tb))\n79     return unicode(details)\n80\n81\n82 def add_instance_fault_from_exc(context, instance, fault, exc_info\u003dNone)\n83     \"\"\"Adds the specified fault to the database.\"\"\"\n84\n85     fault_obj \u003d objects.InstanceFault(context\u003dcontext)\n86     fault_obj.host \u003d CONF.host\n87     fault_obj.instance_uuid \u003d instance.uuid\n88     fault_obj.update(exception_to_dict(fault))\n89     code \u003d fault_obj.code\n90     fault_obj.details \u003d _get_fault_details(exc_info, code)\n91     fault_obj.create()","commit_id":"1519555c6f630d55aa531e6ca113c34b13cc7528"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8cefbb58217cf634f2c044e04b11472140c3af96","unresolved":false,"context_lines":[{"line_number":1901,"context_line":"                self._set_instance_obj_error_state(context, instance)"},{"line_number":1902,"context_line":"                return build_results.FAILED"},{"line_number":1903,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1904,"context_line":"            retry[\u0027exc\u0027] \u003d traceback.format_exception(*sys.exc_info())"},{"line_number":1905,"context_line":"            # NOTE(comstud): Deallocate networks if the driver wants"},{"line_number":1906,"context_line":"            # us to do so."},{"line_number":1907,"context_line":"            if self.driver.deallocate_networks_on_reschedule(instance):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa1b9901_43f59a54","side":"PARENT","line":1904,"updated":"2015-08-20 13:07:31.000000000","message":"I am not sure why you have changed this as well? It seems like you have dropped the traceback here, which is suspect gets logged somewhere useful.","commit_id":"f18711bb1c1b11b7422f07ad0717218885678fc5"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"febb55c99d049a1fdd50a7d33d749af9b16a19c8","unresolved":false,"context_lines":[{"line_number":1901,"context_line":"                self._set_instance_obj_error_state(context, instance)"},{"line_number":1902,"context_line":"                return build_results.FAILED"},{"line_number":1903,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1904,"context_line":"            retry[\u0027exc\u0027] \u003d traceback.format_exception(*sys.exc_info())"},{"line_number":1905,"context_line":"            # NOTE(comstud): Deallocate networks if the driver wants"},{"line_number":1906,"context_line":"            # us to do so."},{"line_number":1907,"context_line":"            if self.driver.deallocate_networks_on_reschedule(instance):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a1a9d01_5c0428c5","side":"PARENT","line":1904,"in_reply_to":"fa1b9901_3b733ce9","updated":"2015-10-02 07:10:30.000000000","message":"retry[\u0027exc\u0027] is used as the reason for exception.MaxRetriesExceeded, which is stored in instance_fault.message in turn.","commit_id":"f18711bb1c1b11b7422f07ad0717218885678fc5"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"3ebdf62bf31e9987920d77665eaf5811c3560cc1","unresolved":false,"context_lines":[{"line_number":1901,"context_line":"                self._set_instance_obj_error_state(context, instance)"},{"line_number":1902,"context_line":"                return build_results.FAILED"},{"line_number":1903,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1904,"context_line":"            retry[\u0027exc\u0027] \u003d traceback.format_exception(*sys.exc_info())"},{"line_number":1905,"context_line":"            # NOTE(comstud): Deallocate networks if the driver wants"},{"line_number":1906,"context_line":"            # us to do so."},{"line_number":1907,"context_line":"            if self.driver.deallocate_networks_on_reschedule(instance):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa1b9901_3b733ce9","side":"PARENT","line":1904,"in_reply_to":"fa1b9901_43f59a54","updated":"2015-08-25 06:18:48.000000000","message":"I don\u0027t remember why I changed this.  It certainly seems unnecessary.  Dropped.","commit_id":"f18711bb1c1b11b7422f07ad0717218885678fc5"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"c171dcd4c419f9f4e7baeba9c8b38c7232fbfd60","unresolved":false,"context_lines":[{"line_number":1936,"context_line":"                                                   clean_task_state\u003dTrue)"},{"line_number":1937,"context_line":"                return build_results.FAILED"},{"line_number":1938,"context_line":"            LOG.debug(e.format_message(), instance\u003dinstance)"},{"line_number":1939,"context_line":"            retry[\u0027exc\u0027] \u003d traceback.format_exception(*sys.exc_info())"},{"line_number":1940,"context_line":"            # NOTE(comstud): Deallocate networks if the driver wants"},{"line_number":1941,"context_line":"            # us to do so."},{"line_number":1942,"context_line":"            if self.driver.deallocate_networks_on_reschedule(instance):"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a26ad4f_a7469bbd","line":1939,"updated":"2015-10-28 01:22:55.000000000","message":"IIRC, this should be e.kwargs[\u0027reason\u0027]\n\nSee PS13 and its comments.","commit_id":"ffdd0e061df6d0d590175d869f4165938a23f05c"}],"nova/compute/utils.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de52a0eccfe12e7c265c128b804320d17439ce63","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    fault_obj.host \u003d CONF.host"},{"line_number":88,"context_line":"    fault_obj.instance_uuid \u003d instance.uuid"},{"line_number":89,"context_line":"    fault_obj.update(exception_to_dict(fault))"},{"line_number":90,"context_line":"    if fault_message:"},{"line_number":91,"context_line":"        fault_obj[\"message\"] \u003d unicode(fault_message)"},{"line_number":92,"context_line":"    code \u003d fault_obj.code"},{"line_number":93,"context_line":"    fault_obj.details \u003d _get_fault_details(exc_info, code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab921fb_1c5779cf","line":90,"updated":"2015-04-24 11:41:14.000000000","message":"there is no unit test to reflect this","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"bf752cf2db40844f410539d140d3c606b794d26c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    fault_obj.host \u003d CONF.host"},{"line_number":88,"context_line":"    fault_obj.instance_uuid \u003d instance.uuid"},{"line_number":89,"context_line":"    fault_obj.update(exception_to_dict(fault))"},{"line_number":90,"context_line":"    if fault_message:"},{"line_number":91,"context_line":"        fault_obj[\"message\"] \u003d unicode(fault_message)"},{"line_number":92,"context_line":"    code \u003d fault_obj.code"},{"line_number":93,"context_line":"    fault_obj.details \u003d _get_fault_details(exc_info, code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ad32947_ebc44093","line":90,"in_reply_to":"bab921fb_1c5779cf","updated":"2015-04-28 01:33:35.000000000","message":"Done","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"79c855f10336cc6b51a8d42b54a44858834caf04","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    fault_obj.instance_uuid \u003d instance.uuid"},{"line_number":89,"context_line":"    fault_obj.update(exception_to_dict(fault))"},{"line_number":90,"context_line":"    if fault_message:"},{"line_number":91,"context_line":"        fault_obj[\"message\"] \u003d unicode(fault_message)"},{"line_number":92,"context_line":"    code \u003d fault_obj.code"},{"line_number":93,"context_line":"    fault_obj.details \u003d _get_fault_details(exc_info, code)"},{"line_number":94,"context_line":"    fault_obj.create()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab921fb_ebb82777","line":91,"updated":"2015-04-26 13:10:11.000000000","message":"There is code truncate the message in exception_to_dict. https://github.com/openstack/nova/blob/master/nova/compute/utils.py#L66\n\nWe better truncate at here also.","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"bf752cf2db40844f410539d140d3c606b794d26c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    fault_obj.instance_uuid \u003d instance.uuid"},{"line_number":89,"context_line":"    fault_obj.update(exception_to_dict(fault))"},{"line_number":90,"context_line":"    if fault_message:"},{"line_number":91,"context_line":"        fault_obj[\"message\"] \u003d unicode(fault_message)"},{"line_number":92,"context_line":"    code \u003d fault_obj.code"},{"line_number":93,"context_line":"    fault_obj.details \u003d _get_fault_details(exc_info, code)"},{"line_number":94,"context_line":"    fault_obj.create()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ad32947_cbc18482","line":91,"in_reply_to":"bab921fb_ebb82777","updated":"2015-04-28 01:33:35.000000000","message":"Done","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"9d98c0cf6076e5d8c5b78b296f880aa753794568","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # get the message from the exception that was thrown"},{"line_number":51,"context_line":"    # if that does not exist, use the name of the exception class itself"},{"line_number":52,"context_line":"    try:"},{"line_number":53,"context_line":"        if not message:"},{"line_number":54,"context_line":"            message \u003d fault.format_message()"},{"line_number":55,"context_line":"    # These exception handlers are broad so we don\u0027t fail to log the fault"},{"line_number":56,"context_line":"    # just because there is an unexpected error retrieving the message"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ad32947_a1778701","line":53,"updated":"2015-04-28 04:10:02.000000000","message":"why to put this in try-except?","commit_id":"2c35e5db35555416806ed3889d733ee8252b7792"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"c1c93a76e1e87270e0099e6b7148532da7b64f8b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # get the message from the exception that was thrown"},{"line_number":51,"context_line":"    # if that does not exist, use the name of the exception class itself"},{"line_number":52,"context_line":"    try:"},{"line_number":53,"context_line":"        if not message:"},{"line_number":54,"context_line":"            message \u003d fault.format_message()"},{"line_number":55,"context_line":"    # These exception handlers are broad so we don\u0027t fail to log the fault"},{"line_number":56,"context_line":"    # just because there is an unexpected error retrieving the message"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ad32947_817ecbac","line":53,"in_reply_to":"7ad32947_a1778701","updated":"2015-04-28 04:24:22.000000000","message":"Because this leads to less indentation and smaller patch? :)","commit_id":"2c35e5db35555416806ed3889d733ee8252b7792"}],"nova/exception.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f302e27ba7daa03dfa0cddf0afea3ec02c8883b7","unresolved":false,"context_lines":[{"line_number":1499,"context_line":""},{"line_number":1500,"context_line":"# Used to format exceptions that caused RescheduledException"},{"line_number":1501,"context_line":"class RawNovaException(NovaException):"},{"line_number":1502,"context_line":"    msg_fmt \u003d \"%(reason)s\""},{"line_number":1503,"context_line":""},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"class ShadowTableExists(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_394a7b83","line":1502,"updated":"2015-03-19 13:48:21.000000000","message":"why we need this exception? can we use NovaException directly?","commit_id":"1519555c6f630d55aa531e6ca113c34b13cc7528"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"d38a30d82b7b8bca82296c76844a5e6cd4ee3c64","unresolved":false,"context_lines":[{"line_number":1499,"context_line":""},{"line_number":1500,"context_line":"# Used to format exceptions that caused RescheduledException"},{"line_number":1501,"context_line":"class RawNovaException(NovaException):"},{"line_number":1502,"context_line":"    msg_fmt \u003d \"%(reason)s\""},{"line_number":1503,"context_line":""},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"class ShadowTableExists(NovaException):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_851cbe14","line":1502,"in_reply_to":"9a80dd14_394a7b83","updated":"2015-03-20 01:35:35.000000000","message":"My intention was to have an exception whose msg_fmt is no more than \"%s\".","commit_id":"1519555c6f630d55aa531e6ca113c34b13cc7528"}],"nova/scheduler/utils.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f232ea1b4e3c269223741b2d37212813edbdbada","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    retry[\u0027num_attempts\u0027] +\u003d 1"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    _log_compute_error(instance_uuid, retry)"},{"line_number":169,"context_line":"    exc_reason \u003d retry.pop(\u0027exc_reason\u0027, None)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    if retry[\u0027num_attempts\u0027] \u003e max_attempts:"},{"line_number":172,"context_line":"        msg \u003d (_(\u0027Exceeded max scheduling attempts %(max_attempts)d \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"da85f559_498ba068","line":169,"updated":"2015-11-11 13:59:41.000000000","message":"How about to show \u0027exc\u0027 at one release. When user upgrade nova, there are some nodes will keep in the old code and only have \u0027exc\u0027 field. In that time, operator will lose that message.","commit_id":"ed857a88d571dbcdf88b5c7545f1debaee20ee5c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0b9a57d0159abe4a218bc3eb2ca49364ec5fd577","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    retry[\u0027num_attempts\u0027] +\u003d 1"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    _log_compute_error(instance_uuid, retry)"},{"line_number":169,"context_line":"    exc_reason \u003d retry.pop(\u0027exc_reason\u0027, None)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    if retry[\u0027num_attempts\u0027] \u003e max_attempts:"},{"line_number":172,"context_line":"        msg \u003d (_(\u0027Exceeded max scheduling attempts %(max_attempts)d \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba8a016a_51a08e9f","line":169,"in_reply_to":"ba8a016a_96be05fe","updated":"2015-11-17 10:53:19.000000000","message":"oops, sorry, I missed that.","commit_id":"ed857a88d571dbcdf88b5c7545f1debaee20ee5c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8236e5b0e4cd0204599375b5052d360d99b85fac","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    retry[\u0027num_attempts\u0027] +\u003d 1"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    _log_compute_error(instance_uuid, retry)"},{"line_number":169,"context_line":"    exc_reason \u003d retry.pop(\u0027exc_reason\u0027, None)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    if retry[\u0027num_attempts\u0027] \u003e max_attempts:"},{"line_number":172,"context_line":"        msg \u003d (_(\u0027Exceeded max scheduling attempts %(max_attempts)d \u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"ba8a016a_96be05fe","line":169,"in_reply_to":"da85f559_498ba068","updated":"2015-11-16 22:18:55.000000000","message":"The full exception with traceback will continue to be logged by _log_compute_error in the previous line, so operators still get the same log messages. I added \u0027exc_reason\u0027 for the user-facing messaging, to omit the traceback for readability. Do you think it\u0027s okay?","commit_id":"ed857a88d571dbcdf88b5c7545f1debaee20ee5c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8236e5b0e4cd0204599375b5052d360d99b85fac","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                  \u0027 %(exc)s\u0027),"},{"line_number":196,"context_line":"              {\u0027last_host\u0027: last_host,"},{"line_number":197,"context_line":"               \u0027last_node\u0027: last_node,"},{"line_number":198,"context_line":"               \u0027exc\u0027: exc},"},{"line_number":199,"context_line":"              instance_uuid\u003dinstance_uuid)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"ba8a016a_96e7e53f","line":198,"updated":"2015-11-16 22:18:55.000000000","message":"Full exception logged here","commit_id":"ed857a88d571dbcdf88b5c7545f1debaee20ee5c"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f9e9408d44e3c90c8d7572ac7f84314a116bbdf1","unresolved":false,"context_lines":[{"line_number":6142,"context_line":"        except NotImplementedError:"},{"line_number":6143,"context_line":"            exc_info \u003d sys.exc_info()"},{"line_number":6144,"context_line":""},{"line_number":6145,"context_line":"        self.stubs.Set(nova.db, \u0027instance_fault_create\u0027, fake_db_fault_create)"},{"line_number":6146,"context_line":""},{"line_number":6147,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":6148,"context_line":"        compute_utils.add_instance_fault_from_exc(ctxt,"}],"source_content_type":"text/x-python","patch_set":15,"id":"da20952f_428d9fd1","line":6145,"updated":"2015-09-04 17:18:59.000000000","message":"Nit: I would rather you used mock, but this is locally consistent.","commit_id":"8a4b8b026cb1ea54b9869b9ed335742635e0243e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f232ea1b4e3c269223741b2d37212813edbdbada","unresolved":false,"context_lines":[{"line_number":6189,"context_line":""},{"line_number":6190,"context_line":"        self.stubs.Set(nova.db, \u0027instance_fault_create\u0027, fake_db_fault_create)"},{"line_number":6191,"context_line":""},{"line_number":6192,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":6193,"context_line":"        compute_utils.add_instance_fault_from_exc(ctxt,"},{"line_number":6194,"context_line":"                                                  instance,"},{"line_number":6195,"context_line":"                                                  NotImplementedError(\u0027test\u0027),"}],"source_content_type":"text/x-python","patch_set":21,"id":"da85f559_467cefb4","line":6192,"updated":"2015-11-11 13:59:41.000000000","message":"looks like we needn\u0027t admin context at here.","commit_id":"ed857a88d571dbcdf88b5c7545f1debaee20ee5c"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de52a0eccfe12e7c265c128b804320d17439ce63","unresolved":false,"context_lines":[{"line_number":2843,"context_line":"            self.requested_networks)"},{"line_number":2844,"context_line":"        compute_utils.add_instance_fault_from_exc(self.context, self.instance,"},{"line_number":2845,"context_line":"                mox.IgnoreArg(), mox.IgnoreArg(),"},{"line_number":2846,"context_line":"                fault_message\u003dmox.IgnoreArg())"},{"line_number":2847,"context_line":"        self.compute._set_instance_error_state(self.context,"},{"line_number":2848,"context_line":"                                               self.instance)"},{"line_number":2849,"context_line":"        self._instance_action_events()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab921fb_3cc11d81","line":2846,"updated":"2015-04-24 11:41:14.000000000","message":"can you please add unit tests for the code that has been changed. this is just something that is costmetic to ensure that the changes in the api are consistent","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"bf752cf2db40844f410539d140d3c606b794d26c","unresolved":false,"context_lines":[{"line_number":2843,"context_line":"            self.requested_networks)"},{"line_number":2844,"context_line":"        compute_utils.add_instance_fault_from_exc(self.context, self.instance,"},{"line_number":2845,"context_line":"                mox.IgnoreArg(), mox.IgnoreArg(),"},{"line_number":2846,"context_line":"                fault_message\u003dmox.IgnoreArg())"},{"line_number":2847,"context_line":"        self.compute._set_instance_error_state(self.context,"},{"line_number":2848,"context_line":"                                               self.instance)"},{"line_number":2849,"context_line":"        self._instance_action_events()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ad32947_abbe48fd","line":2846,"in_reply_to":"bab921fb_3cc11d81","updated":"2015-04-28 01:33:35.000000000","message":"Done","commit_id":"5e640efc06bfbbb3e0ffd7af2222dfdefd1c74df"}]}
