@@ -11,6 +11,7 @@ package shadow
1111
1212import (
1313 "fmt"
14+ "os"
1415 "strings"
1516
1617 controlplanev1 "buf.build/gen/go/redpandadata/cloud/protocolbuffers/go/redpanda/api/controlplane/v1"
@@ -100,28 +101,35 @@ Force delete a Shadow Link with active shadow topics:
100101 }))
101102 out .MaybeDie (err , "unable to delete Shadow Link: %v" , err )
102103
104+ spinner := out .NewSpinner (cmd .Context (), "Deleting Shadow Link..." , out .WithElapsedTime ())
103105 isComplete , err := waitForOperation (cmd .Context (), cloudClient , op .Msg .GetOperation ().GetId ())
104- out .MaybeDie (err , "unable to confirm Shadow Link deletion: %v" , err )
106+ if err != nil {
107+ spinner .Fail (fmt .Sprintf ("unable to confirm Shadow Link deletion: %v" , err ))
108+ os .Exit (1 )
109+ }
105110 if ! isComplete {
111+ spinner .Stop ()
106112 out .Exit ("Shadow link deletion is taking longer than expected. Please check the status of the shadow link using 'rpk shadow status %q'" , linkName )
107113 }
108- } else {
109- cl , err := adminapi .NewClient (cmd .Context (), fs , prof )
110- out .MaybeDie (err , "unable to initialize admin client: %v" , err )
111-
112- link , err := cl .ShadowLinkService ().GetShadowLink (cmd .Context (), connect .NewRequest (& adminv2.GetShadowLinkRequest {
113- Name : linkName ,
114- }))
115- out .MaybeDie (err , "unable to get Redpanda Shadow Link information: %v" , handleConnectError (err , "get" , linkName ))
116- printShadowLinkInfo (link .Msg .GetShadowLink ())
117- promptConfirm (false )
118-
119- _ , err = cl .ShadowLinkService ().DeleteShadowLink (cmd .Context (), connect .NewRequest (& adminv2.DeleteShadowLinkRequest {
120- Name : linkName ,
121- Force : forceDelete ,
122- }))
123- out .MaybeDie (err , "unable to delete Redpanda Shadow Link %q: %v" , linkName , handleConnectError (err , "delete" , linkName ))
114+ spinner .Success (fmt .Sprintf ("Shadow Link %q deleted successfully" , linkName ))
115+ os .Exit (0 )
124116 }
117+ // Self-hosted path
118+ cl , err := adminapi .NewClient (cmd .Context (), fs , prof )
119+ out .MaybeDie (err , "unable to initialize admin client: %v" , err )
120+
121+ link , err := cl .ShadowLinkService ().GetShadowLink (cmd .Context (), connect .NewRequest (& adminv2.GetShadowLinkRequest {
122+ Name : linkName ,
123+ }))
124+ out .MaybeDie (err , "unable to get Redpanda Shadow Link information: %v" , handleConnectError (err , "get" , linkName ))
125+ printShadowLinkInfo (link .Msg .GetShadowLink ())
126+ promptConfirm (false )
127+
128+ _ , err = cl .ShadowLinkService ().DeleteShadowLink (cmd .Context (), connect .NewRequest (& adminv2.DeleteShadowLinkRequest {
129+ Name : linkName ,
130+ Force : forceDelete ,
131+ }))
132+ out .MaybeDie (err , "unable to delete Redpanda Shadow Link %q: %v" , linkName , handleConnectError (err , "delete" , linkName ))
125133
126134 fmt .Printf ("Shadow Link %q deleted successfully\n " , linkName )
127135 },
0 commit comments