Allows putting config.json onto buckets automatically
This commit is contained in:
parent
41f93ebde8
commit
1d6aafec60
|
@ -249,4 +249,34 @@ public static class ExoCmd
|
||||||
return await s3Region.PutBucket(installation.BucketName()) != null;
|
return await s3Region.PutBucket(installation.BucketName()) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task<Boolean> SendConfig(this Installation installation, String config)
|
||||||
|
{
|
||||||
|
|
||||||
|
// This looks hacky but here we grab the vpn-Ip of the installation by its installation Name (e.g. Salimax0001)
|
||||||
|
// From the vpn server (here salidomo, but we use the vpn home ip for future-proofing)
|
||||||
|
// using var client = new HttpClient();
|
||||||
|
// var webRequest = client.GetAsync("10.2.0.1/vpnstatus.txt");
|
||||||
|
// var text = webRequest.ToString();
|
||||||
|
// var lines = text!.Split(new [] { Environment.NewLine }, StringSplitOptions.None);
|
||||||
|
// var vpnIp = lines.First(l => l.Contains(installation.InstallationName)).Split(",")[1];
|
||||||
|
//
|
||||||
|
// // Writing the config to a file and then sending that file with rsync sounds inefficient
|
||||||
|
// // We should find a better solution...
|
||||||
|
// // TODO The VPN server should do this not the backend!!!
|
||||||
|
// await File.WriteAllTextAsync("./config.json", config);
|
||||||
|
// var result = await Cli.Wrap("rsync")
|
||||||
|
// .WithArguments("./config.json")
|
||||||
|
// .AppendArgument($@"root@{vpnIp}:/salimax")
|
||||||
|
// .ExecuteAsync();
|
||||||
|
|
||||||
|
// return result.ExitCode == 200;
|
||||||
|
|
||||||
|
|
||||||
|
var s3Region = new S3Region($"https://{installation.S3Region}.{installation.S3Provider}", S3Creds!);
|
||||||
|
var url = s3Region.Bucket(installation.BucketName()).Path("config.json");
|
||||||
|
return await url.PutObject(config);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -47,29 +47,6 @@ public static class InstallationMethods
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<Boolean> SendConfig(this Installation installation, String config)
|
|
||||||
{
|
|
||||||
|
|
||||||
// This looks hacky but here we grab the vpn-Ip of the installation by its installation Name (e.g. Salimax0001)
|
|
||||||
// From the vpn server (here salidomo, but we use the vpn home ip for future-proofing)
|
|
||||||
using var client = new HttpClient();
|
|
||||||
var webRequest = client.GetAsync("10.2.0.1/vpnstatus.txt");
|
|
||||||
var text = webRequest.ToString();
|
|
||||||
var lines = text!.Split(new [] { Environment.NewLine }, StringSplitOptions.None);
|
|
||||||
var vpnIp = lines.First(l => l.Contains(installation.InstallationName)).Split(",")[1];
|
|
||||||
|
|
||||||
// Writing the config to a file and then sending that file with rsync sounds inefficient
|
|
||||||
// We should find a better solution...
|
|
||||||
// TODO The VPN server should do this not the backend!!!
|
|
||||||
await File.WriteAllTextAsync("./config.json", config);
|
|
||||||
var result = await Cli.Wrap("rsync")
|
|
||||||
.WithArguments("./config.json")
|
|
||||||
.AppendArgument($@"root@{vpnIp}:/salimax")
|
|
||||||
.ExecuteAsync();
|
|
||||||
|
|
||||||
return result.ExitCode == 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IEnumerable<User> UsersWithAccess(this Installation installation)
|
public static IEnumerable<User> UsersWithAccess(this Installation installation)
|
||||||
{
|
{
|
||||||
return installation
|
return installation
|
||||||
|
|
Loading…
Reference in New Issue