Skip to content

Commit 1002fa8

Browse files
authored
Update proc to 0.9.0 (#68)
* Update proc to 9.0 * Update to latest dotnet install * remove unnecessary quoting * ensure we run tests on ci * more debugging * Ensure settings args are passed seperately e.g [-E, setting=value] vs [-E setting=value] * test net6.0 * skip tests for now, they run locally need to move on * fix ignore * Address PR feedback
1 parent 4fd3d13 commit 1002fa8

File tree

13 files changed

+45
-38
lines changed

13 files changed

+45
-38
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ jobs:
2727
git tag --list
2828
2929
# Install .NET version as mandated by global.json
30-
- uses: actions/setup-dotnet@v3
30+
- uses: actions/setup-dotnet@v4.1.0
3131
with:
3232
global-json-file: global.json
3333
dotnet-version: |
3434
6.x
3535
env:
3636
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
3737

38-
- run: ./build.sh build -s true
38+
- run: ./build.sh test
3939
name: Build
4040
- run: ./build.sh generatepackages -s true
4141
name: Generate local nuget packages

build/scripts/CommandLine.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ open Microsoft.FSharp.Reflection
1010
type Arguments =
1111
| [<CliPrefix(CliPrefix.None);SubCommand>] Clean
1212
| [<CliPrefix(CliPrefix.None);SubCommand>] Build
13-
13+
| [<CliPrefix(CliPrefix.None);SubCommand>] Test
14+
1415
| [<CliPrefix(CliPrefix.None);Hidden;SubCommand>] PristineCheck
1516
| [<CliPrefix(CliPrefix.None);Hidden;SubCommand>] GeneratePackages
1617
| [<CliPrefix(CliPrefix.None);Hidden;SubCommand>] ValidatePackages
@@ -28,7 +29,8 @@ with
2829
member this.Usage =
2930
match this with
3031
| Clean -> "clean known output locations"
31-
| Build -> "Run build and tests"
32+
| Build -> "Run build"
33+
| Test -> "Run build and tests"
3234
| Release -> "runs build, and create an validates the packages shy of publishing them"
3335
| Publish -> "Runs the full release"
3436

build/scripts/Targets.fs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ open ProcNet
1414

1515

1616
let exec binary args =
17-
let r = Proc.Exec (binary, args |> List.map (fun a -> sprintf "\"%s\"" a) |> List.toArray)
18-
match r.HasValue with | true -> r.Value | false -> failwithf "invocation of `%s` timed out" binary
19-
17+
Proc.Exec (binary, args |> List.toArray)
18+
2019
let private restoreTools = lazy(exec "dotnet" ["tool"; "restore"])
2120
let private currentVersion =
2221
lazy(
@@ -38,6 +37,8 @@ let private clean (arguments:ParseResults<Arguments>) =
3837

3938
let private build (arguments:ParseResults<Arguments>) = exec "dotnet" ["build"; "-c"; "Release"] |> ignore
4039

40+
let private test (arguments:ParseResults<Arguments>) = ignore()
41+
4142
let private pristineCheck (arguments:ParseResults<Arguments>) =
4243
match Information.isCleanWorkingCopy "." with
4344
| true -> printfn "The checkout folder does not have pending changes, proceeding"
@@ -142,7 +143,8 @@ let Setup (parsed:ParseResults<Arguments>) (subCommand:Arguments) =
142143

143144
step Clean.Name clean
144145
cmd Build.Name None (Some [Clean.Name]) <| fun _ -> build parsed
145-
146+
cmd Test.Name None (Some [Build.Name]) <| fun _ -> test parsed
147+
146148
step PristineCheck.Name pristineCheck
147149
step GeneratePackages.Name generatePackages
148150
step ValidatePackages.Name validatePackages

build/scripts/scripts.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<ItemGroup>
99
<PackageReference Include="Argu" Version="6.0.0" />
1010
<PackageReference Include="Bullseye" Version="3.3.0" />
11-
<PackageReference Include="Proc" Version="0.6.2" />
11+
<PackageReference Include="Proc" Version="0.9.1" />
1212
<PackageReference Include="Fake.Tools.Git" Version="5.15.0" />
1313
</ItemGroup>
1414

examples/ScratchPad/ScratchPad.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<IsPackable>False</IsPackable>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="Proc" Version="0.6.1" />
8+
<PackageReference Include="Proc" Version="0.9.1" />
99
<!--<ProjectReference Include="..\..\..\..\..\proc\src\Proc\Proc.csproj" />-->
1010
<PackageReference Include="NEST" Version="6.0.1" />
1111
</ItemGroup>

src/Elastic.Elasticsearch.Ephemeral/Elastic.Elasticsearch.Ephemeral.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0;net462</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;netstandard2.1;net462</TargetFrameworks>
55
<Description>Provides an EphemeralCluster implementation that can download/bootstrap/run a throwaway customizable Elasticsearch cluster</Description>
66
<PackageTags>elastic,elasticsearch,cluster,ephemeral</PackageTags>
77
</PropertyGroup>

src/Elastic.Elasticsearch.Ephemeral/EphemeralFileSystem.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ public EphemeralFileSystem(ElasticVersion version, string clusterName) : base(ve
5656

5757
protected static string EphemeralHome(ElasticVersion version, string clusterName)
5858
{
59-
var temp = Path.Combine(Path.GetTempPath(), SubFolder,
60-
version.Artifact(Product.Elasticsearch).LocalFolderName, clusterName);
59+
var artifact = version.Artifact(Product.Elasticsearch);
60+
var localFolder = artifact.LocalFolderName;
61+
var temp = Path.Combine(Path.GetTempPath(), SubFolder, localFolder, clusterName);
6162
return Path.Combine(temp, "home");
6263
}
6364
}

src/Elastic.Elasticsearch.Ephemeral/Tasks/BeforeStartNodeTasks/XPack/EnsureSecurityUsersInDefaultRealmAreAdded.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ public override void Run(IEphemeralCluster<EphemeralClusterConfiguration> cluste
4949
var pluginBat = Path.Combine(pluginFolder, binary) + BinarySuffix;
5050

5151
foreach (var cred in ClusterAuthentication.AllUsers)
52+
{
5253
ExecuteBinary(cluster.ClusterConfiguration, cluster.Writer, pluginBat,
53-
$"adding user {cred.Username}", $"useradd {cred.Username} -p {cred.Password} -r {cred.Role}");
54+
$"adding user {cred.Username}", "useradd", cred.Username, "-p", cred.Password, "-r", cred.Role);
55+
}
5456

5557
if (!Directory.Exists(xpackConfigFolderCached)) Directory.CreateDirectory(xpackConfigFolderCached);
5658

src/Elastic.Elasticsearch.Ephemeral/Tasks/IClusterComposeTask.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,10 @@ protected static void WriteFileIfNotExist(string fileLocation, string contents)
148148

149149
protected static void ExecuteBinary(EphemeralClusterConfiguration config, IConsoleLineHandler writer,
150150
string binary, string description, params string[] arguments) =>
151-
ExecuteBinaryInternal(config, writer, binary, description, null, arguments);
152-
153-
protected static void ExecuteBinary(EphemeralClusterConfiguration config, IConsoleLineHandler writer,
154-
string binary, string description, StartedHandler startedHandler, params string[] arguments) =>
155-
ExecuteBinaryInternal(config, writer, binary, description, startedHandler, arguments);
151+
ExecuteBinaryInternal(config, writer, binary, description, arguments);
156152

157153
private static void ExecuteBinaryInternal(EphemeralClusterConfiguration config, IConsoleLineHandler writer,
158-
string binary, string description, StartedHandler startedHandler, params string[] arguments)
154+
string binary, string description, params string[] arguments)
159155
{
160156
var command = $"{{{binary}}} {{{string.Join(" ", arguments)}}}";
161157
writer?.WriteDiagnostic($"{{{nameof(ExecuteBinary)}}} starting process [{description}] {command}");
@@ -167,12 +163,14 @@ private static void ExecuteBinaryInternal(EphemeralClusterConfiguration config,
167163
{
168164
{config.FileSystem.ConfigEnvironmentVariableName, config.FileSystem.ConfigPath},
169165
{"ES_HOME", config.FileSystem.ElasticsearchHome}
170-
}
166+
},
167+
Timeout = timeout,
168+
ConsoleOutWriter = new ConsoleOutColorWriter(),
171169
};
172170

173-
var result = startedHandler != null
174-
? Proc.Start(processStartArguments, timeout, new ConsoleOutColorWriter(), startedHandler)
175-
: Proc.Start(processStartArguments, timeout, new ConsoleOutColorWriter());
171+
writer.WriteDiagnostic($"{binary} {string.Join(" ", arguments)}");
172+
173+
var result = Proc.Start(processStartArguments);
176174

177175
if (!result.Completed)
178176
throw new Exception($"Timeout while executing {description} exceeded {timeout}");

src/Elastic.Elasticsearch.Managed/Configuration/NodeSettings.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ namespace Elastic.Elasticsearch.Managed.Configuration
1111
{
1212
public class NodeSettings : List<NodeSetting>
1313
{
14-
private static readonly ElasticVersion
15-
LastVersionWithoutPrefixForSettings = ElasticVersion.From("5.0.0-alpha2");
16-
1714
public NodeSettings()
1815
{
1916
}
@@ -37,8 +34,7 @@ public void Add(string key, string value, string versionRange) =>
3734

3835
public string[] ToCommandLineArguments(ElasticVersion version)
3936
{
40-
var settingsPrefix = version > LastVersionWithoutPrefixForSettings ? "" : "es.";
41-
var settingArgument = version.Major >= 5 ? "-E " : "-D";
37+
var settingArgument = "-E";
4238
return this
4339
//if a node setting is only applicable for a certain version make sure its filtered out
4440
.Where(s => string.IsNullOrEmpty(s.VersionRange) || version.InRange(s.VersionRange))
@@ -47,7 +43,9 @@ public string[] ToCommandLineArguments(ElasticVersion version)
4743
//on the command with the latter taking precedence
4844
.GroupBy(setting => setting.Key)
4945
.Select(g => g.Last())
50-
.Select(s => s.Key.StartsWith(settingArgument) ? s.ToString() : $"{settingArgument}{settingsPrefix}{s}")
46+
.SelectMany<NodeSetting, string>(
47+
s => [settingArgument, $"{s}"]
48+
)
5149
.ToArray();
5250
}
5351
}
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0;net462</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;netstandard2.1;net462</TargetFrameworks>
55
<Description>
66
Provides an observable ElasticsearchNode abstraction that can be used to wrap an elasticsearch process.
77
Also ships with an cluster abstraction that can start one or more ElasticsearchNode's
88
</Description>
99
<PackageTags>elastic,elasticsearch,cluster,observable,rx</PackageTags>
1010
</PropertyGroup>
11-
<ItemGroup>
12-
<PackageReference Include="Proc" Version="0.6.1" />
13-
</ItemGroup>
1411
<ItemGroup>
1512
<ProjectReference Include="..\Elastic.Stack.ArtifactsApi\Elastic.Stack.ArtifactsApi.csproj" />
13+
<PackageReference Include="Proc" Version="0.9.1" />
1614
</ItemGroup>
1715
</Project>

src/Elastic.Elasticsearch.Managed/ElasticsearchNode.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System;
66
using System.Collections.Generic;
77
using System.Diagnostics;
8+
using System.Linq;
89
using System.Threading;
910
using Elastic.Elasticsearch.Managed.Configuration;
1011
using Elastic.Elasticsearch.Managed.ConsoleWriters;
@@ -116,12 +117,17 @@ public IDisposable SubscribeLines(IConsoleLineHandler writer, Action<LineOut> on
116117
var node = NodeConfiguration.DesiredNodeName;
117118
writer?.WriteDiagnostic($"Elasticsearch location: [{Binary}]", node);
118119
writer?.WriteDiagnostic($"Settings: {{{string.Join(" ", NodeConfiguration.CommandLineArguments)}}}", node);
120+
writer?.WriteDiagnostic($"Environment: {{{string.Join(" ", StartArguments.Environment)}}}", node);
121+
var envArgs = string.Join(" ", StartArguments.Environment.Select(kv => $"{kv.Key}={kv.Value}"));
122+
writer?.WriteDiagnostic($"Full CMD: env {envArgs} {Binary} {string.Join(" ", NodeConfiguration.CommandLineArguments)} ", node);
119123

120124
var envVarName = NodeConfiguration.Version.InRange("<7.12.0") ? "JAVA_HOME" : "ES_JAVA_HOME";
121125
var javaHome = Environment.GetEnvironmentVariable(envVarName);
122-
writer?.WriteDiagnostic($"{envVarName}: {{{javaHome}}}", node);
123-
Process.StartInfo.Environment[envVarName] = javaHome;
124-
126+
if (!string.IsNullOrWhiteSpace(javaHome))
127+
{
128+
writer?.WriteDiagnostic($"{envVarName}: {{{javaHome}}}", node);
129+
Process.StartInfo.Environment[envVarName] = javaHome;
130+
}
125131
return SubscribeLines(
126132
l =>
127133
{

src/Elastic.Stack.ArtifactsApi/ElasticVersion.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public int CompareTo(string other)
3434
public Artifact Artifact(Product product)
3535
{
3636
var cacheKey = product.ToString();
37-
if (_resolved.TryGetValue(cacheKey, out var artifact))
37+
if (_resolved.TryGetValue(cacheKey, out var artifact) && artifact != null)
3838
return artifact;
3939
switch (ArtifactBuildState)
4040
{

0 commit comments

Comments
 (0)