get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134040,
    "url": "http://patches.dpdk.org/api/patches/134040/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231109230900.24572-3-jspewock@iol.unh.edu/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231109230900.24572-3-jspewock@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231109230900.24572-3-jspewock@iol.unh.edu",
    "date": "2023-11-09T23:07:32",
    "name": "[v1,2/7] dts: add waiting for port up in testpmd",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b765b9237c2c0957aeb4e7a37cfa4e57f44701bd",
    "submitter": {
        "id": 2772,
        "url": "http://patches.dpdk.org/api/people/2772/?format=api",
        "name": "Jeremy Spewock",
        "email": "jspewock@iol.unh.edu"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231109230900.24572-3-jspewock@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 30229,
            "url": "http://patches.dpdk.org/api/series/30229/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30229",
            "date": "2023-11-09T23:07:30",
            "name": "dts: Port scatter suite over",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/30229/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134040/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/134040/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id AA91B432EC;\n\tFri, 10 Nov 2023 00:09:19 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 1182F41148;\n\tFri, 10 Nov 2023 00:09:13 +0100 (CET)",
            "from mail-il1-f228.google.com (mail-il1-f228.google.com\n [209.85.166.228])\n by mails.dpdk.org (Postfix) with ESMTP id 8EEF04064C\n for <dev@dpdk.org>; Fri, 10 Nov 2023 00:09:09 +0100 (CET)",
            "by mail-il1-f228.google.com with SMTP id\n e9e14a558f8ab-3576e74ae9dso5708155ab.3\n for <dev@dpdk.org>; Thu, 09 Nov 2023 15:09:09 -0800 (PST)",
            "from postal.iol.unh.edu (postal.iol.unh.edu.\n [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id\n do6-20020a0566384c8600b0043a226a8838sm975756jab.35.2023.11.09.15.09.08\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Thu, 09 Nov 2023 15:09:08 -0800 (PST)",
            "from iol.unh.edu (unknown\n [IPv6:2606:4100:3880:1271:90f9:1b64:f6e6:867f])\n by postal.iol.unh.edu (Postfix) with ESMTP id 38C50605C318;\n Thu,  9 Nov 2023 18:09:08 -0500 (EST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1699571349; x=1700176149; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=cBVZ6Ako4cf++sKNKESsCUqzqNGyv1mmpwPM3X84mWU=;\n b=SLRg0zmZ+w1lQS2RDF6Yf07kTEnGCM4ugxleVYLXrIfGyNPDMtvvr+1/xWtZQQvQBE\n EjNzomJ9kXajlMpsuVsjVJUvLfy7yyfPIeTaYRxGiekwauJOLcvg5gvDBKrZMaGwgH9R\n idP2slSb6u6Uq/wWazAFKGtSxXzjCJ+V4j17U=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1699571349; x=1700176149;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=cBVZ6Ako4cf++sKNKESsCUqzqNGyv1mmpwPM3X84mWU=;\n b=fnHoadbyPamhSmvWAzlIAJJt/dA2SuzjXZZ337jCEvVzuC/HquZxzuppw3uQNh7dIL\n gq7/fU6/uFnu+pni/LuMJzrW9L1M4miMclet26vdN9meSyN6IE2NdC2C3t8EZIKhjP2k\n t2teOVsRRAqtVVvSDLBijIQuSCJ0wNQhKpcVH4RfiXONLaE6K3dl777Od9OR2K/O9vwp\n PNEiYRBQMkvjY/7iumeCxegdvqyZuAkqZJIchWqL/kVx2HZ0nsjNasecxAAfKQbjyZJ9\n bLGzRccs7eQvIAtWADEK1vTUoCrMcraWO9ojny02Cva5m8/TalnofkmuecHtCnRDC5rg\n Da6A==",
        "X-Gm-Message-State": "AOJu0Yz1BxdMUA2YX6td3Z0h4o/8gx3JLVffyIMjSNSORruE+D5mN4EB\n 8ngDiLxqNSU3wOJ4aUhkshf+y0lcugvXcMX8SEmSVnjKI5F6kUEJx0TsPikhvYADOw==",
        "X-Google-Smtp-Source": "\n AGHT+IGjpasNGv99RA+9DRQK9KKSF5ILguB/wHi+Ayt3najQUJHBpPnb7NXuk9LDJj0Wl6EpHhkeq7odOKcU",
        "X-Received": "by 2002:a92:cd89:0:b0:359:cbff:fc69 with SMTP id\n r9-20020a92cd89000000b00359cbfffc69mr6919256ilb.12.1699571348876;\n Thu, 09 Nov 2023 15:09:08 -0800 (PST)",
        "X-Relaying-Domain": "iol.unh.edu",
        "From": "jspewock@iol.unh.edu",
        "To": "Honnappa.Nagarahalli@arm.com, juraj.linkes@pantheon.tech,\n thomas@monjalon.net, wathsala.vithanage@arm.com, probb@iol.unh.edu,\n paul.szczepanek@arm.com, yoan.picchi@foss.arm.com, ferruh.yigit@amd.com,\n andrew.rybchenko@oktetlabs.ru",
        "Cc": "dev@dpdk.org,\n\tJeremy Spewock <jspewock@iol.unh.edu>",
        "Subject": "[PATCH v1 2/7] dts: add waiting for port up in testpmd",
        "Date": "Thu,  9 Nov 2023 18:07:32 -0500",
        "Message-ID": "<20231109230900.24572-3-jspewock@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20231109230900.24572-1-jspewock@iol.unh.edu>",
        "References": "<20231109230900.24572-1-jspewock@iol.unh.edu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Jeremy Spewock <jspewock@iol.unh.edu>\n\nAdded a method within the testpmd interactive shell that polls the\nstatus of ports and verifies that the link status on a given port is\n\"up.\" Polling will continue until either the link comes up, or the\ntimeout is reached.\n\nSigned-off-by: Jeremy Spewock <jspewock@iol.unh.edu>\n---\n .../remote_session/remote/testpmd_shell.py    | 29 +++++++++++++++++++\n 1 file changed, 29 insertions(+)",
    "diff": "diff --git a/dts/framework/remote_session/remote/testpmd_shell.py b/dts/framework/remote_session/remote/testpmd_shell.py\nindex 1455b5a199..3ea16c7ab3 100644\n--- a/dts/framework/remote_session/remote/testpmd_shell.py\n+++ b/dts/framework/remote_session/remote/testpmd_shell.py\n@@ -1,9 +1,12 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2023 University of New Hampshire\n \n+import time\n from pathlib import PurePath\n from typing import Callable\n \n+from framework.settings import SETTINGS\n+\n from .interactive_shell import InteractiveShell\n \n \n@@ -47,3 +50,29 @@ def get_devices(self) -> list[TestPmdDevice]:\n             if \"device name:\" in line.lower():\n                 dev_list.append(TestPmdDevice(line))\n         return dev_list\n+\n+    def wait_link_status_up(self, port_id: int, timeout=SETTINGS.timeout) -> bool:\n+        \"\"\"Wait until the link status on the given port is \"up\".\n+\n+        Arguments:\n+            port_id: Port to check the link status on.\n+            timeout: time to wait for the link to come up.\n+\n+        Returns:\n+            If the link came up in time or not.\n+        \"\"\"\n+        time_to_stop = time.time() + timeout\n+        while time.time() < time_to_stop:\n+            port_info = self.send_command(f\"show port info {port_id}\")\n+            if \"Link status: up\" in port_info:\n+                break\n+            time.sleep(0.5)\n+        else:\n+            self._logger.error(\n+                f\"The link for port {port_id} did not come up in the given timeout.\"\n+            )\n+        return \"Link status: up\" in port_info\n+\n+    def close(self) -> None:\n+        self.send_command(\"exit\", \"\")\n+        return super().close()\n",
    "prefixes": [
        "v1",
        "2/7"
    ]
}