Skip to content

Commit

Permalink
Add voting_only to ClusterNodeStats and XPackInfo
Browse files Browse the repository at this point in the history
Relates: #4001

This commit adds voting_only to ClusterNodeStats and XPackUsageResponse.
VotingOnly is supported only in the default distribution
  • Loading branch information
russcam committed Sep 2, 2019
1 parent 22b8a51 commit 6368205
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 60 deletions.
123 changes: 63 additions & 60 deletions src/Nest/Cluster/ClusterStats/ClusterNodesStats.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,217 +6,220 @@ namespace Nest
[DataContract]
public class ClusterNodesStats
{
[DataMember(Name ="count")]
[DataMember(Name = "count")]
public ClusterNodeCount Count { get; internal set; }

[DataMember(Name ="discovery_types")]
[DataMember(Name = "discovery_types")]
public IReadOnlyDictionary<string, int> DiscoveryTypes { get; internal set; }

[DataMember(Name ="packaging_types")]
public IReadOnlyCollection<NodePackagingType> PackagingTypes { get; internal set; }

[DataMember(Name ="fs")]
[DataMember(Name = "fs")]
public ClusterFileSystem FileSystem { get; internal set; }

[DataMember(Name ="jvm")]
[DataMember(Name = "jvm")]
public ClusterJvm Jvm { get; internal set; }

[DataMember(Name ="network_types")]
[DataMember(Name = "network_types")]
public ClusterNetworkTypes NetworkTypes { get; internal set; }

[DataMember(Name ="os")]
[DataMember(Name = "os")]
public ClusterOperatingSystemStats OperatingSystem { get; internal set; }

[DataMember(Name ="plugins")]
[DataMember(Name = "packaging_types")]
public IReadOnlyCollection<NodePackagingType> PackagingTypes { get; internal set; }

[DataMember(Name = "plugins")]
public IReadOnlyCollection<PluginStats> Plugins { get; internal set; }

[DataMember(Name ="process")]
[DataMember(Name = "process")]
public ClusterProcess Process { get; internal set; }

[DataMember(Name ="versions")]
[DataMember(Name = "versions")]
public IReadOnlyCollection<string> Versions { get; internal set; }
}

public class NodePackagingType
{
[DataMember(Name ="flavor")]
[DataMember(Name = "count")]
public int Count { get; internal set; }

[DataMember(Name = "flavor")]
public string Flavor { get; internal set; }

[DataMember(Name ="type")]
[DataMember(Name = "type")]
public string Type { get; internal set; }

[DataMember(Name ="count")]
public int Count { get; internal set; }
}

[DataContract]
public class ClusterNetworkTypes
{
[DataMember(Name ="http_types")]
[DataMember(Name = "http_types")]
public IReadOnlyDictionary<string, int> HttpTypes { get; internal set; }

[DataMember(Name ="transport_types")]
[DataMember(Name = "transport_types")]
public IReadOnlyDictionary<string, int> TransportTypes { get; internal set; }
}

[DataContract]
public class ClusterFileSystem
{
[DataMember(Name ="available_in_bytes")]
[DataMember(Name = "available_in_bytes")]
public long AvailableInBytes { get; internal set; }

[DataMember(Name ="free_in_bytes")]
[DataMember(Name = "free_in_bytes")]
public long FreeInBytes { get; internal set; }

[DataMember(Name ="total_in_bytes")]
[DataMember(Name = "total_in_bytes")]
public long TotalInBytes { get; internal set; }
}

[DataContract]
public class ClusterJvm
{
[DataMember(Name ="max_uptime_in_millis")]
[DataMember(Name = "max_uptime_in_millis")]
public long MaxUptimeInMilliseconds { get; internal set; }

[DataMember(Name ="mem")]
[DataMember(Name = "mem")]
public ClusterJvmMemory Memory { get; internal set; }

[DataMember(Name ="threads")]
[DataMember(Name = "threads")]
public long Threads { get; internal set; }

[DataMember(Name ="versions")]
[DataMember(Name = "versions")]
public IReadOnlyCollection<ClusterJvmVersion> Versions { get; internal set; }
}

[DataContract]
public class ClusterJvmVersion
{
[DataMember(Name ="bundled_jdk")]
[DataMember(Name = "bundled_jdk")]
public bool BundledJdk { get; internal set; }

[DataMember(Name ="using_bundled_jdk")]
public bool? UsingBundledJdk { get; internal set; }

[DataMember(Name ="count")]
[DataMember(Name = "count")]
public int Count { get; internal set; }

[DataMember(Name ="version")]
[DataMember(Name = "using_bundled_jdk")]
public bool? UsingBundledJdk { get; internal set; }

[DataMember(Name = "version")]
public string Version { get; internal set; }

[DataMember(Name ="vm_name")]
[DataMember(Name = "vm_name")]
public string VmName { get; internal set; }

[DataMember(Name ="vm_vendor")]
[DataMember(Name = "vm_vendor")]
public string VmVendor { get; internal set; }

[DataMember(Name ="vm_version")]
[DataMember(Name = "vm_version")]
public string VmVersion { get; internal set; }
}

