Ejemplo n.º 1
0
 def assertRouteConfigUpdateTrafficHandoff(
         self, test_client: XdsTestClient,
         previous_route_config_version: str, retry_wait_second: int,
         timeout_second: int):
     retryer = retryers.constant_retryer(
         wait_fixed=datetime.timedelta(seconds=retry_wait_second),
         timeout=datetime.timedelta(seconds=timeout_second),
         retry_on_exceptions=(TdPropagationRetryableError, ),
         logger=logger,
         log_level=logging.INFO)
     try:
         for attempt in retryer:
             with attempt:
                 self.assertSuccessfulRpcs(test_client)
                 raw_config = test_client.csds.fetch_client_status(
                     log_level=logging.INFO)
                 dumped_config = xds_url_map_testcase.DumpedXdsConfig(
                     json_format.MessageToDict(raw_config))
                 route_config_version = dumped_config.rds_version
                 if previous_route_config_version == route_config_version:
                     logger.info(
                         'Routing config not propagated yet. Retrying.')
                     raise TdPropagationRetryableError(
                         "CSDS not get updated routing config corresponding"
                         " to the second set of url maps")
                 else:
                     self.assertSuccessfulRpcs(test_client)
                     logger.info(
                         '[SUCCESS] Confirmed successful RPC with the updated routing config, version=%s',
                         route_config_version)
     except retryers.RetryError as retry_error:
         logger.info(
             'Retry exhausted. TD routing config propagation failed after timeout %ds. Last seen client config dump: %s',
             timeout_second, dumped_config)
         raise retry_error
Ejemplo n.º 2
0
 def tearDown(self):
     logger.info('----- TestMethod %s teardown -----', self.id())
     retryer = retryers.constant_retryer(wait_fixed=_timedelta(seconds=10),
                                         attempts=3,
                                         log_level=logging.INFO)
     try:
         retryer(self._cleanup)
     except retryers.RetryError:
         logger.exception('Got error during teardown')
Ejemplo n.º 3
0
 def test_client_config(self):
     retryer = retryers.constant_retryer(
         wait_fixed=datetime.timedelta(
             seconds=_URL_MAP_PROPAGATE_CHECK_INTERVAL_SEC),
         timeout=datetime.timedelta(seconds=_URL_MAP_PROPAGATE_TIMEOUT_SEC),
         logger=logging,
         log_level=logging.INFO)
     try:
         retryer(self._fetch_and_check_xds_config)
     finally:
         logging.info(
             'latest xDS config:\n%s',
             GcpResourceManager().td.compute.resource_pretty_format(
                 self._xds_json_config))
Ejemplo n.º 4
0
 def assertRpcsEventuallyGoToGivenServers(self,
                                          test_client: XdsTestClient,
                                          servers: List[XdsTestServer],
                                          num_rpcs: int = 100):
     retryer = retryers.constant_retryer(
         wait_fixed=datetime.timedelta(seconds=1),
         timeout=datetime.timedelta(seconds=_TD_CONFIG_MAX_WAIT_SEC),
         log_level=logging.INFO)
     try:
         retryer(self._assertRpcsEventuallyGoToGivenServers, test_client,
                 servers, num_rpcs)
     except retryers.RetryError:
         logger.exception(
             'Rpcs did not go to expected servers before timeout %s',
             _TD_CONFIG_MAX_WAIT_SEC)