/// <summary>
 /// Initializes a new instance of the JobGetHistoryWithFilterParameters
 /// class with required arguments.
 /// </summary>
 public JobGetHistoryWithFilterParameters(JobHistoryStatus status, int skip, int top)
     : this()
 {
     this.Status = status;
     this.Skip = skip;
     this.Top = top;
 }
예제 #2
0
 /// <summary>
 /// Convert an enum of type JobHistoryStatus to a string.
 /// </summary>
 /// <param name='value'>
 /// The value to convert to a string.
 /// </param>
 /// <returns>
 /// The enum value as a string.
 /// </returns>
 internal static string JobHistoryStatusToString(JobHistoryStatus value)
 {
     if (value == JobHistoryStatus.Completed)
     {
         return("completed");
     }
     if (value == JobHistoryStatus.Failed)
     {
         return("failed");
     }
     throw new ArgumentOutOfRangeException("value");
 }
        public List <PSJobHistory> GetJobHistory(string jobCollection, string job, string region, string jobStatus = "")
        {
            if (!this.AvailableRegions.Contains(region, StringComparer.OrdinalIgnoreCase))
            {
                throw new Exception(Resources.SchedulerInvalidLocation);
            }

            List <PSJobHistory> lstPSJobHistory = new List <PSJobHistory>();
            string cloudService = region.ToCloudServiceName();
            CloudServiceGetResponse csDetails = csmClient.CloudServices.Get(cloudService);

            foreach (CloudServiceGetResponse.Resource csRes in csDetails.Resources)
            {
                if (csRes.ResourceProviderNamespace.Equals(Constants.SchedulerRPNameProvider, StringComparison.InvariantCultureIgnoreCase) && csRes.Name.Equals(jobCollection, StringComparison.OrdinalIgnoreCase))
                {
                    SchedulerClient schedClient = this.currentSubscription.CreateClient <SchedulerClient>(false, cloudService, jobCollection.Trim(), csmClient.Credentials, schedulerManagementClient.BaseUri);

                    List <JobGetHistoryResponse.JobHistoryEntry> lstHistory = new List <JobGetHistoryResponse.JobHistoryEntry>();
                    int currentTop = 100;

                    if (string.IsNullOrEmpty(jobStatus))
                    {
                        JobGetHistoryResponse history = schedClient.Jobs.GetHistory(job.Trim(), new JobGetHistoryParameters {
                            Top = 100
                        });
                        lstHistory.AddRange(history.JobHistory);
                        while (history.JobHistory.Count > 99)
                        {
                            history = schedClient.Jobs.GetHistory(job.Trim(), new JobGetHistoryParameters {
                                Top = 100, Skip = currentTop
                            });
                            currentTop += 100;
                            lstHistory.AddRange(history.JobHistory);
                        }
                    }
                    else if (!string.IsNullOrEmpty(jobStatus))
                    {
                        JobHistoryStatus      status  = jobStatus.Equals("Completed") ? JobHistoryStatus.Completed : JobHistoryStatus.Failed;
                        JobGetHistoryResponse history = schedClient.Jobs.GetHistoryWithFilter(job.Trim(), new JobGetHistoryWithFilterParameters {
                            Top = 100, Status = status
                        });
                        lstHistory.AddRange(history.JobHistory);
                        while (history.JobHistory.Count > 99)
                        {
                            history = schedClient.Jobs.GetHistoryWithFilter(job.Trim(), new JobGetHistoryWithFilterParameters {
                                Top = 100, Skip = currentTop
                            });
                            currentTop += 100;
                            lstHistory.AddRange(history.JobHistory);
                        }
                    }
                    foreach (JobGetHistoryResponse.JobHistoryEntry entry in lstHistory)
                    {
                        PSJobHistory historyObj = new PSJobHistory();
                        historyObj.Status    = entry.Status.ToString();
                        historyObj.StartTime = entry.StartTime;
                        historyObj.EndTime   = entry.EndTime;
                        historyObj.JobName   = entry.Id;
                        historyObj.Details   = GetHistoryDetails(entry.Message);
                        historyObj.Retry     = entry.RetryCount;
                        historyObj.Occurence = entry.RepeatCount;
                        if (JobHistoryActionName.ErrorAction == entry.ActionName)
                        {
                            PSJobHistoryError errorObj = historyObj.ToJobHistoryError();
                            errorObj.ErrorAction = JobHistoryActionName.ErrorAction.ToString();
                            lstPSJobHistory.Add(errorObj);
                        }
                        else
                        {
                            lstPSJobHistory.Add(historyObj);
                        }
                    }
                }
            }
            return(lstPSJobHistory);
        }
 /// <summary>
 /// Initializes a new instance of the JobGetHistoryWithFilterParameters
 /// class with required arguments.
 /// </summary>
 public JobGetHistoryWithFilterParameters(JobHistoryStatus status)
     : this()
 {
     this.Status = status;
 }
 /// <summary>
 /// Initializes a new instance of the JobGetHistoryWithFilterParameters
 /// class with required arguments.
 /// </summary>
 public JobGetHistoryWithFilterParameters(JobHistoryStatus status)
     : this()
 {
     this.Status = status;
 }