public void send_execute(RestRequest request) { oprot_.WriteMessageBegin(new TMessage("execute", TMessageType.Call, 0)); var args = new execute_args(); args.Request = request; args.Write(oprot_); oprot_.WriteMessageEnd(); oprot_.Transport.Flush(); }
public ElasticsearchResponse<Stream> HeadSync(Uri uri, IRequestConfiguration requestConfiguration = null) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; restRequest.Uri = uri; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest, requestConfiguration); }
public Task<ElasticsearchResponse> Delete(string path) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; restRequest.Uri = path; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return Task.Factory.StartNew<ElasticsearchResponse>(() => { return this.Execute(restRequest); }); }
public Task<ElasticsearchResponse<Stream>> Head(Uri uri, IRequestConfiguration requestConfiguration = null) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; restRequest.Uri = uri; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() => { return this.Execute(restRequest, requestConfiguration); }); }
public Task<ElasticsearchResponse<Stream>> Delete(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return Task.Factory.StartNew<ElasticsearchResponse<Stream>>(() => { return this.Execute(restRequest, deserializationState); }); }
public RestResponse execute(RestRequest request) { send_execute(request); return recv_execute(); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { request = new RestRequest(); request.Read(iprot); __isset.request = true; } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
private ElasticsearchResponse<Stream> Execute(RestRequest restRequest, object deserializationState) { //RestResponse result = GetClient().execute(restRequest); // var method = Enum.GetName(typeof (Method), restRequest.Method); var path = restRequest.Uri.ToString(); var requestData = restRequest.Body; if (!this._resourceLock.WaitOne(this._timeout)) { var m = "Could not start the thrift operation before the timeout of " + this._timeout + "ms completed while waiting for the semaphore"; return ElasticsearchResponse<Stream>.CreateError(this._connectionSettings, new TimeoutException(m), method, path, requestData); } try { Rest.Client client = null; if (!this._clients.TryDequeue(out client)) { var m = string.Format("Could dequeue a thrift client from internal socket pool of size {0}", this._poolSize); var status = ElasticsearchResponse<Stream>.CreateError(this._connectionSettings, new Exception(m), method, path, requestData); return status; } try { if (!client.InputProtocol.Transport.IsOpen) client.InputProtocol.Transport.Open(); var result = client.execute(restRequest); if (result.Status == Status.OK || result.Status == Status.CREATED || result.Status == Status.ACCEPTED) { var response = ElasticsearchResponse<Stream>.Create( this._connectionSettings, (int)result.Status, method, path, requestData, new MemoryStream(result.Body ?? new byte[0])); return response; } else { var response = ElasticsearchResponse<Stream>.Create( this._connectionSettings, (int)result.Status, method, path, requestData, new MemoryStream(result.Body ?? new byte[0])); return response; } } catch (SocketException) { client.InputProtocol.Transport.Close(); throw; } catch (IOException) { client.InputProtocol.Transport.Close(); throw; } finally { //make sure we make the client available again. this._clients.Enqueue(client); } } catch (Exception e) { return ElasticsearchResponse<Stream>.CreateError(this._connectionSettings, e, method, path, requestData); } finally { this._resourceLock.Release(); } }
public ElasticsearchResponse<Stream> PutSync(Uri uri, byte[] data, IRequestConnectionConfiguration deserializationState = null) { var restRequest = new RestRequest(); restRequest.Method = Method.PUT; restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest, deserializationState); }
public ElasticsearchResponse DeleteSync(string path) { var restRequest = new RestRequest(); restRequest.Method = Method.DELETE; restRequest.Uri = path; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); }
public ElasticsearchResponse PutSync(string path, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.PUT; restRequest.Uri = path; restRequest.Body = data; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); }
private ElasticsearchResponse<Stream> Execute(RestRequest restRequest, object requestConfiguration) { var method = Enum.GetName(typeof(Method), restRequest.Method); var requestData = restRequest.Body; var uri = restRequest.Uri; var path = uri.ToString(); if (this._resourceLock != null && !this._resourceLock.WaitOne(this._timeout)) { var m = "Could not start the thrift operation before the timeout of " + this._timeout + "ms completed while waiting for the semaphore"; return ElasticsearchResponse<Stream>.CreateError(this._connectionSettings, new TimeoutException(m), method, path, requestData); } try { var baseUri = this.GetBaseBaseUri(uri); string errorMessage; var client = this.GetClientForUri(baseUri, out errorMessage); if (client == null) return ElasticsearchResponse<Stream>.CreateError( this._connectionSettings, new Exception(errorMessage), method, path, requestData); try { if (!client.InputProtocol.Transport.IsOpen) client.InputProtocol.Transport.Open(); var result = client.execute(restRequest); if (result.Status == Status.OK || result.Status == Status.CREATED || result.Status == Status.ACCEPTED) { var response = ElasticsearchResponse<Stream>.Create( this._connectionSettings, (int)result.Status, method, path, requestData, new MemoryStream(result.Body ?? new byte[0])); return response; } else { var response = ElasticsearchResponse<Stream>.Create( this._connectionSettings, (int)result.Status, method, path, requestData, new MemoryStream(result.Body ?? new byte[0])); return response; } } catch (SocketException) { client.InputProtocol.Transport.Close(); throw; } catch (IOException) { client.InputProtocol.Transport.Close(); throw; } catch (TTransportException) { client.InputProtocol.Transport.Close(); throw; } finally { this.EnqueueClient(baseUri, client); } } catch (Exception e) { return ElasticsearchResponse<Stream>.CreateError(this._connectionSettings, e, method, path, requestData); } finally { if (this._resourceLock != null) this._resourceLock.Release(); } }
public IList<Uri> Sniff(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.GET; restRequest.Uri = new Uri(uri,"/_nodes/_all/clear?timeout=" + this._connectionSettings.PingTimeout.GetValueOrDefault(50)); restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); var r = this.Execute(restRequest); using (var memoryStream = new MemoryStream(r.ResultBytes)) { return Sniffer.FromStream(memoryStream, this._connectionSettings.Serializer); } }
public Task<ElasticsearchResponse> Put(Uri uri, byte[] data) { var restRequest = new RestRequest(); restRequest.Method = Method.PUT; restRequest.Uri = uri; restRequest.Body = data; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return Task.Factory.StartNew<ElasticsearchResponse>(() => { return this.Execute(restRequest); }); }
public bool Ping(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; restRequest.Uri = uri; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); var r = this.Execute(restRequest); return r.Success; }
public ElasticsearchResponse HeadSync(Uri uri) { var restRequest = new RestRequest(); restRequest.Method = Method.HEAD; restRequest.Uri = uri; restRequest.Headers = new Dictionary<string, string>(); restRequest.Headers.Add("Content-Type", "application/json"); return this.Execute(restRequest); }