From 24e09d3d8eba4e8a82561d5916ea227f05d880e6 Mon Sep 17 00:00:00 2001 From: shimon Date: Mon, 9 Oct 2023 13:16:05 +0300 Subject: [PATCH] queueForBuilds fix via functions controller --- app/controllers/api/databases.php | 4 +--- app/controllers/api/functions.php | 15 ++++++++------- composer.json | 2 +- composer.lock | 16 ++++++++-------- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/controllers/api/databases.php b/app/controllers/api/databases.php index 7686690565..ace53b2f2b 100644 --- a/app/controllers/api/databases.php +++ b/app/controllers/api/databases.php @@ -36,8 +36,6 @@ use Utopia\Database\Validator\Index as IndexValidator; use Utopia\Database\Validator\Key; use Utopia\Database\Validator\Permissions; use Utopia\Database\Validator\Queries; -use Utopia\Database\Validator\Queries\Document as DocumentQueriesValidator; -use Utopia\Database\Validator\Queries\Documents; use Utopia\Database\Validator\Query\Limit; use Utopia\Database\Validator\Query\Offset; use Utopia\Database\Validator\Structure; @@ -2455,7 +2453,7 @@ App::post('/v1/databases/:databaseId/collections/:collectionId/indexes') 'orders' => $orders, ]); - $validator = new IndexValidator($dbForProject->getAdapter()->getMaxIndexLength()); + $validator = new IndexValidator($attributes, $dbForProject->getAdapter()->getMaxIndexLength()); if (!$validator->isValid($collection->setAttribute('indexes', $index, Document::SET_TYPE_APPEND))) { throw new Exception(Exception::INDEX_INVALID, $validator->getDescription()); } diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 4195878bd0..383adebe67 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -49,7 +49,7 @@ use Utopia\VCS\Adapter\Git\GitHub; include_once __DIR__ . '/../shared/api.php'; -$redeployVcs = function (Request $request, Document $function, Document $project, Document $installation, Database $dbForProject, Document $template, GitHub $github) { +$redeployVcs = function (Request $request, Document $function, Document $project, Document $installation, Database $dbForProject, Build $queueForBuilds, Document $template, GitHub $github) { $deploymentId = ID::unique(); $entrypoint = $function->getAttribute('entrypoint', ''); $providerInstallationId = $installation->getAttribute('providerInstallationId', ''); @@ -108,8 +108,7 @@ $redeployVcs = function (Request $request, Document $function, Document $project 'activate' => true, ])); - $buildEvent = new Build(); - $buildEvent + $queueForBuilds ->setType(BUILD_TYPE_DEPLOYMENT) ->setResource($function) ->setDeployment($deployment) @@ -158,9 +157,10 @@ App::post('/v1/functions') ->inject('project') ->inject('user') ->inject('queueForEvents') + ->inject('queueForBuilds') ->inject('dbForConsole') ->inject('gitHub') - ->action(function (string $functionId, string $name, string $runtime, array $execute, array $events, string $schedule, int $timeout, bool $enabled, bool $logging, string $entrypoint, string $commands, string $installationId, string $providerRepositoryId, string $providerBranch, bool $providerSilentMode, string $providerRootDirectory, string $templateRepository, string $templateOwner, string $templateRootDirectory, string $templateBranch, Request $request, Response $response, Database $dbForProject, Document $project, Document $user, Event $queueForEvents, Database $dbForConsole, GitHub $github) use ($redeployVcs) { + ->action(function (string $functionId, string $name, string $runtime, array $execute, array $events, string $schedule, int $timeout, bool $enabled, bool $logging, string $entrypoint, string $commands, string $installationId, string $providerRepositoryId, string $providerBranch, bool $providerSilentMode, string $providerRootDirectory, string $templateRepository, string $templateOwner, string $templateRootDirectory, string $templateBranch, Request $request, Response $response, Database $dbForProject, Document $project, Document $user, Event $queueForEvents, Build $queueForBuilds, Database $dbForConsole, GitHub $github) use ($redeployVcs) { $functionId = ($functionId == 'unique()') ? ID::unique() : $functionId; // build from template @@ -260,7 +260,7 @@ App::post('/v1/functions') // Redeploy vcs logic if (!empty($providerRepositoryId)) { - $redeployVcs($request, $function, $project, $installation, $dbForProject, $template, $github); + $redeployVcs($request, $function, $project, $installation, $dbForProject, $queueForBuilds, $template, $github); } $functionsDomain = App::getEnv('_APP_DOMAIN_FUNCTIONS', ''); @@ -633,9 +633,10 @@ App::put('/v1/functions/:functionId') ->inject('dbForProject') ->inject('project') ->inject('queueForEvents') + ->inject('queueForBuilds') ->inject('dbForConsole') ->inject('gitHub') - ->action(function (string $functionId, string $name, string $runtime, array $execute, array $events, string $schedule, int $timeout, bool $enabled, bool $logging, string $entrypoint, string $commands, string $installationId, string $providerRepositoryId, string $providerBranch, bool $providerSilentMode, string $providerRootDirectory, Request $request, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Database $dbForConsole, GitHub $github) use ($redeployVcs) { + ->action(function (string $functionId, string $name, string $runtime, array $execute, array $events, string $schedule, int $timeout, bool $enabled, bool $logging, string $entrypoint, string $commands, string $installationId, string $providerRepositoryId, string $providerBranch, bool $providerSilentMode, string $providerRootDirectory, Request $request, Response $response, Database $dbForProject, Document $project, Event $queueForEvents, Build $queueForBuilds, Database $dbForConsole, GitHub $github) use ($redeployVcs) { // TODO: If only branch changes, re-deploy $function = $dbForProject->getDocument('functions', $functionId); @@ -760,7 +761,7 @@ App::put('/v1/functions/:functionId') // Redeploy logic if (!$isConnected && !empty($providerRepositoryId)) { - $redeployVcs($request, $function, $project, $installation, $dbForProject, new Document(), $github); + $redeployVcs($request, $function, $project, $installation, $dbForProject, $queueForBuilds, new Document(), $github); } // Inform scheduler if function is still active diff --git a/composer.json b/composer.json index b7b6f74fbf..cb86574d61 100644 --- a/composer.json +++ b/composer.json @@ -49,7 +49,7 @@ "utopia-php/cache": "0.8.*", "utopia-php/cli": "0.15.*", "utopia-php/config": "0.2.*", - "utopia-php/database": "dev-index-validation-no-attibute as 0.43.1", + "utopia-php/database": "dev-fix-index-validation as 0.43.1", "utopia-php/domains": "0.3.*", "utopia-php/dsn": "0.1.*", "utopia-php/framework": "0.31.0", diff --git a/composer.lock b/composer.lock index c504eb90b3..598394db9f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1afac6ad40bf9191a18fcbf28de1420c", + "content-hash": "15224f89284384114e0eef2ae83f49ea", "packages": [ { "name": "adhocore/jwt", @@ -1433,16 +1433,16 @@ }, { "name": "utopia-php/database", - "version": "dev-index-validation-no-attibute", + "version": "dev-fix-index-validation", "source": { "type": "git", "url": "https://github.com/utopia-php/database.git", - "reference": "50e716c1522a290c4b2dd45b01aa4a7fcb5481c2" + "reference": "67adc586318c35b34aaa9f1eed8f3751b6e8c324" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/database/zipball/50e716c1522a290c4b2dd45b01aa4a7fcb5481c2", - "reference": "50e716c1522a290c4b2dd45b01aa4a7fcb5481c2", + "url": "https://api.github.com/repos/utopia-php/database/zipball/67adc586318c35b34aaa9f1eed8f3751b6e8c324", + "reference": "67adc586318c35b34aaa9f1eed8f3751b6e8c324", "shasum": "" }, "require": { @@ -1483,9 +1483,9 @@ ], "support": { "issues": "https://github.com/utopia-php/database/issues", - "source": "https://github.com/utopia-php/database/tree/index-validation-no-attibute" + "source": "https://github.com/utopia-php/database/tree/fix-index-validation" }, - "time": "2023-10-04T16:53:45+00:00" + "time": "2023-10-09T02:11:28+00:00" }, { "name": "utopia-php/domains", @@ -5277,7 +5277,7 @@ "aliases": [ { "package": "utopia-php/database", - "version": "dev-index-validation-no-attibute", + "version": "dev-fix-index-validation", "alias": "0.43.1", "alias_normalized": "0.43.1.0" },