public static getClient ( $dbServer, $namespace = null, $port = 8010 ) |
public static function getClient($dbServer, $namespace = null, $port = 8010)
{
switch ($namespace) {
case "service":
return new Scalr_Net_Scalarizr_Services_Service($dbServer, $port);
break;
case "mysql":
return new Scalr_Net_Scalarizr_Services_Mysql($dbServer, $port);
break;
case "postgresql":
return new Scalr_Net_Scalarizr_Services_Postgresql($dbServer, $port);
break;
case "redis":
return new Scalr_Net_Scalarizr_Services_Redis($dbServer, $port);
break;
case "sysinfo":
return new Scalr_Net_Scalarizr_Services_Sysinfo($dbServer, $port);
break;
case "system":
return new Scalr_Net_Scalarizr_Services_System($dbServer, $port);
break;
case "operation":
return new Scalr_Net_Scalarizr_Services_Operation($dbServer, $port);
break;
case "image":
return new Scalr_Net_Scalarizr_Services_Image($dbServer, $port);
break;
default:
return new Scalr_Net_Scalarizr_Client($dbServer, $port);
break;
}
}
public function getScriptingLogAction() { $this->request->restrictAccess(Acl::RESOURCE_LOGS_SCRIPTING_LOGS); $this->request->defineParams(array('executionId' => array('type' => 'string'))); $info = $this->db->GetRow("SELECT * FROM scripting_log WHERE execution_id = ? LIMIT 1", array($this->getParam('executionId'))); if (!$info) { throw new Exception('Script execution log not found'); } try { $dbServer = DBServer::LoadByID($info['server_id']); if (!in_array($dbServer->status, array(SERVER_STATUS::INIT, SERVER_STATUS::RUNNING))) { throw new Exception(); } } catch (Exception $e) { throw new Exception('Server was terminated and logs no longer available'); } //Note! We should not check not-owned-farms permission here. It's approved by Igor. if ($dbServer->envId != $this->environment->id) { throw new \Scalr_Exception_InsufficientPermissions(); } $client = Scalr_Net_Scalarizr_Client::getClient($dbServer, Scalr_Net_Scalarizr_Client::NAMESPACE_SYSTEM, $dbServer->getPort(DBServer::PORT_API)); $logs = $client->getScriptLogs($this->getParam('executionId')); $msg = sprintf("STDERR: %s \n\n STDOUT: %s", base64_decode($logs->stderr), base64_decode($logs->stdout)); $msg = nl2br(htmlspecialchars($msg)); $this->response->data(array('message' => $msg)); }