From 185d2338b5d5b40e7da71523b814d598ec83849f Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Wed, 13 Dec 2023 13:52:26 +0100 Subject: [PATCH] fix(Interfaces): do not use JsonParser In past, there perhaps were Robot keywords needing JsonParser. But now the single remaining call site can call json.loads directly. + Delete now unused resources/libraries/python/parsers/. Change-Id: I9c5d94d6b320f917f1f621abb83556ebccadc3ec Signed-off-by: Vratko Polak --- resources/libraries/python/InterfaceUtil.py | 5 +-- resources/libraries/python/parsers/JsonParser.py | 54 ------------------------ resources/libraries/python/parsers/__init__.py | 16 ------- 3 files changed, 2 insertions(+), 73 deletions(-) delete mode 100644 resources/libraries/python/parsers/JsonParser.py delete mode 100644 resources/libraries/python/parsers/__init__.py diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index 13a04441b2..c62592e7ec 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -13,6 +13,7 @@ """Interface util library.""" +from json import loads from time import sleep from enum import IntEnum @@ -25,7 +26,6 @@ from resources.libraries.python.DUTSetup import DUTSetup from resources.libraries.python.IPAddress import IPAddress from resources.libraries.python.L2Util import L2Util from resources.libraries.python.PapiExecutor import PapiSocketExecutor -from resources.libraries.python.parsers.JsonParser import JsonParser from resources.libraries.python.ssh import SSH, exec_cmd, exec_cmd_no_error from resources.libraries.python.topology import NodeType, Topology from resources.libraries.python.VPPUtil import VPPUtil @@ -723,9 +723,8 @@ class InterfaceUtil: ret_code, stdout, _ = ssh.exec_command(cmd) if int(ret_code) != 0: raise RuntimeError(u"Get interface name and MAC failed") - tmp = u"{" + stdout.rstrip().replace(u"\n", u",") + u"}" - interfaces = JsonParser().parse_data(tmp) + interfaces = loads("{" + stdout.rstrip().replace("\n", ",") + "}") for interface in node[u"interfaces"].values(): name = interfaces.get(interface[u"mac_address"]) if name is None: diff --git a/resources/libraries/python/parsers/JsonParser.py b/resources/libraries/python/parsers/JsonParser.py deleted file mode 100644 index c7a28bc1e4..0000000000 --- a/resources/libraries/python/parsers/JsonParser.py +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Used to parse JSON files or JSON data strings to dictionaries""" - -import json - -from io import open - - -class JsonParser: - """Parses JSON data string or files containing JSON data strings""" - def __init__(self): - pass - - @staticmethod - def parse_data(json_data): - """Return list parsed from JSON data string. - - Translates JSON data into list of values/dictionaries/lists. - - :param json_data: Data in JSON format. - :type json_data: str - :returns: JSON data parsed as python list. - :rtype: list - """ - parsed_data = json.loads(json_data) - return parsed_data - - @staticmethod - def parse_file(json_file): - """Return list parsed from file containing JSON string. - - Translates JSON data found in file into list of - values/dictionaries/lists. - - :param json_file: File with JSON type data. - :type json_file: str - :returns: JSON data parsed as python list. - :rtype: list - """ - input_data = open(json_file, u"rt").read() - parsed_data = JsonParser.parse_data(input_data) - return parsed_data diff --git a/resources/libraries/python/parsers/__init__.py b/resources/libraries/python/parsers/__init__.py deleted file mode 100644 index 1b58a3cf17..0000000000 --- a/resources/libraries/python/parsers/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2016 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -__init__ file for resources/libraries/python/parsers -""" -- 2.16.6