@@ -215,6 +215,7 @@ impl Deref for AnyNodeConfig {
215
215
}
216
216
217
217
impl AnyNodeConfig {
218
+ // Downcasting helpers for each variant
218
219
pub fn as_namenode ( & self ) -> Option < & NameNodeConfig > {
219
220
if let Self :: NameNode ( node) = self {
220
221
Some ( node)
@@ -237,32 +238,25 @@ impl AnyNodeConfig {
237
238
}
238
239
}
239
240
240
- // Logging config is distinct between each variant, due to the different enum types
241
- fn common_logging (
242
- & self ,
243
- namenode_container : NameNodeContainer ,
244
- datanode_container : DataNodeContainer ,
245
- journalnode_container : JournalNodeContainer ,
246
- ) -> Cow < ContainerLogConfig > {
241
+ // Logging config is distinct between each role, due to the different enum types,
242
+ // so provide helpers for containers that are common between all roles.
243
+ pub fn hdfs_logging ( & self ) -> Cow < ContainerLogConfig > {
247
244
match self {
248
- AnyNodeConfig :: NameNode ( node) => node. logging . for_container ( & namenode_container) ,
249
- AnyNodeConfig :: DataNode ( node) => node. logging . for_container ( & datanode_container) ,
250
- AnyNodeConfig :: JournalNode ( node) => node. logging . for_container ( & journalnode_container) ,
245
+ AnyNodeConfig :: NameNode ( node) => node. logging . for_container ( & NameNodeContainer :: Hdfs ) ,
246
+ AnyNodeConfig :: DataNode ( node) => node. logging . for_container ( & DataNodeContainer :: Hdfs ) ,
247
+ AnyNodeConfig :: JournalNode ( node) => {
248
+ node. logging . for_container ( & JournalNodeContainer :: Hdfs )
249
+ }
251
250
}
252
251
}
253
- pub fn hdfs_logging ( & self ) -> Cow < ContainerLogConfig > {
254
- self . common_logging (
255
- NameNodeContainer :: Hdfs ,
256
- DataNodeContainer :: Hdfs ,
257
- JournalNodeContainer :: Hdfs ,
258
- )
259
- }
260
252
pub fn vector_logging ( & self ) -> Cow < ContainerLogConfig > {
261
- self . common_logging (
262
- NameNodeContainer :: Vector ,
263
- DataNodeContainer :: Vector ,
264
- JournalNodeContainer :: Vector ,
265
- )
253
+ match & self {
254
+ AnyNodeConfig :: NameNode ( node) => node. logging . for_container ( & NameNodeContainer :: Vector ) ,
255
+ AnyNodeConfig :: DataNode ( node) => node. logging . for_container ( & DataNodeContainer :: Vector ) ,
256
+ AnyNodeConfig :: JournalNode ( node) => {
257
+ node. logging . for_container ( & JournalNodeContainer :: Vector )
258
+ }
259
+ }
266
260
}
267
261
pub fn vector_logging_enabled ( & self ) -> bool {
268
262
match self {
0 commit comments