Exemplo n.º 1
0
 /// <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));
        }