@@ -197,6 +197,8 @@ enum CliCommand {
197197 } ,
198198 /// Get the upstairs UUID
199199 Uuid ,
200+ /// Request volume info as JSON
201+ VolumeInfo ,
200202}
201203
202204/*
@@ -546,6 +548,9 @@ async fn cmd_to_msg(
546548 CliCommand :: WriteUnwritten { offset } => {
547549 fw. send ( CliMessage :: WriteUnwritten ( offset) ) . await ?;
548550 }
551+ CliCommand :: VolumeInfo => {
552+ fw. send ( CliMessage :: VolumeInfoPlease ) . await ?;
553+ }
549554 }
550555 /*
551556 * Now, wait for our response
@@ -558,6 +563,9 @@ async fn cmd_to_msg(
558563 Some ( CliMessage :: Info ( vi) ) => {
559564 println ! ( "Got info: {:?}" , vi) ;
560565 }
566+ Some ( CliMessage :: VolumeInfoJson ( json) ) => {
567+ println ! ( "{}" , json) ;
568+ }
561569 Some ( CliMessage :: DoneOk ) => {
562570 println ! ( "Ok" ) ;
563571 }
@@ -989,6 +997,15 @@ async fn process_cli_command(
989997 let uuid = volume. get_uuid ( ) . await ?;
990998 fw. send ( CliMessage :: MyUuid ( uuid) ) . await
991999 }
1000+ CliMessage :: VolumeInfoPlease => {
1001+ match volume. query_volume_info ( ) . await {
1002+ Ok ( vi) => {
1003+ let json = serde_json:: to_string_pretty ( & vi) . unwrap ( ) ;
1004+ fw. send ( CliMessage :: VolumeInfoJson ( json) ) . await
1005+ }
1006+ Err ( e) => fw. send ( CliMessage :: Error ( e) ) . await ,
1007+ }
1008+ }
9921009 CliMessage :: Verify => {
9931010 if let Some ( di) = di_option {
9941011 match verify_volume ( volume, di, false ) . await {
0 commit comments