public GetCursorResponse GetCursor(GetCursorRequest request) { using (ServiceRequest sReq = new ServiceRequest()) { sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + request.Logstore + LogConsts.RESOURCE_SHARDS + LogConsts.RESOURCE_SEPARATOR + request.Shard; FillCommonHeaders(sReq); FillCommonParameters(sReq); request.AddSpecHeadersTo(sReq.Headers); request.AddSpecParamsTo(sReq.Parameters); ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); JObject body = LogClientTools.ParserResponseToJObject(response.Content); GetCursorResponse getCursorResp = new GetCursorResponse(response.Headers, body.GetValue("cursor").ToString()); return(getCursorResp); } } }
public BatchGetLogsResponse BatchGetLogs(BatchGetLogsRequest request) { using (ServiceRequest sReq = new ServiceRequest()) { sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + request.Logstore + LogConsts.RESOURCE_SHARDS + LogConsts.RESOURCE_SEPARATOR + request.Shard; FillCommonHeaders(sReq); FillCommonParameters(sReq); request.AddSpecHeadersTo(sReq.Headers); request.AddSpecParamsTo(sReq.Parameters); ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); BatchGetLogsResponse batchGetLogsResp = new BatchGetLogsResponse(response.Headers, response.Content); return(batchGetLogsResp); } } }
/// <summary> /// Get The log status(histogram info) from sls server which match input /// parameters. All the logs with logstore and topic in [from, to) which /// contain the keys in query are the matched data. /// </summary> /// <param name="request">The get histograms request</param> /// <exception>LogException</exception> /// <returns>The get histograms response</returns> public GetHistogramsResponse GetHistograms(GetHistogramsRequest request) { ServiceRequest sReq = new ServiceRequest(); sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); //use empty string to replace Logstore if not set by user explicitly string logstore = request.IsSetLogstore() ? request.Logstore : String.Empty; sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + logstore; FillCommonHeaders(sReq); FillCommonParameters(sReq); sReq.Parameters.Add(LogConsts.PARAMETER_TYPE, LogConsts.VALUE_TYPE_STATUS); if (request.IsSetTopic()) { sReq.Parameters.Add(LogConsts.PARAMETER_TOPIC, request.Topic); } if (request.IsSetFrom()) { sReq.Parameters.Add(LogConsts.PARAMETER_FROM, request.From.ToString()); } if (request.IsSetTo()) { sReq.Parameters.Add(LogConsts.PARAMETER_TO, request.To.ToString()); } if (request.IsSetQuery()) { sReq.Parameters.Add(LogConsts.PARAMETER_QUERY, request.Query); } ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); JArray body = LogClientTools.ParserResponseToJArray(response.Content); GetHistogramsResponse res = new GetHistogramsResponse(response.Headers, body); return(res); } }
internal PutLogsResponse PutLogs(PutLogsRequest request, LogGroup logGroup) { if (logGroup.LogsCount > LogConsts.LIMIT_LOG_COUNT) { throw new LogException("InvalidLogSize", "logItems' length exceeds maximum limitation: " + LogConsts.LIMIT_LOG_COUNT + " lines."); } else if (logGroup.SerializedSize > LogConsts.LIMIT_LOG_SIZE) { throw new LogException("InvalidLogSize", "logItems' size exceeds maximum limitation: " + LogConsts.LIMIT_LOG_SIZE + " byte."); } ServiceRequest sReq = new ServiceRequest(); sReq.Method = HttpMethod.Post; sReq.Endpoint = BuildReqEndpoint(request); //use empty string to replace Logstore if not set by user explicitly string logstore = request.IsSetLogstore() ? request.Logstore : String.Empty; sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + logstore; FillCommonHeaders(sReq); FillCommonParameters(sReq); sReq.Headers.Add(LogConsts.NAME_HEADER_CONTENTTYPE, LogConsts.PBVALUE_HEADER_CONTENTTYPE); byte[] logBytes = logGroup.ToByteArray(); sReq.Headers[LogConsts.NAME_HEADER_BODYRAWSIZE] = logBytes.Length.ToString(); sReq.Headers.Add(LogConsts.NAME_HEADER_COMPRESSTYPE, LogConsts.VALUE_HEADER_COMPRESSTYPE_LZ4); logBytes = LogClientTools.CompressToLz4(logBytes); sReq.Headers.Add(LogConsts.NAME_HEADER_MD5, LogClientTools.GetMd5Value(logBytes)); sReq.Content = new MemoryStream(logBytes); ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Post); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); PutLogsResponse putLogResp = new PutLogsResponse(response.Headers); return(putLogResp); } }
/// <summary> /// Get the topics in the logtstore /// </summary> /// <param name="request">The list topics request</param> /// <exception>LogException</exception> /// <returns>The List topics response</returns> public ListTopicsResponse ListTopics(ListTopicsRequest request) { ServiceRequest sReq = new ServiceRequest(); sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); //use empty string to replace Logstore if not set by user explicitly string logstore = request.IsSetLogstore() ? request.Logstore : String.Empty; sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES + LogConsts.RESOURCE_SEPARATOR + logstore; FillCommonHeaders(sReq); FillCommonParameters(sReq); sReq.Parameters.Add(LogConsts.PARAMETER_TYPE, LogConsts.RESOURCE_TOPIC); if (request.IsSetToken()) { sReq.Parameters.Add(LogConsts.PARAMETER_TOKEN, request.Token); } if (request.IsSetLines()) { sReq.Parameters.Add(LogConsts.PARAMETER_LINES, request.Lines.ToString()); } ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); JArray body = LogClientTools.ParserResponseToJArray(response.Content); ListTopicsResponse res = new ListTopicsResponse(response.Headers, body); return(res); } }
public BatchGetLogsResponse(IDictionary <String, String> headers, Stream body) : base(headers) { headers.TryGetValue(LogConsts.NAME_HEADER_NEXT_CURSOR, out _nextCursor); String tmpLogCount, tmpRawSize, tmpContentLength; if (headers.TryGetValue(LogConsts.NAME_HEADER_LOG_COUNT, out tmpLogCount)) { int.TryParse(tmpLogCount, out _logCount); } if (headers.TryGetValue(LogConsts.NAME_HEADER_LOG_BODY_RAW_SIZE, out tmpRawSize)) { int.TryParse(tmpRawSize, out _rawSize); } int contentLength = 0; if (headers.TryGetValue("Content-Length", out tmpContentLength)) { int.TryParse(tmpContentLength, out contentLength); } _logGroupList = LogGroupList.ParseFrom(LogClientTools.DecompressFromLZ4(body, _rawSize)); }
/// <summary> /// List all of the logstores under specified project /// </summary> /// <param name="request">The request to list logstores</param> /// <exception>LogException</exception> /// <returns>The response of list log logstores</returns> public ListLogstoresResponse ListLogstores(ListLogstoresRequest request) { using (ServiceRequest sReq = new ServiceRequest()) { sReq.Method = HttpMethod.Get; sReq.Endpoint = BuildReqEndpoint(request); sReq.ResourcePath = LogConsts.RESOURCE_LOGSTORES; FillCommonHeaders(sReq); FillCommonParameters(sReq); ExecutionContext context = new ExecutionContext(); context.Signer = new LogRequestSigner(sReq.ResourcePath, HttpMethod.Get); context.Credentials = new ServiceCredentials(this.AccessKeyId, this.AccessKey); using (ServiceResponse response = serviceClient.Send(sReq, context)) { LogClientTools.ResponseErrorCheck(response, context.Credentials); JObject body = LogClientTools.ParserResponseToJObject(response.Content); ListLogstoresResponse res = new ListLogstoresResponse(response.Headers, body); return(res); } } }
public void TestCalcSignature() { String signature = LogClientTools.SigInternal(ClientTestData.TEST_SIGNATURE.Key, ClientTestData.TEST_ACCESSKEYID, ClientTestData.TEST_ACCESSKEY); Assert.IsTrue(signature.CompareTo(ClientTestData.TEST_SIGNATURE.Value) == 0); }
public void TestCalcMD5() { Assert.IsTrue(LogClientTools.GetMd5Value(ClientTestData.TEST_COMPUTMD5.Key).CompareTo(ClientTestData.TEST_COMPUTMD5.Value) == 0); }