static void Main(string[] args) { ILogger logger = new SimpleLogger("processservice.log"); logger.Log("startup", "-------- Starting Dryad Process Service --------"); var directory = Directory.GetCurrentDirectory(); if (!GetEnvironmentDetails(logger)) { logger.Log("Failed to read environment variables"); logger.Stop(); return; } XDocument config; try { string configFile = args[0]; logger.Log("Opening config file " + configFile); config = XDocument.Load(configFile); logger.Log("Opened config file " + configFile); } catch (Exception e) { logger.Log("Failed to read config file: " + e.ToString()); logger.Stop(); return; } using (var processService = new ProcessService(logger)) { string processUri; string fileUri; logger.Log("starting process service"); if (processService.Start(config, groupName, identifier, out processUri, out fileUri)) { logger.Log("done starting process service"); if (!RendezvousWithParent(processUri, fileUri, directory, logger)) { processService.ShutDown(); } } else { logger.Log("process service start failed"); } logger.Log("waiting for process service to exit"); processService.WaitForExit(); logger.Log("process service has exited"); } logger.Log("-------- Stopping Dryad Process Service --------"); logger.Stop(); }
private async Task HandlePutRequest(IHttpContext context) { logger.Log("put entered"); var req = context.Request; var u = req.Url; int processId = ProcessIdFromURI(u); if (processId < 0) { if (processId == -2) { await server.ReportSuccess(context, true); logger.Log("shutting down"); var dontBlock = Task.Run(() => parent.ShutDown()); return; } else { logger.Log("bad process id"); await server.ReportError(context, HttpStatusCode.BadRequest, "Malformed process ID URI"); return; } } var opString = req.QueryString["op"]; if (opString == null) { logger.Log("no op"); await server.ReportError(context, HttpStatusCode.BadRequest, "No op specified"); return; } if (opString == "create") { logger.Log("put", "starting create"); await CreateProcess(context, processId); } else if (opString == "setstatus") { logger.Log("put", "starting setvalue"); await SetValue(context, processId); } else if (opString == "kill") { logger.Log("put", "starting kill"); await Kill(context, processId); } else { logger.Log("put", "bad op {0}", opString); await server.ReportError(context, HttpStatusCode.BadRequest, "Unknown op specified: " + opString); } }
static void Main(string[] args) { ILogger logger = new SimpleLogger("processservice.log"); logger.Log("startup", "-------- Starting Dryad Process Service --------"); var directory = Directory.GetCurrentDirectory(); if (!GetEnvironmentDetails(logger)) { logger.Log("Failed to read environment variables"); logger.Stop(); return; } XDocument config; try { string configFile = args[0]; logger.Log("Opening config file " + configFile); config = XDocument.Load(configFile); logger.Log("Opened config file " + configFile); } catch (Exception e) { logger.Log("Failed to read config file: " + e.ToString()); logger.Stop(); return; } using (var processService = new ProcessService(logger)) { string processUri; string fileUri; logger.Log("starting process service"); if (processService.Start(config, groupName, identifier, out processUri, out fileUri)) { logger.Log("done starting process service"); if (!RendezvousWithParent(processUri, fileUri, directory, logger)) { processService.ShutDown(); } } else { logger.Log("process service start failed"); } logger.Log("waiting for process service to exit"); processService.WaitForExit(); logger.Log("process service has exited"); } logger.Log("-------- Stopping Dryad Process Service --------"); logger.Stop(); }