diff --git a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/ElasticSearch.Net.Aws.IntegrationTests.csproj b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/ElasticSearch.Net.Aws.IntegrationTests.csproj index 0382299..651d5b7 100644 --- a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/ElasticSearch.Net.Aws.IntegrationTests.csproj +++ b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/ElasticSearch.Net.Aws.IntegrationTests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.0;net461 + netcoreapp2.0 ElasticSearch.Net.Aws.IntegrationTests ElasticSearch.Net.Aws.IntegrationTests true @@ -17,16 +17,10 @@ - - + - - - - - diff --git a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PingTests.cs b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PingTests.cs index 5634ce2..bcc8379 100644 --- a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PingTests.cs +++ b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PingTests.cs @@ -44,7 +44,7 @@ public void Random_encoded_url_should_work() var pool = new SingleNodeConnectionPool(new Uri(TestConfig.Endpoint)); var config = new ConnectionConfiguration(pool, httpConnection); var client = new ElasticLowLevelClient(config); - var response = client.Get(randomString, string.Join(",", Enumerable.Repeat(randomString, 2)), randomString); + var response = client.Get(randomString, randomString); Assert.AreEqual(404, response.HttpStatusCode.GetValueOrDefault(-1)); } @@ -55,7 +55,7 @@ public void Asterisk_encoded_url_should_work() var pool = new SingleNodeConnectionPool(new Uri(TestConfig.Endpoint)); var config = new ConnectionConfiguration(pool, httpConnection); var client = new ElasticLowLevelClient(config); - var response = client.Get("index*", "type", "id"); + var response = client.Get("index*", "id"); Assert.AreEqual(404, response.HttpStatusCode.GetValueOrDefault(-1)); } } diff --git a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PostTests.cs b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PostTests.cs index 117e25f..555ebef 100644 --- a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PostTests.cs +++ b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.IntegrationTests/PostTests.cs @@ -22,6 +22,7 @@ public void Setup() var httpConnection = new AwsHttpConnection(Region); var pool = new SingleNodeConnectionPool(new Uri(TestConfig.Endpoint)); var config = new ConnectionConfiguration(pool, httpConnection); + config.DisableDirectStreaming(); _client = new ElasticLowLevelClient(config); _indexName = $"unittest_{Guid.NewGuid().ToString("n")}"; } @@ -36,10 +37,10 @@ public void TearDown() public void SimplePost_should_work() { var id = Guid.NewGuid().ToString("n"); - var response = _client.Create(_indexName, "test", id, PostData.Serializable(new { message = "Hello, World!" })); - Assert.AreEqual(true, response.Success); - var getResponse = _client.Get(_indexName, "test", id); - Assert.AreEqual(true, getResponse.Success); + var response = _client.Create(_indexName, id, PostData.Serializable(new { message = "Hello, World!" })); + Assert.AreEqual(true, response.Success, response.DebugInformation); + var getResponse = _client.Get(_indexName, id); + Assert.AreEqual(true, getResponse.Success, getResponse.DebugInformation); StringAssert.Contains("Hello, World!", getResponse.Body); } } diff --git a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/ElasticSearch.Net.Aws.Tests.csproj b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/ElasticSearch.Net.Aws.Tests.csproj index e3addf9..043f850 100644 --- a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/ElasticSearch.Net.Aws.Tests.csproj +++ b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/ElasticSearch.Net.Aws.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.0;net461 + netcoreapp2.0 ElasticSearch.Net.Aws.Tests ElasticSearch.Net.Aws.Tests true @@ -17,21 +17,10 @@ - - - - - - - - - - - diff --git a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/SignUtilTests.cs b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/SignUtilTests.cs index 2b233ad..aaf2b73 100644 --- a/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/SignUtilTests.cs +++ b/src/Elasticsearch.Net.Aws/ElasticSearch.Net.Aws.Tests/SignUtilTests.cs @@ -18,19 +18,11 @@ public void SetUp() { var encoding = new UTF8Encoding(false); _sampleBody = encoding.GetBytes("Action=ListUsers&Version=2010-05-08"); -#if NETCOREAPP var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, "https://iam.amazonaws.com/"); request.Content = new System.Net.Http.ByteArrayContent(_sampleBody); request.Content.Headers.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); request.Headers.TryAddWithoutValidation("X-Amz-Date", "20110909T233600Z"); _sampleRequest = new HttpRequestMessageAdapter(request); -#elif NET461 - var request = System.Net.WebRequest.CreateHttp("https://iam.amazonaws.com/"); - request.Method = "POST"; - request.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; - request.Headers["X-Amz-Date"] = "20110909T233600Z"; - _sampleRequest = new HttpWebRequestAdapter(request); -#endif } [Test] diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs index 69b5649..27e3547 100644 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs +++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs @@ -43,21 +43,12 @@ public AwsHttpConnection() : this( { } -#if !NETSTANDARD - protected override System.Net.HttpWebRequest CreateHttpWebRequest(RequestData requestData) - { - var request = base.CreateHttpWebRequest(requestData); - SignRequest(new HttpWebRequestAdapter(request), requestData); - return request; - } -#else protected override HttpRequestMessage CreateHttpRequestMessage(RequestData requestData) { var request = base.CreateHttpRequestMessage(requestData); SignRequest(new HttpRequestMessageAdapter(request), requestData); return request; } -#endif private void SignRequest(IRequest request, RequestData requestData) { @@ -74,7 +65,16 @@ private void SignRequest(IRequest request, RequestData requestData) } } } - var credentials = _credentials.GetCredentials(); + ImmutableCredentials credentials; + try + { + credentials = _credentials.GetCredentials(); + } + catch (Exception e) + { + throw new Exception("Unable to retrieve credentials required to sign the request.", e); + } + if (credentials == null) { throw new Exception("Unable to retrieve credentials required to sign the request."); diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws.csproj b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws.csproj index b74a369..35ea8b5 100644 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws.csproj +++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws.csproj @@ -1,8 +1,8 @@  - 6.1.0 - net461;netstandard2.0 + 7.0.0 + netstandard2.0 Elasticsearch.Net.Aws Elasticsearch.Net.Aws 6.1.0 @@ -14,9 +14,9 @@ Use AWSSDK.Core to get credentials instead of custom code. elasticsearch elastic search aws amazon https://github.com/bcuff/elasticsearch-net-aws - 6.1.0 - 6.1.0 - 6.1.0 + 7.0.0 + 7.0.0 + 7.0.0 @@ -26,21 +26,9 @@ - - - - - - - - - - - - - - - + + + diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/HttpWebRequestAdapter.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/HttpWebRequestAdapter.cs deleted file mode 100644 index 0270933..0000000 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/HttpWebRequestAdapter.cs +++ /dev/null @@ -1,42 +0,0 @@ -#if !NETSTANDARD - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Net; - -namespace Elasticsearch.Net.Aws -{ - internal class HttpWebRequestAdapter : IRequest - { - private class HeadersAdapter : IHeaders - { - private readonly WebHeaderCollection _headers; - - public HeadersAdapter(WebHeaderCollection headers) - { - _headers = headers; - } - - public string XAmzDate { get { return _headers["x-amz-date"]; } set { _headers["x-amz-date"] = value; } } - public string Authorization { get { return _headers[HttpRequestHeader.Authorization]; } set { _headers[HttpRequestHeader.Authorization] = value; } } - public string XAmzSecurityToken { get { return _headers["x-amz-security-token"]; } set { _headers["x-amz-security-token"] = value; } } - public IEnumerable GetValues(string name) => _headers.GetValues(name); - public IEnumerable Keys => _headers.AllKeys; - } - - private readonly HttpWebRequest _request; - - public HttpWebRequestAdapter(HttpWebRequest request) - { - _request = request; - Headers = new HeadersAdapter(_request.Headers); - } - - public IHeaders Headers { get; private set; } - public string Method => _request.Method; - public Uri RequestUri => _request.RequestUri; - } -} - -#endif \ No newline at end of file diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/SignV4Util.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/SignV4Util.cs index 792e1e7..c222043 100644 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/SignV4Util.cs +++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/SignV4Util.cs @@ -157,10 +157,7 @@ private static void WriteSignedHeaders(Dictionary canonicalHeade } } -#if !NETSTANDARD - private static NameValueCollection ParseQueryString(string query) => - System.Web.HttpUtility.ParseQueryString(query); -#else + private static NameValueCollection ParseQueryString(string query) => Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(query) .Aggregate(new NameValueCollection(), (col, kv) => @@ -168,7 +165,7 @@ private static NameValueCollection ParseQueryString(string query) => kv.Value.ToList().ForEach(v => col.Add(kv.Key, v)); return col; }); -#endif + public static string GetCanonicalQueryString(this Uri uri) { if (string.IsNullOrWhiteSpace(uri.Query)) return string.Empty;