public int DeleteSession(string sessionID) { Guid session = new Guid(sessionID); ISessionProducerContract contract = new AspenSessionProducerContract(); try { return(contract.Delete(session)); } catch (System.Data.UpdateException ex) { var detail = new ErrorDetail( ErrorDetail.Codes.JOB_STATE_ERROR, "Failed to Delete session " + sessionID + ", " + ex.Message + ", InnerException: " + ex.InnerException ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } catch (Exception ex) { var detail = new ErrorDetail( ErrorDetail.Codes.JOB_STATE_ERROR, "Failed to Delete session " + sessionID + ", " + ex.Message + ", Inner Exception: " + ex.InnerException ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.BadRequest); } }
public void TestISessionProducerContract() { // producers ISessionProducerContract producer = new AspenSessionProducerContract(); Guid session_id = producer.Create(); Assert.IsNotNull(session_id); }
/* Status: * Returns a JSON object with counts of all jobs in various states * {"finished":100, "submit":10} * Query Parameters: * ?state="finished"&state="submit" * * */ public Stream StatusSession(string sessionID) { ISessionProducerContract contract = new AspenSessionProducerContract(); Dictionary <string, int> d = contract.Status(new Guid(sessionID)); string json = Newtonsoft.Json.JsonConvert.SerializeObject(d); //WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json))); }
public int StartSession(string sessionID) { Debug.WriteLine(String.Format("start session {0}", sessionID), this.GetType().Name); ISessionProducerContract contract = new AspenSessionProducerContract(); int total = 0; total += contract.Unpause(new Guid(sessionID)); total += contract.Submit(new Guid(sessionID)); Debug.WriteLine(String.Format("total {0}", total), this.GetType().Name); return(total); }
/* KillSession: * Returns total number of jobs moved to cancel or terminate * QueryParameters: * ?jobid=100&jobid=120 */ public int KillSession(string sessionID) { ISessionProducerContract contract = new AspenSessionProducerContract(); int total = 0; try { total += contract.Cancel(new Guid(sessionID)); total += contract.Terminate(new Guid(sessionID)); } catch (AuthorizationError ex) { var detail = new ErrorDetail( ErrorDetail.Codes.AUTHORIZATION_ERROR, ex.Message ); throw new WebFaultException <ErrorDetail>(detail, System.Net.HttpStatusCode.Unauthorized); } return(total); }
public Guid CreateSession() { ISessionProducerContract contract = new AspenSessionProducerContract(); return(contract.Create()); }
public int StopSession(string sessionID) { ISessionProducerContract contract = new AspenSessionProducerContract(); return(contract.Pause(new Guid(sessionID))); }
public void TestSessionProducerConsumerContracts() { // producers ISessionProducerContract producer = new AspenSessionProducerContract(); Guid session_id = producer.Create(); Assert.IsNotNull(session_id); ISimulationProducerContract simulation_contract = AspenSimulationContract.Create("testX", "AspenPlus"); var bytes = File.ReadAllBytes("mea-sinter.txt"); Assert.IsNotNull(bytes); Assert.IsTrue(bytes.Length > 0); System.Threading.Thread.Sleep(100); simulation_contract.UpdateInput("configuration", bytes, "plain/text"); bytes = File.ReadAllBytes("mea.bkp"); Assert.IsNotNull(bytes); Assert.IsTrue(bytes.Length > 0); System.Threading.Thread.Sleep(100); simulation_contract.UpdateInput("aspenfile", bytes, "plain/text"); IJobProducerContract job_producer_contract = simulation_contract.NewJob(session_id, false, true); job_producer_contract = simulation_contract.NewJob(session_id, false, true); IConsumerRegistrationContract contract = Turbine.Consumer.AppUtility.GetConsumerRegistrationContract(); contract.Register(); IJobConsumerContract job = contract.Queue.GetNext(); Assert.IsNull(job); job_producer_contract.Submit(); job = contract.Queue.GetNext(); Assert.IsNotNull(job); Assert.AreEqual(job.Id, job_producer_contract.Id); job.Setup(); SimpleFile backup = null; SimpleFile config = null; foreach (var f in job.GetSimulationInputFiles()) { if (f.name == "configuration") { config = f; } else { backup = f; } } Assert.AreEqual(config.name, "configuration"); String filename = SinterHelperFunctions .getBackupFilename(System.Text.Encoding.ASCII.GetString(config.content)); Assert.AreEqual(backup.name, "aspenfile"); // NEED TO SET INPUT Before Setting to Run //j try { job.Running(); Assert.Fail("Job.Process.Input Must be set before setting job to run"); } catch (InvalidStateChangeException) {} job.Process.Input = new Dictionary <string, Object>(); job.Running(); job.Success(); job = contract.Queue.GetNext(); Assert.IsNull(job); }
public void TestJobProducerConsumerContracts() { // producers ISessionProducerContract producer = new AspenSessionProducerContract(); Guid session_id = producer.Create(); Assert.IsNotNull(session_id); ISimulationProducerContract simulation_contract; simulation_contract = AspenSimulationContract.Create("test", "AspenPlus"); Assert.IsTrue(File.Exists("mea-sinter.txt")); Assert.IsTrue(File.Exists("mea.bkp")); var configContent = File.ReadAllBytes("mea-sinter.txt"); var aspenfileContent = File.ReadAllBytes("mea.bkp"); Assert.IsTrue(configContent.Length > 0); Assert.IsTrue(aspenfileContent.Length > 0); System.Threading.Thread.Sleep(100); simulation_contract.UpdateInput("configuration", configContent, "plain/text"); System.Threading.Thread.Sleep(1000); simulation_contract.UpdateInput("aspenfile", aspenfileContent, "plain/text"); IJobProducerContract job_producer_contract = simulation_contract.NewJob(session_id, false, true); // consumers //IJobQueue queue = AppUtility.GetJobQueue(); // NHibernate IConsumerRegistrationContract contract = Turbine.Consumer.AppUtility.GetConsumerRegistrationContract(); contract.Register(); IJobConsumerContract job = contract.Queue.GetNext(); Assert.IsNull(job); job_producer_contract.Submit(); job = contract.Queue.GetNext(); Assert.IsNotNull(job); job.Setup(); IEnumerable <SimpleFile> files = job.GetSimulationInputFiles(); Assert.AreEqual <int>(files.Count <SimpleFile>(), 2); foreach (var f in files) { Assert.IsNotNull(f); Assert.IsNotNull(f.name); Debug.WriteLine("File: " + f.name, this.GetType().Name); Assert.IsNotNull(f.content); Assert.IsTrue(f.content.Length > 0); if (f.name == "configuration") { Assert.AreEqual <int>(f.content.Length, configContent.Length); } else if (f.name == "aspenfile") { Assert.AreEqual <int>(f.content.Length, aspenfileContent.Length); } else { Assert.Fail(String.Format("Unknown File {0}", f.name)); } } //byte[] backup = job.GetSimulationBackup(); //byte[] config = job.GetSimulationConfiguration(); //Assert(, //IJobConsumerContract consumer = AppUtility.GetJobConsumerContract(id); }
public void TestJobProducerConsumerContractsSetupFailUnRegisterConsumer() { // Create test Simulation TestSimulationProducerContract(); ISimulationProducerContract simulation_contract = AspenSimulationContract.Get("test"); ISessionProducerContract producer = new AspenSessionProducerContract(); Guid session_id = producer.Create(); IJobProducerContract job_producer_contract = simulation_contract.NewJob(session_id, false, true); // consumers /* * IJobQueue queue = AppUtility.GetJobQueue(); * IJobConsumerContract job = queue.GetNext(); * Assert.IsNull(job); * job_producer_contract.Submit(); * job = queue.GetNext(); * Assert.IsNotNull(job); */ // NHibernate IConsumerRegistrationContract contract = Turbine.Consumer.AppUtility.GetConsumerRegistrationContract(); Assert.IsNull(contract.Queue); contract.Register(); Assert.IsNotNull(contract.Queue); Assert.IsNull(contract.Queue.GetNext()); // nothing on queue job_producer_contract.Submit(); IJobConsumerContract job = contract.Queue.GetNext(); Assert.IsNotNull(job); contract.UnRegister(); job.Setup(); SimpleFile backup = null; SimpleFile config = null; foreach (var f in job.GetSimulationInputFiles()) { if (f.name == "configuration") { config = f; } else { backup = f; } } Assert.AreEqual(config.name, "configuration"); String filename = SinterHelperFunctions .getBackupFilename(System.Text.Encoding.ASCII.GetString(config.content)); Assert.AreEqual(backup.name, ""); //Assert(, //IJobConsumerContract consumer = AppUtility.GetJobConsumerContract(id); }