get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134049,
    "url": "http://patches.dpdk.org/api/patches/134049/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231109232223.25644-4-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": "<20231109232223.25644-4-jspewock@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231109232223.25644-4-jspewock@iol.unh.edu",
    "date": "2023-11-09T23:20:12",
    "name": "[v2,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/20231109232223.25644-4-jspewock@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 30232,
            "url": "http://patches.dpdk.org/api/series/30232/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30232",
            "date": "2023-11-09T23:20:10",
            "name": "dts: Port scatter suite over",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/30232/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134049/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/134049/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 A89A6432EC;\n\tFri, 10 Nov 2023 00:23:24 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0B8C8427D8;\n\tFri, 10 Nov 2023 00:23:24 +0100 (CET)",
            "from mail-yb1-f228.google.com (mail-yb1-f228.google.com\n [209.85.219.228])\n by mails.dpdk.org (Postfix) with ESMTP id 4355B427D8\n for <dev@dpdk.org>; Fri, 10 Nov 2023 00:23:22 +0100 (CET)",
            "by mail-yb1-f228.google.com with SMTP id\n 3f1490d57ef6-d9ace5370a0so1577354276.0\n for <dev@dpdk.org>; Thu, 09 Nov 2023 15:23:22 -0800 (PST)",
            "from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84])\n by smtp-relay.gmail.com with ESMTPS id\n v98-20020a25abeb000000b00d9cb2d83caasm1113210ybi.2.2023.11.09.15.23.21\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Thu, 09 Nov 2023 15:23:21 -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 4C661605C318;\n Thu,  9 Nov 2023 18:23:21 -0500 (EST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1699572201; x=1700177001; 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=eCXertu5tCRG8W4+vGCgsgC1ZhS5tjdjMqggaj4SQxfqMwPy+RD8GDyxdHcP9xrK+h\n xOnHNGpOloiASEwCBDw+rhTNDj1oK8GnYKhyDLclSDCNC/x4nN5wUaYJHPsMvctD9lF3\n Bq22r1G/uywIEdv4FUjxSLTRrLWSm4gWhsEYw=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1699572201; x=1700177001;\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=ctca60GAGqEawbXVuXWnBKczGEmeUYXTFTuNTGW6FebiyadEoVbQB2m61QyUYZ4w5H\n PBzIhrAEpu7S4QRSZr2GG4aco+Tn5gV+/XIsmvQltFVduAS4tOw5vJzlkXjcH7XRFCew\n YZnbdtcmZg11+cjSGGGFLfcLONQxIfg4yJOSiA9ZNeAqfWeJvpUeoNUN/u7v20DWmueg\n z3xxO5TV0eElhhuNRSavHmSwLAWnpMEmfls4fk5FbMLdbxnDDzZqKlwd9UvKpOH8qDKK\n l3/eAilUFtu2hnf8731Y2w+kaHxK87eZnHrVh/1+FnuBx/VQ5B8IM3MD2lsXiGUez6U2\n 31ww==",
        "X-Gm-Message-State": "AOJu0Yzgm35POEnQMVSyQSXJGlZEA1EOSbN+CsBlfFsxrvN56lARUE/H\n svFvNeDkrc2NcokRsXIpQKZgw7WFFId3uWe6H6mtvVgFdV9ZMw==",
        "X-Google-Smtp-Source": "\n AGHT+IFhDofiuV/cbvovHyKXARKbC8G8eeMpMoj/d8otmTwXuIX6lUqPRfatC5bce3oEO2EGb/2VzjIuscty",
        "X-Received": "by 2002:a25:ab87:0:b0:da0:d018:b88b with SMTP id\n v7-20020a25ab87000000b00da0d018b88bmr6927406ybi.42.1699572201735;\n Thu, 09 Nov 2023 15:23:21 -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 v2 2/7] dts: add waiting for port up in testpmd",
        "Date": "Thu,  9 Nov 2023 18:20:12 -0500",
        "Message-ID": "<20231109232223.25644-4-jspewock@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20231109232223.25644-2-jspewock@iol.unh.edu>",
        "References": "<20231109232223.25644-2-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": [
        "v2",
        "2/7"
    ]
}