public async Task <ApiResult> GetJobsByNames([FromBody] string[] jobNames) { try { RolesCheck.EnsureReader(Request, _isLocal); Ensure.NotNull(jobNames, "jobNames"); // Get jobs for the names given var jobOpResult = await _jobOperation.GetJobsByNames(jobNames); return(ApiResult.CreateSuccess(JToken.FromObject(jobOpResult))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
public async Task <ApiResult> GetJob(string jobName) { try { RolesCheck.EnsureReader(Request, _isLocal); Ensure.NotNull(jobName, "jobName"); // Get a job var jobOpResult = await _jobOperation.GetJobsByNames(new string[] { jobName }); return(ApiResult.CreateSuccess(JToken.FromObject(jobOpResult))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
public async Task <ApiResult> StopJobsForFlow([FromBody] string flowName) { try { RolesCheck.EnsureWriter(Request, _isLocal); Ensure.NotNull(flowName, "flowName"); // stop all jobs for flow var result = await _flowOperation.StopJobsForFlow(flowName); return(ApiResult.CreateSuccess(JToken.FromObject(result))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
public async Task <ApiResult> RestartJob([FromBody] string jobName) { try { RolesCheck.EnsureWriter(Request, _isLocal); Ensure.NotNull(jobName, "jobName"); // Restart job var jobOpResult = await _jobOperation.RestartJob(jobName); return(ApiResult.CreateSuccess(JToken.FromObject(jobOpResult))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
[Route("kernel")] // diag public async Task <ApiResult> CreateAndInitializeKernel([FromBody] JObject jObject) { try { RolesCheck.EnsureWriter(Request); InteractiveQueryManager iqm = new InteractiveQueryManager(_logger, _configuration); ApiResult response = await iqm.CreateAndInitializeKernel(jObject); //Logging information / success _logger.LogInformation("Successful Kernel Initialization!"); return(response); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
[Route("flow/delete")] // delete flow configs public async Task <ApiResult> DeleteConfigs([FromBody] JObject queryObject) { try { RolesCheck.EnsureWriter(Request, _isLocal); Ensure.NotNull(queryObject, "queryObject"); var flowName = queryObject.GetValue("name").ToString(); var result = await this._runtimeConfigGenerator.DeleteConfigs(flowName); return(ApiResult.CreateSuccess(JToken.FromObject(result))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
public async Task <ApiResult> RestatAllWithRetries([FromBody] JObject request) { try { RolesCheck.EnsureWriter(Request, _isLocal); Ensure.NotNull(request, "request"); var jobNames = request.Value <JArray>("JobNames")?.Value <string[]>() ?? Array.Empty <string>(); var maxRetryTimes = request.GetValue("MaxRetryTimes", StringComparison.OrdinalIgnoreCase)?.Value <int>() ?? 2; var waitIntervalInSeconds = request.GetValue("WaitIntervalInSeconds", StringComparison.OrdinalIgnoreCase)?.Value <int>() ?? 2; var maxWaitTimeInSeconds = request.GetValue("MaxWaitTimeInSeconds", StringComparison.OrdinalIgnoreCase)?.Value <int>() ?? 60; int retryTimes = 0; IEnumerable <SparkJobFrontEnd> notReadyJobs = Enumerable.Empty <SparkJobFrontEnd>(); do { await _jobOperation.RestartAllJobs(jobNames); var startTime = DateTime.Now; do { SparkJobFrontEnd[] jobOpResult = jobNames != null && jobNames.Any() ? await _jobOperation.SyncJobStateByNames(jobNames) : await _jobOperation.SyncAllJobState(); notReadyJobs = jobOpResult.Where(r => r.JobState == JobState.Starting || r.JobState == JobState.Idle || r.JobState == JobState.Error); jobNames = notReadyJobs.Select(j => j.Name).ToArray(); if (!notReadyJobs.Any()) { break; } System.Threading.Thread.Sleep(waitIntervalInSeconds * 1000); } while ((DateTime.Now - startTime).TotalSeconds < maxWaitTimeInSeconds); } while (retryTimes++ < maxRetryTimes && notReadyJobs.Any()); return(ApiResult.CreateSuccess(JToken.FromObject(notReadyJobs))); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }
public async Task <ApiResult> GetSchema([FromBody] JObject config) { try { RolesCheck.EnsureWriter(Request, _isLocal); Ensure.NotNull(config, "config"); string queries = string.Join("\n", config.GetValue("query").ToString()); var ruleDefinitionRaw = config.Value <JArray>("rules"); var ruleDefinitionList = ruleDefinitionRaw.ToObject <List <FlowGuiRule> >(); var ruleDefinitions = RuleDefinitionGenerator.GenerateRuleDefinitions(ruleDefinitionList, config.GetValue("name").ToString()); RulesCode codeGen = CodeGen.GenerateCode(queries, ruleDefinitions, config.GetValue("name").ToString()); var result = Analyzer.Analyze(queries, codeGen.Code, config.GetValue("inputSchema").ToString()); await Task.Yield(); return(ApiResult.CreateSuccess(result)); } catch (Exception e) { _logger.LogError(e, e.Message); return(ApiResult.CreateError(e.Message)); } }