Split S3KeySecret into S3Key and S3Secret

This commit is contained in:
ig 2023-07-05 15:10:08 +02:00
parent 25450aecee
commit 3a10e4cb20
1 changed files with 6 additions and 41 deletions

View File

@ -1,5 +1,3 @@
using CliWrap;
using CliWrap.Buffered;
using InnovEnergy.App.Backend.Database; using InnovEnergy.App.Backend.Database;
using InnovEnergy.App.Backend.S3; using InnovEnergy.App.Backend.S3;
using InnovEnergy.Lib.Utils; using InnovEnergy.Lib.Utils;
@ -19,7 +17,11 @@ public static class InstallationMethods
public static async Task<Boolean> RenewS3BucketUrl(this Installation installation) public static async Task<Boolean> RenewS3BucketUrl(this Installation installation)
{ {
installation.RevokeKey(); installation.RevokeKey();
installation.S3KeySecret = await installation.CreateKey(); var (key, secret) = await installation.CreateKey();
installation.S3Key = key;
installation.S3Secret = secret;
return Db.Update(installation); return Db.Update(installation);
} }
@ -125,40 +127,3 @@ public static class InstallationMethods
} }
} }
public static class ExoCmd
{
private static readonly Command Exo = Cli.Wrap("exo");
private static String ConfigFile = "./exoscale.toml";
public static async Task<String> CreateKey(this Installation installation)
{
if (installation.Id != 1) return "help"; //Todo remove me I am for debugging
var preParse = await Exo
.WithArguments("iam access-key create " + installation.BucketName()
+ " --operation get-sos-object"
+ " --resource sos/bucket:" + installation.BucketName()
+ " -C " + ConfigFile
+ " -O text")
.ExecuteBufferedAsync();
return $"{preParse.StandardOutput.Split("\t")[2]};{preParse.StandardOutput.Split("\t")[3]}";
}
public static async void RevokeKey(this Installation installation)
{
try
{
await Exo
.WithArguments("iam access-key revoke " + installation.S3KeySecret.Split(";", 2)[0] + " -f " + " -C " + ConfigFile)
.ExecuteAsync();
}
catch
{
// todo Fill me there is no key for this installation
}
}
}