Skip to content

Commit 9e1624e

Browse files
author
Jonathan Visser
committed
Wait for reused branche when it's still being created
1 parent 0de0ad4 commit 9e1624e

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/Brancher/BrancherHypernodeManager.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ public function waitForAvailability(string $brancherHypernode, int $timeout = 15
129129
try {
130130
$flows = $this->hypernodeClient->logbook->getList($brancherHypernode);
131131
$relevantFlows = array_filter($flows, fn(Flow $flow) => $flow->name === 'ensure_app');
132-
$failedFlows = array_filter($flows, fn(Flow $flow) => $flow->isReverted());
133-
$completedFlows = array_filter($flows, fn(Flow $flow) => $flow->isComplete());
132+
$failedFlows = array_filter($relevantFlows, fn(Flow $flow) => $flow->isReverted());
133+
$completedFlows = array_filter($relevantFlows, fn(Flow $flow) => $flow->isComplete());
134134

135135
if (count($failedFlows) === count($relevantFlows)) {
136136
throw new CreateBrancherHypernodeFailedException();

src/DeployRunner.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -290,22 +290,24 @@ private function maybeConfigureBrancherServer(Server $server, bool $reuseBranche
290290
$data['labels'] = $labels;
291291
if ($reuseBrancher && $brancherApp = $this->brancherHypernodeManager->reuseExistingBrancherHypernode($parentApp, $labels)) {
292292
$this->log->info(sprintf('Found existing brancher Hypernode, name is %s.', $brancherApp));
293-
$server->setHostname(sprintf("%s.hypernode.io", $brancherApp));
294293
} else {
295294
$brancherApp = $this->brancherHypernodeManager->createForHypernode($parentApp, $data);
296295
$this->log->info(sprintf('Successfully requested brancher Hypernode, name is %s.', $brancherApp));
297-
$server->setHostname(sprintf("%s.hypernode.io", $brancherApp));
298296
$this->brancherHypernodesRegistered[] = $brancherApp;
297+
}
299298

300-
try {
301-
$this->log->info('Waiting for brancher Hypernode to become available...');
302-
$this->brancherHypernodeManager->waitForAvailability($brancherApp);
303-
$this->log->info('Brancher Hypernode has become available!');
304-
} catch (CreateBrancherHypernodeFailedException | TimeoutException $e) {
299+
try {
300+
$this->log->info('Waiting for brancher Hypernode to become available...');
301+
$this->brancherHypernodeManager->waitForAvailability($brancherApp);
302+
$this->log->info('Brancher Hypernode has become available!');
303+
} catch (CreateBrancherHypernodeFailedException | TimeoutException $e) {
304+
if (in_array($brancherApp, $this->brancherHypernodesRegistered)) {
305305
$this->brancherHypernodeManager->cancel($brancherApp);
306-
throw $e;
307306
}
307+
308+
throw $e;
308309
}
310+
$server->setHostname(sprintf("%s.hypernode.io", $brancherApp));
309311
}
310312
}
311313

0 commit comments

Comments
 (0)