From 37bdb8179da1ab27b6669aca33d98b3b569de48d Mon Sep 17 00:00:00 2001 From: Vivek Kumar Verma Date: Wed, 14 May 2025 09:45:56 +0000 Subject: [PATCH] Workaround for resource group mode misconfig on tgen due to snappi api bug --- .../0002-Fix-resource-group.patch | 18 +++++++++++++++ .../0003-Fix-snappi-api.patch | 23 +++++++++++++++++++ dockers/docker-sonic-mgmt/Dockerfile.j2 | 6 ++++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 dockers/docker-sonic-mgmt/0002-Fix-resource-group.patch create mode 100644 dockers/docker-sonic-mgmt/0003-Fix-snappi-api.patch diff --git a/dockers/docker-sonic-mgmt/0002-Fix-resource-group.patch b/dockers/docker-sonic-mgmt/0002-Fix-resource-group.patch new file mode 100644 index 0000000000..b172673f19 --- /dev/null +++ b/dockers/docker-sonic-mgmt/0002-Fix-resource-group.patch @@ -0,0 +1,18 @@ +From: Vivek Kumar Verma +Date: Wed May 7 07:11:47 2025 +0000 +Subject: [PATCH 1/2] Fix snappi api to retain group mode based on a flag. + + +diff --git a/snappi_ixnetwork/resourcegroup.py b/snappi_ixnetwork/resourcegroup.py +index 0b57f493..4ff0258d 100644 +--- a/snappi_ixnetwork/resourcegroup.py ++++ b/snappi_ixnetwork/resourcegroup.py +@@ -190,7 +190,7 @@ class ResourceGroup(object): + card, + group_id, + current_mode, +- group_mode, ++ group_mode if self._api._retain_group_mode is False else current_mode + ) + if l1_name is not None: + if l1_name not in self.layer1_check: diff --git a/dockers/docker-sonic-mgmt/0003-Fix-snappi-api.patch b/dockers/docker-sonic-mgmt/0003-Fix-snappi-api.patch new file mode 100644 index 0000000000..e28e86a84d --- /dev/null +++ b/dockers/docker-sonic-mgmt/0003-Fix-snappi-api.patch @@ -0,0 +1,23 @@ +From: Vivek Kumar Verma +Date: Wed May 7 07:12:00 2025 +0000 +Subject: [PATCH 2/2]Fix snappi api to retain group mode based on a flag. + +diff --git a/snappi_ixnetwork/snappi_api.py b/snappi_ixnetwork/snappi_api.py +index 9a0e49b1..c3301cda 100644 +--- a/snappi_ixnetwork/snappi_api.py ++++ b/snappi_ixnetwork/snappi_api.py +@@ -46,6 +46,7 @@ class Api(snappi.Api): + location = kwargs.get("location") + username = kwargs.get("username") + password = kwargs.get("password") ++ self._retain_group_mode = kwargs.get("retain_group_mode", False) + license_servers = kwargs.get("license_servers") + self._log_level = logging.INFO if kwargs.get("loglevel") is None \ + else kwargs.get("loglevel") +@@ -1135,4 +1136,4 @@ class Api(snappi.Api): + self.logger.debug(message) + + def warning(self, message): +- logging.warning(message) +\ No newline at end of file ++ logging.warning(message) diff --git a/dockers/docker-sonic-mgmt/Dockerfile.j2 b/dockers/docker-sonic-mgmt/Dockerfile.j2 index e5cbf9b1f3..0062288873 100755 --- a/dockers/docker-sonic-mgmt/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt/Dockerfile.j2 @@ -269,12 +269,16 @@ USER root WORKDIR /azp COPY start.sh \ 0001-Fix-getattr-AttributeError-in-multi-thread-scenario.patch \ + 0002-Fix-resource-group.patch \ + 0003-Fix-snappi-api.patch \ ./ RUN chmod +x start.sh \ && ln -sf /usr/bin/python3 /usr/bin/python \ && ln -sf `which pip3` /usr/bin/pip \ && ln -sf `which pip3` /usr/local/sbin/pip \ - && patch -u -b /usr/local/lib/python3.8/dist-packages/ansible/plugins/loader.py -i /azp/0001-Fix-getattr-AttributeError-in-multi-thread-scenario.patch + && patch -u -b /usr/local/lib/python3.8/dist-packages/ansible/plugins/loader.py -i /azp/0001-Fix-getattr-AttributeError-in-multi-thread-scenario.patch \ + && patch -u -b /usr/local/lib/python3.8/dist-packages/snappi_ixnetwork/resourcegroup.py -i /azp/0002-Fix-resource-group.patch \ + && patch -u -b /usr/local/lib/python3.8/dist-packages/snappi_ixnetwork/snappi_api.py -i /azp/0003-Fix-snappi-api.patch USER $user WORKDIR /var/$user