/** * Create new orchestration job test * * @param int $orchestrationId * @return int job ID */ private function runOrchestrationTest($orchestrationId) { $url = '/orchestrator/run'; $errorMessage = sprintf("Response for call '%s %s' should return new job.", 'POST', $url); $response = $this->callApiPost($url, array('config' => $orchestrationId), 202); $this->assertArrayHasKey('id', $response, $errorMessage); $this->assertArrayHasKey('orchestrationId', $response, $errorMessage); $this->assertArrayHasKey('initializedBy', $response, $errorMessage); $this->assertArrayHasKey('url', $response, $errorMessage); $this->assertEquals(OrchestrationOrConfigEntity::parseOrchestrationId($orchestrationId), $response['orchestrationId'], $errorMessage); $this->assertEquals('manually', $response['initializedBy'], $errorMessage); $this->assertArrayHasKey('isFinished', $response); $this->assertEquals(false, $response['isFinished']); return $response['id']; }
/** * Manually execute job * * @param Request $request * @return Response */ public function postJobsAsyncAction(Request $request) { $orchestrationId = null; try { $form = $this->createForm(new OrchestrationRunAsyncType($this->dbOrchestrationManager, $this->token)); $handler = new RestFormHandler($form, $request); if ($handler->process()) { $orchestrationId = OrchestrationOrConfigEntity::parseOrchestrationId($handler->getPost('config')); } } catch (HttpException $e) { $exception = new OrchestratorException($e->getStatusCode(), $e->getMessage()); $exception->setExceptionCode('ORCHESTRATION_VALIDATION'); throw $exception; } return $this->handlePostJobs($orchestrationId, $request, true); }