)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a0af7325eaf45bbaf7d8fbdd54fa816aa668ae30","unresolved":false,"context_lines":[{"line_number":1688,"context_line":"            root_device_name \u003d self._default_root_device_name(instance,"},{"line_number":1689,"context_line":"                                                              image_meta,"},{"line_number":1690,"context_line":"                                                              root_bdm)"},{"line_number":1691,"context_line":""},{"line_number":1692,"context_line":"            instance.root_device_name \u003d root_device_name"},{"line_number":1693,"context_line":"            root_bdm.device_name \u003d root_device_name"},{"line_number":1694,"context_line":"            update_root_bdm \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_54f8137b","side":"PARENT","line":1691,"updated":"2015-10-08 13:11:06.000000000","message":"Nit: unrelated change here.","commit_id":"20651bd743fb90bed81315abf418d4965ec6f7c4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"9ca4989df34d1069ac46a70d5a033da4e6de7f33","unresolved":false,"context_lines":[{"line_number":1688,"context_line":"            root_device_name \u003d self._default_root_device_name(instance,"},{"line_number":1689,"context_line":"                                                              image_meta,"},{"line_number":1690,"context_line":"                                                              root_bdm)"},{"line_number":1691,"context_line":""},{"line_number":1692,"context_line":"            instance.root_device_name \u003d root_device_name"},{"line_number":1693,"context_line":"            root_bdm.device_name \u003d root_device_name"},{"line_number":1694,"context_line":"            update_root_bdm \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_cfd7ac49","side":"PARENT","line":1691,"in_reply_to":"7a2fa921_54f8137b","updated":"2015-10-08 13:29:04.000000000","message":"Done","commit_id":"20651bd743fb90bed81315abf418d4965ec6f7c4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a0af7325eaf45bbaf7d8fbdd54fa816aa668ae30","unresolved":false,"context_lines":[{"line_number":4446,"context_line":"        context \u003d context.elevated()"},{"line_number":4447,"context_line":"        LOG.debug(\"Getting spice console\", instance\u003dinstance)"},{"line_number":4448,"context_line":"        token \u003d str(uuid.uuid4())"},{"line_number":4449,"context_line":""},{"line_number":4450,"context_line":"        if not CONF.spice.enabled:"},{"line_number":4451,"context_line":"            raise exception.ConsoleTypeUnavailable(console_type\u003dconsole_type)"},{"line_number":4452,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_7433cf62","side":"PARENT","line":4449,"updated":"2015-10-08 13:11:06.000000000","message":"Nit","commit_id":"20651bd743fb90bed81315abf418d4965ec6f7c4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"9ca4989df34d1069ac46a70d5a033da4e6de7f33","unresolved":false,"context_lines":[{"line_number":4446,"context_line":"        context \u003d context.elevated()"},{"line_number":4447,"context_line":"        LOG.debug(\"Getting spice console\", instance\u003dinstance)"},{"line_number":4448,"context_line":"        token \u003d str(uuid.uuid4())"},{"line_number":4449,"context_line":""},{"line_number":4450,"context_line":"        if not CONF.spice.enabled:"},{"line_number":4451,"context_line":"            raise exception.ConsoleTypeUnavailable(console_type\u003dconsole_type)"},{"line_number":4452,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_0fe36434","side":"PARENT","line":4449,"in_reply_to":"7a2fa921_7433cf62","updated":"2015-10-08 13:29:04.000000000","message":"Done","commit_id":"20651bd743fb90bed81315abf418d4965ec6f7c4"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"9aa348f7a727ccff8e8224233bbb12fc045100e5","unresolved":false,"context_lines":[{"line_number":4377,"context_line":"        if tail_length is not None:"},{"line_number":4378,"context_line":"            output \u003d self._tail_log(output, tail_length)"},{"line_number":4379,"context_line":""},{"line_number":4380,"context_line":"        return six.b(output)"},{"line_number":4381,"context_line":""},{"line_number":4382,"context_line":"    def _tail_log(self, log, length):"},{"line_number":4383,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_6d698bf8","line":4380,"updated":"2015-10-22 14:22:17.000000000","message":"I think this is actually wrong.\n\nHaven\u0027t checked all drivers, but at least libvirt return bytes here and I suppose all drivers do. This will fail in py3 with:\n\n AttributeError: \u0027bytes\u0027 object has no attribute \u0027encode\u0027\n\nThe reason it pass unit tests is that the fake driver return a string. If you change the fake driver output to bytes it should pass here without this change.","commit_id":"884dc9d7f4c10e2adc9341e975d3ecf2d2f1c594"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"3754db6ada6db170a08819cd7db97f7854be8f2f","unresolved":false,"context_lines":[{"line_number":4377,"context_line":"        if tail_length is not None:"},{"line_number":4378,"context_line":"            output \u003d self._tail_log(output, tail_length)"},{"line_number":4379,"context_line":""},{"line_number":4380,"context_line":"        return six.b(output)"},{"line_number":4381,"context_line":""},{"line_number":4382,"context_line":"    def _tail_log(self, log, length):"},{"line_number":4383,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a29b11f_0fcd6484","line":4380,"in_reply_to":"3a29b11f_6d698bf8","updated":"2015-10-22 16:35:40.000000000","message":"Done","commit_id":"884dc9d7f4c10e2adc9341e975d3ecf2d2f1c594"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"27cbe1b27a1f7ac01d00ede0a3e06b4a611766ed","unresolved":false,"context_lines":[{"line_number":6034,"context_line":"    def test_add_instance_fault_with_remote_error(self):"},{"line_number":6035,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":6036,"context_line":"        exc_info \u003d None"},{"line_number":6037,"context_line":"        _exc \u003d None"},{"line_number":6038,"context_line":""},{"line_number":6039,"context_line":"        def fake_db_fault_create(ctxt, values):"},{"line_number":6040,"context_line":"            global exc_info"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_be0ffd37","line":6037,"updated":"2015-10-08 15:30:43.000000000","message":"I tend to think of variables with preceding underscores as being unused; could we pick a different name here, maybe the_exc or something?  (femtonit)","commit_id":"c12f9a05818c940876efba1e92bb4c67e221c601"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e74a1ad22cd92c8b1fea6ad4cf6830ae9694e9d2","unresolved":false,"context_lines":[{"line_number":6034,"context_line":"    def test_add_instance_fault_with_remote_error(self):"},{"line_number":6035,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":6036,"context_line":"        exc_info \u003d None"},{"line_number":6037,"context_line":"        _exc \u003d None"},{"line_number":6038,"context_line":""},{"line_number":6039,"context_line":"        def fake_db_fault_create(ctxt, values):"},{"line_number":6040,"context_line":"            global exc_info"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_84042e4a","line":6037,"in_reply_to":"7a2fa921_be0ffd37","updated":"2015-10-08 15:52:49.000000000","message":"sure.","commit_id":"c12f9a05818c940876efba1e92bb4c67e221c601"}],"nova/utils.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a0af7325eaf45bbaf7d8fbdd54fa816aa668ae30","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                # objects."},{"line_number":1104,"context_line":"                # exc_info[0] is the type of the Exception raised."},{"line_number":1105,"context_line":"                # exc_info[2] is the traceback."},{"line_number":1106,"context_line":"                raise e.exc_info[0](e.exc_info[2])"},{"line_number":1107,"context_line":"        return wrapper"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_54a3339d","line":1106,"updated":"2015-10-08 13:11:06.000000000","message":"this seems to assume the format of the exception\u0027s constructor, is that really valid?","commit_id":"0eb30e67860b28033239026d7939e7d3bda947e0"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"9ca4989df34d1069ac46a70d5a033da4e6de7f33","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                # objects."},{"line_number":1104,"context_line":"                # exc_info[0] is the type of the Exception raised."},{"line_number":1105,"context_line":"                # exc_info[2] is the traceback."},{"line_number":1106,"context_line":"                raise e.exc_info[0](e.exc_info[2])"},{"line_number":1107,"context_line":"        return wrapper"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_8f9c545e","line":1106,"in_reply_to":"7a2fa921_54a3339d","updated":"2015-10-08 13:29:04.000000000","message":"any exception takes at least one argument. All py2.7 unit tests passed until now and there are no failures in py3.4 related to this. In fact, if this would remain as it was before, there would be plenty of failed tests in test_compute.py, as python 3.4 only supports raising Exception objects, not tuples.\n\nThis will also fix the unit tests where this ExceptionHelper is used.","commit_id":"0eb30e67860b28033239026d7939e7d3bda947e0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"154c7098e2b083e2eaf13ae12fec046a6a5f608d","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                # objects."},{"line_number":1104,"context_line":"                # exc_info[0] is the type of the Exception raised."},{"line_number":1105,"context_line":"                # exc_info[2] is the traceback."},{"line_number":1106,"context_line":"                raise e.exc_info[0](e.exc_info[2])"},{"line_number":1107,"context_line":"        return wrapper"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_5ea58944","line":1106,"in_reply_to":"7a2fa921_8f9c545e","updated":"2015-10-08 15:28:26.000000000","message":"Hmmm…why not use six.reraise()?","commit_id":"0eb30e67860b28033239026d7939e7d3bda947e0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"27cbe1b27a1f7ac01d00ede0a3e06b4a611766ed","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                # objects."},{"line_number":1104,"context_line":"                # exc_info[0] is the type of the Exception raised."},{"line_number":1105,"context_line":"                # exc_info[2] is the traceback."},{"line_number":1106,"context_line":"                raise e.exc_info[0](e.exc_info[2])"},{"line_number":1107,"context_line":"        return wrapper"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_192deb94","line":1106,"updated":"2015-10-08 15:30:43.000000000","message":"As I suggested on patchset 3, why not use six.reraise()?","commit_id":"c12f9a05818c940876efba1e92bb4c67e221c601"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"e74a1ad22cd92c8b1fea6ad4cf6830ae9694e9d2","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                # objects."},{"line_number":1104,"context_line":"                # exc_info[0] is the type of the Exception raised."},{"line_number":1105,"context_line":"                # exc_info[2] is the traceback."},{"line_number":1106,"context_line":"                raise e.exc_info[0](e.exc_info[2])"},{"line_number":1107,"context_line":"        return wrapper"},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_04f01e66","line":1106,"in_reply_to":"7a2fa921_192deb94","updated":"2015-10-08 15:52:49.000000000","message":"makes sense.","commit_id":"c12f9a05818c940876efba1e92bb4c67e221c601"}]}
