)]}'
{"nova/virt/libvirt/host.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c2c5ae32852e3d9264541e2905f79480048159c0","unresolved":false,"context_lines":[{"line_number":714,"context_line":"            if (hasattr(libvirt, \u0027VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES\u0027)"},{"line_number":715,"context_line":"                and self._caps.host.cpu.model is not None):"},{"line_number":716,"context_line":"                try:"},{"line_number":717,"context_line":"                    xml_str \u003d self._caps.host.cpu.to_xml()"},{"line_number":718,"context_line":"                    if six.PY3:"},{"line_number":719,"context_line":"                        xml_str \u003d xml_str.decode(\u0027utf-8\u0027)"},{"line_number":720,"context_line":"                    features \u003d self.get_connection().baselineCPU("},{"line_number":721,"context_line":"                        [xml_str],"},{"line_number":722,"context_line":"                        libvirt.VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_5e3ac637","line":719,"range":{"start_line":717,"start_character":20,"end_line":719,"end_character":57},"updated":"2016-12-22 10:05:03.000000000","message":"nit: We could use oslo_util\u0027s \u0027safe_decode\u0027 function and take advantage of the extra checks it provides\n\nhttps://github.com/openstack/oslo.utils/blob/master/oslo_utils/encodeutils.py#L27","commit_id":"1a2db4cdc00f9225411f8d089c9c7d70fa08928a"}],"nova/virt/xenapi/firewall.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c2c5ae32852e3d9264541e2905f79480048159c0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def _plugin_execute(self, *cmd, **kwargs):"},{"line_number":31,"context_line":"        # Prepare arguments for plugin call"},{"line_number":32,"context_line":"        args \u003d {}"},{"line_number":33,"context_line":"        process_input \u003d kwargs.get(\u0027process_input\u0027, None)"},{"line_number":34,"context_line":"        if process_input is not None and isinstance(process_input, bytes):"},{"line_number":35,"context_line":"            kwargs[\u0027process_input\u0027] \u003d process_input.decode(\u0027utf-8\u0027)"},{"line_number":36,"context_line":"        args.update(map(lambda x: (x, str(kwargs[x])), kwargs))"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_9e234e05","line":33,"range":{"start_line":33,"start_character":50,"end_line":33,"end_character":56},"updated":"2016-12-22 10:05:03.000000000","message":"nit: not necessary\n\n   \u003e\u003e\u003e x \u003d {\u0027y\u0027: None}\n   \u003e\u003e\u003e x[\u0027y\u0027]\n   \u003e\u003e\u003e x[\u0027z\u0027]\n   \u003e\u003e\u003e","commit_id":"1a2db4cdc00f9225411f8d089c9c7d70fa08928a"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"1eff44ba41cdcf93b7dd94ca84b8d0384a392e29","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    def _plugin_execute(self, *cmd, **kwargs):"},{"line_number":31,"context_line":"        # Prepare arguments for plugin call"},{"line_number":32,"context_line":"        args \u003d {}"},{"line_number":33,"context_line":"        process_input \u003d kwargs.get(\u0027process_input\u0027, None)"},{"line_number":34,"context_line":"        if process_input is not None and isinstance(process_input, bytes):"},{"line_number":35,"context_line":"            kwargs[\u0027process_input\u0027] \u003d process_input.decode(\u0027utf-8\u0027)"},{"line_number":36,"context_line":"        args.update(map(lambda x: (x, str(kwargs[x])), kwargs))"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_f7fe3d04","line":33,"range":{"start_line":33,"start_character":50,"end_line":33,"end_character":56},"in_reply_to":"da4df55a_9e234e05","updated":"2016-12-22 11:12:16.000000000","message":"yes, we don\u0027t need default value \u0027None\u0027 here.","commit_id":"1a2db4cdc00f9225411f8d089c9c7d70fa08928a"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"1eff44ba41cdcf93b7dd94ca84b8d0384a392e29","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        # Prepare arguments for plugin call"},{"line_number":32,"context_line":"        args \u003d {}"},{"line_number":33,"context_line":"        process_input \u003d kwargs.get(\u0027process_input\u0027, None)"},{"line_number":34,"context_line":"        if process_input is not None and isinstance(process_input, bytes):"},{"line_number":35,"context_line":"            kwargs[\u0027process_input\u0027] \u003d process_input.decode(\u0027utf-8\u0027)"},{"line_number":36,"context_line":"        args.update(map(lambda x: (x, str(kwargs[x])), kwargs))"},{"line_number":37,"context_line":"        args[\u0027cmd_args\u0027] \u003d jsonutils.dumps(cmd)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da4df55a_174f4193","line":34,"range":{"start_line":34,"start_character":37,"end_line":34,"end_character":74},"updated":"2016-12-22 11:12:16.000000000","message":"Use six.binary_type instead of bytes, I suggest use safe_decode from oslo.utils.","commit_id":"1a2db4cdc00f9225411f8d089c9c7d70fa08928a"}]}
