)]}'
{"nova/tests/unit/virt/hyperv/test_serialconsoleops.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"3406a1a3a79d5b0ae93e3da14f119404b4fb8472","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                          self._serialops.get_serial_console,"},{"line_number":90,"context_line":"                          mock.sentinel.instance_name)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @mock.patch(\"__builtin__.open\")"},{"line_number":93,"context_line":"    @mock.patch(\"os.path.exists\")"},{"line_number":94,"context_line":"    @mock.patch.object(pathutils.PathUtils, \u0027get_vm_console_log_paths\u0027)"},{"line_number":95,"context_line":"    def test_get_console_output_exception(self, mock_get_log_paths,"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_ea5d9547","line":92,"updated":"2015-12-08 08:43:55.000000000","message":"the patch for nova hyper-v driver py3 compatibility merged, so let\u0027s keep it that way. replace this with @mock.patch.object(six.builtin, \"open\")","commit_id":"6265fef2672616c2fc439a09126df4cb90b9bfeb"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"3399002b2fb9c5804ea71471e44bf79af512622e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                          self._serialops.get_serial_console,"},{"line_number":90,"context_line":"                          mock.sentinel.instance_name)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @mock.patch(\"__builtin__.open\")"},{"line_number":93,"context_line":"    @mock.patch(\"os.path.exists\")"},{"line_number":94,"context_line":"    @mock.patch.object(pathutils.PathUtils, \u0027get_vm_console_log_paths\u0027)"},{"line_number":95,"context_line":"    def test_get_console_output_exception(self, mock_get_log_paths,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a7b0d38_07e8a00f","line":92,"in_reply_to":"7a740942_ea5d9547","updated":"2015-12-23 14:46:07.000000000","message":"Done","commit_id":"6265fef2672616c2fc439a09126df4cb90b9bfeb"}],"nova/virt/hyperv/serialconsoleops.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"3406a1a3a79d5b0ae93e3da14f119404b4fb8472","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_console_handlers \u003d {}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_0ae6e1af","line":33,"updated":"2015-12-08 08:43:55.000000000","message":"unnecessary extra line.","commit_id":"6265fef2672616c2fc439a09126df4cb90b9bfeb"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"3399002b2fb9c5804ea71471e44bf79af512622e","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_console_handlers \u003d {}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1a7b0d38_87ca50a0","line":33,"in_reply_to":"7a740942_0ae6e1af","updated":"2015-12-23 14:46:07.000000000","message":"Done","commit_id":"6265fef2672616c2fc439a09126df4cb90b9bfeb"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7eea60a99c2e91e1d25d9651b6ffb2c04466207a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova.virt.hyperv import pathutils"},{"line_number":28,"context_line":"from nova.virt.hyperv import serialconsolehandler"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5a18252c_1d338ef7","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":15},"updated":"2016-04-14 08:53:39.000000000","message":"CONF is not used in this file.\nSo this line is not necessary.","commit_id":"e3b05efcbe0e866a4d23ba58fbca53708f524f78"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"5531d5b231e1ba568c542747ecd38a0841a18bcd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova.virt.hyperv import pathutils"},{"line_number":28,"context_line":"from nova.virt.hyperv import serialconsolehandler"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5a18252c_1d80ae8a","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":15},"in_reply_to":"5a18252c_1d338ef7","updated":"2016-04-14 09:06:56.000000000","message":"You are right, thanks for pointing this out!","commit_id":"e3b05efcbe0e866a4d23ba58fbca53708f524f78"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"05c2bf9694a06eb8757137551180da78a5981b69","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        try:"},{"line_number":94,"context_line":"            log \u003d b\u0027\u0027"},{"line_number":95,"context_line":"            # Start with the oldest console log file."},{"line_number":96,"context_line":"            for log_path in console_log_paths[::-1]:"},{"line_number":97,"context_line":"                if os.path.exists(log_path):"},{"line_number":98,"context_line":"                    with open(log_path, \u0027rb\u0027) as fp:"},{"line_number":99,"context_line":"                        log +\u003d fp.read()"}],"source_content_type":"text/x-python","patch_set":30,"id":"bab6814e_c813e8b6","line":96,"updated":"2016-05-20 18:17:47.000000000","message":"nit: in future I think this would be more evident if reversed() was used instead.","commit_id":"f554c3f777701be44fe3c3406cca2435f9e79557"}]}
