44 lines
978 B
C#
44 lines
978 B
C#
using System.Diagnostics;
|
|
|
|
namespace k8s.kubectl.Tests;
|
|
|
|
public partial class KubectlTests
|
|
{
|
|
private string RunKubectl(string args)
|
|
{
|
|
var p = new Process
|
|
{
|
|
StartInfo = new ProcessStartInfo
|
|
{
|
|
FileName = "kubectl",
|
|
Arguments = args,
|
|
UseShellExecute = false,
|
|
RedirectStandardOutput = true,
|
|
RedirectStandardError = true,
|
|
CreateNoWindow = true,
|
|
},
|
|
};
|
|
|
|
p.Start();
|
|
|
|
try
|
|
{
|
|
if (!p.WaitForExit((int)TimeSpan.FromSeconds(30).TotalMilliseconds))
|
|
{
|
|
throw new Exception("kubectl timed out");
|
|
}
|
|
|
|
if (p.ExitCode != 0)
|
|
{
|
|
throw new Exception(p.StandardError.ReadToEnd());
|
|
}
|
|
|
|
return p.StandardOutput.ReadToEnd();
|
|
}
|
|
finally
|
|
{
|
|
p.Kill(true);
|
|
}
|
|
}
|
|
}
|