internal static string[] GetStagedInputs(string nameOrID, bool isGuid) { List <String> stagedInputList = new List <String>(); using (var db = new ProducerContext()) { Turbine.Data.Entities.Simulation entity = null; if (isGuid == true) { Guid simulationid = new Guid(nameOrID); entity = db.Simulations.OrderByDescending(q => q.Count).Single(a => a.Id == simulationid); } else { entity = db.Simulations.OrderByDescending(q => q.Count).First(a => a.Name == nameOrID); } foreach (var si in entity.SimulationStagedInputs) { stagedInputList.Add(si.Name); } } return(stagedInputList.ToArray <String>());; }
public static void ClassInit(TestContext context) { BaseDatabaseTest.CleanUpDatabase(); using (var db = new ProducerContext()) { var app = new Turbine.Data.Entities.Application { Name = "ACM", Version = "7.3" }; db.Applications.Add(app); var user = new Turbine.Data.Entities.User { Name = username }; db.Users.Add(user); db.SaveChanges(); } using (var db = new ProducerContext()) { var item = db.Applications.Single(s => s.Name == "ACM"); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "configuration", Required = true, Type = "plain/text" }); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "aspenfile", Required = true, Type = "plain/text" }); db.SaveChanges(); } using (var db = new ProducerContext()) { var app = db.Applications.Single(s => s.Name == "ACM"); var user = db.Users.Single(u => u.Name == username); var sim = new Turbine.Data.Entities.Simulation { Id = Guid.NewGuid(), Application = app, Create = DateTime.UtcNow, Name = "Test", Update = DateTime.UtcNow, User = user }; db.Simulations.Add(sim); db.SaveChanges(); } }
internal static Simulation GetSimulation(string nameOrID, bool isGuid) { Simulation sim = null; var stagedInputList = new SimpleStagedInputFiles(); using (var db = new ProducerContext()) { Turbine.Data.Entities.Simulation entity = null; if (isGuid == true) { Guid simulationid = new Guid(nameOrID); entity = db.Simulations.OrderByDescending(q => q.Count).Single(a => a.Id == simulationid); } else { entity = db.Simulations.OrderByDescending(q => q.Count).First(a => a.Name == nameOrID); } if (entity != null) { foreach (var input in entity.SimulationStagedInputs) { stagedInputList.Add(new SimpleStagedInputFile { Name = input.Name, Id = input.Id, MD5Sum = input.Hash }); } sim = new Simulation { Id = entity.Id, Name = entity.Name, Application = entity.ApplicationName, }; //sim.StagedInputs = stagedInputList.ToArray<String>(); sim.StagedInputs = stagedInputList; } } return(sim); }
internal static StagedInputFile GetStagedInputFile(string nameOrID, string inputName, bool isGuid) { Debug.WriteLine("Entered", "DataMarshal.GetStagedInputFile"); StagedInputFile siFile = null; using (var db = new ProducerContext()) { Turbine.Data.Entities.Simulation entity = null; if (isGuid == true) { Debug.WriteLine("isGuid: True", "DataMarshal.GetStagedInputFile"); Guid simulationid = new Guid(nameOrID); entity = db.Simulations.SingleOrDefault(a => a.Id == simulationid); } else { Debug.WriteLine("isGuid: False", "DataMarshal.GetStagedInputFile"); entity = db.Simulations.OrderByDescending(q => q.Count).First(a => a.Name == nameOrID); } if (entity == null) { Debug.WriteLine(String.Format("GetStagedInputFile: Simulation {0} does not exist", nameOrID), "DataMarshal"); return(null); } Turbine.Data.Entities.SimulationStagedInput si = entity.SimulationStagedInputs.SingleOrDefault(s => s.Name == inputName); if (si == null) { Debug.WriteLine(String.Format("GetStagedInputFile: Simulation {0} input {1} does not exist", nameOrID, inputName), "DataMarshal"); return(null); } //TODO: Add Input File Type to Entity //siFile = new StagedInputFile() { Content = si.Content, Name = si.Name, InputFileType = si.InputFileType }; siFile = new StagedInputFile() { Content = si.Content, Name = si.Name, InputFileType = null }; } Debug.WriteLine("Returned siFile: " + siFile.ToString(), "DataMarshal.GetStagedInputFile"); return(siFile); }
public void GetSimulationListTest() { var userName = "******"; using (var db = new Turbine.DataEF6.ProducerContext()) { var app = db.Applications.Single(s => s.Name == "ACM"); var user = db.Users.Single(u => u.Name == userName); var sim = new Turbine.Data.Entities.Simulation { Id = Guid.NewGuid(), Application = app, Create = DateTime.UtcNow, Name = "Dummy", Update = DateTime.UtcNow, User = user }; db.Simulations.Add(sim); db.SaveChanges(); } using (WebClient wc = new WebClient()) { var json = wc.DownloadString("http://localhost:8000/TurbineLite/simulation"); Console.WriteLine("RESPONSE: {0}", json); var simList = JsonConvert.DeserializeObject <SimulationList>(json); Assert.IsTrue(simList.Count >= 1); var sim = simList.Single(e => e.Name == "Dummy"); Assert.AreEqual(sim.Name, "Dummy"); json = wc.DownloadString("http://localhost:8000/TurbineLite/simulation/dummy"); sim = JsonConvert.DeserializeObject <Simulation>(json); Assert.AreEqual <string>(sim.Name, "Dummy"); Assert.AreEqual <string>(sim.Application, "ACM"); } }
public static void Initialize(TestContext context) { BaseDatabaseTest.CleanUpDatabase(); using (var db = new ProducerContext()) { var app = new Turbine.Data.Entities.Application { Name = "ACM", Version = "7.3" }; db.Applications.Add(app); var user = new Turbine.Data.Entities.User { Name = userName }; db.Users.Add(user); db.SaveChanges(); } using (var db = new ProducerContext()) { var item = db.Applications.Single(s => s.Name == "ACM"); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "configuration", Required = true, Type = "plain/text" }); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "aspenfile", Required = true, Type = "plain/text" }); db.SaveChanges(); } using (var db = new ProducerContext()) { var app = db.Applications.Single(s => s.Name == "ACM"); var user = db.Users.Single(u => u.Name == userName); var sim = new Turbine.Data.Entities.Simulation { Id = Guid.NewGuid(), Application = app, Create = DateTime.UtcNow, Name = simulationName, Update = DateTime.UtcNow, User = user }; db.Simulations.Add(sim); db.SaveChanges(); } using (var db = new ProducerContext()) { var item = new Turbine.Data.Entities.Session { Id = sessionId, Description = "testing simulation", Create = DateTime.UtcNow }; db.Sessions.Add(item); db.SaveChanges(); } List <Turbine.Data.Entities.Job> jobsList = new List <Turbine.Data.Entities.Job>(); // Session using (var db = new ProducerContext()) { var item = db.Sessions.Single(s => s.Id == sessionId); var user = db.Users.Single(u => u.Name == userName); var simulation = db.Simulations.Single(s => s.Name == simulationName); for (int i = 0; i < 10; i++) { var job = new Turbine.Data.Entities.Job { Id = Guid.NewGuid(), Session = item, Create = DateTime.UtcNow, State = "success", User = user, Simulation = simulation }; jobsList.Add(job); db.Jobs.Add(job); } db.SaveChanges(); } using (var db = new ProducerContext()) { var session = db.Sessions.Single(s => s.Id == sessionId); var item = new Turbine.Data.Entities.Generator { Id = generatorId, Page = 1, Session = session, Create = DateTime.UtcNow }; db.Generators.Add(item); db.SaveChanges(); } using (var db = new ProducerContext()) { var generator = db.Generators.Single(g => g.Id == generatorId); var session = db.Sessions.Single(s => s.Id == sessionId); Debug.WriteLine("Generator Page num: " + generator.Page); foreach (var job in session.Jobs) { var item = new Turbine.Data.Entities.GeneratorJob { Id = Guid.NewGuid(), Page = 2, Generator = generator, Job = job }; db.GeneratorJobs.Add(item); } db.SaveChanges(); } }
private void CreateSimulationEmptyInputs(string simulationName) { byte[] dataACMF = new Byte[] {}; byte[] dataConfig = new Byte[] { }; Console.WriteLine("Testing"); /* * using (var db = new ProducerContext()) * { * var app = db.Applications.Single(s => s.Name == "ACM"); * var user = db.Users.Single(u => u.Name == username); * var sim = new Turbine.Data.Entities.Simulation * { * Id = Guid.NewGuid(), * Application = app, * Create = DateTime.UtcNow, * Name = "Test3", * Update = DateTime.UtcNow, * User = user * }; * db.Simulations.Add(sim); * db.SaveChanges(); * } */ using (var db = new ProducerContext()) { var app = db.Applications.Single(s => s.Name == "ACM"); var user = db.Users.Single(u => u.Name == username); Console.WriteLine("User: {0}", user.Name); var sim = new Turbine.Data.Entities.Simulation() { Name = simulationName, Id = Guid.NewGuid(), User = user, Application = app, Create = DateTime.UtcNow, Update = DateTime.UtcNow }; db.Simulations.Add(sim); db.SaveChanges(); } using (var db = new ProducerContext()) { var sim = db.Simulations.Single(s => s.Name == simulationName); Console.WriteLine("Simulation: {0}", sim.Name); var it = sim.Application.InputFileTypes.Single(s => s.Name == "aspenfile"); var item = new Turbine.Data.Entities.SimulationStagedInput { Id = Guid.NewGuid(), Name = it.Name, Content = dataACMF, Hash = "", Simulation = sim }; Console.WriteLine("SimulationStagedInput: {0}", item.Name); sim.SimulationStagedInputs.Add(item); it = sim.Application.InputFileTypes.Single(s => s.Name == "configuration"); item = new Turbine.Data.Entities.SimulationStagedInput { //InputFileType = it, Simulation = sim, Content = dataConfig, Hash = "", Id = Guid.NewGuid(), Name = it.Name }; Console.WriteLine("SimulationStagedInput: {0}", item.Name); sim.SimulationStagedInputs.Add(item); try { db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } } }
//[DeploymentItem(@"models\Hybrid_v0.51_rev1.1_UQ_0809.acmf")] //[DeploymentItem(@"models\Hybrid_v0.51_rev1.1_UQ_0809_sinter.json")] public void TestApplication_Write() { //AppDomain.CurrentDomain.SetData("DataDirectory", // Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)); var guid = Guid.NewGuid(); var simulationName = "Test"; using (var db = new ProducerContext()) { var app = new Turbine.Data.Entities.Application { Name = "ACM", Version = "7.3" }; db.Applications.Add(app); var user = new Turbine.Data.Entities.User { Name = "testuser" }; db.Users.Add(user); db.SaveChanges(); } using (var db = new ProducerContext()) { var item = db.Applications.Single(s => s.Name == "ACM"); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "configuration", Required = true, Type = "plain/text" }); item.InputFileTypes.Add(new Turbine.Data.Entities.InputFileType { Id = Guid.NewGuid(), Name = "aspenfile", Required = true, Type = "plain/text" }); db.SaveChanges(); } using (var db = new ProducerContext()) { var app = db.Applications.Single(s => s.Name == "ACM"); var user = db.Users.Single(u => u.Name == username); var sim = new Turbine.Data.Entities.Simulation { Id = Guid.NewGuid(), Application = app, Create = DateTime.UtcNow, Name = simulationName, Update = DateTime.UtcNow, User = user }; db.Simulations.Add(sim); db.SaveChanges(); } byte[] dataACMF; using (var fstream = File.Open(@"models\Hybrid_v0.51_rev1.1_UQ_0809.acmf", FileMode.Open)) { using (var ms = new MemoryStream()) { fstream.CopyTo(ms); dataACMF = ms.ToArray(); } } byte[] dataConfig; using (var fstream = File.Open(@"models\Hybrid_v0.51_rev1.1_UQ_0809_sinter.json", FileMode.Open)) { using (var ms = new MemoryStream()) { fstream.CopyTo(ms); dataConfig = ms.ToArray(); } } using (var db = new ProducerContext()) { var sim = db.Simulations.Single(s => s.Name == simulationName); Console.WriteLine("App: " + sim.Application.Name); Console.WriteLine("Sim: " + sim.Name); foreach (var i in sim.Application.InputFileTypes) { Console.WriteLine("IT: " + i.Name); } var it = sim.Application.InputFileTypes.Single(s => s.Name == "aspenfile"); var item = new Turbine.Data.Entities.SimulationStagedInput { //InputFileType = it, Simulation = sim, Content = dataACMF, Hash = "", Id = Guid.NewGuid(), Name = it.Name }; sim.SimulationStagedInputs.Add(item); it = sim.Application.InputFileTypes.Single(s => s.Name == "configuration"); item = new Turbine.Data.Entities.SimulationStagedInput { //InputFileType = it, Simulation = sim, Content = dataConfig, Hash = "", Id = Guid.NewGuid(), Name = it.Name }; sim.SimulationStagedInputs.Add(item); db.SaveChanges(); } // Session var sessionId = Guid.NewGuid(); using (var db = new ProducerContext()) { var item = new Turbine.Data.Entities.Session { Id = sessionId, Create = DateTime.UtcNow, Description = "testing simulation" }; db.Sessions.Add(item); db.SaveChanges(); } var jobId = Guid.NewGuid(); var workingDir = String.Format("WorkingDir_{0}", Guid.NewGuid()); using (var db = new ProducerContext()) { var item = db.Sessions.Single(s => s.Id == sessionId); var user = db.Users.Single(u => u.Name == username); var simulation = db.Simulations.Single(s => s.Name == simulationName); var job = new Turbine.Data.Entities.Job { Id = jobId, Session = item, Create = DateTime.UtcNow, Setup = DateTime.UtcNow, State = "setup", User = user, Simulation = simulation, Process = new Turbine.Data.Entities.Process { Input = "{}", WorkingDir = workingDir }, }; var msg = new Turbine.Data.Entities.Message { Id = Guid.NewGuid(), Create = DateTime.UtcNow, Value = "Test Job" }; job.Messages.Add(msg); db.Jobs.Add(job); db.SaveChanges(); } using (var db = new ProducerContext()) { var job = db.Jobs.Single(j => j.Id == jobId); foreach (var f in job.Simulation.SimulationStagedInputs) { job.StagedInputFiles.Add(new Turbine.Data.Entities.StagedInputFile { Content = f.Content, Name = f.Name }); } } // READ JOB Save to Filesystem using (var db = new ProducerContext()) { var job = db.Jobs.Single(j => j.State == "setup"); Assert.AreEqual(job.Id, jobId); var dinfo = Directory.CreateDirectory(job.Process.WorkingDir); Console.WriteLine("Working Directory: " + dinfo.FullName); foreach (var f in job.StagedInputFiles) { Console.WriteLine("Save File: " + f.Name); var fd = File.Create(Path.Combine(dinfo.FullName, f.Name)); fd.Write(f.Content, 0, f.Content.Length); fd.Close(); } } }