16 from typing
import List
18 from absl
import flags
19 from absl.testing
import absltest
20 from absl.testing
import parameterized
22 from framework
import bootstrap_generator_testcase
23 from framework
import xds_k8s_testcase
28 logger = logging.getLogger(__name__)
29 flags.adopt_module_key_flags(xds_k8s_testcase)
32 XdsTestServer = xds_k8s_testcase.XdsTestServer
33 XdsTestClient = xds_k8s_testcase.XdsTestClient
34 KubernetesServerRunner = server_app.KubernetesServerRunner
35 KubernetesClientRunner = client_app.KubernetesClientRunner
36 _timedelta = datetime.timedelta
52 'gcr.io/grpc-testing/td-grpc-bootstrap:d6baaf7b0e0c63054ac4d9bedc09021ff261d599'
57 'gcr.io/grpc-testing/td-grpc-bootstrap:203db6ce70452996f4183c30dd4c5ecaada168b0'
62 'gcr.io/grpc-testing/td-grpc-bootstrap:8765051ef3b742bc5cd20f16de078ae7547f2ba2'
67 'gcr.io/grpc-testing/td-grpc-bootstrap:b96f7a73314668aee83cbf86ab1e40135a0542fc'
83 bootstrap_generator_testcase.BootstrapGeneratorBaseTest,
84 parameterized.TestCase):
85 client_runner: KubernetesClientRunner
86 server_runner: KubernetesServerRunner
87 test_server: XdsTestServer
91 """Hook method for setting up class fixture before running tests in
103 port=cls.server_port,
104 maintenance_port=cls.server_maintenance_port,
105 xds_host=cls.server_xds_host,
106 xds_port=cls.server_xds_port)
109 neg_name, neg_zones = cls.
server_runner.k8s_namespace.get_service_neg(
113 cls.td.backend_service_add_neg_backends(neg_name, neg_zones)
114 cls.td.wait_for_backends_healthy_status()
120 neg_name, neg_zones = cls.
server_runner.k8s_namespace.get_service_neg(
122 cls.td.backend_service_remove_neg_backends(neg_name, neg_zones)
127 logger.info(
'----- TestMethod %s teardown -----', self.id())
128 retryer = retryers.constant_retryer(wait_fixed=
_timedelta(seconds=10),
130 log_level=logging.INFO)
133 except retryers.RetryError:
134 logger.exception(
'Got error during teardown')
140 @parameterized.parameters(
143 """Runs the baseline test for multiple versions of the bootstrap
144 generator on the client.
146 logger.info(
'----- testing bootstrap generator version %s -----',
149 td_bootstrap_image=image)
150 test_client: XdsTestClient = self.startTestClient(self.
test_server)
151 self.assertXdsConfigExists(test_client)
152 self.assertSuccessfulRpcs(test_client)
159 bootstrap_generator_testcase.BootstrapGeneratorBaseTest,
160 parameterized.TestCase):
161 client_runner: KubernetesClientRunner
162 server_runner: KubernetesServerRunner
163 test_server: XdsTestServer
166 logger.info(
'----- TestMethod %s teardown -----', self.id())
167 retryer = retryers.constant_retryer(wait_fixed=
_timedelta(seconds=10),
169 log_level=logging.INFO)
172 except retryers.RetryError:
173 logger.exception(
'Got error during teardown')
178 self.removeServerBackends()
181 @parameterized.parameters(
184 """Runs the baseline test for multiple versions of the bootstrap
185 generator on the server.
187 logger.info(
'----- Testing bootstrap generator version %s -----',
190 td_bootstrap_image=image)
193 port=self.server_port,
194 maintenance_port=self.server_maintenance_port,
195 xds_host=self.server_xds_host,
196 xds_port=self.server_xds_port)
199 neg_name, neg_zones = self.
server_runner.k8s_namespace.get_service_neg(
203 self.td.backend_service_add_neg_backends(neg_name, neg_zones)
204 self.td.wait_for_backends_healthy_status()
207 test_client: XdsTestClient = self.startTestClient(self.
test_server)
208 self.assertXdsConfigExists(test_client)
209 self.assertSuccessfulRpcs(test_client)
212 if __name__ ==
'__main__':