Skip to content

Commit

Permalink
Added demo mode (#890)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaybeeelsdon authored Dec 10, 2024
1 parent 1d8a441 commit 15187ac
Show file tree
Hide file tree
Showing 11 changed files with 256 additions and 31 deletions.
6 changes: 4 additions & 2 deletions src/DARE-API/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -348,8 +348,10 @@

db.Database.Migrate();
var initialiser = new DataInitaliser(miniosettings, miniohelper, db, keytoken, userService);

if (configuration.GetValue<bool>("Testdata"))
if (demomode)
{
initialiser.SeedAllInOneData();
}else if (configuration.GetValue<bool>("Testdata"))
initialiser.SeedData();
}

Expand Down
39 changes: 39 additions & 0 deletions src/DARE-API/Repositories/DbContexts/DataInitaliser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using EasyNetQ.Management.Client.Model;
using Microsoft.EntityFrameworkCore;
using System;
using System.Xml.Linq;

namespace DARE_API.Repositories.DbContexts
{
Expand All @@ -30,6 +31,44 @@ public DataInitaliser(MinioSettings minioSettings, IMinioHelper minioHelper, App
_userService = userService;

}

public void SeedAllInOneData()
{

//var token = _keyclockTokenAPIHelper.GetTokenForUser("minioadmin", "password123", "").Result;
try
{
var trename = "DEMO";
var tre = _dbContext.Tres.FirstOrDefault(x => x.Name.ToLower() == "D".ToLower());
if (tre == null)
{
var demo = CreateTre(trename, "accessfromtretosubmission");
var globaladmin = CreateUser("globaladminuser", "globaladminuser@example.com");
var testing = CreateProject("Testing");
AddMissingTre(testing, demo);
AddMissingUser(testing, globaladmin);
_dbContext.SaveChanges();
}








}
catch (Exception e)
{
Log.Error(e, "{Function} Error seeding data", "SeedAllInOneData");
throw;
}




}

public void SeedData()
{
return;
Expand Down
6 changes: 5 additions & 1 deletion src/Data-Egress-API/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,11 @@
var encDec = scope.ServiceProvider.GetRequiredService<IEncDecHelper>();
db.Database.Migrate();
var initialiser = new DataInitaliser(db, encDec);
initialiser.SeedData();
if (demomode)
{
initialiser.SeedAllInOneData(configuration["DemoModeDefaultP"]);
}
//initialiser.SeedData();
}

app.UseForwardedHeaders(new ForwardedHeadersOptions
Expand Down
33 changes: 32 additions & 1 deletion src/Data-Egress-API/Repositories/DbContexts/DataInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,38 @@ public DataInitaliser(ApplicationDbContext dbContext, IEncDecHelper encDec)

}


public void SeedAllInOneData(string password)
{

try
{
if (!_dbContext.KeycloakCredentials.Any(x => x.CredentialType == CredentialType.Tre))
{


_dbContext.KeycloakCredentials.Add(new KeycloakCredentials()
{
UserName = "accessfromegresstotre",
CredentialType = CredentialType.Tre,
PasswordEnc = _encDecHelper.Encrypt(password)
});
_dbContext.SaveChanges();
}




}
catch (Exception e)
{
Log.Error(e, "{Function} Error seeding data", "SeedAllInOneData");
throw;
}




}

public void SeedData()
{
Expand Down
53 changes: 29 additions & 24 deletions src/TRE-API/Controllers/SubmissionController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,29 +188,7 @@ public IActionResult FilesReadyForReview([FromBody] ReviewFiles review)
{
try
{
_subHelper.UpdateStatusForTre(review.SubId, StatusType.DataOutRequested, "");
var bucket = _subHelper.GetOutputBucketGuts(review.SubId, false, false);
var egsub = new EgressSubmission()
{
SubmissionId = review.SubId,
OutputBucket = bucket.Bucket,
Status = EgressStatus.NotCompleted,
Files = new List<EgressFile>()
};

foreach (var reviewFile in review.Files)
{
egsub.Files.Add(new EgressFile()
{
Name = reviewFile,
Status = FileStatus.Undecided
});
}

var boolResult = _dataEgressHelper
.CallAPI<EgressSubmission, BoolReturn>("/api/DataEgress/AddNewDataEgress/", egsub).Result;
_subHelper.UpdateStatusForTre(review.SubId, StatusType.DataOutApprovalBegun, "");

var boolResult = _subHelper.FilesReadyForReview(review);
return StatusCode(200, boolResult);
}
catch (Exception ex)
Expand Down Expand Up @@ -285,7 +263,17 @@ public async Task<IActionResult> EgressResults([FromBody] EgressReview review)
_subHelper.UpdateStatusForTre(review.SubId, StatusType.RequestingHutchDoesFinalPackaging, "");
}

if (_agentSettings.UseTESK == false)
if (_agentSettings.SimulateResults)
{
var exch = _rabbit.Advanced.ExchangeDeclare(ExchangeConstants.Tre, "topic");
var outcome = new FinalOutcome()
{
File = review.FileResults.First().FileName,
SubId = review.SubId
};
_rabbit.Advanced.Publish(exch, RoutingConstants.ProcessFinalOutput, false, new Message<FinalOutcome>(outcome));
}
else if (_agentSettings.UseTESK == false)
{
Log.Information("{Function} Minio url sent {Url} bucket {Bucket}, path {path}", "EgressReview", hutchPayload.Host, hutchPayload.Bucket, hutchPayload.Path);
//Not sure what the return type is
Expand Down Expand Up @@ -370,6 +358,23 @@ public IActionResult SendSubmissionToHUTCH(Submission sub)
}
}

[HttpPost("SimulateSubmissionProcessing")]
public IActionResult SimulateSubmissionProcessing(Submission sub)
{
try
{
//Update status of submission to "Sending to hutch"
_subHelper.SimulateSubmissionProcessing(sub);

return StatusCode(200);
}
catch (Exception ex)
{
Log.Error(ex, "{Function} Crash", "SimulateSubmissionProcessing");
throw;
}
}


}
}
20 changes: 18 additions & 2 deletions src/TRE-API/DoAgentWork.cs
Original file line number Diff line number Diff line change
Expand Up @@ -469,10 +469,12 @@ public async Task Execute()
var useRabbit = _AgentSettings.UseRabbit;
var useHutch = _AgentSettings.UseHutch;
var useTESK = _AgentSettings.UseTESK;
var simulateResults = _AgentSettings.SimulateResults;

