get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 106075,
    "url": "https://patches.dpdk.org/api/patches/106075/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech/",
    "project": {
        "id": 3,
        "url": "https://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": "<1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dts/1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech",
    "date": "2022-01-19T12:11:44",
    "name": "[v2] framework/qemu_kvm: fix pylama errors",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "31e7c38f2c3434e1e96f188d494b468204193c9e",
    "submitter": {
        "id": 1626,
        "url": "https://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 21256,
            "url": "https://patches.dpdk.org/api/series/21256/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=21256",
            "date": "2022-01-19T12:11:44",
            "name": "[v2] framework/qemu_kvm: fix pylama errors",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/21256/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/106075/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/106075/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 09757A04A6;\n\tWed, 19 Jan 2022 13:11:48 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D860741147;\n\tWed, 19 Jan 2022 13:11:47 +0100 (CET)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id C9D2C4013F\n for <dts@dpdk.org>; Wed, 19 Jan 2022 13:11:46 +0100 (CET)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id 24C5F1376FB;\n Wed, 19 Jan 2022 13:11:46 +0100 (CET)",
            "from lb.pantheon.sk ([127.0.0.1])\n by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id 9AozjKDcvPBf; Wed, 19 Jan 2022 13:11:44 +0100 (CET)",
            "from service-node1.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 7D77A1376FA;\n Wed, 19 Jan 2022 13:11:44 +0100 (CET)"
        ],
        "X-Virus-Scanned": "amavisd-new at siecit.sk",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "lijuan.tu@intel.com,\n\tohilyard@iol.unh.edu,\n\tjunx.dong@intel.com",
        "Cc": "dts@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[PATCH v2] framework/qemu_kvm: fix pylama errors",
        "Date": "Wed, 19 Jan 2022 13:11:44 +0100",
        "Message-Id": "<1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1638793303-2955-1-git-send-email-juraj.linkes@pantheon.tech>",
        "References": "<1638793303-2955-1-git-send-email-juraj.linkes@pantheon.tech>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "Pylama found the following errors:\nframework/qemu_kvm.py:1498: [E] E0602 Undefined variable 'assgined_pcis_info' [pylint]\nframework/qemu_kvm.py:1508: [E] E0602 Undefined variable 'assinged_pcis_info' [pylint]\nframework/qemu_kvm.py:1508: [E] E1101 Instance of 'QEMUKvm' has no '__vf_has_been_assinged' member [pylint]\nframework/qemu_kvm.py:1587: [E] E1121 Too many positional arguments for method call [pylint]\nframework/qemu_kvm.py:1733: [E] E0213 Method should have \"self\" as first argument [pylint]\nframework/qemu_kvm.py:1750: [E] E1102 func is not callable [pylint]\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\n---\nLijuan, please add additional people to review if needed.\n---\n framework/qemu_kvm.py | 62 ++++++++++++++++++++++---------------------\n 1 file changed, 32 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py\nindex 515a4c04..fc31ca09 100644\n--- a/framework/qemu_kvm.py\n+++ b/framework/qemu_kvm.py\n@@ -44,6 +44,35 @@ from .virt_base import ST_NOTSTART, ST_PAUSE, ST_RUNNING, ST_UNKNOWN, VirtBase\n QGA_DEV_NAME = 'org.qemu.guest_agent.0'\n \n \n+def handle_control_session(func):\n+        \"\"\"\n+        Wrapper function to handle serial port, must return serial to host session\n+        \"\"\"\n+        def _handle_control_session(self, command):\n+            # just raise error if connect failed, for func can't all any more\n+            try:\n+                if self.control_type == 'socket':\n+                    assert (self.connect_serial_port(name=self.vm_name)), \"Can't connect to serial socket\"\n+                elif self.control_type == 'telnet':\n+                    assert (self.connect_telnet_port(name=self.vm_name)), \"Can't connect to serial port\"\n+                else:\n+                    assert (self.connect_qga_port(name=self.vm_name)), \"Can't connect to qga port\"\n+            except:\n+                return 'Failed'\n+\n+            try:\n+                out = func(self, command)\n+                self.quit_control_session()\n+                return out\n+            except Exception as e:\n+                print(RED(\"Exception happened on [%s] serial with cmd [%s]\" % (self.vm_name, command)))\n+                print(RED(e))\n+                self.close_control_session(dut_id=self.host_dut.dut_id)\n+                return 'Failed'\n+\n+        return _handle_control_session\n+\n+\n class QEMUKvm(VirtBase):\n \n     DEFAULT_BRIDGE = 'br0'\n@@ -1495,7 +1524,7 @@ class QEMUKvm(VirtBase):\n             if self.__is_vf_pci(pci):\n                 assigned_pcis_info[pci]['is_vf'] = True\n                 pf_pci = self.__map_vf_to_pf(pci)\n-                assgined_pcis_info[pci]['pf_pci'] = pf_pci\n+                assigned_pcis_info[pci]['pf_pci'] = pf_pci\n                 if self.virt_pool.alloc_vf_from_pf(vm=self.vm_name,\n                                                    pf_pci=pf_pci,\n                                                    *[pci]):\n@@ -1505,7 +1534,7 @@ class QEMUKvm(VirtBase):\n             else:\n                 # check that if any VF of specified PF has been\n                 # used, raise exception\n-                vf_pci = self.__vf_has_been_assinged(pci, **assinged_pcis_info)\n+                vf_pci = self.__vf_has_been_assigned(pci, **assigned_pcis_info)\n                 if vf_pci:\n                     raise Exception(\n                         \"Error: A VF [%s] generated by PF [%s] has \" %\n@@ -1584,7 +1613,7 @@ class QEMUKvm(VirtBase):\n         \"\"\"\n         Get IP which VM is connected by bridge.\n         \"\"\"\n-        out = self.control_command('ping', '60')\n+        out = self.control_command('ping')\n         if not out:\n             time.sleep(10)\n             out = self.control_command('ifconfig')\n@@ -1730,33 +1759,6 @@ class QEMUKvm(VirtBase):\n \n         return cores\n \n-    def handle_control_session(func):\n-        \"\"\"\n-        Wrapper function to handle serial port, must return serial to host session\n-        \"\"\"\n-        def _handle_control_session(self, command):\n-            # just raise error if connect failed, for func can't all any more\n-            try:\n-                if self.control_type == 'socket':\n-                    assert (self.connect_serial_port(name=self.vm_name)), \"Can't connect to serial socket\"\n-                elif self.control_type == 'telnet':\n-                    assert (self.connect_telnet_port(name=self.vm_name)), \"Can't connect to serial port\"\n-                else:\n-                    assert (self.connect_qga_port(name=self.vm_name)), \"Can't connect to qga port\"\n-            except:\n-                return 'Failed'\n-\n-            try:\n-                out = func(self, command)\n-                self.quit_control_session()\n-                return out\n-            except Exception as e:\n-                print(RED(\"Exception happened on [%s] serial with cmd [%s]\" % (self.vm_name, command)))\n-                print(RED(e))\n-                self.close_control_session(dut_id=self.host_dut.dut_id)\n-                return 'Failed'\n-\n-        return _handle_control_session\n \n     def quit_control_session(self):\n         \"\"\"\n",
    "prefixes": [
        "v2"
    ]
}