get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 103155,
    "url": "http://patches.dpdk.org/api/patches/103155/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/1635418746-195687-1-git-send-email-songx.jiale@intel.com/",
    "project": {
        "id": 3,
        "url": "http://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<1635418746-195687-1-git-send-email-songx.jiale@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/1635418746-195687-1-git-send-email-songx.jiale@intel.com",
    "date": "2021-10-28T10:59:06",
    "name": "[V3] tests/link_status_interrupt: optimize the method of checking priv_flags",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "f2a949de9457e86141847932d914380265e8a5b5",
    "submitter": {
        "id": 2352,
        "url": "http://patches.dpdk.org/api/people/2352/?format=api",
        "name": "Jiale, SongX",
        "email": "songx.jiale@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dts/patch/1635418746-195687-1-git-send-email-songx.jiale@intel.com/mbox/",
    "series": [
        {
            "id": 20095,
            "url": "http://patches.dpdk.org/api/series/20095/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=20095",
            "date": "2021-10-28T10:59:06",
            "name": "[V3] tests/link_status_interrupt: optimize the method of checking priv_flags",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/20095/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/103155/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/103155/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-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 28ED4A0547;\n\tThu, 28 Oct 2021 13:15:44 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E8C9141100;\n\tThu, 28 Oct 2021 13:15:43 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 4476940DF4\n for <dts@dpdk.org>; Thu, 28 Oct 2021 13:15:42 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Oct 2021 03:59:16 -0700",
            "from unknown (HELO dpdk-zhaohy-t.sh.intel.com) ([10.240.183.68])\n by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Oct 2021 03:59:14 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10150\"; a=\"230644997\"",
            "E=Sophos;i=\"5.87,189,1631602800\"; d=\"scan'208\";a=\"230644997\"",
            "E=Sophos;i=\"5.87,189,1631602800\"; d=\"scan'208\";a=\"447647810\""
        ],
        "From": "Jiale Song <songx.jiale@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Jiale Song <songx.jiale@intel.com>",
        "Date": "Thu, 28 Oct 2021 18:59:06 +0800",
        "Message-Id": "<1635418746-195687-1-git-send-email-songx.jiale@intel.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "Subject": "[dts] [PATCH V3] tests/link_status_interrupt: optimize the method\n of checking priv_flags",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org",
        "Sender": "\"dts\" <dts-bounces@dpdk.org>"
    },
    "content": "Signed-off-by: Jiale Song <songx.jiale@intel.com>\n---\n framework/crb.py                         | 17 +++++++++++++++++\n tests/TestSuite_link_status_interrupt.py | 20 +++++++-------------\n 2 files changed, 24 insertions(+), 13 deletions(-)\n mode change 100644 => 100755 framework/crb.py",
    "diff": "diff --git a/framework/crb.py b/framework/crb.py\nold mode 100644\nnew mode 100755\nindex 9d78e51d..c9909add\n--- a/framework/crb.py\n+++ b/framework/crb.py\n@@ -890,3 +890,20 @@ class Crb(object):\n     def enable_promisc(self, intf):\n         if intf != 'N/A':\n             self.send_expect(\"ifconfig %s promisc\" % intf, \"# \", alt_session=True)\n+\n+    def get_priv_flags_state(self, intf, flag, timeout=TIMEOUT):\n+        '''\n+\n+        :param intf: nic name\n+        :param flag: priv-flags flag\n+        :return: flag state\n+        '''\n+        check_flag = \"ethtool --show-priv-flags %s\" % intf\n+        out = self.send_expect(check_flag, \"# \", timeout)\n+        p = re.compile('%s\\s+:\\s+(\\w+)' % flag)\n+        state = re.search(p, out)\n+        if state:\n+            return state.group(1)\n+        else:\n+            self.logger.info(\"NIC %s may be not find %s\" % (intf, flag))\n+            return False\ndiff --git a/tests/TestSuite_link_status_interrupt.py b/tests/TestSuite_link_status_interrupt.py\nindex bdb43f42..422f1f4e 100755\n--- a/tests/TestSuite_link_status_interrupt.py\n+++ b/tests/TestSuite_link_status_interrupt.py\n@@ -75,18 +75,12 @@ class TestLinkStatusInterrupt(TestCase):\n         # check link-down-on-close flag\n         self.flag = \"link-down-on-close\"\n         for intf in self.intfs:\n-            check_flag = \"ethtool --show-priv-flags %s\" % intf\n             set_flag = \"ethtool --set-priv-flags %s %s on\" % (intf, self.flag)\n-            out = self.tester.send_expect(check_flag, \"#\")\n-            p = re.compile('%s\\s+:\\s+(\\w+)' % self.flag)\n-            res = re.search(p, out).group(1)\n-            if res == \"off\":\n-                self.tester.send_expect(set_flag, \"#\")\n+            self.flag_default_stats = self.tester.get_priv_flags_state(intf, self.flag)\n+            if self.flag_default_stats == \"off\":\n+                self.tester.send_expect(set_flag, \"# \")\n                 time.sleep(0.5)\n-                out = self.tester.send_expect(check_flag, \"#\")\n-                self.verify(re.search(p, out).group(1) == \"on\", \"set %s %s on failed\" % (intf, self.flag))\n-            elif not res:\n-                self.logger.info(\"NIC %s might not support this case\" % intf)\n+                self.verify(self.tester.get_priv_flags_state(intf, self.flag) == \"on\", \"set %s %s on failed\" % (intf, self.flag))\n \n     def set_link_status_and_verify(self, dutPort, status):\n         \"\"\"\n@@ -94,7 +88,7 @@ class TestLinkStatusInterrupt(TestCase):\n         \"\"\"\n         self.intf = self.tester.get_interface(\n             self.tester.get_local_port(dutPort))\n-        if self.dut.get_os_type() != 'freebsd':\n+        if self.dut.get_os_type() != 'freebsd' and self.flag_default_stats:\n             self.tester.send_expect(\"ethtool --set-priv-flags %s link-down-on-close on\" % self.intf, \"#\", 10)\n         self.tester.send_expect(\"ifconfig %s %s\" %\n                                 (self.intf, status.lower()), \"# \", 10)\n@@ -210,6 +204,6 @@ class TestLinkStatusInterrupt(TestCase):\n         \"\"\"\n         Run after each test suite.\n         \"\"\"\n-        if self.dut.get_os_type() != 'freebsd':\n+        if self.dut.get_os_type() != 'freebsd' and self.flag_default_stats:\n             for intf in self.intfs:\n-                self.tester.send_expect(\"ethtool --set-priv-flags %s %s off\" % (intf, self.flag), \"#\", 10)\n+                self.tester.send_expect(\"ethtool --set-priv-flags %s %s %s\" % (intf, self.flag, self.flag_default_stats), \"# \")\n",
    "prefixes": [
        "V3"
    ]
}