fix: only append docker network if service/app is running

This commit is contained in:
Andras Bacsai
2024-08-01 13:47:58 +02:00
parent fd855847ff
commit e6e48c5812
4 changed files with 24 additions and 2 deletions

View File

@@ -451,6 +451,11 @@ class Application extends BaseModel
);
}
public function isRunning()
{
return (bool) str($this->status)->startsWith('running');
}
public function isExited()
{
return (bool) str($this->status)->startsWith('exited');

View File

@@ -35,6 +35,11 @@ class ApplicationPreview extends BaseModel
return self::where('application_id', $application_id)->where('pull_request_id', $pull_request_id)->firstOrFail();
}
public function isRunning()
{
return (bool) str($this->status)->startsWith('running');
}
public function application()
{
return $this->belongsTo(Application::class);

View File

@@ -77,6 +77,11 @@ class Service extends BaseModel
}
}
public function isRunning()
{
return (bool) str($this->status())->contains('running');
}
public function isExited()
{
return (bool) str($this->status())->contains('exited');

View File

@@ -36,16 +36,23 @@ function collectDockerNetworksByServer(Server $server)
}
// Service networks
foreach ($server->services()->get() as $service) {
$networks->push($service->networks());
if ($service->isRunning()) {
$networks->push($service->networks());
}
}
// Docker compose based apps
$docker_compose_apps = $server->dockerComposeBasedApplications();
foreach ($docker_compose_apps as $app) {
$networks->push($app->uuid);
if ($app->isRunning()) {
$networks->push($app->uuid);
}
}
// Docker compose based preview deployments
$docker_compose_previews = $server->dockerComposeBasedPreviewDeployments();
foreach ($docker_compose_previews as $preview) {
if (! $preview->isRunning()) {
continue;
}
$pullRequestId = $preview->pull_request_id;
$applicationId = $preview->application_id;
$application = Application::find($applicationId);