)]}'
{"nova/virt/hyperv/serialconsolehandler.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a30c4ae8e7b808fe81d3df8f787b3a5bfd8b0937","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from os_win import utilsfactory"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from nova.console import serial as serial_console"},{"line_number":24,"context_line":"from nova.console import type as ctype"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_2a015d6a","line":21,"updated":"2015-12-08 08:37:45.000000000","message":"unneeded extra line.","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"288c4aec8d545574f62a963ab8bf69d9e111b902","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from os_win import utilsfactory"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from nova.console import serial as serial_console"},{"line_number":24,"context_line":"from nova.console import type as ctype"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a7b0d38_47978890","line":21,"in_reply_to":"7a740942_2a015d6a","updated":"2015-12-23 14:44:05.000000000","message":"Done","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a30c4ae8e7b808fe81d3df8f787b3a5bfd8b0937","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"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":"threading \u003d patcher.original(\u0027threading\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_cafa1975","line":33,"updated":"2015-12-08 08:37:45.000000000","message":"unneded extra line.","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"288c4aec8d545574f62a963ab8bf69d9e111b902","unresolved":false,"context_lines":[{"line_number":30,"context_line":"CONF \u003d cfg.CONF"},{"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":"threading \u003d patcher.original(\u0027threading\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1a7b0d38_6794048b","line":33,"in_reply_to":"7a740942_cafa1975","updated":"2015-12-23 14:44:05.000000000","message":"Done","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a30c4ae8e7b808fe81d3df8f787b3a5bfd8b0937","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"Handles serial console ops related to a given instance.\"\"\""},{"line_number":39,"context_line":"    def __init__(self, instance_name):"},{"line_number":40,"context_line":"        self._vmutils \u003d utilsfactory.get_vmutils()"},{"line_number":41,"context_line":"        self._pathutils \u003d utilsfactory.get_pathutils()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        self._instance_name \u003d instance_name"},{"line_number":44,"context_line":"        self._log_path \u003d self._pathutils.get_vm_console_log_paths("}],"source_content_type":"text/x-python","patch_set":16,"id":"7a740942_2a387d3c","line":41,"updated":"2015-12-08 08:37:45.000000000","message":"use nova.virt.hyperv.pathutils. It contains some of the nova specific pathutils we use, like the get_vm_console_log_paths you use at L45.","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"288c4aec8d545574f62a963ab8bf69d9e111b902","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"Handles serial console ops related to a given instance.\"\"\""},{"line_number":39,"context_line":"    def __init__(self, instance_name):"},{"line_number":40,"context_line":"        self._vmutils \u003d utilsfactory.get_vmutils()"},{"line_number":41,"context_line":"        self._pathutils \u003d utilsfactory.get_pathutils()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        self._instance_name \u003d instance_name"},{"line_number":44,"context_line":"        self._log_path \u003d self._pathutils.get_vm_console_log_paths("}],"source_content_type":"text/x-python","patch_set":16,"id":"1a7b0d38_07918099","line":41,"in_reply_to":"7a740942_2a387d3c","updated":"2015-12-23 14:44:05.000000000","message":"Done","commit_id":"cda1118a7cf5bae67ca892c745a390ada21bf5b1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"5ad4035d9cbdbbfec1247e833df56aa149241c47","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        # as we can\u0027t use the serial port ElementName attribute because of"},{"line_number":146,"context_line":"        # a Hyper-V bug."},{"line_number":147,"context_line":"        for pipe_path in serial_port_conns:"},{"line_number":148,"context_line":"            port_type \u003d pipe_path[-2:]"},{"line_number":149,"context_line":"            if port_type in [constants.SERIAL_PORT_TYPE_RO,"},{"line_number":150,"context_line":"                             constants.SERIAL_PORT_TYPE_RW]:"},{"line_number":151,"context_line":"                serial_port_mapping[port_type] \u003d pipe_path"}],"source_content_type":"text/x-python","patch_set":28,"id":"bab6814e_68711c44","line":148,"updated":"2016-05-20 18:07:49.000000000","message":"In future, for data coming from oswin internals like this, it would be nice to put an example of what it looks like. I\u0027m taking on faith that transform is good. But it would be a bit simpler to get my head around if I could see the data format in a comment.","commit_id":"f98af85eb20b6ea6b21194cb6783bb5553569c80"}]}
