@@ -226,12 +226,17 @@ func CreateCmd(ch *cmdutil.Helper) *cobra.Command {
226226 return cmd
227227}
228228
229- // waitUntilReady waits until the given database branch is ready. It times out after 3 minutes.
229+ // waitUntilReady waits until the given database branch is ready. It times out after 10 minutes.
230230func waitUntilReady (ctx context.Context , client * ps.Client , printer * printer.Printer , debug bool , getReq * ps.GetDatabaseBranchRequest ) error {
231- ctx , cancel := context .WithTimeout (ctx , 3 * time .Minute )
231+ ctx , cancel := context .WithTimeout (ctx , 10 * time .Minute )
232232 defer cancel ()
233233
234- ticker := time .NewTicker (time .Second )
234+ startTime := time .Now ()
235+ var ticker * time.Ticker
236+
237+ // Start with 5-second interval for the first minute
238+ ticker = time .NewTicker (5 * time .Second )
239+ defer ticker .Stop ()
235240
236241 for {
237242 select {
@@ -249,15 +254,27 @@ func waitUntilReady(ctx context.Context, client *ps.Client, printer *printer.Pri
249254 if resp .Ready {
250255 return nil
251256 }
257+
258+ elapsed := time .Since (startTime )
259+ if elapsed > time .Minute {
260+ // Switch to 10-second interval after 1 minute
261+ ticker .Stop ()
262+ ticker = time .NewTicker (10 * time .Second )
263+ }
252264 }
253265 }
254266}
255267
256268func waitUntilPostgresReady (ctx context.Context , client * ps.Client , printer * printer.Printer , debug bool , getReq * ps.GetPostgresBranchRequest ) error {
257- ctx , cancel := context .WithTimeout (ctx , 3 * time .Minute )
269+ ctx , cancel := context .WithTimeout (ctx , 10 * time .Minute )
258270 defer cancel ()
259271
260- ticker := time .NewTicker (time .Second )
272+ startTime := time .Now ()
273+ var ticker * time.Ticker
274+
275+ // Start with 5-second interval for the first minute
276+ ticker = time .NewTicker (5 * time .Second )
277+ defer ticker .Stop ()
261278
262279 for {
263280 select {
@@ -275,6 +292,13 @@ func waitUntilPostgresReady(ctx context.Context, client *ps.Client, printer *pri
275292 if resp .Ready {
276293 return nil
277294 }
295+
296+ elapsed := time .Since (startTime )
297+ if elapsed > time .Minute {
298+ // Switch to 10-second interval after 1 minute
299+ ticker .Stop ()
300+ ticker = time .NewTicker (10 * time .Second )
301+ }
278302 }
279303 }
280304}
0 commit comments