[DataContract]
public class ClusterJvmMemory
{
[DataMember(Name ="heap_max_in_bytes")]
[DataMember(Name = "heap_max_in_bytes")]
public long HeapMaxInBytes { get; internal set; }

[DataMember(Name ="heap_used_in_bytes")]
[DataMember(Name = "heap_used_in_bytes")]
public long HeapUsedInBytes { get; internal set; }
}

[DataContract]
public class ClusterProcess
{
[DataMember(Name ="cpu")]
[DataMember(Name = "cpu")]
public ClusterProcessCpu Cpu { get; internal set; }

[DataMember(Name ="open_file_descriptors")]
[DataMember(Name = "open_file_descriptors")]
public ClusterProcessOpenFileDescriptors OpenFileDescriptors { get; internal set; }
}

[DataContract]
public class ClusterProcessCpu
{
[DataMember(Name ="percent")]
[DataMember(Name = "percent")]
public int Percent { get; internal set; }
}

[DataContract]
public class ClusterProcessOpenFileDescriptors
{
[DataMember(Name ="avg")]
[DataMember(Name = "avg")]
public long Avg { get; internal set; }

[DataMember(Name ="max")]
[DataMember(Name = "max")]
public long Max { get; internal set; }

[DataMember(Name ="min")]
[DataMember(Name = "min")]
public long Min { get; internal set; }
}

[DataContract]
public class ClusterOperatingSystemStats
{
[DataMember(Name ="allocated_processors")]
[DataMember(Name = "allocated_processors")]
public int AllocatedProcessors { get; internal set; }

[DataMember(Name ="available_processors")]
[DataMember(Name = "available_processors")]
public int AvailableProcessors { get; internal set; }

[DataMember(Name ="mem")]
[DataMember(Name = "mem")]
public OperatingSystemMemoryInfo Memory { get; internal set; }

[DataMember(Name ="names")]
[DataMember(Name = "names")]
public IReadOnlyCollection<ClusterOperatingSystemName> Names { get; internal set; }

[DataMember(Name ="pretty_names")]
[DataMember(Name = "pretty_names")]
public IReadOnlyCollection<ClusterOperatingSystemPrettyNane> PrettyNames { get; internal set; }
}

[DataContract]
public class OperatingSystemMemoryInfo
{
[DataMember(Name ="free_in_bytes")]
[DataMember(Name = "free_in_bytes")]
public long FreeBytes { get; internal set; }

[DataMember(Name ="free_percent")]
[DataMember(Name = "free_percent")]
public int FreePercent { get; internal set; }

[DataMember(Name ="total_in_bytes")]
[DataMember(Name = "total_in_bytes")]
public long TotalBytes { get; internal set; }

[DataMember(Name ="used_in_bytes")]
[DataMember(Name = "used_in_bytes")]
public long UsedBytes { get; internal set; }

[DataMember(Name ="used_percent")]
[DataMember(Name = "used_percent")]
public int UsedPercent { get; internal set; }
}

[DataContract]
public class ClusterOperatingSystemName
{
[DataMember(Name ="count")]
[DataMember(Name = "count")]
public int Count { get; internal set; }

[DataMember(Name ="name")]
[DataMember(Name = "name")]
public string Name { get; internal set; }
}

[DataContract]
public class ClusterNodeCount
{
[DataMember(Name ="coordinating_only")]
[DataMember(Name = "coordinating_only")]
public int CoordinatingOnly { get; internal set; }

[DataMember(Name ="data")]
[DataMember(Name = "data")]
public int Data { get; internal set; }

[DataMember(Name ="ingest")]
[DataMember(Name = "ingest")]
public int Ingest { get; internal set; }

[DataMember(Name ="master")]
[DataMember(Name = "master")]
public int Master { get; internal set; }

[DataMember(Name ="total")]
[DataMember(Name = "total")]
public int Total { get; internal set; }

[DataMember(Name = "voting_only")]
public int VotingOnly { get; internal set; }
}
}
3 changes: 3 additions & 0 deletions src/Nest/XPack/Info/XPackUsage/XPackUsageResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ public class XPackUsageResponse : ResponseBase

[DataMember(Name = "security")]
public SecurityUsage Security { get; internal set; }

[DataMember(Name = "voting_only")]
public XPackUsage VotingOnly { get; internal set; }
}

public class XPackUsage
Expand Down
5 changes: 5 additions & 0 deletions src/Tests/Tests/XPack/Info/XPackInfoApiTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
using Elastic.Xunit.XunitPlumbing;
using FluentAssertions;
using Nest;
using Tests.Configuration;
using Tests.Core.ManagedElasticsearch.Clusters;
using Tests.Core.Xunit;
using Tests.Framework.EndpointTests;
using Tests.Framework.EndpointTests.TestState;
using Tests.Core.Extensions;

namespace Tests.XPack.Info
{
Expand Down Expand Up @@ -86,6 +88,9 @@ [I] public async Task XPackUsageResponse() => await Assert<XPackUsageResponse>(X
r.Alerting.Count.Should().NotBeNull();
r.Alerting.Execution.Should().NotBeNull();
r.Alerting.Watch.Should().NotBeNull();
if (TestConfiguration.Instance.InRange(">=7.3.0"))
r.VotingOnly.Should().NotBeNull();
});
}
}

0 comments on commit 6368205

Please sign in to comment.