@@ -1219,6 +1219,11 @@ def __init__(self, *args, **kwargs) -> None:
1219
1219
self ._check_attr ("logger" , Logger )
1220
1220
self ._usage_stats = UsageStats ()
1221
1221
1222
+ @property
1223
+ @abstractmethod
1224
+ def logger (self ) -> Logger :
1225
+ pass
1226
+
1222
1227
@property
1223
1228
def usage_stats (self ) -> UsageStats :
1224
1229
"""
@@ -1248,6 +1253,9 @@ def kafka_client_security(self) -> KafkaClientSecurity:
1248
1253
on this broker."""
1249
1254
pass
1250
1255
1256
+ def export_cluster_config (self ) -> None :
1257
+ self .logger .debug ("export_cluster_config not implemented for this service" )
1258
+
1251
1259
def wait_until (
1252
1260
self ,
1253
1261
fn : Callable [[], Any ],
@@ -1582,7 +1590,6 @@ def __init__(
1582
1590
# we save the test context under both names since RedpandaService and Service
1583
1591
# save them under these two names, respetively
1584
1592
self .context = self ._context = context
1585
- self .logger = context .logger
1586
1593
1587
1594
super ().__init__ ()
1588
1595
@@ -1667,6 +1674,10 @@ def __init__(
1667
1674
f"Not enough brokers: test needs { self ._min_brokers } but cluster has { node_count } "
1668
1675
)
1669
1676
1677
+ @property
1678
+ def logger (self ) -> Logger :
1679
+ return self ._context .logger
1680
+
1670
1681
@property
1671
1682
def kubectl (self ) -> KubectlTool :
1672
1683
assert self .__kubectl , "kubectl accessed before cluster was started?"
@@ -2379,7 +2390,7 @@ def copy_from_pod(params):
2379
2390
return {}
2380
2391
2381
2392
2382
- class RedpandaService (RedpandaServiceABC , Service ):
2393
+ class RedpandaService (Service , RedpandaServiceABC ):
2383
2394
PERSISTENT_ROOT = "/var/lib/redpanda"
2384
2395
TRIM_LOGS_KEY = "trim_logs"
2385
2396
DATA_DIR = os .path .join (PERSISTENT_ROOT , "data" )
@@ -4449,11 +4460,11 @@ def get_version_if_not_head(self, node):
4449
4460
return self .get_version (node )
4450
4461
return None
4451
4462
4452
- def stop (self , ** kwargs : Any ) -> None :
4463
+ def export_cluster_config (self ) -> None :
4453
4464
"""
4454
- Override default stop() to execude stop_node in parallel
4465
+ Export the cluster configuration of all nodes to the ducktape log
4466
+ directory for later inspection.
4455
4467
"""
4456
- self ._stop_time = time .time () # The last time stop is invoked
4457
4468
self .logger .info ("%s: exporting cluster config" % self .who_am_i ())
4458
4469
4459
4470
service_dir = os .path .join (
@@ -4477,6 +4488,12 @@ def stop(self, **kwargs: Any) -> None:
4477
4488
# will not be able to get it from the admin API
4478
4489
self .logger .info (f"{ self .who_am_i ()} : error getting config: { e } " )
4479
4490
4491
+ def stop (self , ** kwargs : Any ) -> None :
4492
+ """
4493
+ Override default stop() to execude stop_node in parallel
4494
+ """
4495
+ self ._stop_time = time .time () # The last time stop is invoked
4496
+
4480
4497
self .logger .info ("%s: stopping service" % self .who_am_i ())
4481
4498
4482
4499
self .for_nodes (self .nodes , lambda n : self .stop_node (n , ** kwargs ))
0 commit comments