Skip to content

Commit 1195c89

Browse files
Test-DbaAvailabilityGroup - Use direct PSCustomObject casting for ordered properties
Changed from intermediate hashtable variable pattern to direct [PSCustomObject]@{} casting to ensure property order is preserved in output. Hashtables are unordered, so the previous pattern resulted in unpredictable property ordering. Co-authored-by: Chrissy LeMaire <potatoqualitee@users.noreply.github.com>
1 parent 5553aba commit 1195c89

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

public/Test-DbaAvailabilityGroup.ps1

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -141,48 +141,47 @@ function Test-DbaAvailabilityGroup {
141141
continue
142142
}
143143

144-
$splatOutput = @{
145-
ComputerName = $ag.ComputerName
146-
InstanceName = $ag.InstanceName
147-
SqlInstance = $ag.SqlInstance
148-
AvailabilityGroup = $ag.Name
149-
PrimaryReplica = $ag.PrimaryReplica
150-
ReplicaServerName = $databaseReplicaState.AvailabilityReplicaServerName
151-
ReplicaRole = $databaseReplicaState.ReplicaRole
152-
ReplicaAvailabilityMode = $replica.AvailabilityMode
153-
ReplicaFailoverMode = $replica.FailoverMode
154-
ReplicaConnectionState = $replica.ConnectionState
155-
ReplicaJoinState = $replica.JoinState
156-
ReplicaSynchronizationState = $replica.RollupSynchronizationState
157-
DatabaseName = $databaseReplicaState.AvailabilityDatabaseName
158-
SynchronizationState = $databaseReplicaState.SynchronizationState
159-
IsFailoverReady = $databaseReplicaState.IsFailoverReady
160-
IsJoined = $databaseReplicaState.IsJoined
161-
IsSuspended = $databaseReplicaState.IsSuspended
162-
SuspendReason = $databaseReplicaState.SuspendReason
163-
EstimatedRecoveryTime = $databaseReplicaState.EstimatedRecoveryTime
164-
EstimatedDataLoss = $databaseReplicaState.EstimatedDataLoss
165-
SynchronizationPerformance = $databaseReplicaState.SynchronizationPerformance
166-
LogSendQueueSize = $databaseReplicaState.LogSendQueueSize
167-
LogSendRate = $databaseReplicaState.LogSendRate
168-
RedoQueueSize = $databaseReplicaState.RedoQueueSize
169-
RedoRate = $databaseReplicaState.RedoRate
170-
FileStreamSendRate = $databaseReplicaState.FileStreamSendRate
171-
EndOfLogLSN = $databaseReplicaState.EndOfLogLSN
172-
RecoveryLSN = $databaseReplicaState.RecoveryLSN
173-
TruncationLSN = $databaseReplicaState.TruncationLSN
174-
LastCommitLSN = $databaseReplicaState.LastCommitLSN
175-
LastCommitTime = $databaseReplicaState.LastCommitTime
176-
LastHardenedLSN = $databaseReplicaState.LastHardenedLSN
177-
LastHardenedTime = $databaseReplicaState.LastHardenedTime
178-
LastReceivedLSN = $databaseReplicaState.LastReceivedLSN
179-
LastReceivedTime = $databaseReplicaState.LastReceivedTime
180-
LastRedoneLSN = $databaseReplicaState.LastRedoneLSN
181-
LastRedoneTime = $databaseReplicaState.LastRedoneTime
182-
LastSentLSN = $databaseReplicaState.LastSentLSN
183-
LastSentTime = $databaseReplicaState.LastSentTime
144+
[PSCustomObject]@{
145+
ComputerName = $ag.ComputerName
146+
InstanceName = $ag.InstanceName
147+
SqlInstance = $ag.SqlInstance
148+
AvailabilityGroup = $ag.Name
149+
PrimaryReplica = $ag.PrimaryReplica
150+
ReplicaServerName = $databaseReplicaState.AvailabilityReplicaServerName
151+
ReplicaRole = $databaseReplicaState.ReplicaRole
152+
ReplicaAvailabilityMode = $replica.AvailabilityMode
153+
ReplicaFailoverMode = $replica.FailoverMode
154+
ReplicaConnectionState = $replica.ConnectionState
155+
ReplicaJoinState = $replica.JoinState
156+
ReplicaSynchronizationState = $replica.RollupSynchronizationState
157+
DatabaseName = $databaseReplicaState.AvailabilityDatabaseName
158+
SynchronizationState = $databaseReplicaState.SynchronizationState
159+
IsFailoverReady = $databaseReplicaState.IsFailoverReady
160+
IsJoined = $databaseReplicaState.IsJoined
161+
IsSuspended = $databaseReplicaState.IsSuspended
162+
SuspendReason = $databaseReplicaState.SuspendReason
163+
EstimatedRecoveryTime = $databaseReplicaState.EstimatedRecoveryTime
164+
EstimatedDataLoss = $databaseReplicaState.EstimatedDataLoss
165+
SynchronizationPerformance = $databaseReplicaState.SynchronizationPerformance
166+
LogSendQueueSize = $databaseReplicaState.LogSendQueueSize
167+
LogSendRate = $databaseReplicaState.LogSendRate
168+
RedoQueueSize = $databaseReplicaState.RedoQueueSize
169+
RedoRate = $databaseReplicaState.RedoRate
170+
FileStreamSendRate = $databaseReplicaState.FileStreamSendRate
171+
EndOfLogLSN = $databaseReplicaState.EndOfLogLSN
172+
RecoveryLSN = $databaseReplicaState.RecoveryLSN
173+
TruncationLSN = $databaseReplicaState.TruncationLSN
174+
LastCommitLSN = $databaseReplicaState.LastCommitLSN
175+
LastCommitTime = $databaseReplicaState.LastCommitTime
176+
LastHardenedLSN = $databaseReplicaState.LastHardenedLSN
177+
LastHardenedTime = $databaseReplicaState.LastHardenedTime
178+
LastReceivedLSN = $databaseReplicaState.LastReceivedLSN
179+
LastReceivedTime = $databaseReplicaState.LastReceivedTime
180+
LastRedoneLSN = $databaseReplicaState.LastRedoneLSN
181+
LastRedoneTime = $databaseReplicaState.LastRedoneTime
182+
LastSentLSN = $databaseReplicaState.LastSentLSN
183+
LastSentTime = $databaseReplicaState.LastSentTime
184184
}
185-
[PSCustomObject]$splatOutput
186185
}
187186
}
188187
return

0 commit comments

Comments
 (0)