public WritingApplicationAttemptFinishEvent(ApplicationAttemptId appAttemptId, ApplicationAttemptFinishData
                                             appAttemptFinish)
     : base(WritingHistoryEventType.AppAttemptFinish)
 {
     this.appAttemptId     = appAttemptId;
     this.appAttemptFinish = appAttemptFinish;
 }
        /// <exception cref="System.IO.IOException"/>
        public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish
                                                       )
        {
            ConcurrentMap <ApplicationAttemptId, ApplicationAttemptHistoryData> subMap = GetSubMap
                                                                                             (appAttemptFinish.GetApplicationAttemptId().GetApplicationId());
            ApplicationAttemptHistoryData data = subMap[appAttemptFinish.GetApplicationAttemptId
                                                            ()];

            if (data == null)
            {
                throw new IOException("The finish information of application attempt " + appAttemptFinish
                                      .GetApplicationAttemptId() + " is stored before" + " the start information.");
            }
            // Make the assumption that YarnApplicationAttemptState should not be null
            // if the finish information is already recorded
            if (data.GetYarnApplicationAttemptState() != null)
            {
                throw new IOException("The finish information of application attempt " + appAttemptFinish
                                      .GetApplicationAttemptId() + " is already stored.");
            }
            data.SetTrackingURL(appAttemptFinish.GetTrackingURL());
            data.SetDiagnosticsInfo(appAttemptFinish.GetDiagnosticsInfo());
            data.SetFinalApplicationStatus(appAttemptFinish.GetFinalApplicationStatus());
            data.SetYarnApplicationAttemptState(appAttemptFinish.GetYarnApplicationAttemptState
                                                    ());
        }
 /// <exception cref="System.IO.IOException"/>
 protected internal virtual void WriteApplicationAttemptFinishData(ApplicationAttemptId
                                                                   appAttemptId)
 {
     store.ApplicationAttemptFinished(ApplicationAttemptFinishData.NewInstance(appAttemptId
                                                                               , appAttemptId.ToString(), "test tracking url", FinalApplicationStatus.Undefined
                                                                               , YarnApplicationAttemptState.Finished));
 }
 private static void MergeApplicationAttemptHistoryData(ApplicationAttemptHistoryData
                                                        historyData, ApplicationAttemptFinishData finishData)
 {
     historyData.SetDiagnosticsInfo(finishData.GetDiagnosticsInfo());
     historyData.SetTrackingURL(finishData.GetTrackingURL());
     historyData.SetFinalApplicationStatus(finishData.GetFinalApplicationStatus());
     historyData.SetYarnApplicationAttemptState(finishData.GetYarnApplicationAttemptState
                                                    ());
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish
                                                )
 {
     FileSystemApplicationHistoryStore.HistoryFileWriter hfWriter = GetHistoryFileWriter
                                                                        (appAttemptFinish.GetApplicationAttemptId().GetApplicationId());
     System.Diagnostics.Debug.Assert(appAttemptFinish is ApplicationAttemptFinishDataPBImpl
                                     );
     try
     {
         hfWriter.WriteHistoryData(new FileSystemApplicationHistoryStore.HistoryDataKey(appAttemptFinish
                                                                                        .GetApplicationAttemptId().ToString(), FinishDataSuffix), ((ApplicationAttemptFinishDataPBImpl
                                                                                                                                                    )appAttemptFinish).GetProto().ToByteArray());
         Log.Info("Finish information of application attempt " + appAttemptFinish.GetApplicationAttemptId
                      () + " is written");
     }
     catch (IOException e)
     {
         Log.Error("Error when writing finish information of application attempt " + appAttemptFinish
                   .GetApplicationAttemptId(), e);
         throw;
     }
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual ApplicationAttemptHistoryData GetApplicationAttempt(ApplicationAttemptId
                                                                    appAttemptId)
 {
     FileSystemApplicationHistoryStore.HistoryFileReader hfReader = GetHistoryFileReader
                                                                        (appAttemptId.GetApplicationId());
     try
     {
         bool readStartData  = false;
         bool readFinishData = false;
         ApplicationAttemptHistoryData historyData = ApplicationAttemptHistoryData.NewInstance
                                                         (appAttemptId, null, -1, null, null, null, FinalApplicationStatus.Undefined, null
                                                         );
         while ((!readStartData || !readFinishData) && hfReader.HasNext())
         {
             FileSystemApplicationHistoryStore.HistoryFileReader.Entry entry = hfReader.Next();
             if (entry.key.id.Equals(appAttemptId.ToString()))
             {
                 if (entry.key.suffix.Equals(StartDataSuffix))
                 {
                     ApplicationAttemptStartData startData = ParseApplicationAttemptStartData(entry.value
                                                                                              );
                     MergeApplicationAttemptHistoryData(historyData, startData);
                     readStartData = true;
                 }
                 else
                 {
                     if (entry.key.suffix.Equals(FinishDataSuffix))
                     {
                         ApplicationAttemptFinishData finishData = ParseApplicationAttemptFinishData(entry
                                                                                                     .value);
                         MergeApplicationAttemptHistoryData(historyData, finishData);
                         readFinishData = true;
                     }
                 }
             }
         }
         if (!readStartData && !readFinishData)
         {
             return(null);
         }
         if (!readStartData)
         {
             Log.Warn("Start information is missing for application attempt " + appAttemptId);
         }
         if (!readFinishData)
         {
             Log.Warn("Finish information is missing for application attempt " + appAttemptId);
         }
         Log.Info("Completed reading history information of application attempt " + appAttemptId
                  );
         return(historyData);
     }
     catch (IOException e)
     {
         Log.Error("Error when reading history file of application attempt" + appAttemptId
                   , e);
         throw;
     }
     finally
     {
         hfReader.Close();
     }
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual void ApplicationAttemptFinished(ApplicationAttemptFinishData appAttemptFinish
                                                )
 {
 }
 public virtual void ApplicationAttemptFinished(RMAppAttempt appAttempt, RMAppAttemptState
                                                finalState)
 {
     if (historyServiceEnabled)
     {
         dispatcher.GetEventHandler().Handle(new WritingApplicationAttemptFinishEvent(appAttempt
                                                                                      .GetAppAttemptId(), ApplicationAttemptFinishData.NewInstance(appAttempt.GetAppAttemptId
                                                                                                                                                       (), appAttempt.GetDiagnostics().ToString(), appAttempt.GetTrackingUrl(), appAttempt
                                                                                                                                                   .GetFinalApplicationStatus(), RMServerUtils.CreateApplicationAttemptState(finalState
                                                                                                                                                                                                                             ))));
     }
 }