Exemple #1
0
 protected function init($jobId)
 {
     $this->jobMapper = $this->getContainer()->get('syrup.elasticsearch.current_component_job_mapper');
     // Get job from ES
     $this->job = $this->jobMapper->get($jobId);
     if ($this->job == null) {
         $this->logger->error("Job id '" . $jobId . "' not found.");
         return self::STATUS_ERROR;
     }
     // SAPI init
     /** @var ObjectEncryptor $encryptor */
     $encryptor = $this->getContainer()->get('syrup.object_encryptor');
     $this->sapiClient = new SapiClient(['token' => $encryptor->decrypt($this->job->getToken()['token']), 'url' => $this->getContainer()->getParameter('storage_api.url'), 'userAgent' => $this->job->getComponent()]);
     $this->sapiClient->setRunId($this->job->getRunId());
     /** @var \Keboola\Syrup\Service\StorageApi\StorageApiService $storageApiService */
     $storageApiService = $this->getContainer()->get('syrup.storage_api');
     $storageApiService->setClient($this->sapiClient);
     $this->storageApiService = $storageApiService;
     /** @var \Keboola\Syrup\Monolog\Processor\JobProcessor $logProcessor */
     $logProcessor = $this->getContainer()->get('syrup.monolog.job_processor');
     $logProcessor->setJob($this->job);
     /** @var \Keboola\Syrup\Monolog\Processor\SyslogProcessor $logProcessor */
     $logProcessor = $this->getContainer()->get('syrup.monolog.syslog_processor');
     $logProcessor->setRunId($this->job->getRunId());
     $logProcessor->setTokenData($storageApiService->getTokenData());
     // Lock DB
     /** @var Connection $conn */
     $conn = $this->getContainer()->get('doctrine.dbal.lock_connection');
     $conn->exec('SET wait_timeout = 31536000;');
     $this->lock = new Lock($conn, $this->job->getLockName());
 }
Exemple #2
0
 private function assertJob(Job $job, $resJob)
 {
     $this->assertEquals($job->getId(), $resJob['id']);
     $this->assertEquals($job->getRunId(), $resJob['runId']);
     $this->assertEquals($job->getLockName(), $resJob['lockName']);
     $this->assertEquals($job->getProject()['id'], $resJob['project']['id']);
     $this->assertEquals($job->getProject()['name'], $resJob['project']['name']);
     $this->assertEquals($job->getToken()['id'], $resJob['token']['id']);
     $this->assertEquals($job->getToken()['description'], $resJob['token']['description']);
     $this->assertEquals($job->getToken()['token'], $resJob['token']['token']);
     $this->assertEquals($job->getComponent(), $resJob['component']);
     $this->assertEquals($job->getStatus(), $resJob['status']);
 }
 /**
  * @param Metadata\Job $job
  * @return Client
  */
 private function createJobSapiClient(Metadata\Job $job)
 {
     return new Client(array('token' => $this->encryptor->decrypt($job->getToken()['token']), 'url' => $this->getConfiguration()->getStorageApiUrl()));
 }
Exemple #4
0
 public function build(\Keboola\Syrup\Job\Metadata\Job $job)
 {
     $params = $job->getRawParams();
     $process = $job->getProcess();
     $token = $job->getToken();
     $project = $job->getProject();
     $this->setId($job->getId());
     if (!empty($params['config'])) {
         $this->setConfig($params['config']);
     }
     $this->setProjectId($project['id']);
     $this->setOrchestrationId($params['orchestration']['id']);
     $this->setToken($token['token']);
     $this->setTokenId($token['id']);
     $this->setTokenDesc($token['description']);
     $this->setTokenOwnerName($project['name']);
     $this->setStatus($job->getStatus());
     $this->setStartTime($job->getStartTime());
     $this->setEndTime($job->getEndTime());
     $this->setResults($job->getResult());
     if (!empty($params['tasks'])) {
         $this->setTaks($params['tasks']);
     }
     $this->setCreatedTime($job->getCreatedTime());
     $this->setOrchestrationName($params['orchestration']['name']);
     $this->setInitializedBy($params['initializedBy']);
     $this->setInitiatorTokenId($params['initiator']['id']);
     $this->setInitiatorTokenDesc($params['initiator']['description']);
     $this->setInitiatorUserAgent($params['initiator']['userAgent']);
     $this->setNotificationsEmails($params['notificationsEmails']);
     $this->setRunId($job->getRunId());
     $this->setPid($process['pid']);
     $this->setWorkerAddress($process['host']);
 }