@@ -7,7 +7,7 @@ use crate::telemetry::Telemetry;
77use crate :: telemetry_types:: { ActuatorCommand , ActuatorState } ;
88use std:: sync:: Arc ;
99use tonic:: { Request , Response , Status } ;
10- use tracing:: trace;
10+ use tracing:: { trace, warn } ;
1111
1212pub struct ActuatorServiceImpl {
1313 actuator : Arc < dyn Actuator > ,
@@ -49,7 +49,7 @@ impl ActuatorService for ActuatorServiceImpl {
4949 . publish ( "actuator/command" , & telemetry_commands)
5050 . await
5151 {
52- tracing :: warn!( "Failed to publish telemetry: {}" , e) ;
52+ warn ! ( "Failed to publish telemetry: {}" , e) ;
5353 }
5454 }
5555
@@ -99,7 +99,7 @@ impl ActuatorService for ActuatorServiceImpl {
9999 let telemetry = Telemetry :: get ( ) . await ;
100100 if let Some ( telemetry) = telemetry {
101101 if let Err ( e) = telemetry. publish ( "actuator/state" , & telemetry_states) . await {
102- tracing :: warn!( "Failed to publish telemetry: {}" , e) ;
102+ warn ! ( "Failed to publish telemetry: {}" , e) ;
103103 }
104104 }
105105
@@ -110,4 +110,27 @@ impl ActuatorService for ActuatorServiceImpl {
110110 ) ;
111111 Ok ( Response :: new ( GetActuatorsStateResponse { states } ) )
112112 }
113+
114+ async fn parameter_dump (
115+ & self ,
116+ request : Request < ParameterDumpRequest > ,
117+ ) -> Result < Response < ParameterDumpResponse > , Status > {
118+ let ids = request. into_inner ( ) . actuator_ids ;
119+
120+ let results = self
121+ . actuator
122+ . get_parameters ( ids)
123+ . await
124+ . map_err ( |e| Status :: internal ( format ! ( "Failed to dump parameters: {:?}" , e) ) ) ?;
125+
126+ let entries = results
127+ . into_iter ( )
128+ . map ( |( actuator_id, parameters) | ParameterDumpEntry {
129+ actuator_id,
130+ parameters : Some ( parameters) ,
131+ } )
132+ . collect ( ) ;
133+
134+ Ok ( Response :: new ( ParameterDumpResponse { entries } ) )
135+ }
113136}
0 commit comments