From 97786a05fff860e56a92e22d8f3fc63cba08094c Mon Sep 17 00:00:00 2001 From: Khushboo Verma <43381712+vermakhushboo@users.noreply.github.com> Date: Fri, 7 Jun 2024 20:29:24 +0530 Subject: [PATCH] Updated cancelled build duration --- app/controllers/api/functions.php | 22 +++++----------------- src/Appwrite/Platform/Workers/Builds.php | 17 +++++++---------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index a6f9ebe8b0..4d4abe7938 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -1550,23 +1550,11 @@ App::patch('/v1/functions/:functionId/deployments/:deploymentId/build') if (\in_array($build->getAttribute('status'), ['ready', 'failed'])) { throw new Exception(Exception::BUILD_ALREADY_COMPLETED); } - $startTime = new \DateTime($build->getAttribute('startTime')); - $endTime = new \DateTime(); - $interval = $startTime->diff($endTime); - - $minuteInSeconds = 60; - $hourInSeconds = $minuteInSeconds * 60; - $dayInSeconds = $hourInSeconds * 24; - $monthInSeconds = $dayInSeconds * 30; - $yearsInSeconds = $monthInSeconds * 12; - - $duration = 0; - $duration += $interval->s; - $duration += $interval->i * $minuteInSeconds; - $duration += $interval->h * $hourInSeconds; - $duration += $interval->d * $dayInSeconds; - $duration += $interval->m * $monthInSeconds; - $duration += $interval->y * $yearsInSeconds; + $startTime = $build->getAttribute('startTime'); + $endTime = DateTime::now(); + $startTime = strtotime($startTime); + $endTime = strtotime($endTime); + $duration = $endTime - $startTime; $build = $dbForProject->updateDocument('builds', $build->getId(), $build->setAttributes([ 'endTime' => DateTime::now(), diff --git a/src/Appwrite/Platform/Workers/Builds.php b/src/Appwrite/Platform/Workers/Builds.php index 3f377c87f0..f11ac50164 100644 --- a/src/Appwrite/Platform/Workers/Builds.php +++ b/src/Appwrite/Platform/Workers/Builds.php @@ -184,6 +184,8 @@ class Builds extends Action } elseif ($build->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; + } else { + $build = $dbForProject->getDocument('builds', $buildId); } $source = $deployment->getAttribute('path', ''); @@ -224,8 +226,7 @@ class Builds extends Action $stderr = ''; Console::execute('mkdir -p /tmp/builds/' . \escapeshellcmd($buildId), '', $stdout, $stderr); - $build = $dbForProject->getDocument('builds', $buildId); - if ($build->getAttribute('status') === 'cancelled') { + if ($dbForProject->getDocument('builds', $buildId)->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; } @@ -406,8 +407,7 @@ class Builds extends Action $response = null; $err = null; - $build = $dbForProject->getDocument('builds', $buildId); - if ($build->getAttribute('status') === 'cancelled') { + if ($dbForProject->getDocument('builds', $buildId)->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; } @@ -478,8 +478,7 @@ class Builds extends Action ]); if ($err) { - $build = $dbForProject->getDocument('builds', $buildId); - if ($build->getAttribute('status') === 'cancelled') { + if ($dbForProject->getDocument('builds', $buildId)->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; } @@ -512,8 +511,7 @@ class Builds extends Action $function = $dbForProject->updateDocument('functions', $function->getId(), $function); } - $build = $dbForProject->getDocument('builds', $buildId); - if ($build->getAttribute('status') === 'cancelled') { + if ($dbForProject->getDocument('builds', $buildId)->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; } @@ -528,8 +526,7 @@ class Builds extends Action ->setAttribute('active', !empty($function->getAttribute('schedule')) && !empty($function->getAttribute('deployment'))); Authorization::skip(fn () => $dbForConsole->updateDocument('schedules', $schedule->getId(), $schedule)); } catch (\Throwable $th) { - $build = $dbForProject->getDocument('builds', $buildId); - if ($build->getAttribute('status') === 'cancelled') { + if ($dbForProject->getDocument('builds', $buildId)->getAttribute('status') === 'cancelled') { Console::info('Build has been cancelled'); return; }