77 "github.com/spf13/cobra"
88 "github.com/stackvista/stackstate-backup-cli/cmd/cmdutils"
99 "github.com/stackvista/stackstate-backup-cli/internal/app"
10- "github.com/stackvista/stackstate-backup-cli/internal/clients/clickhouse"
10+ ch "github.com/stackvista/stackstate-backup-cli/internal/clients/clickhouse"
1111 "github.com/stackvista/stackstate-backup-cli/internal/foundation/config"
1212 "github.com/stackvista/stackstate-backup-cli/internal/orchestration/portforward"
1313 "github.com/stackvista/stackstate-backup-cli/internal/orchestration/restore"
@@ -45,28 +45,34 @@ It will check the restore status and if complete, execute post-restore tasks and
4545}
4646
4747func runCheckAndFinalize (appCtx * app.Context ) error {
48- // Setup port-forward
48+ // Setup port-forward to ClickHouse Backup API
4949 pf , err := portforward .SetupPortForward (
5050 appCtx .K8sClient ,
5151 appCtx .Namespace ,
5252 appCtx .Config .Clickhouse .BackupService .Name ,
53- appCtx .Config .Clickhouse .BackupService .LocalPortForwardPort ,
5453 appCtx .Config .Clickhouse .BackupService .Port ,
5554 appCtx .Logger ,
5655 )
5756 if err != nil {
5857 return err
5958 }
6059 defer close (pf .StopChan )
61- return checkAndFinalize (appCtx , checkOperationID , waitForRestore )
60+
61+ // Create CH client with backup API port only
62+ chClient , err := appCtx .NewCHClient (pf .LocalPort , 0 )
63+ if err != nil {
64+ return fmt .Errorf ("failed to create ClickHouse client: %w" , err )
65+ }
66+
67+ return checkAndFinalize (chClient , appCtx , checkOperationID , waitForRestore )
6268}
6369
6470// checkAndFinalize checks restore status and finalizes if complete
65- func checkAndFinalize (appCtx * app.Context , operationID string , waitForComplete bool ) error {
71+ func checkAndFinalize (chClient ch. Interface , appCtx * app.Context , operationID string , waitForComplete bool ) error {
6672 // Check status
6773 appCtx .Logger .Println ()
6874 appCtx .Logger .Infof ("Checking restore status for operation: %s" , operationID )
69- status , err := appCtx . CHClient .GetRestoreStatus (appCtx .Context , operationID )
75+ status , err := chClient .GetRestoreStatus (appCtx .Context , operationID )
7076 if err != nil {
7177 return err
7278 }
@@ -87,7 +93,7 @@ func checkAndFinalize(appCtx *app.Context, operationID string, waitForComplete b
8793 if waitForComplete {
8894 // Still running - wait
8995 appCtx .Logger .Infof ("Restore is in progress, waiting for completion..." )
90- return waitAndFinalize (appCtx , appCtx . CHClient , operationID )
96+ return waitAndFinalize (appCtx , chClient , operationID )
9197 }
9298 // Just print status
9399 appCtx .Logger .Println ()
@@ -96,7 +102,7 @@ func checkAndFinalize(appCtx *app.Context, operationID string, waitForComplete b
96102}
97103
98104// waitAndFinalize waits for restore completion and finalizes
99- func waitAndFinalize (appCtx * app.Context , chClient clickhouse .Interface , operationID string ) error {
105+ func waitAndFinalize (appCtx * app.Context , chClient ch .Interface , operationID string ) error {
100106 restore .PrintAPIWaitingMessage ("clickhouse" , operationID , appCtx .Namespace , appCtx .Logger )
101107
102108 // Wait for restore using shared utility
@@ -157,7 +163,6 @@ func executePostRestoreSQL(appCtx *app.Context) error {
157163 appCtx .K8sClient ,
158164 appCtx .Namespace ,
159165 appCtx .Config .Clickhouse .Service .Name ,
160- appCtx .Config .Clickhouse .Service .LocalPortForwardPort ,
161166 appCtx .Config .Clickhouse .Service .Port ,
162167 appCtx .Logger ,
163168 )
@@ -166,8 +171,14 @@ func executePostRestoreSQL(appCtx *app.Context) error {
166171 }
167172 defer close (pf .StopChan )
168173
174+ // Create ClickHouse client with DB port only
175+ chDBClient , err := appCtx .NewCHClient (0 , pf .LocalPort )
176+ if err != nil {
177+ return fmt .Errorf ("failed to create ClickHouse DB client: %w" , err )
178+ }
179+
169180 // Create ClickHouse SQL connection
170- conn , closeConn , err := appCtx . CHClient .Connect ()
181+ conn , closeConn , err := chDBClient .Connect ()
171182 if err != nil {
172183 return fmt .Errorf ("failed to connect to ClickHouse: %w" , err )
173184 }
0 commit comments