Skip to content

Commit 59af777

Browse files
committed
Merge branch 'enhancement/xpack-code-generation' into 2.x
2 parents 11a23a1 + 9c9afd7 commit 59af777

File tree

158 files changed

+4050
-774
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+4050
-774
lines changed

paket.lock

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
NUGET
2-
remote: https://www.nuget.org/api/v2
2+
remote: http://api.nuget.org/v3/index.json
33
specs:
44
AsciiDocNet (1.0.0-alpha2)
5+
ShellProgressBar (3.0)
6+
remote: https://www.nuget.org/api/v2
7+
specs:
58
Bogus (3.0.5-beta-2)
69
Newtonsoft.Json (>= 8.0.2) - framework: >= net40, dnx451, dnxcore50
710
System.ComponentModel (>= 4.0.1-beta-23516) - framework: dnxcore50
@@ -57,7 +60,6 @@ NUGET
5760
Rx-PlatformServices (2.2.5)
5861
Rx-Core (>= 2.2.5)
5962
Rx-Interfaces (>= 2.2.5)
60-
ShellProgressBar (1.2)
6163
System.Collections (4.0.10) - framework: dnxcore50
6264
System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
6365
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50

src/CodeGeneration/CodeGeneration.LowLevelClient/ApiGenerator.cs

Lines changed: 72 additions & 270 deletions
Large diffs are not rendered by default.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
using System.Linq;
4+
using System.Reflection;
5+
using System.Text.RegularExpressions;
6+
7+
namespace CodeGeneration.LowLevelClient
8+
{
9+
public static class CodeConfiguration
10+
{
11+
public static readonly Assembly Assembly = typeof(ApiGenerator).Assembly;
12+
13+
private static string _root = null;
14+
15+
private static string Root
16+
{
17+
get
18+
{
19+
if (CodeConfiguration._root != null) return CodeConfiguration._root;
20+
var directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory());
21+
22+
var runningAsDnx =
23+
directoryInfo.Name == "CodeGeneration.LowLevelClient" &&
24+
directoryInfo.Parent != null &&
25+
directoryInfo.Parent.Name == "CodeGeneration";
26+
27+
CodeConfiguration._root = runningAsDnx ? "" : @"..\..\..\";
28+
return CodeConfiguration._root;
29+
}
30+
}
31+
32+
public static string NestFolder { get; } = $@"{Root}..\..\..\src\Nest\";
33+
public static string EsNetFolder { get; } = $@"{Root}..\..\..\src\Elasticsearch.Net\";
34+
public static string ViewFolder { get; } = $@"{Root}Views\";
35+
public static string RestSpecificationFolder { get; } = $@"{Root}RestSpecification\";
36+
37+
public static readonly Dictionary<string, string> MethodNameOverrides =
38+
(from f in new DirectoryInfo(NestFolder).GetFiles("*.cs", SearchOption.AllDirectories)
39+
let contents = File.ReadAllText(f.FullName)
40+
let c = Regex.Replace(contents, @"^.+\[DescriptorFor\(""([^ \r\n]+)""\)\].*$", "$1", RegexOptions.Singleline)
41+
where !c.Contains(" ") //filter results that did not match
42+
select new { Value = f.Name.Replace("Request", ""), Key = c })
43+
.DistinctBy(v => v.Key)
44+
.ToDictionary(k => k.Key, v => v.Value.Replace(".cs", ""));
45+
46+
public static readonly Dictionary<string, string> KnownDescriptors =
47+
(from f in new DirectoryInfo(NestFolder).GetFiles("*Request.cs", SearchOption.AllDirectories)
48+
let contents = File.ReadAllText(f.FullName)
49+
let c = Regex.Replace(contents, @"^.+class ([^ \r\n]+Descriptor(?:<[^>\r\n]+>)?[^ \r\n]*).*$", "$1", RegexOptions.Singleline)
50+
select new { Key = Regex.Replace(c, "<.*$", ""), Value = Regex.Replace(c, @"^.*?(?:(\<.+>).*?)?$", "$1") })
51+
.DistinctBy(v => v.Key)
52+
.OrderBy(v => v.Key)
53+
.ToDictionary(k => k.Key, v => v.Value);
54+
55+
public static readonly Dictionary<string, string> KnownRequests =
56+
(from f in new DirectoryInfo(NestFolder).GetFiles("*Request.cs", SearchOption.AllDirectories)
57+
let contents = File.ReadAllText(f.FullName)
58+
let c = Regex.Replace(contents, @"^.+interface ([^ \r\n]+Request(?:<[^>\r\n]+>)?[^ \r\n]*).*$", "$1", RegexOptions.Singleline)
59+
where c.StartsWith("I") && c.Contains("Request")
60+
select new { Key = Regex.Replace(c, "<.*$", ""), Value = Regex.Replace(c, @"^.*?(?:(\<.+>).*?)?$", "$1") })
61+
.DistinctBy(v => v.Key)
62+
.ToDictionary(k => k.Key, v => v.Value);
63+
64+
}
65+
}

