From ea65d9617391a9a8cc4d928d9416165b5b598696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dulko?= Date: Tue, 22 May 2018 11:14:40 +0200 Subject: [PATCH] Make `body` arg conditional when deleting service kubernetes package in stable/queens is constrained to 4.0.0 version. That version doesn't support `body` argument passed to delete_namespaced_service and fails. This commit fixes that by making passing this argument conditional on kubernetes package version. Change-Id: Iaff1f569e99a88a8d8ff81aa4e0c4c7bedb94585 --- kuryr_tempest_plugin/tests/scenario/base.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/kuryr_tempest_plugin/tests/scenario/base.py b/kuryr_tempest_plugin/tests/scenario/base.py index fec703f6..568ffece 100644 --- a/kuryr_tempest_plugin/tests/scenario/base.py +++ b/kuryr_tempest_plugin/tests/scenario/base.py @@ -18,6 +18,7 @@ from oslo_log import log as logging import requests +import kubernetes from kubernetes import client as k8s_client from kubernetes import config as k8s_config from kubernetes.stream import stream @@ -175,11 +176,20 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest): @classmethod def delete_service(cls, service_name, namespace="default"): - delete_options = cls.k8s_client.V1DeleteOptions() - cls.k8s_client.CoreV1Api().delete_namespaced_service( - name=service_name, - namespace=namespace, - body=delete_options) + # FIXME(dulek): This is needed to support tempest plugin on + # stable/queens as kubernetes package is constrainted to + # 4.0.0 there and it doesn't accept ``body`` parameter. + # Remove this once stable/queens becomes unsupported. + if kubernetes.__version__ == '4.0.0': + cls.k8s_client.CoreV1Api().delete_namespaced_service( + name=service_name, + namespace=namespace) + else: + delete_options = cls.k8s_client.V1DeleteOptions() + cls.k8s_client.CoreV1Api().delete_namespaced_service( + name=service_name, + namespace=namespace, + body=delete_options) @classmethod def get_service_ip(