Log.Information("{Function} useRabbit {useRabbit}", "Execute", useRabbit);
Log.Information("{Function} useHutch {useHutch}", "Execute", useHutch);
Log.Information("{Function} useTESK {useTESK}", "Execute", useTESK);
Log.Information("{Function} Simulate Results {Simulate}", "Execute", simulateResults);

var cancelsubprojs = _subHelper.GetRequestCancelSubsForTre();
if (cancelsubprojs != null)
Expand Down Expand Up @@ -585,9 +587,23 @@ public async Task Execute()
}
}

// ************** SEND TO HUTCH
if (useHutch)
if (simulateResults)
{
try
{

_subHelper.SimulateSubmissionProcessing(aSubmission);

}
catch (Exception e)
{
Log.Error(e, "{Function} Simulation failed for sub {SubId}", "Execute", aSubmission.Id);
processedOK = false;
}
}
else if (useHutch)
{
// ************** SEND TO HUTCH
// TODO for rest API
try
{
Expand Down
1 change: 1 addition & 0 deletions src/TRE-API/Models/AgentSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ public class AgentSettings
public bool UseRabbit { get; set; }
public bool UseHutch { get; set; }
public bool UseTESK { get; set; }
public bool SimulateResults { get; set; }

public string TESKOutputBucketPrefix { get; set; }

Expand Down
7 changes: 6 additions & 1 deletion src/TRE-API/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@

var AgentSettings = new AgentSettings();
configuration.Bind(nameof(AgentSettings), AgentSettings);
AgentSettings.SimulateResults = demomode;
builder.Services.AddSingleton(AgentSettings);

var Features = new Features();
Expand Down Expand Up @@ -275,7 +276,11 @@
var encDec = scope.ServiceProvider.GetRequiredService<IEncDecHelper>();
db.Database.Migrate();
var initialiser = new DataInitaliser(db, encDec);
initialiser.SeedData();
if (demomode)
{
initialiser.SeedAllInOneData(configuration["DemoModeDefaultP"]);
}
//initialiser.SeedData();

}

Expand Down
42 changes: 42 additions & 0 deletions src/TRE-API/Repositories/DbContexts/DataInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,48 @@ public DataInitaliser(ApplicationDbContext dbContext, IEncDecHelper encDec)
_encDecHelper = encDec;


}

public void SeedAllInOneData(string password)
{

try
{
if (!_dbContext.KeycloakCredentials.Any(x => x.CredentialType == CredentialType.Submission))
{


_dbContext.KeycloakCredentials.Add(new KeycloakCredentials()
{
UserName = "accessfromtretosubmission",
CredentialType = CredentialType.Submission,
PasswordEnc = _encDecHelper.Encrypt(password)
});
_dbContext.SaveChanges();
}

if (!_dbContext.KeycloakCredentials.Any(x => x.CredentialType == CredentialType.Egress))
{


_dbContext.KeycloakCredentials.Add(new KeycloakCredentials()
{
UserName = "accessfromtretoegress",
CredentialType = CredentialType.Egress,
PasswordEnc = _encDecHelper.Encrypt(password)
});
_dbContext.SaveChanges();
}
}
catch (Exception e)
{
Log.Error(e, "{Function} Error seeding data", "SeedData");
throw;
}




}

public void SeedData()
Expand Down
Loading

0 comments on commit 15187ac

Please sign in to comment.