/// <summary> /// Print current EMR Job's state /// </summary> /// <param name="activityInfo">Current state of the job and current activity</param> public void PrintJobInfo(EmrActivityInfo activityInfo) { Console.ForegroundColor = ConsoleColor.White; Console.Write(Resources.Info_JobFlowId); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(activityInfo.JobFlowDetail.JobFlowId); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(String.Format(Resources.Info_JobCurrentStateTemplate, EmrJobLogger.GetLatestRunningStepName(activityInfo.JobFlowDetail), activityInfo.JobFlowDetail.ExecutionStatusDetail.State, (activityInfo.JobFlowDetail.Instances.MasterPublicDnsName ?? Resources.Info_MasterPublicDnsNameNotDefined))); Console.ResetColor(); }
protected async override void DoWorkSafe() { this.EmrJobLogger.PrintCheckingStatus(); EmrActivityInfo activityInfo = await this.EmrJobStateChecker.CheckAsync(this.EmrClient, this.JobFlowId); if (activityInfo.CurrentState == EmrActivityState.Running) { this.EmrJobLogger.PrintJobInfo(activityInfo); } else { if (activityInfo.CurrentState == EmrActivityState.Failed) { this.SetError(activityInfo); this.EmrActivitiesIterator.NotifyJobFailed(this); } if (!(await this.SendNextActivity())) { this.Dispose(); } } }
private void SetError(EmrActivityInfo activityInfo) { string errorMessage = activityInfo.JobFlowDetail.ExecutionStatusDetail.LastStateChangeReason; this.SetError(String.Format(Resources.Info_FailToRunJobTemplate, errorMessage)); }