protected override void ProcessRecord() { var clusterConnection = this.GetClusterConnection(); try { var queryDescription = new PartitionHealthQueryDescription(this.PartitionId); if (this.ConsiderWarningAsError.HasValue || this.MaxPercentUnhealthyReplicasPerPartition.HasValue) { queryDescription.HealthPolicy = new ApplicationHealthPolicy() { ConsiderWarningAsError = this.ConsiderWarningAsError.GetValueOrDefault(), DefaultServiceTypeHealthPolicy = new ServiceTypeHealthPolicy() { MaxPercentUnhealthyReplicasPerPartition = this.MaxPercentUnhealthyReplicasPerPartition.GetValueOrDefault() } }; } if (this.EventsHealthStateFilter.HasValue) { this.WriteWarning(StringResources.PowerShell_EventsHealthStateFilter_Deprecated); if (!this.EventsFilter.HasValue) { this.EventsFilter = (HealthStateFilter)this.EventsHealthStateFilter; } } if (this.EventsFilter.HasValue) { queryDescription.EventsFilter = new HealthEventsFilter() { HealthStateFilterValue = this.EventsFilter.Value, }; } if (this.ReplicasHealthStateFilter.HasValue) { this.WriteWarning(StringResources.PowerShell_ReplicasHealthStateFilter_Deprecated); if (!this.ReplicasFilter.HasValue) { this.ReplicasFilter = (HealthStateFilter)this.ReplicasHealthStateFilter; } } if (this.ReplicasFilter.HasValue) { queryDescription.ReplicasFilter = new ReplicaHealthStatesFilter() { HealthStateFilterValue = this.ReplicasFilter.Value, }; } if (this.ExcludeHealthStatistics) { queryDescription.HealthStatisticsFilter = new PartitionHealthStatisticsFilter() { ExcludeHealthStatistics = this.ExcludeHealthStatistics }; } var partitionHealth = clusterConnection.GetPartitionHealthAsync( queryDescription, this.GetTimeout(), this.GetCancellationToken()).Result; this.WriteObject(this.FormatOutput(partitionHealth)); } catch (AggregateException aggregateException) { aggregateException.Handle((ae) => { this.ThrowTerminatingError( ae, Constants.GetPartitionHealthErrorId, clusterConnection); return(true); }); } }
public GetPartitionHealthRequest(IFabricClient fabricClient, PartitionHealthQueryDescription queryDescription, TimeSpan timeout) : base(fabricClient, timeout) { ThrowIf.Null(queryDescription, "queryDescription"); this.QueryDescription = queryDescription; }