You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/lib/aliyun-log-php-sdk-master/Aliyun/Log/Client.php

1082 lines
47 KiB
PHP

<?php
/**
* Copyright (C) Alibaba Cloud Computing
* All rights reserved
*/
date_default_timezone_set ( 'Asia/Shanghai' );
require_once realpath ( dirname ( __FILE__ ) . '/../../Log_Autoload.php' );
require_once realpath ( dirname ( __FILE__ ) . '/requestcore.class.php' );
require_once realpath ( dirname ( __FILE__ ) . '/sls.proto.php' );
require_once realpath ( dirname ( __FILE__ ) . '/protocolbuffers.inc.php' );
if(!defined('API_VERSION'))
define('API_VERSION', '0.6.0');
if(!defined('USER_AGENT'))
define('USER_AGENT', 'log-php-sdk-v-0.6.0');
/**
* Aliyun_Log_Client class is the main class in the SDK. It can be used to
* communicate with LOG server to put/get data.
*
* @author log_dev
*/
class Aliyun_Log_Client {
/**
* @var string aliyun accessKey
*/
protected $accessKey;
/**
* @var string aliyun accessKeyId
*/
protected $accessKeyId;
/**
*@var string aliyun sts token
*/
protected $stsToken;
/**
* @var string LOG endpoint
*/
protected $endpoint;
/**
* @var string Check if the host if row ip.
*/
protected $isRowIp;
/**
* @var integer Http send port. The dafault value is 80.
*/
protected $port;
/**
* @var string log sever host.
*/
protected $logHost;
/**
* @var string the local machine ip address.
*/
protected $source;
/**
* Aliyun_Log_Client constructor
*
* @param string $endpoint
* LOG host name, for example, http://cn-hangzhou.sls.aliyuncs.com
* @param string $accessKeyId
* aliyun accessKeyId
* @param string $accessKey
* aliyun accessKey
*/
public function __construct($endpoint, $accessKeyId, $accessKey,$token = "") {
$this->setEndpoint ( $endpoint ); // set $this->logHost
$this->accessKeyId = $accessKeyId;
$this->accessKey = $accessKey;
$this->stsToken = $token;
$this->source = Aliyun_Log_Util::getLocalIp();
}
private function setEndpoint($endpoint) {
$pos = strpos ( $endpoint, "://" );
if ($pos !== false) { // be careful, !==
$pos += 3;
$endpoint = substr ( $endpoint, $pos );
}
$pos = strpos ( $endpoint, "/" );
if ($pos !== false) // be careful, !==
$endpoint = substr ( $endpoint, 0, $pos );
$pos = strpos ( $endpoint, ':' );
if ($pos !== false) { // be careful, !==
$this->port = ( int ) substr ( $endpoint, $pos + 1 );
$endpoint = substr ( $endpoint, 0, $pos );
} else
$this->port = 80;
$this->isRowIp = Aliyun_Log_Util::isIp ( $endpoint );
$this->logHost = $endpoint;
$this->endpoint = $endpoint . ':' . ( string ) $this->port;
}
/**
* GMT format time string.
*
* @return string
*/
protected function getGMT() {
return gmdate ( 'D, d M Y H:i:s' ) . ' GMT';
}
/**
* Decodes a JSON string to a JSON Object.
* Unsuccessful decode will cause an Aliyun_Log_Exception.
*
* @return string
* @throws Aliyun_Log_Exception
*/
protected function parseToJson($resBody, $requestId) {
if (! $resBody)
return NULL;
$result = json_decode ( $resBody, true );
if ($result === NULL){
throw new Aliyun_Log_Exception ( 'BadResponse', "Bad format,not json: $resBody", $requestId );
}
return $result;
}
/**
* @return array
*/
protected function getHttpResponse($method, $url, $body, $headers) {
$request = new RequestCore ( $url );
foreach ( $headers as $key => $value )
$request->add_header ( $key, $value );
$request->set_method ( $method );
$request->set_useragent(USER_AGENT);
if ($method == "POST" || $method == "PUT")
$request->set_body ( $body );
$request->send_request ();
$response = array ();
$response [] = ( int ) $request->get_response_code ();
$response [] = $request->get_response_header ();
$response [] = $request->get_response_body ();
return $response;
}
/**
* @return array
* @throws Aliyun_Log_Exception
*/
private function sendRequest($method, $url, $body, $headers) {
try {
list ( $responseCode, $header, $resBody ) =
$this->getHttpResponse ( $method, $url, $body, $headers );
} catch ( Exception $ex ) {
throw new Aliyun_Log_Exception ( $ex->getMessage (), $ex->__toString () );
}
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
if ($responseCode == 200) {
return array ($resBody,$header);
}
else {
$exJson = $this->parseToJson ( $resBody, $requestId );
if (isset($exJson ['error_code']) && isset($exJson ['error_message'])) {
throw new Aliyun_Log_Exception ( $exJson ['error_code'],
$exJson ['error_message'], $requestId );
} else {
if ($exJson) {
$exJson = ' The return json is ' . json_encode($exJson);
} else {
$exJson = '';
}
throw new Aliyun_Log_Exception ( 'RequestError',
"Request is failed. Http code is $responseCode.$exJson", $requestId );
}
}
}
/**
* @return array
* @throws Aliyun_Log_Exception
*/
private function send($method, $project, $body, $resource, $params, $headers) {
if ($body) {
$headers ['Content-Length'] = strlen ( $body );
if(isset($headers ["x-log-bodyrawsize"])==false)
$headers ["x-log-bodyrawsize"] = 0;
$headers ['Content-MD5'] = Aliyun_Log_Util::calMD5 ( $body );
} else {
$headers ['Content-Length'] = 0;
$headers ["x-log-bodyrawsize"] = 0;
$headers ['Content-Type'] = ''; // If not set, http request will add automatically.
}
$headers ['x-log-apiversion'] = API_VERSION;
$headers ['x-log-signaturemethod'] = 'hmac-sha1';
if(strlen($this->stsToken) >0)
$headers ['x-acs-security-token'] = $this -> stsToken;
if(is_null($project))$headers ['Host'] = $this->logHost;
else $headers ['Host'] = "$project.$this->logHost";
$headers ['Date'] = $this->GetGMT ();
$signature = Aliyun_Log_Util::getRequestAuthorization ( $method, $resource, $this->accessKey,$this->stsToken, $params, $headers );
$headers ['Authorization'] = "LOG $this->accessKeyId:$signature";
$url = $resource;
if ($params)
$url .= '?' . Aliyun_Log_Util::urlEncode ( $params );
if ($this->isRowIp)
$url = "http://$this->endpoint$url";
else{
if(is_null($project))
$url = "http://$this->endpoint$url";
else $url = "http://$project.$this->endpoint$url";
}
return $this->sendRequest ( $method, $url, $body, $headers );
}
/**
* Put logs to Log Service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_PutLogsRequest $request the PutLogs request parameters class
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_PutLogsResponse
*/
public function putLogs(Aliyun_Log_Models_PutLogsRequest $request) {
if (count ( $request->getLogitems () ) > 4096)
throw new Aliyun_Log_Exception ( 'InvalidLogSize', "logItems' length exceeds maximum limitation: 4096 lines." );
$logGroup = new LogGroup ();
$topic = $request->getTopic () !== null ? $request->getTopic () : '';
$logGroup->setTopic ( $request->getTopic () );
$source = $request->getSource ();
if ( ! $source )
$source = $this->source;
$logGroup->setSource ( $source );
$logitems = $request->getLogitems ();
foreach ( $logitems as $logItem ) {
$log = new Log ();
$log->setTime ( $logItem->getTime () );
$content = $logItem->getContents ();
foreach ( $content as $key => $value ) {
$content = new Log_Content ();
$content->setKey ( $key );
$content->setValue ( $value );
$log->addContents ( $content );
}
$logGroup->addLogs ( $log );
}
$body = Aliyun_Log_Util::toBytes( $logGroup );
unset ( $logGroup );
$bodySize = strlen ( $body );
if ($bodySize > 3 * 1024 * 1024) // 3 MB
throw new Aliyun_Log_Exception ( 'InvalidLogSize', "logItems' size exceeds maximum limitation: 3 MB." );
$params = array ();
$headers = array ();
$headers ["x-log-bodyrawsize"] = $bodySize;
$headers ['x-log-compresstype'] = 'deflate';
$headers ['Content-Type'] = 'application/x-protobuf';
$body = gzcompress ( $body, 6 );
$logstore = $request->getLogstore () !== null ? $request->getLogstore () : '';
$project = $request->getProject () !== null ? $request->getProject () : '';
$shardKey = $request -> getShardKey();
$resource = "/logstores/" . $logstore.($shardKey== null?"/shards/lb":"/shards/route");
if($shardKey)
$params["key"]=$shardKey;
list ( $resp, $header ) = $this->send ( "POST", $project, $body, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_PutLogsResponse ( $header );
}
/**
* create shipper service
* @param Aliyun_Log_Models_CreateShipperRequest $request
* return Aliyun_Log_Models_CreateShipperResponse
*/
public function createShipper(Aliyun_Log_Models_CreateShipperRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper";
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["Content-Type"] = "application/json";
$body = array(
"shipperName" => $request->getShipperName(),
"targetType" => $request->getTargetType(),
"targetConfiguration" => $request->getTargetConfigration()
);
$body_str = json_encode($body);
$headers["x-log-bodyrawsize"] = strlen($body_str);
list($resp, $header) = $this->send("POST", $project,$body_str,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_CreateShipperResponse($resp, $header);
}
/**
* create shipper service
* @param Aliyun_Log_Models_UpdateShipperRequest $request
* return Aliyun_Log_Models_UpdateShipperResponse
*/
public function updateShipper(Aliyun_Log_Models_UpdateShipperRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper/".$request->getShipperName();
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["Content-Type"] = "application/json";
$body = array(
"shipperName" => $request->getShipperName(),
"targetType" => $request->getTargetType(),
"targetConfiguration" => $request->getTargetConfigration()
);
$body_str = json_encode($body);
$headers["x-log-bodyrawsize"] = strlen($body_str);
list($resp, $header) = $this->send("PUT", $project,$body_str,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_UpdateShipperResponse($resp, $header);
}
/**
* get shipper tasks list, max 48 hours duration supported
* @param Aliyun_Log_Models_GetShipperTasksRequest $request
* return Aliyun_Log_Models_GetShipperTasksResponse
*/
public function getShipperTasks(Aliyun_Log_Models_GetShipperTasksRequest $request){
$headers = array();
$params = array(
'from' => $request->getStartTime(),
'to' => $request->getEndTime(),
'status' => $request->getStatusType(),
'offset' => $request->getOffset(),
'size' => $request->getSize()
);
$resource = "/logstores/".$request->getLogStore()."/shipper/".$request->getShipperName()."/tasks";
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["x-log-bodyrawsize"] = 0;
$headers["Content-Type"] = "application/json";
list($resp, $header) = $this->send("GET", $project,null,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_GetShipperTasksResponse($resp, $header);
}
/**
* retry shipper tasks list by task ids
* @param Aliyun_Log_Models_RetryShipperTasksRequest $request
* return Aliyun_Log_Models_RetryShipperTasksResponse
*/
public function retryShipperTasks(Aliyun_Log_Models_RetryShipperTasksRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper/".$request->getShipperName()."/tasks";
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["Content-Type"] = "application/json";
$body = $request->getTaskLists();
$body_str = json_encode($body);
$headers["x-log-bodyrawsize"] = strlen($body_str);
list($resp, $header) = $this->send("PUT", $project,$body_str,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_RetryShipperTasksResponse($resp, $header);
}
/**
* delete shipper service
* @param Aliyun_Log_Models_DeleteShipperRequest $request
* return Aliyun_Log_Models_DeleteShipperResponse
*/
public function deleteShipper(Aliyun_Log_Models_DeleteShipperRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper/".$request->getShipperName();
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["x-log-bodyrawsize"] = 0;
$headers["Content-Type"] = "application/json";
list($resp, $header) = $this->send("DELETE", $project,null,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_DeleteShipperResponse($resp, $header);
}
/**
* get shipper config service
* @param Aliyun_Log_Models_GetShipperConfigRequest $request
* return Aliyun_Log_Models_GetShipperConfigResponse
*/
public function getShipperConfig(Aliyun_Log_Models_GetShipperConfigRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper/".$request->getShipperName();
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["x-log-bodyrawsize"] = 0;
$headers["Content-Type"] = "application/json";
list($resp, $header) = $this->send("GET", $project,null,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_GetShipperConfigResponse($resp, $header);
}
/**
* list shipper service
* @param Aliyun_Log_Models_ListShipperRequest $request
* return Aliyun_Log_Models_ListShipperResponse
*/
public function listShipper(Aliyun_Log_Models_ListShipperRequest $request){
$headers = array();
$params = array();
$resource = "/logstores/".$request->getLogStore()."/shipper";
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["x-log-bodyrawsize"] = 0;
$headers["Content-Type"] = "application/json";
list($resp, $header) = $this->send("GET", $project,null,$resource,$params,$headers);
$requestId = isset($header['x-log-requestid']) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson($resp, $requestId);
return new Aliyun_Log_Models_ListShipperResponse($resp, $header);
}
/**
* create logstore
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_CreateLogstoreRequest $request the CreateLogStore request parameters class.
* @throws Aliyun_Log_Exception
* return Aliyun_Log_Models_CreateLogstoreResponse
*/
public function createLogstore(Aliyun_Log_Models_CreateLogstoreRequest $request){
$headers = array ();
$params = array ();
$resource = '/logstores';
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["x-log-bodyrawsize"] = 0;
$headers["Content-Type"] = "application/json";
$body = array(
"logstoreName" => $request -> getLogstore(),
"ttl" => (int)($request -> getTtl()),
"shardCount" => (int)($request -> getShardCount())
);
$body_str = json_encode($body);
$headers["x-log-bodyrawsize"] = strlen($body_str);
list($resp,$header) = $this -> send("POST",$project,$body_str,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_CreateLogstoreResponse($resp,$header);
}
/**
* update logstore
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_UpdateLogstoreRequest $request the UpdateLogStore request parameters class.
* @throws Aliyun_Log_Exception
* return Aliyun_Log_Models_UpdateLogstoreResponse
*/
public function updateLogstore(Aliyun_Log_Models_UpdateLogstoreRequest $request){
$headers = array ();
$params = array ();
$project = $request->getProject () !== null ? $request->getProject () : '';
$headers["Content-Type"] = "application/json";
$body = array(
"logstoreName" => $request -> getLogstore(),
"ttl" => (int)($request -> getTtl()),
"shardCount" => (int)($request -> getShardCount())
);
$resource = '/logstores/'.$request -> getLogstore();
$body_str = json_encode($body);
$headers["x-log-bodyrawsize"] = strlen($body_str);
list($resp,$header) = $this -> send("PUT",$project,$body_str,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_UpdateLogstoreResponse($resp,$header);
}
/**
* List all logstores of requested project.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_ListLogstoresRequest $request the ListLogstores request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListLogstoresResponse
*/
public function listLogstores(Aliyun_Log_Models_ListLogstoresRequest $request) {
$headers = array ();
$params = array ();
$resource = '/logstores';
$project = $request->getProject () !== null ? $request->getProject () : '';
list ( $resp, $header ) = $this->send ( "GET", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListLogstoresResponse ( $resp, $header );
}
/**
* Delete logstore
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_DeleteLogstoreRequest $request the DeleteLogstores request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_DeleteLogstoresResponse
*/
public function deleteLogstore(Aliyun_Log_Models_DeleteLogstoreRequest $request) {
$headers = array ();
$params = array ();
$project = $request->getProject () !== null ? $request->getProject () : '';
$logstore = $request -> getLogstore() != null ? $request -> getLogstore() :"";
$resource = "/logstores/$logstore";
list ( $resp, $header ) = $this->send ( "DELETE", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_DeleteLogstoreResponse ( $resp, $header );
}
/**
* List all topics in a logstore.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_ListTopicsRequest $request the ListTopics request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListTopicsResponse
*/
public function listTopics(Aliyun_Log_Models_ListTopicsRequest $request) {
$headers = array ();
$params = array ();
if ($request->getToken () !== null)
$params ['token'] = $request->getToken ();
if ($request->getLine () !== null)
$params ['line'] = $request->getLine ();
$params ['type'] = 'topic';
$logstore = $request->getLogstore () !== null ? $request->getLogstore () : '';
$project = $request->getProject () !== null ? $request->getProject () : '';
$resource = "/logstores/$logstore";
list ( $resp, $header ) = $this->send ( "GET", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListTopicsResponse ( $resp, $header );
}
/**
* Get histograms of requested query from log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetHistogramsRequest $request the GetHistograms request parameters class.
* @throws Aliyun_Log_Exception
* @return array(json body, http header)
*/
public function getHistogramsJson(Aliyun_Log_Models_GetHistogramsRequest $request) {
$headers = array ();
$params = array ();
if ($request->getTopic () !== null)
$params ['topic'] = $request->getTopic ();
if ($request->getFrom () !== null)
$params ['from'] = $request->getFrom ();
if ($request->getTo () !== null)
$params ['to'] = $request->getTo ();
if ($request->getQuery () !== null)
$params ['query'] = $request->getQuery ();
$params ['type'] = 'histogram';
$logstore = $request->getLogstore () !== null ? $request->getLogstore () : '';
$project = $request->getProject () !== null ? $request->getProject () : '';
$resource = "/logstores/$logstore";
list ( $resp, $header ) = $this->send ( "GET", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return array($resp, $header);
}
/**
* Get histograms of requested query from log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetHistogramsRequest $request the GetHistograms request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_GetHistogramsResponse
*/
public function getHistograms(Aliyun_Log_Models_GetHistogramsRequest $request) {
$ret = $this->getHistogramsJson($request);
$resp = $ret[0];
$header = $ret[1];
return new Aliyun_Log_Models_GetHistogramsResponse ( $resp, $header );
}
/**
* Get logs from Log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetLogsRequest $request the GetLogs request parameters class.
* @throws Aliyun_Log_Exception
* @return array(json body, http header)
*/
public function getLogsJson(Aliyun_Log_Models_GetLogsRequest $request) {
$headers = array ();
$params = array ();
if ($request->getTopic () !== null)
$params ['topic'] = $request->getTopic ();
if ($request->getFrom () !== null)
$params ['from'] = $request->getFrom ();
if ($request->getTo () !== null)
$params ['to'] = $request->getTo ();
if ($request->getQuery () !== null)
$params ['query'] = $request->getQuery ();
$params ['type'] = 'log';
if ($request->getLine () !== null)
$params ['line'] = $request->getLine ();
if ($request->getOffset () !== null)
$params ['offset'] = $request->getOffset ();
if ($request->getOffset () !== null)
$params ['reverse'] = $request->getReverse () ? 'true' : 'false';
$logstore = $request->getLogstore () !== null ? $request->getLogstore () : '';
$project = $request->getProject () !== null ? $request->getProject () : '';
$resource = "/logstores/$logstore";
list ( $resp, $header ) = $this->send ( "GET", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return array($resp, $header);
//return new Aliyun_Log_Models_GetLogsResponse ( $resp, $header );
}
/**
* Get logs from Log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetLogsRequest $request the GetLogs request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_GetLogsResponse
*/
public function getLogs(Aliyun_Log_Models_GetLogsRequest $request) {
$ret = $this->getLogsJson($request);
$resp = $ret[0];
$header = $ret[1];
return new Aliyun_Log_Models_GetLogsResponse ( $resp, $header );
}
/**
* Get logs from Log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetProjectLogsRequest $request the GetLogs request parameters class.
* @throws Aliyun_Log_Exception
* @return array(json body, http header)
*/
public function getProjectLogsJson(Aliyun_Log_Models_GetProjectLogsRequest $request) {
$headers = array ();
$params = array ();
if ($request->getQuery () !== null)
$params ['query'] = $request->getQuery ();
$project = $request->getProject () !== null ? $request->getProject () : '';
$resource = "/logs";
list ( $resp, $header ) = $this->send ( "GET", $project, NULL, $resource, $params, $headers );
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return array($resp, $header);
//return new Aliyun_Log_Models_GetLogsResponse ( $resp, $header );
}
/**
* Get logs from Log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetProjectLogsRequest $request the GetLogs request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_GetLogsResponse
*/
public function getProjectLogs(Aliyun_Log_Models_GetProjectLogsRequest $request) {
$ret = $this->getProjectLogsJson($request);
$resp = $ret[0];
$header = $ret[1];
return new Aliyun_Log_Models_GetLogsResponse ( $resp, $header );
}
/**
* Get logs from Log service with shardid conditions.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_BatchGetLogsRequest $request the BatchGetLogs request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_BatchGetLogsResponse
*/
public function batchGetLogs(Aliyun_Log_Models_BatchGetLogsRequest $request) {
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$shardId = $request->getShardId()!==null?$request->getShardId():'';
if($request->getCount()!==null)
$params['count']=$request->getCount();
if($request->getCursor()!==null)
$params['cursor']=$request->getCursor();
if($request->getEndCursor()!==null)
$params['end_cursor']=$request->getEndCursor();
$params['type']='log';
$headers['Accept-Encoding']='gzip';
$headers['accept']='application/x-protobuf';
$resource = "/logstores/$logstore/shards/$shardId";
list($resp,$header) = $this->send("GET",$project,NULL,$resource,$params,$headers);
//$resp is a byteArray
$resp = gzuncompress($resp);
if($resp===false)$resp = new LogGroupList();
else {
$resp = new LogGroupList($resp);
}
return new Aliyun_Log_Models_BatchGetLogsResponse ( $resp, $header );
}
/**
* List Shards from Log service with Project and logstore conditions.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_ListShardsRequest $request the ListShards request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListShardsResponse
*/
public function listShards(Aliyun_Log_Models_ListShardsRequest $request) {
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$resource='/logstores/'.$logstore.'/shards';
list($resp,$header) = $this->send("GET",$project,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListShardsResponse ( $resp, $header );
}
/**
* split a shard into two shards with Project and logstore and shardId and midHash conditions.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_SplitShardRequest $request the SplitShard request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListShardsResponse
*/
public function splitShard(Aliyun_Log_Models_SplitShardRequest $request) {
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$shardId = $request -> getShardId()!== null ? $request -> getShardId():-1;
$midHash = $request -> getMidHash()!= null?$request -> getMidHash():"";
$resource='/logstores/'.$logstore.'/shards/'.$shardId;
$params["action"] = "split";
$params["key"] = $midHash;
list($resp,$header) = $this->send("POST",$project,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListShardsResponse ( $resp, $header );
}
/**
* merge two shards into one shard with Project and logstore and shardId and conditions.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_MergeShardsRequest $request the MergeShards request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListShardsResponse
*/
public function MergeShards(Aliyun_Log_Models_MergeShardsRequest $request) {
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$shardId = $request -> getShardId()!= null ? $request -> getShardId():-1;
$resource='/logstores/'.$logstore.'/shards/'.$shardId;
$params["action"] = "merge";
list($resp,$header) = $this->send("POST",$project,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListShardsResponse ( $resp, $header );
}
/**
* delete a read only shard with Project and logstore and shardId conditions.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_DeleteShardRequest $request the DeleteShard request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_ListShardsResponse
*/
public function DeleteShard(Aliyun_Log_Models_DeleteShardRequest $request) {
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$shardId = $request -> getShardId()!= null ? $request -> getShardId():-1;
$resource='/logstores/'.$logstore.'/shards/'.$shardId;
list($resp,$header) = $this->send("DELETE",$project,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
return new Aliyun_Log_Models_DeleteShardResponse ( $header );
}
/**
* Get cursor from Log service.
* Unsuccessful opertaion will cause an Aliyun_Log_Exception.
*
* @param Aliyun_Log_Models_GetCursorRequest $request the GetCursor request parameters class.
* @throws Aliyun_Log_Exception
* @return Aliyun_Log_Models_GetCursorResponse
*/
public function getCursor(Aliyun_Log_Models_GetCursorRequest $request){
$params = array();
$headers = array();
$project = $request->getProject()!==null?$request->getProject():'';
$logstore = $request->getLogstore()!==null?$request->getLogstore():'';
$shardId = $request->getShardId()!==null?$request->getShardId():'';
$mode = $request->getMode()!==null?$request->getMode():'';
$fromTime = $request->getFromTime()!==null?$request->getFromTime():-1;
if((empty($mode) xor $fromTime==-1)==false){
if(!empty($mode))
throw new Aliyun_Log_Exception ( 'RequestError',"Request is failed. Mode and fromTime can not be not empty simultaneously");
else
throw new Aliyun_Log_Exception ( 'RequestError',"Request is failed. Mode and fromTime can not be empty simultaneously");
}
if(!empty($mode) && strcmp($mode,'begin')!==0 && strcmp($mode,'end')!==0)
throw new Aliyun_Log_Exception ( 'RequestError',"Request is failed. Mode value invalid:$mode");
if($fromTime!==-1 && (is_integer($fromTime)==false || $fromTime<0))
throw new Aliyun_Log_Exception ( 'RequestError',"Request is failed. FromTime value invalid:$fromTime");
$params['type']='cursor';
if($fromTime!==-1)$params['from']=$fromTime;
else $params['mode'] = $mode;
$resource='/logstores/'.$logstore.'/shards/'.$shardId;
list($resp,$header) = $this->send("GET",$project,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_GetCursorResponse($resp,$header);
}
public function createConfig(Aliyun_Log_Models_CreateConfigRequest $request){
$params = array();
$headers = array();
$body=null;
if($request->getConfig()!==null){
$body = json_encode($request->getConfig()->toArray());
}
$headers ['Content-Type'] = 'application/json';
$resource = '/configs';
list($resp,$header) = $this->send("POST",NULL,$body,$resource,$params,$headers);
return new Aliyun_Log_Models_CreateConfigResponse($header);
}
public function updateConfig(Aliyun_Log_Models_UpdateConfigRequest $request){
$params = array();
$headers = array();
$body=null;
$configName='';
if($request->getConfig()!==null){
$body = json_encode($request->getConfig()->toArray());
$configName=($request->getConfig()->getConfigName()!==null)?$request->getConfig()->getConfigName():'';
}
$headers ['Content-Type'] = 'application/json';
$resource = '/configs/'.$configName;
list($resp,$header) = $this->send("PUT",NULL,$body,$resource,$params,$headers);
return new Aliyun_Log_Models_UpdateConfigResponse($header);
}
public function getConfig(Aliyun_Log_Models_GetConfigRequest $request){
$params = array();
$headers = array();
$configName = ($request->getConfigName()!==null)?$request->getConfigName():'';
$resource = '/configs/'.$configName;
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_GetConfigResponse($resp,$header);
}
public function deleteConfig(Aliyun_Log_Models_DeleteConfigRequest $request){
$params = array();
$headers = array();
$configName = ($request->getConfigName()!==null)?$request->getConfigName():'';
$resource = '/configs/'.$configName;
list($resp,$header) = $this->send("DELETE",NULL,NULL,$resource,$params,$headers);
return new Aliyun_Log_Models_DeleteConfigResponse($header);
}
public function listConfigs(Aliyun_Log_Models_ListConfigsRequest $request){
$params = array();
$headers = array();
if($request->getConfigName()!==null)$params['configName'] = $request->getConfigName();
if($request->getOffset()!==null)$params['offset'] = $request->getOffset();
if($request->getSize()!==null)$params['size'] = $request->getSize();
$resource = '/configs';
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListConfigsResponse($resp,$header);
}
public function createMachineGroup(Aliyun_Log_Models_CreateMachineGroupRequest $request){
$params = array();
$headers = array();
$body=null;
if($request->getMachineGroup()!==null){
$body = json_encode($request->getMachineGroup()->toArray());
}
$headers ['Content-Type'] = 'application/json';
$resource = '/machinegroups';
list($resp,$header) = $this->send("POST",NULL,$body,$resource,$params,$headers);
return new Aliyun_Log_Models_CreateMachineGroupResponse($header);
}
public function updateMachineGroup(Aliyun_Log_Models_UpdateMachineGroupRequest $request){
$params = array();
$headers = array();
$body=null;
$groupName='';
if($request->getMachineGroup()!==null){
$body = json_encode($request->getMachineGroup()->toArray());
$groupName=($request->getMachineGroup()->getGroupName()!==null)?$request->getMachineGroup()->getGroupName():'';
}
$headers ['Content-Type'] = 'application/json';
$resource = '/machinegroups/'.$groupName;
list($resp,$header) = $this->send("PUT",NULL,$body,$resource,$params,$headers);
return new Aliyun_Log_Models_UpdateMachineGroupResponse($header);
}
public function getMachineGroup(Aliyun_Log_Models_GetMachineGroupRequest $request){
$params = array();
$headers = array();
$groupName = ($request->getGroupName()!==null)?$request->getGroupName():'';
$resource = '/machinegroups/'.$groupName;
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_GetMachineGroupResponse($resp,$header);
}
public function deleteMachineGroup(Aliyun_Log_Models_DeleteMachineGroupRequest $request){
$params = array();
$headers = array();
$groupName = ($request->getGroupName()!==null)?$request->getGroupName():'';
$resource = '/machinegroups/'.$groupName;
list($resp,$header) = $this->send("DELETE",NULL,NULL,$resource,$params,$headers);
return new Aliyun_Log_Models_DeleteMachineGroupResponse($header);
}
public function listMachineGroups(Aliyun_Log_Models_ListMachineGroupsRequest $request){
$params = array();
$headers = array();
if($request->getGroupName()!==null)$params['groupName'] = $request->getGroupName();
if($request->getOffset()!==null)$params['offset'] = $request->getOffset();
if($request->getSize()!==null)$params['size'] = $request->getSize();
$resource = '/machinegroups';
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListMachineGroupsResponse($resp,$header);
}
public function applyConfigToMachineGroup(Aliyun_Log_Models_ApplyConfigToMachineGroupRequest $request){
$params = array();
$headers = array();
$configName=$request->getConfigName();
$groupName=$request->getGroupName();
$headers ['Content-Type'] = 'application/json';
$resource = '/machinegroups/'.$groupName.'/configs/'.$configName;
list($resp,$header) = $this->send("PUT",NULL,NULL,$resource,$params,$headers);
return new Aliyun_Log_Models_ApplyConfigToMachineGroupResponse($header);
}
public function removeConfigFromMachineGroup(Aliyun_Log_Models_RemoveConfigFromMachineGroupRequest $request){
$params = array();
$headers = array();
$configName=$request->getConfigName();
$groupName=$request->getGroupName();
$headers ['Content-Type'] = 'application/json';
$resource = '/machinegroups/'.$groupName.'/configs/'.$configName;
list($resp,$header) = $this->send("DELETE",NULL,NULL,$resource,$params,$headers);
return new Aliyun_Log_Models_RemoveConfigFromMachineGroupResponse($header);
}
public function getMachine(Aliyun_Log_Models_GetMachineRequest $request){
$params = array();
$headers = array();
$uuid = ($request->getUuid()!==null)?$request->getUuid():'';
$resource = '/machines/'.$uuid;
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_GetMachineResponse($resp,$header);
}
public function createACL(Aliyun_Log_Models_CreateACLRequest $request){
$params = array();
$headers = array();
$body=null;
if($request->getAcl()!==null){
$body = json_encode($request->getAcl()->toArray());
}
$headers ['Content-Type'] = 'application/json';
$resource = '/acls';
list($resp,$header) = $this->send("POST",NULL,$body,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_CreateACLResponse($resp,$header);
}
public function updateACL(Aliyun_Log_Models_UpdateACLRequest $request){
$params = array();
$headers = array();
$body=null;
$aclId='';
if($request->getAcl()!==null){
$body = json_encode($request->getAcl()->toArray());
$aclId=($request->getAcl()->getAclId()!==null)?$request->getAcl()->getAclId():'';
}
$headers ['Content-Type'] = 'application/json';
$resource = '/acls/'.$aclId;
list($resp,$header) = $this->send("PUT",NULL,$body,$resource,$params,$headers);
return new Aliyun_Log_Models_UpdateACLResponse($header);
}
public function getACL(Aliyun_Log_Models_GetACLRequest $request){
$params = array();
$headers = array();
$aclId = ($request->getAclId()!==null)?$request->getAclId():'';
$resource = '/acls/'.$aclId;
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_GetACLResponse($resp,$header);
}
public function deleteACL(Aliyun_Log_Models_DeleteACLRequest $request){
$params = array();
$headers = array();
$aclId = ($request->getAclId()!==null)?$request->getAclId():'';
$resource = '/acls/'.$aclId;
list($resp,$header) = $this->send("DELETE",NULL,NULL,$resource,$params,$headers);
return new Aliyun_Log_Models_DeleteACLResponse($header);
}
public function listACLs(Aliyun_Log_Models_ListACLsRequest $request){
$params = array();
$headers = array();
if($request->getPrincipleId()!==null)$params['principleId'] = $request->getPrincipleId();
if($request->getOffset()!==null)$params['offset'] = $request->getOffset();
if($request->getSize()!==null)$params['size'] = $request->getSize();
$resource = '/acls';
list($resp,$header) = $this->send("GET",NULL,NULL,$resource,$params,$headers);
$requestId = isset ( $header ['x-log-requestid'] ) ? $header ['x-log-requestid'] : '';
$resp = $this->parseToJson ( $resp, $requestId );
return new Aliyun_Log_Models_ListACLsResponse($resp,$header);
}
}