src/CodeGeneration/CodeGeneration.LowLevelClient/CodeGeneration.LowLevelClient.csproj

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<Content Include="razormachine.readme.txt">
3939
<Paket>True</Paket>
4040
</Content>
41+
<Content Include="RestSpecification\Core\root.html" />
4142
<Reference Include="System" />
4243
<Reference Include="System.Core" />
4344
<Reference Include="System.Xml.Linq" />
@@ -48,6 +49,7 @@
4849
</ItemGroup>
4950
<ItemGroup>
5051
<Compile Include="ApiGenerator.cs" />
52+
<Compile Include="CodeConfiguration.cs" />
5153
<Compile Include="Domain\ApiBody.cs" />
5254
<Compile Include="Domain\ApiEndpoint.cs" />
5355
<Compile Include="Domain\ApiQueryParameters.cs" />
@@ -73,8 +75,147 @@
7375
<Compile Include="Overrides\Global\GlobalQueryParameters.cs" />
7476
<Compile Include="Program.cs" />
7577
<Compile Include="Properties\AssemblyInfo.cs" />
78+
<Compile Include="RestSpecDownloader.cs" />
7679
<None Include="App.config" />
7780
<None Include="paket.references" />
81+
<None Include="RestSpecification\Core\bulk.json" />
82+
<None Include="RestSpecification\Core\cat.aliases.json" />
83+
<None Include="RestSpecification\Core\cat.allocation.json" />
84+
<None Include="RestSpecification\Core\cat.count.json" />
85+
<None Include="RestSpecification\Core\cat.fielddata.json" />
86+
<None Include="RestSpecification\Core\cat.health.json" />
87+
<None Include="RestSpecification\Core\cat.help.json" />
88+
<None Include="RestSpecification\Core\cat.indices.json" />
89+
<None Include="RestSpecification\Core\cat.master.json" />
90+
<None Include="RestSpecification\Core\cat.nodeattrs.json" />
91+
<None Include="RestSpecification\Core\cat.nodes.json" />
92+
<None Include="RestSpecification\Core\cat.pending_tasks.json" />
93+
<None Include="RestSpecification\Core\cat.plugins.json" />
94+
<None Include="RestSpecification\Core\cat.recovery.json" />
95+
<None Include="RestSpecification\Core\cat.repositories.json" />
96+
<None Include="RestSpecification\Core\cat.segments.json" />
97+
<None Include="RestSpecification\Core\cat.shards.json" />
98+
<None Include="RestSpecification\Core\cat.snapshots.json" />
99+
<None Include="RestSpecification\Core\cat.thread_pool.json" />
100+
<None Include="RestSpecification\Core\clear_scroll.json" />
101+
<None Include="RestSpecification\Core\cluster.get_settings.json" />
102+
<None Include="RestSpecification\Core\cluster.health.json" />
103+
<None Include="RestSpecification\Core\cluster.pending_tasks.json" />
104+
<None Include="RestSpecification\Core\cluster.put_settings.json" />
105+
<None Include="RestSpecification\Core\cluster.reroute.json" />
106+
<None Include="RestSpecification\Core\cluster.state.json" />
107+
<None Include="RestSpecification\Core\cluster.stats.json" />
108+
<None Include="RestSpecification\Core\count.json" />
109+
<None Include="RestSpecification\Core\count_percolate.json" />
110+
<None Include="RestSpecification\Core\delete.json" />
111+
<None Include="RestSpecification\Core\delete_by_query.json" />
112+
<None Include="RestSpecification\Core\delete_script.json" />
113+
<None Include="RestSpecification\Core\delete_template.json" />
114+
<None Include="RestSpecification\Core\exists.json" />
115+
<None Include="RestSpecification\Core\explain.json" />
116+
<None Include="RestSpecification\Core\field_stats.json" />
117+
<None Include="RestSpecification\Core\get.json" />
118+
<None Include="RestSpecification\Core\get_script.json" />
119+
<None Include="RestSpecification\Core\get_source.json" />
120+
<None Include="RestSpecification\Core\get_template.json" />
121+
<None Include="RestSpecification\Core\index.json" />
122+
<None Include="RestSpecification\Core\indices.analyze.json" />
123+
<None Include="RestSpecification\Core\indices.clear_cache.json" />
124+
<None Include="RestSpecification\Core\indices.close.json" />
125+
<None Include="RestSpecification\Core\indices.create.json" />
126+
<None Include="RestSpecification\Core\indices.delete.json" />
127+
<None Include="RestSpecification\Core\indices.delete_alias.json" />
128+
<None Include="RestSpecification\Core\indices.delete_template.json" />
129+
<None Include="RestSpecification\Core\indices.delete_warmer.json" />
130+
<None Include="RestSpecification\Core\indices.exists.json" />
131+
<None Include="RestSpecification\Core\indices.exists_alias.json" />
132+
<None Include="RestSpecification\Core\indices.exists_template.json" />
133+
<None Include="RestSpecification\Core\indices.exists_type.json" />
134+
<None Include="RestSpecification\Core\indices.flush.json" />
135+
<None Include="RestSpecification\Core\indices.flush_synced.json" />
136+
<None Include="RestSpecification\Core\indices.forcemerge.json" />
137+
<None Include="RestSpecification\Core\indices.get.json" />
138+
<None Include="RestSpecification\Core\indices.get_alias.json" />
139+
<None Include="RestSpecification\Core\indices.get_aliases.json" />
140+
<None Include="RestSpecification\Core\indices.get_field_mapping.json" />
141+
<None Include="RestSpecification\Core\indices.get_mapping.json" />
142+
<None Include="RestSpecification\Core\indices.get_settings.json" />
143+
<None Include="RestSpecification\Core\indices.get_template.json" />
144+
<None Include="RestSpecification\Core\indices.get_upgrade.json" />
145+
<None Include="RestSpecification\Core\indices.get_warmer.json" />
146+
<None Include="RestSpecification\Core\indices.open.json" />
147+
<None Include="RestSpecification\Core\indices.optimize.json" />
148+
<None Include="RestSpecification\Core\indices.put_alias.json" />
149+
<None Include="RestSpecification\Core\indices.put_mapping.json" />
150+
<None Include="RestSpecification\Core\indices.put_settings.json" />
151+
<None Include="RestSpecification\Core\indices.put_template.json" />
152+
<None Include="RestSpecification\Core\indices.put_warmer.json" />
153+
<None Include="RestSpecification\Core\indices.recovery.json" />
154+
<None Include="RestSpecification\Core\indices.refresh.json" />
155+
<None Include="RestSpecification\Core\indices.segments.json" />
156+
<None Include="RestSpecification\Core\indices.shard_stores.json" />
157+
<None Include="RestSpecification\Core\indices.stats.json" />
158+
<None Include="RestSpecification\Core\indices.update_aliases.json" />
159+
<None Include="RestSpecification\Core\indices.upgrade.json" />
160+
<None Include="RestSpecification\Core\indices.validate_query.json" />
161+
<None Include="RestSpecification\Core\info.json" />
162+
<None Include="RestSpecification\Core\mget.json" />
163+
<None Include="RestSpecification\Core\mpercolate.json" />
164+
<None Include="RestSpecification\Core\msearch.json" />
165+
<None Include="RestSpecification\Core\mtermvectors.json" />
166+
<None Include="RestSpecification\Core\nodes.hot_threads.json" />
167+
<None Include="RestSpecification\Core\nodes.info.json" />
168+
<None Include="RestSpecification\Core\nodes.stats.json" />
169+
<None Include="RestSpecification\Core\percolate.json" />
170+
<None Include="RestSpecification\Core\ping.json" />
171+
<None Include="RestSpecification\Core\put_script.json" />
172+
<None Include="RestSpecification\Core\put_template.json" />
173+
<None Include="RestSpecification\Core\reindex.json" />
174+
<None Include="RestSpecification\Core\render_search_template.json" />
175+
<None Include="RestSpecification\Core\scroll.json" />
176+
<None Include="RestSpecification\Core\search.json" />
177+
<None Include="RestSpecification\Core\search_exists.json" />
178+
<None Include="RestSpecification\Core\search_shards.json" />
179+
<None Include="RestSpecification\Core\search_template.json" />
180+
<None Include="RestSpecification\Core\snapshot.create.json" />
181+
<None Include="RestSpecification\Core\snapshot.create_repository.json" />
182+
<None Include="RestSpecification\Core\snapshot.delete.json" />
183+
<None Include="RestSpecification\Core\snapshot.delete_repository.json" />
184+
<None Include="RestSpecification\Core\snapshot.get.json" />
185+
<None Include="RestSpecification\Core\snapshot.get_repository.json" />
186+
<None Include="RestSpecification\Core\snapshot.restore.json" />
187+
<None Include="RestSpecification\Core\snapshot.status.json" />
188+
<None Include="RestSpecification\Core\snapshot.verify_repository.json" />
189+
<None Include="RestSpecification\Core\suggest.json" />
190+
<None Include="RestSpecification\Core\tasks.cancel.json" />
191+
<None Include="RestSpecification\Core\tasks.list.json" />
192+
<None Include="RestSpecification\Core\termvectors.json" />
193+
<None Include="RestSpecification\Core\update.json" />
194+
<None Include="RestSpecification\Core\update_by_query.json" />
195+
<None Include="RestSpecification\XPack\Graph\graph.explore.json" />
196+
<None Include="RestSpecification\XPack\License\license.get.json" />
197+
<None Include="RestSpecification\XPack\License\license.post.json" />
198+
<None Include="RestSpecification\XPack\Shield\shield.authenticate.json" />
199+
<None Include="RestSpecification\XPack\Shield\shield.clear_cached_realms.json" />
200+
<None Include="RestSpecification\XPack\Shield\shield.clear_cached_roles.json" />
201+
<None Include="RestSpecification\XPack\Shield\shield.delete_role.json" />
202+
<None Include="RestSpecification\XPack\Shield\shield.delete_user.json" />
203+
<None Include="RestSpecification\XPack\Shield\shield.get_role.json" />
204+
<None Include="RestSpecification\XPack\Shield\shield.get_user.json" />
205+
<None Include="RestSpecification\XPack\Shield\shield.put_role.json" />
206+
<None Include="RestSpecification\XPack\Shield\shield.put_user.json" />
207+
<None Include="RestSpecification\XPack\Watcher\watcher.ack_watch.json" />
208+
<None Include="RestSpecification\XPack\Watcher\watcher.activate_watch.json" />
209+
<None Include="RestSpecification\XPack\Watcher\watcher.deactivate_watch.json" />
210+
<None Include="RestSpecification\XPack\Watcher\watcher.delete_watch.json" />
211+
<None Include="RestSpecification\XPack\Watcher\watcher.execute_watch.json" />
212+
<None Include="RestSpecification\XPack\Watcher\watcher.get_watch.json" />
213+
<None Include="RestSpecification\XPack\Watcher\watcher.info.json" />
214+
<None Include="RestSpecification\XPack\Watcher\watcher.put_watch.json" />
215+
<None Include="RestSpecification\XPack\Watcher\watcher.restart.json" />
216+
<None Include="RestSpecification\XPack\Watcher\watcher.start.json" />
217+
<None Include="RestSpecification\XPack\Watcher\watcher.stats.json" />
218+
<None Include="RestSpecification\XPack\Watcher\watcher.stop.json" />
78219
<None Include="Views\ElasticLowLevelClient.Generated.cshtml" />
79220
<None Include="Views\Enums.Generated.cshtml" />
80221
<None Include="Views\IElasticLowLevelClient.Generated.cshtml" />

0 commit comments

Comments
 (0)