From fddcb6433e877a8d850a0c50b20043d0ec6fc1fb Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Thu, 26 Apr 2018 16:02:57 +1000 Subject: [PATCH 1/4] Backport of #3202 to 5.x --- .../Bucket/IpRange/IpRangeAggregation.cs | 12 +-- .../Bucket/IpRange/IpRangeAggregationRange.cs | 39 ++++++++++ src/Nest/CommonOptions/Range/Ranges.cs | 14 ++++ .../Mapping/DynamicTemplate/SingleMapping.cs | 5 ++ .../Types/Core/Range/Ip/IpRangeAttribute.cs | 10 +++ .../Types/Core/Range/Ip/IpRangeProperty.cs | 21 ++++++ .../Types/Core/Range/RangePropertyBase.cs | 8 +- .../Mapping/Types/Core/Range/RangeType.cs | 8 +- src/Nest/Mapping/Types/FieldType.cs | 2 + src/Nest/Mapping/Types/Properties-Scalar.cs | 3 + src/Nest/Mapping/Types/Properties.cs | 5 ++ .../Mapping/Types/PropertyJsonConverter.cs | 2 + src/Nest/Mapping/Visitor/PropertyWalker.cs | 3 + .../IpRange/IpRangeAggregationUsageTests.cs | 29 ++++---- src/Tests/Framework/MockData/Ranges.cs | 24 ++++++ .../PutMapping/PutMappingApiTest.cs | 5 ++ .../Range/IpRange/IpRangeAttributeTests.cs | 26 +++++++ .../Range/IpRange/IpRangePropertyTests.cs | 73 +++++++++++++++++++ 18 files changed, 262 insertions(+), 27 deletions(-) create mode 100644 src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs create mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs create mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs create mode 100644 src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs create mode 100644 src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs diff --git a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs index 05b909995b6..8b723a35636 100644 --- a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs +++ b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs @@ -13,14 +13,14 @@ public interface IIpRangeAggregation : IBucketAggregation [JsonProperty("field")] Field Field { get; set; } - [JsonProperty(PropertyName = "ranges")] - IEnumerable Ranges { get; set; } + [JsonProperty("ranges")] + IEnumerable Ranges { get; set; } } public class IpRangeAggregation : BucketAggregationBase, IIpRangeAggregation { public Field Field { get; set; } - public IEnumerable Ranges { get; set; } + public IEnumerable Ranges { get; set; } internal IpRangeAggregation() { } @@ -36,13 +36,13 @@ public class IpRangeAggregationDescriptor : { Field IIpRangeAggregation.Field { get; set; } - IEnumerable IIpRangeAggregation.Ranges { get; set; } + IEnumerable IIpRangeAggregation.Ranges { get; set; } public IpRangeAggregationDescriptor Field(Field field) => Assign(a => a.Field = field); public IpRangeAggregationDescriptor Field(Expression> field) => Assign(a => a.Field = field); - public IpRangeAggregationDescriptor Ranges(params Func[] ranges) => - Assign(a => a.Ranges = ranges?.Select(r => r(new IpRangeDescriptor()))); + public IpRangeAggregationDescriptor Ranges(params Func[] ranges) => + Assign(a => a.Ranges = ranges?.Select(r => r(new IpRangeAggregationRangeDescriptor()))); } } diff --git a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs new file mode 100644 index 00000000000..5fed46719e5 --- /dev/null +++ b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json; + +namespace Nest +{ + [JsonObject(MemberSerialization = MemberSerialization.OptIn)] + [JsonConverter(typeof(ReadAsTypeJsonConverter))] + public interface IIpRangeAggregationRange + { + [JsonProperty("from")] + string From { get; set; } + + [JsonProperty("to")] + string To { get; set; } + + [JsonProperty("mask")] + string Mask { get; set; } + } + + public class IpRangeAggregationRange : IIpRangeAggregationRange + { + public string From { get; set; } + + public string To { get; set; } + + public string Mask { get; set; } + } + + public class IpRangeAggregationRangeDescriptor + : DescriptorBase, IIpRangeAggregationRange + { + string IIpRangeAggregationRange.From { get; set; } + string IIpRangeAggregationRange.Mask { get; set; } + string IIpRangeAggregationRange.To { get; set; } + + public IpRangeAggregationRangeDescriptor From(string from) => Assign(a => a.From = from); + public IpRangeAggregationRangeDescriptor To(string to) => Assign(a => a.To = to); + public IpRangeAggregationRangeDescriptor Mask(string mask) => Assign(a => a.Mask = mask); + } +} diff --git a/src/Nest/CommonOptions/Range/Ranges.cs b/src/Nest/CommonOptions/Range/Ranges.cs index e820dd05c70..d44d4edfad2 100644 --- a/src/Nest/CommonOptions/Range/Ranges.cs +++ b/src/Nest/CommonOptions/Range/Ranges.cs @@ -73,4 +73,18 @@ public class LongRange [JsonProperty("lt")] public long? LessThan { get; set; } } + public class IpAddressRange + { + [JsonProperty("gte")] + public string GreaterThanOrEqualTo { get; set; } + + [JsonProperty("lte")] + public string LessThanOrEqualTo { get; set; } + + [JsonProperty("gt")] + public string GreaterThan { get; set; } + + [JsonProperty("lt")] + public string LessThan { get; set; } + } } diff --git a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs index 1bf9a729175..5aaa86f6616 100644 --- a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs +++ b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs @@ -83,6 +83,9 @@ public IProperty IntegerRange(Func, IIntegerRa public IProperty LongRange(Func, ILongRangeProperty> selector) => selector?.Invoke(new LongRangePropertyDescriptor()); + public IProperty IpRange(Func, IIpRangeProperty> selector) => + selector?.Invoke(new IpRangePropertyDescriptor()); + #pragma warning disable CS3001 // Argument type is not CLS-compliant public IProperty Scalar(Expression> field, Func, INumberProperty> selector = null) => selector.InvokeOrDefault(new NumberPropertyDescriptor().Name(field).Type(NumberType.Integer)); @@ -246,6 +249,8 @@ public IProperty Scalar(Expression> field, Func().Name(field)); public IProperty Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field)); + public IProperty Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => + selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field)); #pragma warning restore CS3001 // Argument type is not CLS-compliant } } diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs new file mode 100644 index 00000000000..b7c5fd9a824 --- /dev/null +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs @@ -0,0 +1,10 @@ +using System; +using Elasticsearch.Net; + +namespace Nest +{ + public class IpRangeAttribute : RangePropertyAttributeBase, IIpRangeProperty + { + public IpRangeAttribute() : base(RangeType.IpRange) { } + } +} diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs new file mode 100644 index 00000000000..58cd7d286f4 --- /dev/null +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs @@ -0,0 +1,21 @@ +using System; +using Elasticsearch.Net; +using Newtonsoft.Json; + +namespace Nest +{ + [JsonObject(MemberSerialization.OptIn)] + public interface IIpRangeProperty : IRangeProperty { } + + public class IpRangeProperty : RangePropertyBase, IIpRangeProperty + { + public IpRangeProperty() : base(RangeType.IpRange) { } + } + + public class IpRangePropertyDescriptor + : RangePropertyDescriptorBase, IIpRangeProperty, T>, IIpRangeProperty + where T : class + { + public IpRangePropertyDescriptor() : base(RangeType.IpRange) { } + } +} diff --git a/src/Nest/Mapping/Types/Core/Range/RangePropertyBase.cs b/src/Nest/Mapping/Types/Core/Range/RangePropertyBase.cs index 64786115091..fddb11e1e94 100644 --- a/src/Nest/Mapping/Types/Core/Range/RangePropertyBase.cs +++ b/src/Nest/Mapping/Types/Core/Range/RangePropertyBase.cs @@ -65,14 +65,14 @@ public abstract class RangePropertyDescriptorBase protected RangePropertyDescriptorBase(RangeType type) : base(type.ToFieldType()) { } - /// + /// public TDescriptor Coerce(bool coerce = true) => Assign(a => a.Coerce = coerce); - /// + /// public TDescriptor Boost(double boost) => Assign(a => a.Boost = boost); - /// + /// /// Removed in 6.x public TDescriptor IncludeInAll(bool includeInAll = true) => Assign(a => a.IncludeInAll = includeInAll); - /// + /// public TDescriptor Index(bool index = true) => Assign(a => a.Index = index); } } diff --git a/src/Nest/Mapping/Types/Core/Range/RangeType.cs b/src/Nest/Mapping/Types/Core/Range/RangeType.cs index be354793c22..a83d49f48d2 100644 --- a/src/Nest/Mapping/Types/Core/Range/RangeType.cs +++ b/src/Nest/Mapping/Types/Core/Range/RangeType.cs @@ -32,7 +32,12 @@ public enum RangeType /// A range of date values represented as unsigned 64-bit integer milliseconds elapsed since system epoch. /// [EnumMember(Value = "date_range")] - DateRange + DateRange, + /// + /// A range of ip values supporting either IPv4 or IPv6 (or mixed) addresses. + /// + [EnumMember(Value = "ip_range")] + IpRange } internal static class RangeTypeExtensions { @@ -45,6 +50,7 @@ public static FieldType ToFieldType(this RangeType rangeType) case RangeType.LongRange: return FieldType.LongRange; case RangeType.DoubleRange: return FieldType.DoubleRange; case RangeType.DateRange: return FieldType.DateRange; + case RangeType.IpRange: return FieldType.IpRange; default: throw new ArgumentOutOfRangeException(nameof(rangeType), rangeType, null); } diff --git a/src/Nest/Mapping/Types/FieldType.cs b/src/Nest/Mapping/Types/FieldType.cs index 777d887132d..df1da2ed95c 100644 --- a/src/Nest/Mapping/Types/FieldType.cs +++ b/src/Nest/Mapping/Types/FieldType.cs @@ -91,5 +91,7 @@ public enum FieldType DoubleRange, [EnumMember(Value = "date_range")] DateRange, + [EnumMember(Value = "ip_range")] + IpRange } } diff --git a/src/Nest/Mapping/Types/Properties-Scalar.cs b/src/Nest/Mapping/Types/Properties-Scalar.cs index f4868727b0d..453282dafec 100644 --- a/src/Nest/Mapping/Types/Properties-Scalar.cs +++ b/src/Nest/Mapping/Types/Properties-Scalar.cs @@ -100,6 +100,7 @@ public partial interface IPropertiesDescriptor TReturnType Scalar(Expression> field, Func, ILongRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IIntegerRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IFloatRangeProperty> selector = null); + TReturnType Scalar(Expression> field, Func, IIpRangeProperty> selector = null); #pragma warning restore CS3001 // Argument type is not CLS-compliant } @@ -269,6 +270,8 @@ public PropertiesDescriptor Scalar(Expression> field, F SetProperty(selector.InvokeOrDefault(new IntegerRangePropertyDescriptor().Name(field))); public PropertiesDescriptor Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => SetProperty(selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field))); + public PropertiesDescriptor Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => + SetProperty(selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field))); #pragma warning restore CS3001 // Argument type is not CLS-compliant } diff --git a/src/Nest/Mapping/Types/Properties.cs b/src/Nest/Mapping/Types/Properties.cs index 0ea54075792..0d703074467 100644 --- a/src/Nest/Mapping/Types/Properties.cs +++ b/src/Nest/Mapping/Types/Properties.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; +using System.Reflection; +using Elasticsearch.Net; using Newtonsoft.Json; namespace Nest @@ -67,6 +69,7 @@ TReturnType Nested(Func, INestedProp TReturnType FloatRange(Func, IFloatRangeProperty> selector); TReturnType IntegerRange(Func, IIntegerRangeProperty> selector); TReturnType LongRange(Func, ILongRangeProperty> selector); + TReturnType IpRange(Func, IIpRangeProperty> selector); } public partial class PropertiesDescriptor : IsADictionaryDescriptorBase, IProperties, PropertyName, IProperty>, IPropertiesDescriptor> @@ -128,6 +131,8 @@ public PropertiesDescriptor Nested(Func LongRange(Func, ILongRangeProperty> selector) => SetProperty(selector); + public PropertiesDescriptor IpRange(Func, IIpRangeProperty> selector) => SetProperty(selector); + public PropertiesDescriptor Custom(IProperty customType) => SetProperty(customType); private PropertiesDescriptor SetProperty(Func selector) diff --git a/src/Nest/Mapping/Types/PropertyJsonConverter.cs b/src/Nest/Mapping/Types/PropertyJsonConverter.cs index 66d2a56661f..3c5995708ea 100644 --- a/src/Nest/Mapping/Types/PropertyJsonConverter.cs +++ b/src/Nest/Mapping/Types/PropertyJsonConverter.cs @@ -85,6 +85,8 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist return jObject.ToObject(); case FieldType.LongRange: return jObject.ToObject(); + case FieldType.IpRange: + return jObject.ToObject(); case FieldType.None: break; default: diff --git a/src/Nest/Mapping/Visitor/PropertyWalker.cs b/src/Nest/Mapping/Visitor/PropertyWalker.cs index 7757b4ff716..74356eb74c0 100644 --- a/src/Nest/Mapping/Visitor/PropertyWalker.cs +++ b/src/Nest/Mapping/Visitor/PropertyWalker.cs @@ -157,6 +157,9 @@ private IProperty InferProperty(Type type) if (type == typeof(LongRange)) return new LongRangeProperty(); + if (type == typeof(IpAddressRange)) + return new IpRangeProperty(); + return new ObjectProperty(); } diff --git a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs index b4107bcfe4f..7915a1a25ae 100644 --- a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs @@ -17,8 +17,7 @@ public IpRangeAggregationUsageTests(ReadOnlyCluster i, EndpointUsage usage) : ba protected override object ExpectJson => new { - aggs = new - { + aggs = new { ip_ranges = new { ip_range = new @@ -26,24 +25,22 @@ public IpRangeAggregationUsageTests(ReadOnlyCluster i, EndpointUsage usage) : ba field = "leadDeveloper.iPAddress", ranges = new object[] { - new { to = "10.0.0.5" }, - new { from = "10.0.0.5" } + new {to = "127.0.0.1"}, + new {from = "127.0.0.1"} } } - } + } } }; protected override Func, ISearchRequest> Fluent => s => s - .Aggregations(a => a - .IpRange("ip_ranges", ip => ip - .Field(p => p.LeadDeveloper.IPAddress) - .Ranges( - r => r.To("10.0.0.5"), - r => r.From("10.0.0.5") - ) + .Aggregations(a => a.IpRange("ip_ranges", ip => ip + .Field(p => p.LeadDeveloper.IPAddress) + .Ranges( + r => r.To("127.0.0.1"), + r => r.From("127.0.0.1") ) - ); + )); protected override SearchRequest Initializer => new SearchRequest @@ -51,10 +48,10 @@ public IpRangeAggregationUsageTests(ReadOnlyCluster i, EndpointUsage usage) : ba Aggregations = new IpRangeAggregation("ip_ranges") { Field = Field((Project p) => p.LeadDeveloper.IPAddress), - Ranges = new List + Ranges = new List { - new Nest.IpRange { To = "10.0.0.5" }, - new Nest.IpRange { From = "10.0.0.5" } + new Nest.IpRangeAggregationRange {To = "127.0.0.1"}, + new Nest.IpRangeAggregationRange {From = "127.0.0.1"} } } }; diff --git a/src/Tests/Framework/MockData/Ranges.cs b/src/Tests/Framework/MockData/Ranges.cs index 4ca9ca5f66f..8a677d6a869 100644 --- a/src/Tests/Framework/MockData/Ranges.cs +++ b/src/Tests/Framework/MockData/Ranges.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using Bogus; using Nest; @@ -11,6 +12,7 @@ public class Ranges public FloatRange Floats { get; set; } public IntegerRange Integers { get; set; } public LongRange Longs { get; set; } + public IpAddressRange Ips { get; set; } //for deserialization public Ranges() { } @@ -23,6 +25,7 @@ private Ranges(Faker faker) SetFloats(faker, r); SetIntegers(faker, r); SetLongs(faker, r); + SetIps(faker, r); } private void SetDates(Faker faker, Func r) @@ -70,6 +73,27 @@ private void SetLongs(Faker faker, Func r) SwapAssign(r(), high, v => d.LessThan = v, v => d.LessThanOrEqualTo = v); this.Longs = d; } + private void SetIps(Faker faker, Func r) + { + var low = faker.Internet.Ip(); + var high = faker.Internet.Ip(); + var lowBytes = IPAddress.Parse(low).GetAddressBytes(); + var highBytes = IPAddress.Parse(high).GetAddressBytes(); + for (int i = 0; i < lowBytes.Length; i++) + { + if (lowBytes[i] > highBytes[i]) + { + var s = low; + low = high; + high = s; + break; + } + } + var d = new IpAddressRange(); + SwapAssign(r(), low, v => d.GreaterThan = v, v => d.GreaterThanOrEqualTo = v); + SwapAssign(r(), high, v => d.LessThan = v, v => d.LessThanOrEqualTo = v); + this.Ips = d; + } private static void SwapAssign(bool b, T value, Action first, Action second) { diff --git a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs index 9729390bf4a..033ebd0eb0e 100644 --- a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs +++ b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs @@ -176,6 +176,10 @@ protected override LazyResponses ClientUsage() => Calls( }, longs = new { type = "long_range" + }, + ips = new + { + type = "ip_range" } }, type = "object" @@ -315,6 +319,7 @@ protected override LazyResponses ClientUsage() => Calls( { p => p.Floats, new FloatRangeProperty() }, { p => p.Integers, new IntegerRangeProperty() }, { p => p.Longs, new LongRangeProperty() }, + { p => p.Ips, new IpRangeProperty() }, } } }, diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs new file mode 100644 index 00000000000..3f10cf2f037 --- /dev/null +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs @@ -0,0 +1,26 @@ +using Nest; +using Tests.Framework; + +namespace Tests.Mapping.Types.Core.Range.IpRange +{ + public class IpRangeTest + { + [IpRange] + public Nest.IpAddressRange Range { get; set; } + } + + [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] + public class IpRangeAttributeTests : AttributeTestsBase + { + protected override object ExpectJson => new + { + properties = new + { + range = new + { + type = "ip_range" + } + } + }; + } +} diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs new file mode 100644 index 00000000000..4a71de9515d --- /dev/null +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs @@ -0,0 +1,73 @@ +using System; +using Nest; +using Tests.Framework; +using Tests.Framework.Integration; +using Tests.Framework.ManagedElasticsearch.Clusters; +using Tests.Framework.MockData; + +namespace Tests.Mapping.Types.Core.Range.IpRange +{ + [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] + public class IpRangePropertyTests : PropertyTestsBase + { + public IpRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + + protected override object ExpectJson => new + { + properties = new + { + ranges = new + { + type = "object", + properties = new + { + ips = new + { + type = "ip_range", + store = true, + index = false, + boost = 1.5, + coerce = true + } + } + } + } + }; + + protected override Func, IPromise> FluentProperties => f => f + .Object(m => m + .Name(p => p.Ranges) + .Properties(props => props + .IpRange(n => n + .Name(p => p.Ips) + .Store() + .Index(false) + .Boost(1.5) + .Coerce() + ) + ) + ); + + + protected override IProperties InitializerProperties => new Properties + { + { + "ranges", new ObjectProperty + { + Properties = new Properties + { + { + "ips", new IpRangeProperty + { + Store = true, + Index = false, + Boost = 1.5, + Coerce = true + } + } + } + } + } + }; + } +} From 5b4f550d1e5f9422630afa9f4f931eee5b0acbe1 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Thu, 26 Apr 2018 16:35:31 +1000 Subject: [PATCH 2/4] Address PR comments --- .../Bucket/IpRange/IpRangeAggregation.cs | 10 ++--- .../Bucket/IpRange/IpRangeAggregationRange.cs | 39 ------------------- .../Mapping/DynamicTemplate/SingleMapping.cs | 8 ++-- .../Core/Range/Ip/IpAddressRangeAttribute.cs | 10 +++++ .../Types/Core/Range/Ip/IpRangeAttribute.cs | 10 ----- .../Types/Core/Range/Ip/IpRangeProperty.cs | 12 +++--- src/Nest/Mapping/Types/Properties-Scalar.cs | 6 +-- src/Nest/Mapping/Types/Properties.cs | 4 +- .../Mapping/Types/PropertyJsonConverter.cs | 2 +- src/Nest/Mapping/Visitor/PropertyWalker.cs | 2 +- .../IpRange/IpRangeAggregationUsageTests.cs | 6 +-- .../PutMapping/PutMappingApiTest.cs | 2 +- .../Range/IpRange/IpRangeAttributeTests.cs | 2 +- .../Range/IpRange/IpRangePropertyTests.cs | 2 +- 14 files changed, 38 insertions(+), 77 deletions(-) delete mode 100644 src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs create mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs delete mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs diff --git a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs index 8b723a35636..e6c179393aa 100644 --- a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs +++ b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs @@ -14,13 +14,13 @@ public interface IIpRangeAggregation : IBucketAggregation Field Field { get; set; } [JsonProperty("ranges")] - IEnumerable Ranges { get; set; } + IEnumerable Ranges { get; set; } } public class IpRangeAggregation : BucketAggregationBase, IIpRangeAggregation { public Field Field { get; set; } - public IEnumerable Ranges { get; set; } + public IEnumerable Ranges { get; set; } internal IpRangeAggregation() { } @@ -36,13 +36,13 @@ public class IpRangeAggregationDescriptor : { Field IIpRangeAggregation.Field { get; set; } - IEnumerable IIpRangeAggregation.Ranges { get; set; } + IEnumerable IIpRangeAggregation.Ranges { get; set; } public IpRangeAggregationDescriptor Field(Field field) => Assign(a => a.Field = field); public IpRangeAggregationDescriptor Field(Expression> field) => Assign(a => a.Field = field); - public IpRangeAggregationDescriptor Ranges(params Func[] ranges) => - Assign(a => a.Ranges = ranges?.Select(r => r(new IpRangeAggregationRangeDescriptor()))); + public IpRangeAggregationDescriptor Ranges(params Func[] ranges) => + Assign(a => a.Ranges = ranges?.Select(r => r(new IpRangeDescriptor()))); } } diff --git a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs b/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs deleted file mode 100644 index 5fed46719e5..00000000000 --- a/src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregationRange.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Newtonsoft.Json; - -namespace Nest -{ - [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - [JsonConverter(typeof(ReadAsTypeJsonConverter))] - public interface IIpRangeAggregationRange - { - [JsonProperty("from")] - string From { get; set; } - - [JsonProperty("to")] - string To { get; set; } - - [JsonProperty("mask")] - string Mask { get; set; } - } - - public class IpRangeAggregationRange : IIpRangeAggregationRange - { - public string From { get; set; } - - public string To { get; set; } - - public string Mask { get; set; } - } - - public class IpRangeAggregationRangeDescriptor - : DescriptorBase, IIpRangeAggregationRange - { - string IIpRangeAggregationRange.From { get; set; } - string IIpRangeAggregationRange.Mask { get; set; } - string IIpRangeAggregationRange.To { get; set; } - - public IpRangeAggregationRangeDescriptor From(string from) => Assign(a => a.From = from); - public IpRangeAggregationRangeDescriptor To(string to) => Assign(a => a.To = to); - public IpRangeAggregationRangeDescriptor Mask(string mask) => Assign(a => a.Mask = mask); - } -} diff --git a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs index 5aaa86f6616..5247f8c93cc 100644 --- a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs +++ b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs @@ -83,8 +83,8 @@ public IProperty IntegerRange(Func, IIntegerRa public IProperty LongRange(Func, ILongRangeProperty> selector) => selector?.Invoke(new LongRangePropertyDescriptor()); - public IProperty IpRange(Func, IIpRangeProperty> selector) => - selector?.Invoke(new IpRangePropertyDescriptor()); + public IProperty IpRange(Func, IIpAddressRangeProperty> selector) => + selector?.Invoke(new IpAddressRangePropertyDescriptor()); #pragma warning disable CS3001 // Argument type is not CLS-compliant public IProperty Scalar(Expression> field, Func, INumberProperty> selector = null) => @@ -249,8 +249,8 @@ public IProperty Scalar(Expression> field, Func().Name(field)); public IProperty Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field)); - public IProperty Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => - selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field)); + public IProperty Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null) => + selector.InvokeOrDefault(new IpAddressRangePropertyDescriptor().Name(field)); #pragma warning restore CS3001 // Argument type is not CLS-compliant } } diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs new file mode 100644 index 00000000000..fd197be3741 --- /dev/null +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs @@ -0,0 +1,10 @@ +using System; +using Elasticsearch.Net; + +namespace Nest +{ + public class IpAddressRangeAttribute : RangePropertyAttributeBase, IIpAddressRangeProperty + { + public IpAddressRangeAttribute() : base(RangeType.IpRange) { } + } +} diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs deleted file mode 100644 index b7c5fd9a824..00000000000 --- a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using Elasticsearch.Net; - -namespace Nest -{ - public class IpRangeAttribute : RangePropertyAttributeBase, IIpRangeProperty - { - public IpRangeAttribute() : base(RangeType.IpRange) { } - } -} diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs index 58cd7d286f4..bf4fa27a1d9 100644 --- a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs @@ -5,17 +5,17 @@ namespace Nest { [JsonObject(MemberSerialization.OptIn)] - public interface IIpRangeProperty : IRangeProperty { } + public interface IIpAddressRangeProperty : IRangeProperty { } - public class IpRangeProperty : RangePropertyBase, IIpRangeProperty + public class IpAddressRangeProperty : RangePropertyBase, IIpAddressRangeProperty { - public IpRangeProperty() : base(RangeType.IpRange) { } + public IpAddressRangeProperty() : base(RangeType.IpRange) { } } - public class IpRangePropertyDescriptor - : RangePropertyDescriptorBase, IIpRangeProperty, T>, IIpRangeProperty + public class IpAddressRangePropertyDescriptor + : RangePropertyDescriptorBase, IIpAddressRangeProperty, T>, IIpAddressRangeProperty where T : class { - public IpRangePropertyDescriptor() : base(RangeType.IpRange) { } + public IpAddressRangePropertyDescriptor() : base(RangeType.IpRange) { } } } diff --git a/src/Nest/Mapping/Types/Properties-Scalar.cs b/src/Nest/Mapping/Types/Properties-Scalar.cs index 453282dafec..0492b5d43a9 100644 --- a/src/Nest/Mapping/Types/Properties-Scalar.cs +++ b/src/Nest/Mapping/Types/Properties-Scalar.cs @@ -100,7 +100,7 @@ public partial interface IPropertiesDescriptor TReturnType Scalar(Expression> field, Func, ILongRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IIntegerRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IFloatRangeProperty> selector = null); - TReturnType Scalar(Expression> field, Func, IIpRangeProperty> selector = null); + TReturnType Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null); #pragma warning restore CS3001 // Argument type is not CLS-compliant } @@ -270,8 +270,8 @@ public PropertiesDescriptor Scalar(Expression> field, F SetProperty(selector.InvokeOrDefault(new IntegerRangePropertyDescriptor().Name(field))); public PropertiesDescriptor Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => SetProperty(selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field))); - public PropertiesDescriptor Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => - SetProperty(selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field))); + public PropertiesDescriptor Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null) => + SetProperty(selector.InvokeOrDefault(new IpAddressRangePropertyDescriptor().Name(field))); #pragma warning restore CS3001 // Argument type is not CLS-compliant } diff --git a/src/Nest/Mapping/Types/Properties.cs b/src/Nest/Mapping/Types/Properties.cs index 0d703074467..fbe99959ab4 100644 --- a/src/Nest/Mapping/Types/Properties.cs +++ b/src/Nest/Mapping/Types/Properties.cs @@ -69,7 +69,7 @@ TReturnType Nested(Func, INestedProp TReturnType FloatRange(Func, IFloatRangeProperty> selector); TReturnType IntegerRange(Func, IIntegerRangeProperty> selector); TReturnType LongRange(Func, ILongRangeProperty> selector); - TReturnType IpRange(Func, IIpRangeProperty> selector); + TReturnType IpRange(Func, IIpAddressRangeProperty> selector); } public partial class PropertiesDescriptor : IsADictionaryDescriptorBase, IProperties, PropertyName, IProperty>, IPropertiesDescriptor> @@ -131,7 +131,7 @@ public PropertiesDescriptor Nested(Func LongRange(Func, ILongRangeProperty> selector) => SetProperty(selector); - public PropertiesDescriptor IpRange(Func, IIpRangeProperty> selector) => SetProperty(selector); + public PropertiesDescriptor IpRange(Func, IIpAddressRangeProperty> selector) => SetProperty(selector); public PropertiesDescriptor Custom(IProperty customType) => SetProperty(customType); diff --git a/src/Nest/Mapping/Types/PropertyJsonConverter.cs b/src/Nest/Mapping/Types/PropertyJsonConverter.cs index 3c5995708ea..bf36725a8a8 100644 --- a/src/Nest/Mapping/Types/PropertyJsonConverter.cs +++ b/src/Nest/Mapping/Types/PropertyJsonConverter.cs @@ -86,7 +86,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist case FieldType.LongRange: return jObject.ToObject(); case FieldType.IpRange: - return jObject.ToObject(); + return jObject.ToObject(); case FieldType.None: break; default: diff --git a/src/Nest/Mapping/Visitor/PropertyWalker.cs b/src/Nest/Mapping/Visitor/PropertyWalker.cs index 74356eb74c0..584bb6692c7 100644 --- a/src/Nest/Mapping/Visitor/PropertyWalker.cs +++ b/src/Nest/Mapping/Visitor/PropertyWalker.cs @@ -158,7 +158,7 @@ private IProperty InferProperty(Type type) return new LongRangeProperty(); if (type == typeof(IpAddressRange)) - return new IpRangeProperty(); + return new IpAddressRangeProperty(); return new ObjectProperty(); } diff --git a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs index 7915a1a25ae..7417cb9488e 100644 --- a/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs +++ b/src/Tests/Aggregations/Bucket/IpRange/IpRangeAggregationUsageTests.cs @@ -48,10 +48,10 @@ public IpRangeAggregationUsageTests(ReadOnlyCluster i, EndpointUsage usage) : ba Aggregations = new IpRangeAggregation("ip_ranges") { Field = Field((Project p) => p.LeadDeveloper.IPAddress), - Ranges = new List + Ranges = new List { - new Nest.IpRangeAggregationRange {To = "127.0.0.1"}, - new Nest.IpRangeAggregationRange {From = "127.0.0.1"} + new Nest.IpRange {To = "127.0.0.1"}, + new Nest.IpRange {From = "127.0.0.1"} } } }; diff --git a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs index 033ebd0eb0e..e223d3511b3 100644 --- a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs +++ b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs @@ -319,7 +319,7 @@ protected override LazyResponses ClientUsage() => Calls( { p => p.Floats, new FloatRangeProperty() }, { p => p.Integers, new IntegerRangeProperty() }, { p => p.Longs, new LongRangeProperty() }, - { p => p.Ips, new IpRangeProperty() }, + { p => p.Ips, new IpAddressRangeProperty() }, } } }, diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs index 3f10cf2f037..161eecfe642 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs @@ -5,7 +5,7 @@ namespace Tests.Mapping.Types.Core.Range.IpRange { public class IpRangeTest { - [IpRange] + [IpAddressRange] public Nest.IpAddressRange Range { get; set; } } diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs index 4a71de9515d..84eb934582d 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs @@ -57,7 +57,7 @@ public IpRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base Properties = new Properties { { - "ips", new IpRangeProperty + "ips", new IpAddressRangeProperty { Store = true, Index = false, From 33f666c84375352b4db03b460a76301a4658b287 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Thu, 26 Apr 2018 17:12:02 +1000 Subject: [PATCH 3/4] Address PR comments --- src/Nest/Mapping/Types/Properties.cs | 2 -- ...RangeAttributeTests.cs => IpAddressRangeAttributeTests.cs} | 4 ++-- ...IpRangePropertyTests.cs => IpAddressRangePropertyTests.cs} | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) rename src/Tests/Mapping/Types/Core/Range/IpRange/{IpRangeAttributeTests.cs => IpAddressRangeAttributeTests.cs} (76%) rename src/Tests/Mapping/Types/Core/Range/IpRange/{IpRangePropertyTests.cs => IpAddressRangePropertyTests.cs} (88%) diff --git a/src/Nest/Mapping/Types/Properties.cs b/src/Nest/Mapping/Types/Properties.cs index fbe99959ab4..d70b0a516d5 100644 --- a/src/Nest/Mapping/Types/Properties.cs +++ b/src/Nest/Mapping/Types/Properties.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using System.Reflection; -using Elasticsearch.Net; using Newtonsoft.Json; namespace Nest diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs similarity index 76% rename from src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs rename to src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs index 161eecfe642..4fbf321901a 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs @@ -3,14 +3,14 @@ namespace Tests.Mapping.Types.Core.Range.IpRange { - public class IpRangeTest + public class IpAddressRangeTest { [IpAddressRange] public Nest.IpAddressRange Range { get; set; } } [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] - public class IpRangeAttributeTests : AttributeTestsBase + public class IpAddressRangeAttributeTests : AttributeTestsBase { protected override object ExpectJson => new { diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs similarity index 88% rename from src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs rename to src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs index 84eb934582d..7071ead8896 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs @@ -8,9 +8,9 @@ namespace Tests.Mapping.Types.Core.Range.IpRange { [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] - public class IpRangePropertyTests : PropertyTestsBase + public class IpAddressRangePropertyTests : PropertyTestsBase { - public IpRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public IpAddressRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override object ExpectJson => new { From eeb3c2055b6e4df236806b00c3d8a92bf63e0839 Mon Sep 17 00:00:00 2001 From: Stuart Cam Date: Fri, 27 Apr 2018 12:23:53 +1000 Subject: [PATCH 4/4] Rename to IpRange* --- src/Nest/Mapping/DynamicTemplate/SingleMapping.cs | 8 ++++---- .../Types/Core/Range/Ip/IpAddressRangeAttribute.cs | 10 ---------- .../Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs | 10 ++++++++++ .../Mapping/Types/Core/Range/Ip/IpRangeProperty.cs | 12 ++++++------ src/Nest/Mapping/Types/Properties-Scalar.cs | 6 +++--- src/Nest/Mapping/Types/Properties.cs | 4 ++-- src/Nest/Mapping/Types/PropertyJsonConverter.cs | 2 +- src/Nest/Mapping/Visitor/PropertyWalker.cs | 2 +- .../PutMapping/PutMappingApiTest.cs | 2 +- ...ngeAttributeTests.cs => IpRangeAttributeTests.cs} | 6 +++--- ...RangePropertyTests.cs => IpRangePropertyTests.cs} | 6 +++--- 11 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs create mode 100644 src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs rename src/Tests/Mapping/Types/Core/Range/IpRange/{IpAddressRangeAttributeTests.cs => IpRangeAttributeTests.cs} (72%) rename src/Tests/Mapping/Types/Core/Range/IpRange/{IpAddressRangePropertyTests.cs => IpRangePropertyTests.cs} (85%) diff --git a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs index 5247f8c93cc..5aaa86f6616 100644 --- a/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs +++ b/src/Nest/Mapping/DynamicTemplate/SingleMapping.cs @@ -83,8 +83,8 @@ public IProperty IntegerRange(Func, IIntegerRa public IProperty LongRange(Func, ILongRangeProperty> selector) => selector?.Invoke(new LongRangePropertyDescriptor()); - public IProperty IpRange(Func, IIpAddressRangeProperty> selector) => - selector?.Invoke(new IpAddressRangePropertyDescriptor()); + public IProperty IpRange(Func, IIpRangeProperty> selector) => + selector?.Invoke(new IpRangePropertyDescriptor()); #pragma warning disable CS3001 // Argument type is not CLS-compliant public IProperty Scalar(Expression> field, Func, INumberProperty> selector = null) => @@ -249,8 +249,8 @@ public IProperty Scalar(Expression> field, Func().Name(field)); public IProperty Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field)); - public IProperty Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null) => - selector.InvokeOrDefault(new IpAddressRangePropertyDescriptor().Name(field)); + public IProperty Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => + selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field)); #pragma warning restore CS3001 // Argument type is not CLS-compliant } } diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs deleted file mode 100644 index fd197be3741..00000000000 --- a/src/Nest/Mapping/Types/Core/Range/Ip/IpAddressRangeAttribute.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -using Elasticsearch.Net; - -namespace Nest -{ - public class IpAddressRangeAttribute : RangePropertyAttributeBase, IIpAddressRangeProperty - { - public IpAddressRangeAttribute() : base(RangeType.IpRange) { } - } -} diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs new file mode 100644 index 00000000000..b7c5fd9a824 --- /dev/null +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeAttribute.cs @@ -0,0 +1,10 @@ +using System; +using Elasticsearch.Net; + +namespace Nest +{ + public class IpRangeAttribute : RangePropertyAttributeBase, IIpRangeProperty + { + public IpRangeAttribute() : base(RangeType.IpRange) { } + } +} diff --git a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs index bf4fa27a1d9..58cd7d286f4 100644 --- a/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs +++ b/src/Nest/Mapping/Types/Core/Range/Ip/IpRangeProperty.cs @@ -5,17 +5,17 @@ namespace Nest { [JsonObject(MemberSerialization.OptIn)] - public interface IIpAddressRangeProperty : IRangeProperty { } + public interface IIpRangeProperty : IRangeProperty { } - public class IpAddressRangeProperty : RangePropertyBase, IIpAddressRangeProperty + public class IpRangeProperty : RangePropertyBase, IIpRangeProperty { - public IpAddressRangeProperty() : base(RangeType.IpRange) { } + public IpRangeProperty() : base(RangeType.IpRange) { } } - public class IpAddressRangePropertyDescriptor - : RangePropertyDescriptorBase, IIpAddressRangeProperty, T>, IIpAddressRangeProperty + public class IpRangePropertyDescriptor + : RangePropertyDescriptorBase, IIpRangeProperty, T>, IIpRangeProperty where T : class { - public IpAddressRangePropertyDescriptor() : base(RangeType.IpRange) { } + public IpRangePropertyDescriptor() : base(RangeType.IpRange) { } } } diff --git a/src/Nest/Mapping/Types/Properties-Scalar.cs b/src/Nest/Mapping/Types/Properties-Scalar.cs index 0492b5d43a9..453282dafec 100644 --- a/src/Nest/Mapping/Types/Properties-Scalar.cs +++ b/src/Nest/Mapping/Types/Properties-Scalar.cs @@ -100,7 +100,7 @@ public partial interface IPropertiesDescriptor TReturnType Scalar(Expression> field, Func, ILongRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IIntegerRangeProperty> selector = null); TReturnType Scalar(Expression> field, Func, IFloatRangeProperty> selector = null); - TReturnType Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null); + TReturnType Scalar(Expression> field, Func, IIpRangeProperty> selector = null); #pragma warning restore CS3001 // Argument type is not CLS-compliant } @@ -270,8 +270,8 @@ public PropertiesDescriptor Scalar(Expression> field, F SetProperty(selector.InvokeOrDefault(new IntegerRangePropertyDescriptor().Name(field))); public PropertiesDescriptor Scalar(Expression> field, Func, IFloatRangeProperty> selector = null) => SetProperty(selector.InvokeOrDefault(new FloatRangePropertyDescriptor().Name(field))); - public PropertiesDescriptor Scalar(Expression> field, Func, IIpAddressRangeProperty> selector = null) => - SetProperty(selector.InvokeOrDefault(new IpAddressRangePropertyDescriptor().Name(field))); + public PropertiesDescriptor Scalar(Expression> field, Func, IIpRangeProperty> selector = null) => + SetProperty(selector.InvokeOrDefault(new IpRangePropertyDescriptor().Name(field))); #pragma warning restore CS3001 // Argument type is not CLS-compliant } diff --git a/src/Nest/Mapping/Types/Properties.cs b/src/Nest/Mapping/Types/Properties.cs index d70b0a516d5..c7b133a6af8 100644 --- a/src/Nest/Mapping/Types/Properties.cs +++ b/src/Nest/Mapping/Types/Properties.cs @@ -67,7 +67,7 @@ TReturnType Nested(Func, INestedProp TReturnType FloatRange(Func, IFloatRangeProperty> selector); TReturnType IntegerRange(Func, IIntegerRangeProperty> selector); TReturnType LongRange(Func, ILongRangeProperty> selector); - TReturnType IpRange(Func, IIpAddressRangeProperty> selector); + TReturnType IpRange(Func, IIpRangeProperty> selector); } public partial class PropertiesDescriptor : IsADictionaryDescriptorBase, IProperties, PropertyName, IProperty>, IPropertiesDescriptor> @@ -129,7 +129,7 @@ public PropertiesDescriptor Nested(Func LongRange(Func, ILongRangeProperty> selector) => SetProperty(selector); - public PropertiesDescriptor IpRange(Func, IIpAddressRangeProperty> selector) => SetProperty(selector); + public PropertiesDescriptor IpRange(Func, IIpRangeProperty> selector) => SetProperty(selector); public PropertiesDescriptor Custom(IProperty customType) => SetProperty(customType); diff --git a/src/Nest/Mapping/Types/PropertyJsonConverter.cs b/src/Nest/Mapping/Types/PropertyJsonConverter.cs index bf36725a8a8..3c5995708ea 100644 --- a/src/Nest/Mapping/Types/PropertyJsonConverter.cs +++ b/src/Nest/Mapping/Types/PropertyJsonConverter.cs @@ -86,7 +86,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist case FieldType.LongRange: return jObject.ToObject(); case FieldType.IpRange: - return jObject.ToObject(); + return jObject.ToObject(); case FieldType.None: break; default: diff --git a/src/Nest/Mapping/Visitor/PropertyWalker.cs b/src/Nest/Mapping/Visitor/PropertyWalker.cs index 584bb6692c7..74356eb74c0 100644 --- a/src/Nest/Mapping/Visitor/PropertyWalker.cs +++ b/src/Nest/Mapping/Visitor/PropertyWalker.cs @@ -158,7 +158,7 @@ private IProperty InferProperty(Type type) return new LongRangeProperty(); if (type == typeof(IpAddressRange)) - return new IpAddressRangeProperty(); + return new IpRangeProperty(); return new ObjectProperty(); } diff --git a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs index e223d3511b3..033ebd0eb0e 100644 --- a/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs +++ b/src/Tests/Indices/MappingManagement/PutMapping/PutMappingApiTest.cs @@ -319,7 +319,7 @@ protected override LazyResponses ClientUsage() => Calls( { p => p.Floats, new FloatRangeProperty() }, { p => p.Integers, new IntegerRangeProperty() }, { p => p.Longs, new LongRangeProperty() }, - { p => p.Ips, new IpAddressRangeProperty() }, + { p => p.Ips, new IpRangeProperty() }, } } }, diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs similarity index 72% rename from src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs rename to src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs index 4fbf321901a..3f10cf2f037 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangeAttributeTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangeAttributeTests.cs @@ -3,14 +3,14 @@ namespace Tests.Mapping.Types.Core.Range.IpRange { - public class IpAddressRangeTest + public class IpRangeTest { - [IpAddressRange] + [IpRange] public Nest.IpAddressRange Range { get; set; } } [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] - public class IpAddressRangeAttributeTests : AttributeTestsBase + public class IpRangeAttributeTests : AttributeTestsBase { protected override object ExpectJson => new { diff --git a/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs similarity index 85% rename from src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs rename to src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs index 7071ead8896..4a71de9515d 100644 --- a/src/Tests/Mapping/Types/Core/Range/IpRange/IpAddressRangePropertyTests.cs +++ b/src/Tests/Mapping/Types/Core/Range/IpRange/IpRangePropertyTests.cs @@ -8,9 +8,9 @@ namespace Tests.Mapping.Types.Core.Range.IpRange { [SkipVersion("<5.5.0", "ip range type is a new 5.5.0 feature")] - public class IpAddressRangePropertyTests : PropertyTestsBase + public class IpRangePropertyTests : PropertyTestsBase { - public IpAddressRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } + public IpRangePropertyTests(WritableCluster cluster, EndpointUsage usage) : base(cluster, usage) { } protected override object ExpectJson => new { @@ -57,7 +57,7 @@ public IpAddressRangePropertyTests(WritableCluster cluster, EndpointUsage usage) Properties = new Properties { { - "ips", new IpAddressRangeProperty + "ips", new IpRangeProperty { Store = true, Index = false,