get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/812881/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 812881,
    "url": "http://patchwork.ozlabs.org/api/patches/812881/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170912144459.11359-5-pbonzini@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170912144459.11359-5-pbonzini@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-12T14:44:53",
    "name": "[04/10] qemu-iotests: cleanup and fix search for programs",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "384d8fa188a6dcceadd201d3d33e44f401bf6ff7",
    "submitter": {
        "id": 2701,
        "url": "http://patchwork.ozlabs.org/api/people/2701/?format=api",
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170912144459.11359-5-pbonzini@redhat.com/mbox/",
    "series": [
        {
            "id": 2722,
            "url": "http://patchwork.ozlabs.org/api/series/2722/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2722",
            "date": "2017-09-12T14:44:51",
            "name": "cleanup qemu-iotests",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/2722/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/812881/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/812881/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx09.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx09.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=pbonzini@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xs70469fnz9s3T\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 00:46:12 +1000 (AEST)",
            "from localhost ([::1]:36306 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drmS2-0003wL-Si\n\tfor incoming@patchwork.ozlabs.org; Tue, 12 Sep 2017 10:46:10 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:51743)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pbonzini@redhat.com>) id 1drmRG-0003st-DM\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 10:45:23 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pbonzini@redhat.com>) id 1drmRE-0001q3-Sj\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 10:45:22 -0400",
            "from mx1.redhat.com ([209.132.183.28]:43490)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <pbonzini@redhat.com>)\n\tid 1drmR9-0001lS-10; Tue, 12 Sep 2017 10:45:15 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 10AD34A71F;\n\tTue, 12 Sep 2017 14:45:14 +0000 (UTC)",
            "from donizetti.redhat.com (ovpn-117-43.ams2.redhat.com\n\t[10.36.117.43])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 5FBED77DDA;\n\tTue, 12 Sep 2017 14:45:12 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 10AD34A71F",
        "From": "Paolo Bonzini <pbonzini@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Tue, 12 Sep 2017 16:44:53 +0200",
        "Message-Id": "<20170912144459.11359-5-pbonzini@redhat.com>",
        "In-Reply-To": "<20170912144459.11359-1-pbonzini@redhat.com>",
        "References": "<20170912144459.11359-1-pbonzini@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.12",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.38]);\n\tTue, 12 Sep 2017 14:45:14 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH 04/10] qemu-iotests: cleanup and fix search for\n\tprograms",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "kwolf@redhat.com, qemu-block@nongnu.org",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "Instead of ./check failing when a binary is missing, we try each test\ncase now and each one fails with tons of test case diffs.  Also, all the\nvariables were initialized by \"check\" prior to \"common\" being sourced,\nand then (uselessly) checked for emptiness again in \"check\".\n\nCentralize the search for programs in \"common\" (which will soon be\none with \"check\"), including the \"realpath\" invocation which can be done\njust once in \"check\" rather than in the tests.\n\nFor qnio_server, move the detection to \"common\", simplifying\nset_prog_path to stop handling the unused second argument, and\nembedding the \"realpath\" pass.\n\nSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>\n---\n tests/qemu-iotests/check         | 41 ---------------------\n tests/qemu-iotests/common        | 77 +++++++++++++++++++++++++++++++++++++---\n tests/qemu-iotests/common.config | 61 +------------------------------\n 3 files changed, 73 insertions(+), 106 deletions(-)",
    "diff": "diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check\nindex 5c0d0c51dc..b7c54390d3 100755\n--- a/tests/qemu-iotests/check\n+++ b/tests/qemu-iotests/check\n@@ -60,47 +60,6 @@ fi\n \n build_root=\"$build_iotests/../..\"\n \n-if [ -x \"$build_iotests/socket_scm_helper\" ]\n-then\n-    export SOCKET_SCM_HELPER=\"$build_iotests/socket_scm_helper\"\n-fi\n-\n-if [[ -z \"$QEMU_PROG\" && ! -x './qemu' ]]\n-then\n-    arch=$(uname -m 2> /dev/null)\n-\n-    if [[ -n $arch && -x \"$build_root/$arch-softmmu/qemu-system-$arch\" ]]\n-    then\n-        export QEMU_PROG=\"$build_root/$arch-softmmu/qemu-system-$arch\"\n-    else\n-        pushd \"$build_root\" > /dev/null\n-        for binary in *-softmmu/qemu-system-*\n-        do\n-            if [ -x \"$binary\" ]\n-            then\n-                export QEMU_PROG=\"$build_root/$binary\"\n-                break\n-            fi\n-        done\n-        popd > /dev/null\n-    fi\n-fi\n-\n-if [[ -z $QEMU_IMG_PROG && -x \"$build_root/qemu-img\" && ! -x './qemu-img' ]]\n-then\n-    export QEMU_IMG_PROG=\"$build_root/qemu-img\"\n-fi\n-\n-if [[ -z $QEMU_IO_PROG && -x \"$build_root/qemu-io\" && ! -x './qemu-io' ]]\n-then\n-    export QEMU_IO_PROG=\"$build_root/qemu-io\"\n-fi\n-\n-if [[ -z $QEMU_NBD_PROG && -x \"$build_root/qemu-nbd\" && ! -x './qemu-nbd' ]]\n-then\n-    export QEMU_NBD_PROG=\"$build_root/qemu-nbd\"\n-fi\n-\n # we need common.env\n if ! . \"$build_iotests/common.env\"\n then\ndiff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common\nindex 2e98e64d5c..abacc24114 100644\n--- a/tests/qemu-iotests/common\n+++ b/tests/qemu-iotests/common\n@@ -37,6 +37,17 @@ _full_platform_details()\n     echo \"$os/$platform $host $kernel\"\n }\n \n+# $1 = prog to look for\n+set_prog_path()\n+{\n+    p=`command -v $1 2> /dev/null`\n+    if [ -n \"$p\" -a -x \"$p\" ]; then\n+        realpath -- \"$(type -p \"$p\")\"\n+    else\n+        return 1\n+    fi\n+}\n+\n diff=\"diff -u\"\n verbose=false\n debug=false\n@@ -450,10 +461,66 @@ fi\n list=`sort $tmp.list`\n rm -f $tmp.list $tmp.tmp $tmp.sed\n \n-[ \"$QEMU\" = \"\" ] && _fatal \"qemu not found\"\n-[ \"$QEMU_IMG\" = \"\" ] && _fatal \"qemu-img not found\"\n-[ \"$QEMU_IO\" = \"\" ] && _fatal \"qemu-io not found\"\n+if [ -z \"$QEMU_PROG\" ]\n+then\n+    if [ -x \"$build_iotests/qemu\" ]; then\n+        export QEMU_PROG=\"$build_iotests/qemu\"\n+    elif [ -x \"$build_root/$arch-softmmu/qemu-system-$arch\" ]; then\n+        export QEMU_PROG=\"$build_root/$arch-softmmu/qemu-system-$arch\"\n+    else\n+        pushd \"$build_root\" > /dev/null\n+        for binary in *-softmmu/qemu-system-*\n+        do\n+            if [ -x \"$binary\" ]\n+            then\n+                export QEMU_PROG=\"$build_root/$binary\"\n+                break\n+            fi\n+        done\n+        popd > /dev/null\n+        [ \"$QEMU_PROG\" = \"\" ] && _init_error \"qemu not found\"\n+    fi\n+fi\n+export QEMU_PROG=$(realpath -- \"$(type -p \"$QEMU_PROG\")\")\n+\n+if [ -z \"$QEMU_IMG_PROG\" ]; then\n+    if [ -x \"$build_iotests/qemu-img\" ]; then\n+        export QEMU_IMG_PROG=\"$build_iotests/qemu-img\"\n+    elif [ -x \"$build_root/qemu-img\" ]; then\n+        export QEMU_IMG_PROG=\"$build_root/qemu-img\"\n+    else\n+        _init_error \"qemu-img not found\"\n+    fi\n+fi\n+export QEMU_IMG_PROG=$(realpath -- \"$(type -p \"$QEMU_IMG_PROG\")\")\n+\n+if [ -z \"$QEMU_IO_PROG\" ]; then\n+    if [ -x \"$build_iotests/qemu-io\" ]; then\n+        export QEMU_IO_PROG=\"$build_iotests/qemu-io\"\n+    elif [ -x \"$build_root/qemu-io\" ]; then\n+        export QEMU_IO_PROG=\"$build_root/qemu-io\"\n+    else\n+        _init_error \"qemu-io not found\"\n+    fi\n+fi\n+export QEMU_IO_PROG=$(realpath -- \"$(type -p \"$QEMU_IO_PROG\")\")\n \n-if [ \"$IMGPROTO\" = \"nbd\" ] ; then\n-    [ \"$QEMU_NBD\" = \"\" ] && _fatal \"qemu-nbd not found\"\n+if [ -z $QEMU_NBD_PROG ]; then\n+    if [ -x \"$build_iotests/qemu-nbd\" ]; then\n+        export QEMU_NBD_PROG=\"$build_iotests/qemu-nbd\"\n+    elif [ -x \"$build_root/qemu-nbd\" ]; then\n+        export QEMU_NBD_PROG=\"$build_root/qemu-nbd\"\n+    else\n+        _init_error \"qemu-nbd not found\"\n+    fi\n+fi\n+export QEMU_NBD_PROG=$(realpath -- \"$(type -p \"$QEMU_NBD_PROG\")\")\n+\n+if [ -z \"$QEMU_VXHS_PROG\" ]; then\n+  export QEMU_VXHS_PROG=\"`set_prog_path qnio_server`\"\n+fi\n+\n+if [ -x \"$build_iotests/socket_scm_helper\" ]\n+then\n+    export SOCKET_SCM_HELPER=\"$build_iotests/socket_scm_helper\"\n fi\ndiff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config\nindex 91da65f3dc..c97c63983f 100644\n--- a/tests/qemu-iotests/common.config\n+++ b/tests/qemu-iotests/common.config\n@@ -22,6 +22,7 @@ export LANG=C\n PATH=\".:$PATH\"\n \n HOSTOS=`uname -s`\n+arch=`uname -m`\n \n export PWD=`pwd`\n \n@@ -30,28 +31,6 @@ export _QEMU_HANDLE=0\n # make sure we have a standard umask\n umask 022\n \n-# $1 = prog to look for, $2* = default pathnames if not found in $PATH\n-set_prog_path()\n-{\n-    p=`command -v $1 2> /dev/null`\n-    if [ -n \"$p\" -a -x \"$p\" ]; then\n-        echo $p\n-        return 0\n-    fi\n-    p=$1\n-\n-    shift\n-    for f; do\n-        if [ -x $f ]; then\n-            echo $f\n-            return 0\n-        fi\n-    done\n-\n-    echo \"\"\n-    return 1\n-}\n-\n _optstr_add()\n {\n     if [ -n \"$1\" ]; then\n@@ -61,44 +40,6 @@ _optstr_add()\n     fi\n }\n \n-_fatal()\n-{\n-    echo \"$*\"\n-    status=1\n-    exit 1\n-}\n-\n-if [ -z \"$QEMU_PROG\" ]; then\n-    export QEMU_PROG=\"`set_prog_path qemu`\"\n-fi\n-\n-if [ -z \"$QEMU_IMG_PROG\" ]; then\n-    export QEMU_IMG_PROG=\"`set_prog_path qemu-img`\"\n-fi\n-\n-if [ -z \"$QEMU_IO_PROG\" ]; then\n-    export QEMU_IO_PROG=\"`set_prog_path qemu-io`\"\n-fi\n-\n-if [ -z \"$QEMU_NBD_PROG\" ]; then\n-    export QEMU_NBD_PROG=\"`set_prog_path qemu-nbd`\"\n-fi\n-\n-if [ -z \"$QEMU_VXHS_PROG\" ]; then\n-    export QEMU_VXHS_PROG=\"`set_prog_path qnio_server`\"\n-fi\n-\n-export QEMU_PROG=$(realpath -- \"$(type -p \"$QEMU_PROG\")\")\n-export QEMU_IMG_PROG=$(realpath -- \"$(type -p \"$QEMU_IMG_PROG\")\")\n-export QEMU_IO_PROG=$(realpath -- \"$(type -p \"$QEMU_IO_PROG\")\")\n-export QEMU_NBD_PROG=$(realpath -- \"$(type -p \"$QEMU_NBD_PROG\")\")\n-\n-# This program is not built as part of qemu but (possibly) provided by the\n-# system, so it may not be present at all\n-if [ -n \"$QEMU_VXHS_PROG\" ]; then\n-    export QEMU_VXHS_PROG=$(realpath -- \"$(type -p \"$QEMU_VXHS_PROG\")\")\n-fi\n-\n _qemu_wrapper()\n {\n     (\n",
    "prefixes": [
        "04/10"
    ]
}