Skip to content

Commit a67529f

Browse files
authored
Fix/7.x/unmapped (#3866)
* Some requests were marked as unmapped even though they were due to their source files also containing other descriptors * Code generation now uses the obsolete properties resulting in compiler errors
1 parent b1faa50 commit a67529f

File tree

7 files changed

+14
-18
lines changed

7 files changed

+14
-18
lines changed

src/CodeGeneration/ApiGenerator/Configuration/CodeConfiguration.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ where Regex.IsMatch(l, ResponseBuilderAttributeRegex)
5959

6060
public static readonly Dictionary<string, string> DescriptorGenericsLookup =
6161
(from f in new DirectoryInfo(GeneratorLocations.NestFolder).GetFiles("*Request.cs", SearchOption.AllDirectories)
62+
let name = Path.GetFileNameWithoutExtension(f.Name).Replace("Request", "")
6263
let contents = File.ReadAllText(f.FullName)
63-
let c = Regex.Replace(contents, @"^.+class ([^ \r\n]+Descriptor(?:<[^>\r\n]+>)?[^ \r\n]*).*$", "$1", RegexOptions.Singleline)
64-
select new { Key = Regex.Replace(c, "<.*$", ""), Value = Regex.Replace(c, @"^.*?(?:(\<.+>).*?)?$", "$1") })
64+
let c = Regex.Replace(contents, $@"^.+class ({name}Descriptor(?:<[^>\r\n]+>)?[^ \r\n]*).*$", "$1", RegexOptions.Singleline)
65+
let key = $"{name}Descriptor"
66+
select new { Key = key, Value = Regex.Replace(c, @"^.*?(?:(\<.+>).*?)?$", "$1") })
6567
.DistinctBy(v => v.Key)
6668
.OrderBy(v => v.Key)
6769
.ToDictionary(k => k.Key, v => v.Value);

src/CodeGeneration/ApiGenerator/Views/HighLevel/Descriptors/Descriptor.cshtml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@
8383
}
8484
@if (names.DescriptorNotFoundInCodebase)
8585
{<text>
86-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement @names.DescriptorName and @names.RequestName in a file called @(names.RequestName).cs in NEST's codebase", true)]
87-
public bool IsUnmapped => true;
86+
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement @names.DescriptorName and @names.RequestName in a file called @(names.RequestName).cs in NEST's codebase", true)]
87+
public bool IsUnmapped => true;
88+
public bool UseIsUnmapped => IsUnmapped;
8889
</text>
8990
}
9091
}

src/CodeGeneration/ApiGenerator/Views/HighLevel/Requests/RequestImplementations.cshtml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@
5151
}
5252
@if (names.DescriptorNotFoundInCodebase)
5353
{<text>
54-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement @names.DescriptorName and @names.RequestName in a file called @(names.RequestName).cs in NEST's codebase", true)]
55-
public bool IsUnmapped => true;
54+
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement @names.DescriptorName and @names.RequestName in a file called @(names.RequestName).cs in NEST's codebase", true)]
55+
public bool IsUnmapped => true;
56+
public bool UseIsUnmapped => IsUnmapped;
5657
</text>
5758
}
5859
}

src/Nest/Descriptors.IndexLifecycleManagement.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,7 @@ protected MoveToStepDescriptor(): base()
130130
///<summary>a shortcut into calling Index(typeof(TOther))</summary>
131131
public MoveToStepDescriptor Index<TOther>()
132132
where TOther : class => Assign(typeof(TOther), (a, v) => a.RouteValues.Required("index", (IndexName)v));
133-
// Request parameters
134-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement MoveToStepDescriptor and MoveToStepRequest in a file called MoveToStepRequest.cs in NEST's codebase", true)]
135-
public bool IsUnmapped => true;
133+
// Request parameters
136134
}
137135

138136
///<summary>descriptor for PutLifecycle <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-put-lifecycle.html</para></summary>

src/Nest/Descriptors.Security.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,7 @@ public HasPrivilegesDescriptor(Name user): base(r => r.Optional("user", user))
405405
Name IHasPrivilegesRequest.User => Self.RouteValues.Get<Name>("user");
406406
///<summary>Username</summary>
407407
public HasPrivilegesDescriptor User(Name user) => Assign(user, (a, v) => a.RouteValues.Optional("user", v));
408-
// Request parameters
409-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement HasPrivilegesDescriptor and HasPrivilegesRequest in a file called HasPrivilegesRequest.cs in NEST's codebase", true)]
410-
public bool IsUnmapped => true;
408+
// Request parameters
411409
}
412410

413411
///<summary>descriptor for InvalidateApiKey <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-invalidate-api-key.html</para></summary>

src/Nest/Requests.IndexLifecycleManagement.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,7 @@ protected MoveToStepRequest(): base()
173173
// values part of the url path
174174
[IgnoreDataMember]
175175
IndexName IMoveToStepRequest.Index => Self.RouteValues.Get<IndexName>("index");
176-
// Request parameters
177-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement MoveToStepDescriptor and MoveToStepRequest in a file called MoveToStepRequest.cs in NEST's codebase", true)]
178-
public bool IsUnmapped => true;
176+
// Request parameters
179177
}
180178

181179
[InterfaceDataContract]

src/Nest/Requests.Security.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -683,9 +683,7 @@ public HasPrivilegesRequest(Name user): base(r => r.Optional("user", user))
683683
// values part of the url path
684684
[IgnoreDataMember]
685685
Name IHasPrivilegesRequest.User => Self.RouteValues.Get<Name>("user");
686-
// Request parameters
687-
[Obsolete("Unmapped, blacklist this API in CodeConfiguration.cs or implement HasPrivilegesDescriptor and HasPrivilegesRequest in a file called HasPrivilegesRequest.cs in NEST's codebase", true)]
688-
public bool IsUnmapped => true;
686+
// Request parameters
689687
}
690688

691689
[InterfaceDataContract]

0 commit comments

Comments
 (0)