File tree 4 files changed +32
-2
lines changed
4 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -99,7 +99,7 @@ Feature list:
99
99
| Delete topic in name server | 216 | :sparkling_heart : :white_check_mark : | |
100
100
| Register topic in name server | 217 | :sparkling_heart : :white_check_mark : | |
101
101
| Get topics by cluster | 224 | :sparkling_heart : :white_check_mark : | |
102
- | Get system topic list from name server | 304 | :broken_heart : :x : | |
102
+ | Get system topic list from name server | 304 | :sparkling_heart : :white_check_mark : | |
103
103
| Get unit topic list | 311 | :broken_heart : :x : | |
104
104
| Get has unit sub topic list | 312 | :broken_heart : :x : | |
105
105
| Get has unit sub ununit topic list | 313 | :broken_heart : :x : | |
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ Feature list:
32
32
| Delete topic in name server | 216 | :sparkling_heart : :white_check_mark : | |
33
33
| Register topic in name server | 217 | :sparkling_heart : :white_check_mark : | |
34
34
| Get topics by cluster | 224 | :sparkling_heart : :white_check_mark : | |
35
- | Get system topic list from name server | 304 | :broken_heart : :x : | |
35
+ | Get system topic list from name server | 304 | :sparkling_heart : :white_check_mark : | |
36
36
| Get unit topic list | 311 | :broken_heart : :x : | |
37
37
| Get has unit sub topic list | 312 | :broken_heart : :x : | |
38
38
| Get has unit sub ununit topic list | 313 | :broken_heart : :x : | |
Original file line number Diff line number Diff line change @@ -98,6 +98,9 @@ impl RequestProcessor for DefaultRequestProcessor {
98
98
Some ( RequestCode :: RegisterTopicInNamesrv ) => self . register_topic_to_name_srv ( request) ,
99
99
Some ( RequestCode :: GetKvlistByNamespace ) => self . get_kv_list_by_namespace ( request) ,
100
100
Some ( RequestCode :: GetTopicsByCluster ) => self . get_topics_by_cluster ( request) ,
101
+ Some ( RequestCode :: GetSystemTopicListFromNs ) => {
102
+ self . get_system_topic_list_from_ns ( request)
103
+ }
101
104
_ => RemotingCommand :: create_response_command_with_code (
102
105
RemotingSysResponseCode :: SystemError ,
103
106
) ,
@@ -442,6 +445,11 @@ impl DefaultRequestProcessor {
442
445
. get_topics_by_cluster ( request_header. cluster . as_str ( ) ) ;
443
446
RemotingCommand :: create_response_command ( ) . set_body ( Some ( topics_by_cluster. encode ( ) ) )
444
447
}
448
+
449
+ fn get_system_topic_list_from_ns ( & mut self , _request : RemotingCommand ) -> RemotingCommand {
450
+ let topic_list = self . route_info_manager . read ( ) . get_system_topic_list ( ) ;
451
+ RemotingCommand :: create_response_command ( ) . set_body ( Some ( topic_list. encode ( ) ) )
452
+ }
445
453
}
446
454
447
455
fn extract_register_topic_config_from_request (
Original file line number Diff line number Diff line change @@ -776,4 +776,26 @@ impl RouteInfoManager {
776
776
broker_addr : None ,
777
777
}
778
778
}
779
+
780
+ pub ( crate ) fn get_system_topic_list ( & self ) -> TopicList {
781
+ let mut topic_list = Vec :: new ( ) ;
782
+ let mut broker_addr_out = String :: new ( ) ;
783
+ for ( cluster_name, broker_set) in self . cluster_addr_table . iter ( ) {
784
+ topic_list. push ( cluster_name. clone ( ) ) ;
785
+ broker_set. iter ( ) . for_each ( |broker_name| {
786
+ topic_list. push ( broker_name. clone ( ) ) ;
787
+ } ) ;
788
+ }
789
+ if !self . broker_addr_table . is_empty ( ) {
790
+ for broker_addr in self . broker_addr_table . values ( ) {
791
+ for ip in broker_addr. broker_addrs ( ) . values ( ) {
792
+ broker_addr_out = ip. clone ( ) ;
793
+ }
794
+ }
795
+ }
796
+ TopicList {
797
+ topic_list,
798
+ broker_addr : Some ( broker_addr_out) ,
799
+ }
800
+ }
779
801
}
You can’t perform that action at this time.
0 commit comments