@@ -284,13 +284,23 @@ async fn delete_service(
284284 }
285285
286286 let handler = PscHandler :: new ( client. clone ( ) ) ;
287- handler
287+ let response = handler
288288 . delete_service ( subscription_id)
289289 . await
290290 . context ( "Failed to delete PSC service" ) ?;
291291
292- eprintln ! ( "PSC service deleted successfully" ) ;
293- Ok ( ( ) )
292+ let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
293+
294+ handle_async_response (
295+ conn_mgr,
296+ profile_name,
297+ json_response,
298+ async_ops,
299+ output_format,
300+ query,
301+ "PSC service deleted successfully" ,
302+ )
303+ . await
294304}
295305
296306// ============================================================================
@@ -338,19 +348,18 @@ async fn create_endpoint(
338348 . await
339349 . context ( "Failed to create PSC endpoint" ) ?;
340350
341- // Convert response to JSON and check for task ID
342351 let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
343- if let Some ( task_id) = json_response. get ( "taskId" ) . and_then ( |v| v. as_str ( ) ) {
344- eprintln ! ( "PSC endpoint creation initiated. Task ID: {}" , task_id) ;
345- eprintln ! (
346- "Use 'redisctl cloud task wait {}' to monitor progress" ,
347- task_id
348- ) ;
349- }
350352
351- let data = handle_output ( json_response, output_format, query) ?;
352- print_formatted_output ( data, output_format) ?;
353- Ok ( ( ) )
353+ handle_async_response (
354+ conn_mgr,
355+ profile_name,
356+ json_response,
357+ async_ops,
358+ output_format,
359+ query,
360+ "PSC endpoint created successfully" ,
361+ )
362+ . await
354363}
355364
356365async fn update_endpoint (
@@ -378,19 +387,18 @@ async fn update_endpoint(
378387 . await
379388 . context ( "Failed to update PSC endpoint" ) ?;
380389
381- // Convert response to JSON and check for task ID
382390 let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
383- if let Some ( task_id) = json_response. get ( "taskId" ) . and_then ( |v| v. as_str ( ) ) {
384- eprintln ! ( "PSC endpoint update initiated. Task ID: {}" , task_id) ;
385- eprintln ! (
386- "Use 'redisctl cloud task wait {}' to monitor progress" ,
387- task_id
388- ) ;
389- }
390391
391- let data = handle_output ( json_response, output_format, query) ?;
392- print_formatted_output ( data, output_format) ?;
393- Ok ( ( ) )
392+ handle_async_response (
393+ conn_mgr,
394+ profile_name,
395+ json_response,
396+ async_ops,
397+ output_format,
398+ query,
399+ "PSC endpoint updated successfully" ,
400+ )
401+ . await
394402}
395403
396404async fn delete_endpoint (
@@ -416,13 +424,23 @@ async fn delete_endpoint(
416424 }
417425
418426 let handler = PscHandler :: new ( client. clone ( ) ) ;
419- handler
427+ let response = handler
420428 . delete_endpoint ( subscription_id, endpoint_id)
421429 . await
422430 . context ( "Failed to delete PSC endpoint" ) ?;
423431
424- eprintln ! ( "PSC endpoint deleted successfully" ) ;
425- Ok ( ( ) )
432+ let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
433+
434+ handle_async_response (
435+ conn_mgr,
436+ profile_name,
437+ json_response,
438+ async_ops,
439+ output_format,
440+ query,
441+ "PSC endpoint deleted successfully" ,
442+ )
443+ . await
426444}
427445
428446async fn get_endpoint_creation_script (
@@ -494,22 +512,18 @@ async fn create_service_aa(
494512 . await
495513 . context ( "Failed to create Active-Active PSC service" ) ?;
496514
497- // Convert response to JSON and check for task ID
498515 let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
499- if let Some ( task_id) = json_response. get ( "taskId" ) . and_then ( |v| v. as_str ( ) ) {
500- eprintln ! (
501- "Active-Active PSC service creation initiated. Task ID: {}" ,
502- task_id
503- ) ;
504- eprintln ! (
505- "Use 'redisctl cloud task wait {}' to monitor progress" ,
506- task_id
507- ) ;
508- }
509516
510- let data = handle_output ( json_response, output_format, query) ?;
511- print_formatted_output ( data, output_format) ?;
512- Ok ( ( ) )
517+ handle_async_response (
518+ conn_mgr,
519+ profile_name,
520+ json_response,
521+ async_ops,
522+ output_format,
523+ query,
524+ "Active-Active PSC service created successfully" ,
525+ )
526+ . await
513527}
514528
515529async fn delete_service_aa (
@@ -534,13 +548,23 @@ async fn delete_service_aa(
534548 }
535549
536550 let handler = PscHandler :: new ( client. clone ( ) ) ;
537- handler
551+ let response = handler
538552 . delete_service_active_active ( subscription_id)
539553 . await
540554 . context ( "Failed to delete Active-Active PSC service" ) ?;
541555
542- eprintln ! ( "Active-Active PSC service deleted successfully" ) ;
543- Ok ( ( ) )
556+ let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
557+
558+ handle_async_response (
559+ conn_mgr,
560+ profile_name,
561+ json_response,
562+ async_ops,
563+ output_format,
564+ query,
565+ "Active-Active PSC service deleted successfully" ,
566+ )
567+ . await
544568}
545569
546570// ============================================================================
@@ -588,22 +612,18 @@ async fn create_endpoint_aa(
588612 . await
589613 . context ( "Failed to create Active-Active PSC endpoint" ) ?;
590614
591- // Convert response to JSON and check for task ID
592615 let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
593- if let Some ( task_id) = json_response. get ( "taskId" ) . and_then ( |v| v. as_str ( ) ) {
594- eprintln ! (
595- "Active-Active PSC endpoint creation initiated. Task ID: {}" ,
596- task_id
597- ) ;
598- eprintln ! (
599- "Use 'redisctl cloud task wait {}' to monitor progress" ,
600- task_id
601- ) ;
602- }
603616
604- let data = handle_output ( json_response, output_format, query) ?;
605- print_formatted_output ( data, output_format) ?;
606- Ok ( ( ) )
617+ handle_async_response (
618+ conn_mgr,
619+ profile_name,
620+ json_response,
621+ async_ops,
622+ output_format,
623+ query,
624+ "Active-Active PSC endpoint created successfully" ,
625+ )
626+ . await
607627}
608628
609629async fn delete_endpoint_aa (
@@ -630,11 +650,21 @@ async fn delete_endpoint_aa(
630650 }
631651
632652 let handler = PscHandler :: new ( client. clone ( ) ) ;
633- handler
653+ let response = handler
634654 . delete_endpoint_active_active ( subscription_id, region_id, endpoint_id)
635655 . await
636656 . context ( "Failed to delete Active-Active PSC endpoint" ) ?;
637657
638- eprintln ! ( "Active-Active PSC endpoint deleted successfully" ) ;
639- Ok ( ( ) )
658+ let json_response = serde_json:: to_value ( & response) . context ( "Failed to serialize response" ) ?;
659+
660+ handle_async_response (
661+ conn_mgr,
662+ profile_name,
663+ json_response,
664+ async_ops,
665+ output_format,
666+ query,
667+ "Active-Active PSC endpoint deleted successfully" ,
668+ )
669+ . await
640670}
0 commit comments