private function createJob() { $tokenData = self::$sapiClient->verifyToken(); /** @var ObjectEncryptor $configEncryptor */ $configEncryptor = self::$kernel->getContainer()->get('syrup.object_encryptor'); return new Job($configEncryptor, ['id' => self::$sapiClient->generateId(), 'runId' => self::$sapiClient->generateId(), 'project' => ['id' => $tokenData['owner']['id'], 'name' => $tokenData['owner']['name']], 'token' => ['id' => $tokenData['id'], 'description' => $tokenData['description'], 'token' => self::$encryptor->encrypt(self::$sapiClient->getTokenString())], 'component' => SYRUP_APP_NAME, 'command' => 'run', 'process' => ['host' => 'test', 'pid' => posix_getpid()], 'createdTime' => date('c')], null, null, null); }
protected function writerProxyPost($writerId, $query, $payload, $toFile = null) { if (is_array($payload)) { $payload = json_encode($payload); } $request = $this->getWriter()->post('/gooddata-writer/proxy', array('Content-Type' => 'application/json; charset=utf-8', 'Accept' => 'application/json', 'X-StorageApi-Token' => $this->sapiClient->getTokenString()), json_encode(array('wait' => 1, 'writerId' => $writerId, 'query' => $query, 'payload' => $payload))); if ($toFile != null) { $request->setResponseBody($toFile); } return $request->send()->json(); }
public function create($command, array $params = [], $lockName = null) { $this->storageApiClient = $this->storageApiService->getClient(); $tokenData = $this->storageApiService->getTokenData(); $job = new Job($this->objectEncryptor, ['id' => $this->storageApiClient->generateId(), 'runId' => $this->storageApiClient->generateRunId($this->storageApiClient->getRunId()), 'project' => ['id' => $tokenData['owner']['id'], 'name' => $tokenData['owner']['name']], 'token' => ['id' => $tokenData['id'], 'description' => $tokenData['description'], 'token' => $this->objectEncryptor->encrypt($this->storageApiClient->getTokenString())], 'component' => $this->componentName, 'command' => $command, 'params' => $params, 'process' => ['host' => gethostname(), 'pid' => getmypid()], 'nestingLevel' => 0, 'createdTime' => date('c')], null, null, null); if ($lockName) { $job->setLockName($lockName); } $componentConfiguration = $this->getComponentConfiguration(); if (isset($componentConfiguration['flags']) && in_array('encrypt', $componentConfiguration['flags'])) { $job->setEncrypted(true); } return $job; }
public function ping() { $options = array('timeout' => 7200, 'headers' => array('X-StorageApi-Token' => $this->storageApi->getTokenString(), 'Accept-Encoding' => 'gzip', 'User-Agent' => $this->storageApi->getUserAgent())); if ($this->storageApi->getRunId()) { $options['headers']['X-KBC-RunId'] = $this->storageApi->getRunId(); } try { $response = $this->client->get('storage/tokens/verify', $options); } catch (RequestException $e) { $response = $e->getResponse(); if ($response && $response->getStatusCode() == 503) { return false; } else { throw $e; } } if ($response && $response->getStatusCode() == 200) { $body = ResponseDecoder::decode($response); return array_key_exists('token', $body); } return false; }
public function testConnection() { $testing = $this->container->getParameter('testing'); $tokenData = $this->storageApi->verifyToken(); /** @var Encryptor $encryptor */ $encryptor = $this->container->get('syrup.encryptor'); /** @var ObjectEncryptor $objectEncryptor */ $objectEncryptor = $this->container->get('syrup.object_encryptor'); /** @var Executor $executor */ $executor = $this->container->get('syrup.job_executor'); $executor->setStorageApi($this->storageApi); $result = $executor->execute(new Job($objectEncryptor, ['id' => $this->storageApi->generateId(), 'runId' => $this->storageApi->generateId(), 'project' => ['id' => $tokenData['owner']['id'], 'name' => $tokenData['owner']['name']], 'token' => ['id' => $tokenData['id'], 'description' => $tokenData['description'], 'token' => $encryptor->encrypt($this->storageApi->getTokenString())], 'component' => $this->componentName, 'command' => 'test', 'params' => $testing['db']['mysql'], 'process' => ['host' => gethostname(), 'pid' => getmypid()], 'createdTime' => date('c')])); $this->assertArrayHasKey('status', $result); $this->assertEquals('ok', $result['status']); }
public function oauthAction(Request $request) { if (!$request->request->get('account')) { throw new ParameterMissingException("Parameter 'account' is missing"); } $session = $this->get('session'); $googleApi = $this->getGoogleApi(); $token = $request->request->get('token'); try { $client = new StorageApi(['token' => $token, 'url' => null, 'userAgent' => 'ex-google-analytics']); $url = $googleApi->getAuthorizationUrl($this->container->get('router')->generate('keboola_google_analytics_oauth_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL), 'https://www.googleapis.com/auth/analytics.manage.users.readonly https://www.googleapis.com/auth/analytics.readonly profile email', 'force'); $session->set('token', $client->getTokenString()); $session->set('account', $request->request->get('account')); $session->set('referrer', $request->request->get('referrer')); return new RedirectResponse($url); } catch (\Exception $e) { throw new ApplicationException('OAuth UI request error', $e); } }
public function oauthAction(Request $request) { if (!$request->request->get('account') && !$request->request->get('external')) { throw new ParameterMissingException("Parameter 'account' or 'external' is required"); } $session = $this->get('session'); $googleApi = $this->getGoogleApi(); try { $client = new StorageApi(array('token' => $request->request->get('token'), 'userAgent' => $this->componentName)); $url = $googleApi->getAuthorizationUrl($this->container->get('router')->generate('keboola_google_drive_writer_oauth_callback', array(), UrlGeneratorInterface::ABSOLUTE_URL), 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://spreadsheets.google.com/feeds', 'force'); $session->set('token', $client->getTokenString()); $session->set('account', $request->request->get('account')); $session->set('referrer', $request->request->get('referrer')); $session->set('external', $request->request->get('external')); return new RedirectResponse($url); } catch (\Exception $e) { throw new SyrupComponentException(500, 'OAuth UI request error', $e); } }