)]}'
{"nova/utils.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"5ae2126f94906c9c3eba589fd94b651f3dc3d9fb","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                result \u003d obj.communicate()"},{"line_number":189,"context_line":"            obj.stdin.close()  # pylint: disable\u003dE1101"},{"line_number":190,"context_line":"            _returncode \u003d obj.returncode  # pylint: disable\u003dE1101"},{"line_number":191,"context_line":"            LOG.debug(_(\u0027Result was %s\u0027) % _returncode)"},{"line_number":192,"context_line":"            if not ignore_exit_code and _returncode not in check_exit_code:"},{"line_number":193,"context_line":"                (stdout, stderr) \u003d result"},{"line_number":194,"context_line":"                raise exception.ProcessExecutionError("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2Fm8M%3D","line":191,"updated":"2012-08-27 22:25:44.000000000","message":"I think the original author was thinking that _returncode could be None. That can happen if the command is still running, but the documentation for communicate() handles that.\n\n  \"The child return code, set by poll() and wait() (and indirectly by \n  communicate()). A None value indicates that the process \n  hasn’t terminated yet.\" from\n  http://docs.python.org/library/subprocess.html","commit_id":"c2f56b12f48e0f23b3715fe06dbff97416cd66e3"}]}
