get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 104992,
    "url": "http://patchwork.dpdk.org/api/patches/104992/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dts/patch/1638890293-6468-1-git-send-email-juraj.linkes@pantheon.tech/",
    "project": {
        "id": 3,
        "url": "http://patchwork.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": "<1638890293-6468-1-git-send-email-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dts/1638890293-6468-1-git-send-email-juraj.linkes@pantheon.tech",
    "date": "2021-12-07T15:18:13",
    "name": "[v3] framework/pktgen_*: fix pylama errors",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "9af9ab993278cf3c20ec8131153481aff456ebc7",
    "submitter": {
        "id": 1626,
        "url": "http://patchwork.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dts/patch/1638890293-6468-1-git-send-email-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 20886,
            "url": "http://patchwork.dpdk.org/api/series/20886/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=20886",
            "date": "2021-12-07T15:18:13",
            "name": "[v3] framework/pktgen_*: fix pylama errors",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/20886/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/104992/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/104992/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 A3469A0093;\n\tTue,  7 Dec 2021 16:18:18 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 50FDE41152;\n\tTue,  7 Dec 2021 16:18:18 +0100 (CET)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by mails.dpdk.org (Postfix) with ESMTP id 25D8A4114F\n for <dts@dpdk.org>; Tue,  7 Dec 2021 16:18:17 +0100 (CET)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id 782831376E0;\n Tue,  7 Dec 2021 16:18:16 +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 3zYbvUaLniV8; Tue,  7 Dec 2021 16:18:14 +0100 (CET)",
            "from service-node1.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 684EC13428E;\n Tue,  7 Dec 2021 16:18:14 +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",
        "Cc": "dts@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[PATCH v3] framework/pktgen_*: fix pylama errors",
        "Date": "Tue,  7 Dec 2021 16:18:13 +0100",
        "Message-Id": "<1638890293-6468-1-git-send-email-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1638889483-6273-1-git-send-email-juraj.linkes@pantheon.tech>",
        "References": "<1638889483-6273-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/pktgen_base.py:108: [E] E1101 Instance of 'PacketGenerator' has no '_get_gen_port' member [pylint]\nframework/pktgen_base.py:148: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint]\nframework/pktgen_base.py:173: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint]\nframework/pktgen_base.py:279: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint]\nframework/pktgen_base.py:479: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint]\nframework/pktgen_base.py:528: [E] E0602 Undefined variable 'last_no_lost_mult' [pylint]\nframework/pktgen_base.py:558: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint]\nframework/pktgen_base.py:573: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint]\nframework/pktgen_base.py:607: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint]\nframework/pktgen_base.py:673: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint]\nframework/pktgen_base.py:677: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint]\nframework/pktgen_base.py:69: [E] E1101 Instance of 'PacketGenerator' has no '_prepare_generator' member; maybe 'prepare_generator'? [pylint]\nframework/pktgen_base.py:77: [E] E1101 Instance of 'PacketGenerator' has no '_get_port_pci' member [pylint]\nframework/pktgen_ixia.py:1085: [E] E1306 Not enough arguments for format string [pylint]\nframework/pktgen_trex.py:194: [E] E0602 Undefined variable 'Ether' [pylint]\nframework/pktgen_trex.py:195: [E] E0602 Undefined variable 'IP' [pylint]\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\n---\nLijuan, please add additional people to review if needed.\n---\n framework/pktgen_base.py         | 15 ++++++++++++++-\n framework/pktgen_ixia.py         |  4 ++--\n framework/pktgen_ixia_network.py |  2 +-\n framework/pktgen_trex.py         |  5 ++++-\n 4 files changed, 21 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/framework/pktgen_base.py b/framework/pktgen_base.py\nindex 023652cc..16eae93f 100644\n--- a/framework/pktgen_base.py\n+++ b/framework/pktgen_base.py\n@@ -64,10 +64,17 @@ class PacketGenerator(object):\n         self.tester = tester\n         self.__streams = []\n         self._ports_map = []\n+        self.pktgen_type = None\n+\n+    def _prepare_generator(self):\n+        raise NotImplementedError\n \n     def prepare_generator(self):\n         self._prepare_generator()\n \n+    def _get_port_pci(self, port_id):\n+        raise NotImplementedError\n+\n     def _convert_pktgen_port(self, port_id):\n         '''\n         :param port_id:\n@@ -94,6 +101,9 @@ class PacketGenerator(object):\n \n         return port\n \n+    def _get_gen_port(self, tester_pci):\n+        raise NotImplementedError\n+\n     def _convert_tester_port(self, port_id):\n         '''\n         :param port_id:\n@@ -143,6 +153,9 @@ class PacketGenerator(object):\n     def get_streams(self):\n         return self.__streams\n \n+    def _clear_streams(self):\n+        raise NotImplementedError\n+\n     def clear_streams(self):\n         ''' clear streams '''\n         self._clear_streams()\n@@ -525,7 +538,7 @@ class PacketGenerator(object):\n                 break\n             pps = (traffic_pps_max - traffic_pps_min)/2 + traffic_pps_min\n \n-        self.logger.info(\"zero loss pps is %f\" % last_no_lost_mult)\n+        self.logger.info(\"zero loss pps is %f\" % pps)\n         # use last result as return data to keep the same with dts/etgen format\n         # In fact, multiple link peer have multiple loss rate value,\n         # here only pick one\ndiff --git a/framework/pktgen_ixia.py b/framework/pktgen_ixia.py\nindex 06667047..03dac3de 100644\n--- a/framework/pktgen_ixia.py\n+++ b/framework/pktgen_ixia.py\n@@ -1082,7 +1082,7 @@ class Ixia(SSHConnection):\n         Tells IXIA to prepare the internal buffers were the frames were captured.\n         \"\"\"\n         ixia_port = self.get_ixia_port(port_number)\n-        command = 'capture get {0} {1} {2}'.format(ixia_port)\n+        command = 'capture get {0}'.format(ixia_port)\n         self.send_expect(command, '% ', 30)\n \n     def stat_get_rate_stat_all_stats(self, port_number):\n@@ -1369,6 +1369,7 @@ class IxiaPacketGenerator(PacketGenerator):\n     Ixia packet generator\n     \"\"\"\n     def __init__(self, tester):\n+        super(IxiaPacketGenerator, self).__init__(tester)\n         # ixia management\n         self.pktgen_type = PKTGEN_IXIA\n         self._conn = None\n@@ -1388,7 +1389,6 @@ class IxiaPacketGenerator(PacketGenerator):\n         self.ip_keys = ['start', 'end','action', 'step', 'mask',]\n         self.vlan_keys = ['start', 'end', 'action', 'step', 'count',]\n \n-        super(IxiaPacketGenerator, self).__init__(tester)\n         self.tester = tester\n \n     def get_ports(self):\ndiff --git a/framework/pktgen_ixia_network.py b/framework/pktgen_ixia_network.py\nindex f3a232d2..3a58abe5 100644\n--- a/framework/pktgen_ixia_network.py\n+++ b/framework/pktgen_ixia_network.py\n@@ -41,6 +41,7 @@ class IxNetworkPacketGenerator(PacketGenerator):\n     ixNetwork packet generator\n     \"\"\"\n     def __init__(self, tester):\n+        super(IxNetworkPacketGenerator, self).__init__(tester)\n         self.pktgen_type = PKTGEN_IXIA_NETWORK\n         self._conn = None\n         # ixNetwork configuration information of dts\n@@ -51,7 +52,6 @@ class IxNetworkPacketGenerator(PacketGenerator):\n         self._ports = []\n         self._rx_ports = []\n \n-        super(IxNetworkPacketGenerator, self).__init__(tester)\n \n     def get_ports(self):\n         ''' used for ixNetwork packet generator '''\ndiff --git a/framework/pktgen_trex.py b/framework/pktgen_trex.py\nindex 2ad05fe6..2f537a0b 100644\n--- a/framework/pktgen_trex.py\n+++ b/framework/pktgen_trex.py\n@@ -35,6 +35,9 @@ import sys\n import time\n from pprint import pformat\n \n+from scapy.layers.inet import IP\n+from scapy.layers.l2 import Ether\n+\n from .pktgen_base import (\n     PKTGEN,\n     PKTGEN_TREX,\n@@ -414,6 +417,7 @@ class TrexPacketGenerator(PacketGenerator):\n     https://trex-tgn.cisco.com/trex/doc/trex_manual.html\n     \"\"\"\n     def __init__(self, tester):\n+        super(TrexPacketGenerator, self).__init__(tester)\n         self.pktgen_type = PKTGEN_TREX\n         self.trex_app = \"t-rex-64\"\n         self._conn = None\n@@ -432,7 +436,6 @@ class TrexPacketGenerator(PacketGenerator):\n         self.ip_keys = ['start', 'end','action', 'mask', 'step']\n         self.vlan_keys = ['start', 'end', 'action', 'step', 'count']\n \n-        super(TrexPacketGenerator, self).__init__(tester)\n \n         # check trex binary file\n         trex_bin = os.sep.join([self.conf.get('trex_root_path'), self.trex_app])\n",
    "prefixes": [
        "v3"
    ]
}