xExchMaintenanceMode: Fix maintenance mode issues

Pull Request (PR) description
Fixes multiple issues in xExchMaintenanceMode, including those described in #209. Also fixes almost all issues identified by the PS Script Analyzer.
This Pull Request (PR) fixes the following issues
Fixes #209
Task list

[x] Added an entry under the Unreleased section in the CHANGELOG.md? Entry
should say what was changed, and how that affects users (if applicable).
[x] Resource documentation added/updated in README.md?
[x] Resource parameter descriptions added/updated in README.md, schema.mof
and comment-based help?
[ ] Comment-based help added/updated?
[ ] Localization strings added/updated in all localization files as appropriate?
[ ] Examples appropriately added/updated?
[] Unit tests added/updated?
See DSC Resource Testing Guidelines.
[x] Integration tests added/updated (where possible)?
See DSC Resource Testing Guidelines.
[x] New/changed code adheres to
DSC Resource Style Guidelines
and Best Practices?

Integration test results
Exchange 2016 CU10 on Windows 2016 (PS5)
PS C:\Program Files\WindowsPowerShell\Modules\xExchange\Tests\Integration> Invoke-Pester .\MSFT_xExchMaintenanceMode.Integration.Tests.ps1

Enter Domain Controller to use for DC tests: dc-1
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found 0 Healthy databases with Activation Preference 1 for this server that are currently not hosted on this server
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Sleeping 60 between tests.
Describing Test Putting a Server in and out of Maintenance Mode
   Context Put server in maintenance mode
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: DatabaseCopyAutoActivationPolicy is not set to Blocked
VERBOSE: One or more components have a status other than Inactive
VERBOSE: Cluster node has a status of Up
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found 1 replicated databases still activated on this server
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E16-3' on E16-3
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E16-3
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:29:04 AM,E16-3,BeginTM,Start,,,,Target=E16-3,15.01.1531.003
VERBOSE: E16-3 - Waiting for BootLoader to be ready...
VERBOSE: E16-3 EdgeTransport has been running for 00:03:19.1609083! Let's give BootLoader 00:05:00  to complete.
VERBOSE: Found matching provider: MSExchangeTransport
VERBOSE: The MSExchangeTransport provider writes events to the Application log.
VERBOSE: Constructed structured query:
<QueryList><Query Id="0" Path="application"><Select Path="application">*[System/Provider[@Name='msexchangetransport'] and (System/TimeCreated[@SystemTime>='2018-07-25T17:25:45.000
Z']) and (System/EventID=17008)]</Select></Query></QueryList>.
VERBOSE: 7/25/2018 10:29:07 AM,e16-3,BootLoaderCountCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:07 AM,e16-3,BootLoaderCountCheck,Completed,,0:00:00.026003,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:09 AM,e16-3,BootLoaderSubmitCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:09 AM,e16-3,BootLoaderSubmitCheck,Completed,,0:00:00.0050376,0,,15.01.1531.003
VERBOSE: E16-3 - BootLoader ended with  items remain
VERBOSE: E16-3 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:29:09 AM,E16-3,QueueDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:09 AM,E16-3,QueueDrain,Completed,,0:00:00.0059911,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E16-3 - Retrieving the DAG for the target server
VERBOSE: E16-3 - Retrieving other hub transport servers in the DAG - DAG1
VERBOSE: E16-3 - Redirecting messages to E16-4.fiftyfifty.local
VERBOSE: E16-3 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,Redirect,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,Redirect,Completed,,0:00:00.0060004,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for Redirect ended with 0 items remain.
VERBOSE: E16-3 - Forcing heart-beat on server E16-4
VERBOSE: E16-3 - Waiting for the heartbeats to complete processing
VERBOSE: E16-3 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,ShadowDiscardDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,ShadowDiscardDrain,Completed,,0:00:00.005013,0,,15.01.1531.003
VERBOSE: E16-3 - ShadowDiscardDrain ended with 0 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,RestartTransport,Info,,,0,ComponentState=Inactive,15.01.1531.003
VERBOSE: 7/25/2018 10:29:11 AM,E16-3,BeginTM,Completed,,0:00:07.4775056,,Target=E16-3,15.01.1531.003
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
    [+] Get-TargetResource: Contains Key: ActiveDBCount 195.44s
    [+] Get-TargetResource: Value Matches for Key: ActiveDBCount 190ms
    [+] Get-TargetResource: Contains Key: ClusterState 21ms
    [+] Get-TargetResource: Value Matches for Key: ClusterState 25ms
    [+] Get-TargetResource: Contains Key: ActiveUMCallCount 35ms
    [+] Get-TargetResource: Value Matches for Key: ActiveUMCallCount 34ms
    [+] Get-TargetResource: Contains Key: QueuedMessageCount 48ms
    [+] Get-TargetResource: Value Matches for Key: QueuedMessageCount 70ms
    [+] Get-TargetResource: Contains Key: ActiveComponentCount 19ms
    [+] Get-TargetResource: Value Matches for Key: ActiveComponentCount 48ms
    [+] Get-TargetResource: Contains Key: Enabled 19ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 32ms
    [+] Test-TargetResource 26ms
VERBOSE: Sleeping 60 between tests.
   Context Take server out of maintenance mode
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Component ServerWideOffline is not Active
VERBOSE: Component UMCallRouter is not Active
VERBOSE: Component HubTransport is not Active
VERBOSE: Cluster node has a status of Paused
VERBOSE: DatabaseCopyAutoActivationPolicy is set to Blocked
VERBOSE: Component AutoDiscoverProxy is not set to Active
VERBOSE: Component ActiveSyncProxy is not set to Active
VERBOSE: Component EcpProxy is not set to Active
VERBOSE: Component EwsProxy is not set to Active
VERBOSE: Component ImapProxy is not set to Active
VERBOSE: Component OabProxy is not set to Active
VERBOSE: Component OwaProxy is not set to Active
VERBOSE: Component PopProxy is not set to Active
VERBOSE: Component PushNotificationsProxy is not set to Active
VERBOSE: Component RpsProxy is not set to Active
VERBOSE: Component RwsProxy is not set to Active
VERBOSE: Component RpcProxy is not set to Active
VERBOSE: Component XropProxy is not set to Active
VERBOSE: Component HttpProxyAvailabilityGroup is not set to Active
VERBOSE: Component MapiProxy is not set to Active
VERBOSE: Component EdgeTransport is not set to Active
VERBOSE: Component HighAvailability is not set to Active
VERBOSE: Component SharedCache is not set to Active
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E16-3
VERBOSE: Ending Transport Maintenance
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:31:39 AM,E16-3,EndTM,Start,,,,ServiceState=Online,15.01.1531.003
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'n
amespaceName' = root\cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:31:39 AM,E16-3,StopTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
VERBOSE: 7/25/2018 10:31:48 AM,E16-3,StopTransport,Completed,,0:00:08.8565602,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:31:48 AM,E16-3,StartTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
VERBOSE: 7/25/2018 10:31:54 AM,E16-3,StartTransport,Completed,,0:00:06.0819941,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:31:55 AM,E16-3,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.01.1531.003
VERBOSE: 7/25/2018 10:31:55 AM,E16-3,StopEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:31:55 AM,E16-3,StopEdgeSync,Completed,,0:00:00.2950003,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:31:55 AM,E16-3,StartEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:31:57 AM,E16-3,StartEdgeSync,Completed,,0:00:01.8689979,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:31:57 AM,E16-3,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.01.1531.003
VERBOSE: 7/25/2018 10:31:57 AM,E16-3,EndTM,Completed,,0:00:18.3765682,,ServiceState=Online,15.01.1531.003
VERBOSE: Setting AutoDiscoverProxy component to Active for requester Functional
VERBOSE: Setting ActiveSyncProxy component to Active for requester Functional
VERBOSE: Setting EcpProxy component to Active for requester Functional
VERBOSE: Setting EwsProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting OabProxy component to Active for requester Functional
VERBOSE: Setting OwaProxy component to Active for requester Functional
VERBOSE: Setting PopProxy component to Active for requester Functional
VERBOSE: Setting PushNotificationsProxy component to Active for requester Functional
VERBOSE: Setting RpsProxy component to Active for requester Functional
VERBOSE: Setting RwsProxy component to Active for requester Functional
VERBOSE: Setting RpcProxy component to Active for requester Functional
VERBOSE: Setting XropProxy component to Active for requester Functional
VERBOSE: Setting HttpProxyAvailabilityGroup component to Active for requester Functional
VERBOSE: Setting MapiProxy component to Active for requester Functional
VERBOSE: Setting EdgeTransport component to Active for requester Functional
VERBOSE: Setting HighAvailability component to Active for requester Functional
VERBOSE: Setting SharedCache component to Active for requester Functional
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
    [+] Get-TargetResource: Contains Key: ClusterState 111.1s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 26ms
    [+] Get-TargetResource: Contains Key: Enabled 184ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 160ms
    [+] Test-TargetResource 187ms
   Context Do additional Get-TargetResource verification after taking server out of maintenance mode
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
    [+] ActiveComponentCount is greater than 0 4.22s
    [+] Component ServerWideOffline should be Active 58ms
    [+] Component HubTransport should be Active 31ms
    [+] Component FrontendTransport should be Active 85ms
    [+] Component Monitoring should be Active 126ms
    [+] Component RecoveryActionsEnabled should be Active 108ms
    [+] Component AutoDiscoverProxy should be Active 50ms
    [+] Component ActiveSyncProxy should be Active 37ms
    [+] Component EcpProxy should be Active 116ms
    [+] Component EwsProxy should be Active 68ms
    [+] Component ImapProxy should be Active 246ms
    [+] Component OabProxy should be Active 79ms
    [+] Component OwaProxy should be Active 53ms
    [+] Component PopProxy should be Active 84ms
    [+] Component PushNotificationsProxy should be Active 411ms
    [+] Component RpsProxy should be Active 235ms
    [+] Component RwsProxy should be Active 37ms
    [+] Component RpcProxy should be Active 130ms
    [+] Component UMCallRouter should be Active 52ms
    [+] Component XropProxy should be Active 66ms
    [+] Component HttpProxyAvailabilityGroup should be Active 42ms
    [+] Component MapiProxy should be Active 50ms
    [+] Component EdgeTransport should be Active 95ms
    [+] Component HighAvailability should be Active 51ms
    [+] Component SharedCache should be Active 128ms
    [+] Databases were failed back 596ms
VERBOSE: Sleeping 60 between tests.
   Context Try to put server in maintenance mode using UpgradedServerVersion of an older server.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
    [+] Get-TargetResource: Contains Key: ClusterState 72.8s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 10ms
    [+] Get-TargetResource: Contains Key: Enabled 18ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 26ms
    [+] Test-TargetResource 10ms
VERBOSE: Sleeping 60 between tests.
   Context Put server in maintenance mode using Domain Controller switch
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: DatabaseCopyAutoActivationPolicy is not set to Blocked
VERBOSE: One or more components have a status other than Inactive
VERBOSE: Cluster node has a status of Up
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found 1 replicated databases still activated on this server
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E16-3' on E16-3
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E16-3
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:34:47 AM,E16-3,BeginTM,Start,,,,Target=E16-3,15.01.1531.003
VERBOSE: E16-3 - Waiting for BootLoader to be ready...
VERBOSE: E16-3 EdgeTransport has been running for 00:02:57.7585964! Let's give BootLoader 00:05:00  to complete.
VERBOSE: Found matching provider: MSExchangeTransport
VERBOSE: The MSExchangeTransport provider writes events to the Application log.
VERBOSE: Constructed structured query:
<QueryList><Query Id="0" Path="application"><Select Path="application">*[System/Provider[@Name='msexchangetransport'] and (System/TimeCreated[@SystemTime>='2018-07-25T17:31:50.000
Z']) and (System/EventID=17008)]</Select></Query></QueryList>.
VERBOSE: 7/25/2018 10:34:49 AM,e16-3,BootLoaderCountCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:49 AM,e16-3,BootLoaderCountCheck,Completed,,0:00:00.0150453,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:51 AM,e16-3,BootLoaderSubmitCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:51 AM,e16-3,BootLoaderSubmitCheck,Completed,,0:00:00.0069964,0,,15.01.1531.003
VERBOSE: E16-3 - BootLoader ended with  items remain
VERBOSE: E16-3 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:34:51 AM,E16-3,QueueDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:51 AM,E16-3,QueueDrain,Completed,,0:00:00.0049922,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E16-3 - Retrieving the DAG for the target server
VERBOSE: E16-3 - Retrieving other hub transport servers in the DAG - DAG1
VERBOSE: E16-3 - Redirecting messages to E16-4.fiftyfifty.local
VERBOSE: E16-3 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:34:52 AM,E16-3,Redirect,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:52 AM,E16-3,Redirect,Completed,,0:00:00.0560011,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for Redirect ended with 0 items remain.
VERBOSE: E16-3 - Forcing heart-beat on server E16-4
VERBOSE: E16-3 - Waiting for the heartbeats to complete processing
VERBOSE: E16-3 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:34:52 AM,E16-3,ShadowDiscardDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:34:52 AM,E16-3,ShadowDiscardDrain,Completed,,0:00:00.0100001,0,,15.01.1531.003
VERBOSE: E16-3 - ShadowDiscardDrain ended with 0 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:34:53 AM,E16-3,RestartTransport,Info,,,0,ComponentState=Inactive,15.01.1531.003
VERBOSE: 7/25/2018 10:34:53 AM,E16-3,BeginTM,Completed,,0:00:05.2053786,,Target=E16-3,15.01.1531.003
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
    [+] Get-TargetResource: Contains Key: ActiveDBCount 148.29s
    [+] Get-TargetResource: Value Matches for Key: ActiveDBCount 15ms
    [+] Get-TargetResource: Contains Key: ClusterState 13ms
    [+] Get-TargetResource: Value Matches for Key: ClusterState 13ms
    [+] Get-TargetResource: Contains Key: ActiveUMCallCount 37ms
    [+] Get-TargetResource: Value Matches for Key: ActiveUMCallCount 22ms
    [+] Get-TargetResource: Contains Key: QueuedMessageCount 35ms
    [+] Get-TargetResource: Value Matches for Key: QueuedMessageCount 40ms
    [+] Get-TargetResource: Contains Key: ActiveComponentCount 26ms
    [+] Get-TargetResource: Value Matches for Key: ActiveComponentCount 53ms
    [+] Get-TargetResource: Contains Key: Enabled 38ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 11ms
    [+] Test-TargetResource 16ms
VERBOSE: Sleeping 60 between tests.
   Context Take server out of maintenance mode using Domain Controller switch
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Component ServerWideOffline is not Active
VERBOSE: Component UMCallRouter is not Active
VERBOSE: Component HubTransport is not Active
VERBOSE: Cluster node has a status of Paused
VERBOSE: DatabaseCopyAutoActivationPolicy is set to Blocked
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E16-3
VERBOSE: Ending Transport Maintenance
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:37:18 AM,E16-3,EndTM,Start,,,,ServiceState=Online,15.01.1531.003
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'n
amespaceName' = root\cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:37:19 AM,E16-3,StopTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
VERBOSE: 7/25/2018 10:37:25 AM,E16-3,StopTransport,Completed,,0:00:06.5780031,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:37:25 AM,E16-3,StartTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
VERBOSE: 7/25/2018 10:37:31 AM,E16-3,StartTransport,Completed,,0:00:06.1109805,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:37:32 AM,E16-3,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.01.1531.003
VERBOSE: 7/25/2018 10:37:32 AM,E16-3,StopEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:37:32 AM,E16-3,StopEdgeSync,Completed,,0:00:00.2699999,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:37:32 AM,E16-3,StartEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:37:34 AM,E16-3,StartEdgeSync,Completed,,0:00:01.8679998,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:37:34 AM,E16-3,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.01.1531.003
VERBOSE: 7/25/2018 10:37:34 AM,E16-3,EndTM,Completed,,0:00:16.2160046,,ServiceState=Online,15.01.1531.003
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
    [+] Get-TargetResource: Contains Key: ClusterState 99.31s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 28ms
    [+] Get-TargetResource: Contains Key: Enabled 27ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 32ms
    [+] Test-TargetResource 123ms
   Context Do additional Get-TargetResource verification after taking server out of maintenance mode
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
    [+] ActiveComponentCount is greater than 0 2.94s
    [+] Component ServerWideOffline should be Active 25ms
    [+] Component HubTransport should be Active 30ms
    [+] Component FrontendTransport should be Active 41ms
    [+] Component Monitoring should be Active 20ms
    [+] Component RecoveryActionsEnabled should be Active 32ms
    [+] Component AutoDiscoverProxy should be Active 20ms
    [+] Component ActiveSyncProxy should be Active 34ms
    [+] Component EcpProxy should be Active 79ms
    [+] Component EwsProxy should be Active 68ms
    [+] Component ImapProxy should be Active 57ms
    [+] Component OabProxy should be Active 58ms
    [+] Component OwaProxy should be Active 25ms
    [+] Component PopProxy should be Active 28ms
    [+] Component PushNotificationsProxy should be Active 45ms
    [+] Component RpsProxy should be Active 38ms
    [+] Component RwsProxy should be Active 28ms
    [+] Component RpcProxy should be Active 64ms
    [+] Component UMCallRouter should be Active 53ms
    [+] Component XropProxy should be Active 18ms
    [+] Component HttpProxyAvailabilityGroup should be Active 41ms
    [+] Component MapiProxy should be Active 26ms
    [+] Component EdgeTransport should be Active 85ms
    [+] Component HighAvailability should be Active 158ms
    [+] Component SharedCache should be Active 115ms
    [+] Databases were failed back 260ms
VERBOSE: Sleeping 60 between tests.
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E16-3' on E16-3
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E16-3
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:38:57 AM,E16-3,BeginTM,Start,,,,Target=E16-3,15.01.1531.003
VERBOSE: E16-3 - Waiting for BootLoader to be ready...
VERBOSE: E16-3 EdgeTransport has been running for 00:01:29.7512316! Let's give BootLoader 00:05:00  to complete.
VERBOSE: Found matching provider: MSExchangeTransport
VERBOSE: The MSExchangeTransport provider writes events to the Application log.
VERBOSE: Constructed structured query:
<QueryList><Query Id="0" Path="application"><Select Path="application">*[System/Provider[@Name='msexchangetransport'] and (System/TimeCreated[@SystemTime>='2018-07-25T17:37:27.000
Z']) and (System/EventID=17008)]</Select></Query></QueryList>.
VERBOSE: 7/25/2018 10:38:59 AM,e16-3,BootLoaderCountCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:38:59 AM,e16-3,BootLoaderCountCheck,Completed,,0:00:00.0129957,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:39:00 AM,e16-3,BootLoaderSubmitCheck,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:39:00 AM,e16-3,BootLoaderSubmitCheck,Completed,,0:00:00.004999,0,,15.01.1531.003
VERBOSE: E16-3 - BootLoader ended with  items remain
VERBOSE: E16-3 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:39:00 AM,E16-3,QueueDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:39:00 AM,E16-3,QueueDrain,Completed,,0:00:00.0070019,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E16-3 - Retrieving the DAG for the target server
VERBOSE: E16-3 - Retrieving other hub transport servers in the DAG - DAG1
VERBOSE: E16-3 - Redirecting messages to E16-4.fiftyfifty.local
VERBOSE: E16-3 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:39:01 AM,E16-3,Redirect,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:39:01 AM,E16-3,Redirect,Completed,,0:00:00.043999,0,,15.01.1531.003
VERBOSE: E16-3 - Wait for Redirect ended with 0 items remain.
VERBOSE: E16-3 - Forcing heart-beat on server E16-4
VERBOSE: E16-3 - Waiting for the heartbeats to complete processing
VERBOSE: E16-3 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:39:02 AM,E16-3,ShadowDiscardDrain,Start,,,0,,15.01.1531.003
VERBOSE: 7/25/2018 10:39:02 AM,E16-3,ShadowDiscardDrain,Completed,,0:00:00.0060171,0,,15.01.1531.003
VERBOSE: E16-3 - ShadowDiscardDrain ended with 0 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:39:02 AM,E16-3,RestartTransport,Info,,,0,ComponentState=Inactive,15.01.1531.003
VERBOSE: 7/25/2018 10:39:02 AM,E16-3,BeginTM,Completed,,0:00:05.367855,,Target=E16-3,15.01.1531.003
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Found queue 'e16-3\Submission' with a message count of '0'.
 [+] Server should be in maintenance mode 142.66s
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E16-3
VERBOSE: Ending Transport Maintenance
VERBOSE: E16-3 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:40:23 AM,E16-3,EndTM,Start,,,,ServiceState=Online,15.01.1531.003
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'n
amespaceName' = root\cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:40:25 AM,E16-3,StopTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to stop...
VERBOSE: 7/25/2018 10:40:29 AM,E16-3,StopTransport,Completed,,0:00:04.3709537,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:40:29 AM,E16-3,StartTransport,Start,,,,,15.01.1531.003
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
VERBOSE: 7/25/2018 10:40:35 AM,E16-3,StartTransport,Completed,,0:00:05.1881774,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:40:35 AM,E16-3,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.01.1531.003
VERBOSE: 7/25/2018 10:40:35 AM,E16-3,StopEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:40:35 AM,E16-3,StopEdgeSync,Completed,,0:00:00.2639873,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:40:35 AM,E16-3,StartEdgeSync,Start,,,,,15.01.1531.003
VERBOSE: 7/25/2018 10:40:37 AM,E16-3,StartEdgeSync,Completed,,0:00:01.7890011,,MaxWaitMinutes=5,15.01.1531.003
VERBOSE: 7/25/2018 10:40:37 AM,E16-3,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.01.1531.003
VERBOSE: 7/25/2018 10:40:37 AM,E16-3,EndTM,Completed,,0:00:13.4431812,,ServiceState=Online,15.01.1531.003
VERBOSE: Setting AutoDiscoverProxy component to Active for requester Functional
VERBOSE: Setting ActiveSyncProxy component to Active for requester Functional
VERBOSE: Setting EcpProxy component to Active for requester Functional
VERBOSE: Setting EwsProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting OabProxy component to Active for requester Functional
VERBOSE: Setting OwaProxy component to Active for requester Functional
VERBOSE: Setting PopProxy component to Active for requester Functional
VERBOSE: Setting PushNotificationsProxy component to Active for requester Functional
VERBOSE: Setting RpsProxy component to Active for requester Functional
VERBOSE: Setting RwsProxy component to Active for requester Functional
VERBOSE: Setting RpcProxy component to Active for requester Functional
VERBOSE: Setting XropProxy component to Active for requester Functional
VERBOSE: Setting HttpProxyAvailabilityGroup component to Active for requester Functional
VERBOSE: Setting MapiProxy component to Active for requester Functional
VERBOSE: Setting EdgeTransport component to Active for requester Functional
VERBOSE: Setting HighAvailability component to Active for requester Functional
VERBOSE: Setting SharedCache component to Active for requester Functional
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Component ImapProxy is not set to Active
 [+] Test should fail 37.09s
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester HealthApi
VERBOSE: Found 0 Healthy databases with Activation Preference 1 for this server that are currently not hosted on this server
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E16-3.
 [+] Test should succeed 15.18s
Tests completed in 835.27s
Passed: 96 Failed: 0 Skipped: 0 Pending: 0 Inconclusive: 0

Exchange 2013 CU21 on Windows 2012 R2 (PS4)
PS C:\Program Files\WindowsPowerShell\Modules\xExchange\Tests\Integration> Invoke-Pester .\MSFT_xExchMaintenanceMode.Integration.Tests.ps1

Enter Domain Controller to use for DC tests: dc-1
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found 0 Healthy databases with Activation Preference 1 for this server that are currently not hosted on this server
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Sleeping 60 between tests.
Describing Test Putting a Server in and out of Maintenance Mode
   Context Put server in maintenance mode
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: DatabaseCopyAutoActivationPolicy is not set to Blocked
VERBOSE: One or more components have a status other than Inactive
VERBOSE: Cluster node has a status of Up
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found 1 replicated databases still activated on this server
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E15-1' on E15-1
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E15-1
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:27:29 AM,E15-1,BeginTM,Start,,,,Target=E15-1,15.00.1395.004
VERBOSE: E15-1 - Waiting for BootLoader to be ready...
VERBOSE: 7/25/2018 10:27:29 AM,E15-1,BootLoaderCountCheck,Skipped,,,0,ProcessLifeTime=02:05:06.5891355,15.00.1395.004
VERBOSE: 7/25/2018 10:27:29 AM,E15-1,BootLoaderSubmitCheck,Skipped,,,0,ProcessLifeTime=02:05:06.5891355,15.00.1395.004
VERBOSE: E15-1 - EdgeTransport has been running for 02:05:06.5891355. BootLoader is ready
VERBOSE: E15-1 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:27:30 AM,E15-1,QueueDrain,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:27:30 AM,E15-1,QueueDrain,Completed,,0:00:00.0156165,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E15-1 - Retrieving the DAG for the target server
VERBOSE: E15-1 - Retrieving other hub transport servers in the DAG - DAG2
VERBOSE: E15-1 - Redirecting messages to RRAS-1.fiftyfifty.local
VERBOSE: E15-1 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:27:34 AM,E15-1,Redirect,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:27:34 AM,E15-1,Redirect,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for Redirect ended with 0 items remain.
VERBOSE: E15-1 - Forcing heart-beat on server RRAS-1
VERBOSE: E15-1 - Waiting for the heartbeats to complete processing
VERBOSE: E15-1 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:27:34 AM,E15-1,ShadowDiscardDrain,Start,,,1,,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain Progress made. 1 items remain.
VERBOSE: E15-1 - ShadowDiscardDrain NoProgressTimeout occurred. Wait aborted!
VERBOSE: 7/25/2018 10:29:35 AM,E15-1,ShadowDiscardDrain,Completed,,0:02:01.3971617,1,Reason=NoProgressTimeout,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain ended with 1 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:29:39 AM,E15-1,RestartTransport,Info,,,0,ComponentState=Inactive,15.00.1395.004
VERBOSE: 7/25/2018 10:29:39 AM,E15-1,BeginTM,Completed,,0:02:10.6560159,,Target=E15-1,15.00.1395.004
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: The following objects are hosted by 'E15-1', before attempting to move them off: `n(Database='Mailbox Database<PHONE_NUMBER>', Reason='Copy is active') (Database='Mailbox Database<PHONE_NUMBER>', Reas
on='There were database redundancy check failures for database 'Mailbox Database<PHONE_NUMBER>' that may be lowering its redundancy and putting the database at risk of data loss. Redundancy Count: 1. Expect
ed Redundancy Count: 2. Detailed error(s):

        e15-1:
        Database 'Mailbox Database<PHONE_NUMBER>' does not have enough copies configured to meet the validation criteria.
        '))
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Waiting up to 5 minutes for the Transport Bootloader to be ready before running Get-Queue. Wait started at 07/25/2018 10:29:59.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
    [+] Get-TargetResource: Contains Key: ActiveDBCount 330.97s
    [+] Get-TargetResource: Value Matches for Key: ActiveDBCount 151ms
    [+] Get-TargetResource: Contains Key: ClusterState 65ms
    [+] Get-TargetResource: Value Matches for Key: ClusterState 99ms
    [+] Get-TargetResource: Contains Key: ActiveUMCallCount 95ms
    [+] Get-TargetResource: Value Matches for Key: ActiveUMCallCount 69ms
    [+] Get-TargetResource: Contains Key: QueuedMessageCount 15ms
    [+] Get-TargetResource: Value Matches for Key: QueuedMessageCount 65ms
    [+] Get-TargetResource: Contains Key: ActiveComponentCount 9ms
    [+] Get-TargetResource: Value Matches for Key: ActiveComponentCount 125ms
    [+] Get-TargetResource: Contains Key: Enabled 49ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 220ms
    [+] Test-TargetResource 10ms
VERBOSE: Sleeping 60 between tests.
   Context Take server out of maintenance mode
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Component ServerWideOffline is not Active
VERBOSE: Component UMCallRouter is not Active
VERBOSE: Component HubTransport is not Active
VERBOSE: Cluster node has a status of Paused
VERBOSE: DatabaseCopyAutoActivationPolicy is set to Blocked
VERBOSE: Component AutoDiscoverProxy is not set to Active
VERBOSE: Component ActiveSyncProxy is not set to Active
VERBOSE: Component EcpProxy is not set to Active
VERBOSE: Component EwsProxy is not set to Active
VERBOSE: Component ImapProxy is not set to Active
VERBOSE: Component OabProxy is not set to Active
VERBOSE: Component OwaProxy is not set to Active
VERBOSE: Component PopProxy is not set to Active
VERBOSE: Component PushNotificationsProxy is not set to Active
VERBOSE: Component RpsProxy is not set to Active
VERBOSE: Component RwsProxy is not set to Active
VERBOSE: Component RpcProxy is not set to Active
VERBOSE: Component XropProxy is not set to Active
VERBOSE: Component HttpProxyAvailabilityGroup is not set to Active
VERBOSE: Component MapiProxy is not set to Active
VERBOSE: Component EdgeTransport is not set to Active
VERBOSE: Component HighAvailability is not set to Active
VERBOSE: Component SharedCache is not set to Active
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E15-1
VERBOSE: Ending Transport Maintenance
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:31:56 AM,E15-1,EndTM,Start,,,,ServiceState=Online,15.00.1395.004
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'namespaceName' = root\
cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:32:00 AM,E15-1,StopTransport,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:32:01 AM,E15-1,StopTransport,Completed,,0:00:01.081805,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:32:01 AM,E15-1,StartTransport,Start,,,,,15.00.1395.004
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
VERBOSE: 7/25/2018 10:32:04 AM,E15-1,StartTransport,Completed,,0:00:03.6384357,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:32:05 AM,E15-1,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.00.1395.004
VERBOSE: 7/25/2018 10:32:05 AM,E15-1,StopEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:32:05 AM,E15-1,StopEdgeSync,Completed,,0:00:00.2833664,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:32:05 AM,E15-1,StartEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:32:07 AM,E15-1,StartEdgeSync,Completed,,0:00:02.1950072,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:32:07 AM,E15-1,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.00.1395.004
VERBOSE: 7/25/2018 10:32:07 AM,E15-1,EndTM,Completed,,0:00:11.3703535,,ServiceState=Online,15.00.1395.004
VERBOSE: Setting AutoDiscoverProxy component to Active for requester Functional
VERBOSE: Setting ActiveSyncProxy component to Active for requester Functional
VERBOSE: Setting EcpProxy component to Active for requester Functional
VERBOSE: Setting EwsProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting OabProxy component to Active for requester Functional
VERBOSE: Setting OwaProxy component to Active for requester Functional
VERBOSE: Setting PopProxy component to Active for requester Functional
VERBOSE: Setting PushNotificationsProxy component to Active for requester Functional
VERBOSE: Setting RpsProxy component to Active for requester Functional
VERBOSE: Setting RwsProxy component to Active for requester Functional
VERBOSE: Setting RpcProxy component to Active for requester Functional
VERBOSE: Setting XropProxy component to Active for requester Functional
VERBOSE: Setting HttpProxyAvailabilityGroup component to Active for requester Functional
VERBOSE: Setting MapiProxy component to Active for requester Functional
VERBOSE: Setting EdgeTransport component to Active for requester Functional
VERBOSE: Setting HighAvailability component to Active for requester Functional
VERBOSE: Setting SharedCache component to Active for requester Functional
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
    [+] Get-TargetResource: Contains Key: ClusterState 110.32s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 14ms
    [+] Get-TargetResource: Contains Key: Enabled 13ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 9ms
    [+] Test-TargetResource 14ms
   Context Do additional Get-TargetResource verification after taking server out of maintenance mode
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
    [+] ActiveComponentCount is greater than 0 5.57s
    [+] Component ServerWideOffline should be Active 24ms
    [+] Component HubTransport should be Active 9ms
    [+] Component FrontendTransport should be Active 17ms
    [+] Component Monitoring should be Active 60ms
    [+] Component RecoveryActionsEnabled should be Active 99ms
    [+] Component AutoDiscoverProxy should be Active 50ms
    [+] Component ActiveSyncProxy should be Active 76ms
    [+] Component EcpProxy should be Active 58ms
    [+] Component EwsProxy should be Active 52ms
    [+] Component ImapProxy should be Active 38ms
    [+] Component OabProxy should be Active 221ms
    [+] Component OwaProxy should be Active 76ms
    [+] Component PopProxy should be Active 235ms
    [+] Component PushNotificationsProxy should be Active 289ms
    [+] Component RpsProxy should be Active 661ms
    [+] Component RwsProxy should be Active 49ms
    [+] Component RpcProxy should be Active 89ms
    [+] Component UMCallRouter should be Active 14ms
    [+] Component XropProxy should be Active 54ms
    [+] Component HttpProxyAvailabilityGroup should be Active 48ms
    [+] Component MapiProxy should be Active 17ms
    [+] Component EdgeTransport should be Active 54ms
    [+] Component HighAvailability should be Active 14ms
    [+] Component SharedCache should be Active 8ms
    [+] Databases were failed back 214ms
VERBOSE: Sleeping 60 between tests.
   Context Try to put server in maintenance mode using UpgradedServerVersion of an older server.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Server is already at or above the desired upgrade version of '<IP_ADDRESS>'. Skipping putting server into maintenance mode.
    [+] Get-TargetResource: Contains Key: ClusterState 75.1s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 13ms
    [+] Get-TargetResource: Contains Key: Enabled 18ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 19ms
    [+] Test-TargetResource 67ms
VERBOSE: Sleeping 60 between tests.
   Context Put server in maintenance mode using Domain Controller switch
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: DatabaseCopyAutoActivationPolicy is not set to Blocked
VERBOSE: One or more components have a status other than Inactive
VERBOSE: Cluster node has a status of Up
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found 1 replicated databases still activated on this server
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E15-1' on E15-1
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E15-1
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:35:09 AM,E15-1,BeginTM,Start,,,,Target=E15-1,15.00.1395.004
VERBOSE: E15-1 - Waiting for BootLoader to be ready...
VERBOSE: E15-1 EdgeTransport has been running for 00:03:07.4366226! Let's give BootLoader 00:05:00  to complete.
VERBOSE: Found matching provider: MSExchangeTransport
VERBOSE: The MSExchangeTransport provider writes events to the Application log.
VERBOSE: Constructed structured query:
<QueryList><Query Id="0" Path="application"><Select Path="application">*[System/Provider[@Name='msexchangetransport'] and (System/TimeCreated[@SystemTime>='2018-07-25T17:32:02.000Z']) and (System/Even
tID=17008)]</Select></Query></QueryList>.
VERBOSE: 7/25/2018 10:35:10 AM,e15-1,BootLoaderCountCheck,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:35:10 AM,e15-1,BootLoaderCountCheck,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:35:11 AM,e15-1,BootLoaderSubmitCheck,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:35:11 AM,e15-1,BootLoaderSubmitCheck,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: E15-1 - BootLoader ended with  items remain
VERBOSE: E15-1 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:35:11 AM,E15-1,QueueDrain,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:35:11 AM,E15-1,QueueDrain,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E15-1 - Retrieving the DAG for the target server
VERBOSE: E15-1 - Retrieving other hub transport servers in the DAG - DAG2
VERBOSE: E15-1 - Redirecting messages to RRAS-1.fiftyfifty.local
VERBOSE: E15-1 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:35:12 AM,E15-1,Redirect,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:35:12 AM,E15-1,Redirect,Completed,,0:00:00.0164836,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for Redirect ended with 0 items remain.
VERBOSE: E15-1 - Forcing heart-beat on server RRAS-1
VERBOSE: E15-1 - Waiting for the heartbeats to complete processing
VERBOSE: E15-1 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:35:12 AM,E15-1,ShadowDiscardDrain,Start,,,1,,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain Progress made. 1 items remain.
VERBOSE: E15-1 - ShadowDiscardDrain NoProgressTimeout occurred. Wait aborted!
VERBOSE: 7/25/2018 10:37:14 AM,E15-1,ShadowDiscardDrain,Completed,,0:02:01.5818774,1,Reason=NoProgressTimeout,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain ended with 1 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:37:14 AM,E15-1,RestartTransport,Info,,,0,ComponentState=Inactive,15.00.1395.004
VERBOSE: 7/25/2018 10:37:14 AM,E15-1,BeginTM,Completed,,0:02:05.334836,,Target=E15-1,15.00.1395.004
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: The following objects are hosted by 'E15-1', before attempting to move them off: `n(Database='Mailbox Database<PHONE_NUMBER>', Reason='Copy is active') (Database='Mailbox Database<PHONE_NUMBER>', Reas
on='There were database redundancy check failures for database 'Mailbox Database<PHONE_NUMBER>' that may be lowering its redundancy and putting the database at risk of data loss. Redundancy Count: 1. Expect
ed Redundancy Count: 2. Detailed error(s):

        e15-1:
        Database 'Mailbox Database<PHONE_NUMBER>' does not have enough copies configured to meet the validation criteria.
        '))
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
    [+] Get-TargetResource: Contains Key: ActiveDBCount 219.19s
    [+] Get-TargetResource: Value Matches for Key: ActiveDBCount 13ms
    [+] Get-TargetResource: Contains Key: ClusterState 36ms
    [+] Get-TargetResource: Value Matches for Key: ClusterState 12ms
    [+] Get-TargetResource: Contains Key: ActiveUMCallCount 11ms
    [+] Get-TargetResource: Value Matches for Key: ActiveUMCallCount 28ms
    [+] Get-TargetResource: Contains Key: QueuedMessageCount 90ms
    [+] Get-TargetResource: Value Matches for Key: QueuedMessageCount 29ms
    [+] Get-TargetResource: Contains Key: ActiveComponentCount 13ms
    [+] Get-TargetResource: Value Matches for Key: ActiveComponentCount 9ms
    [+] Get-TargetResource: Contains Key: Enabled 71ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 20ms
    [+] Test-TargetResource 13ms
VERBOSE: Sleeping 60 between tests.
   Context Take server out of maintenance mode using Domain Controller switch
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Component ServerWideOffline is not Active
VERBOSE: Component UMCallRouter is not Active
VERBOSE: Component HubTransport is not Active
VERBOSE: Cluster node has a status of Paused
VERBOSE: DatabaseCopyAutoActivationPolicy is set to Blocked
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E15-1
VERBOSE: Ending Transport Maintenance
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:38:48 AM,E15-1,EndTM,Start,,,,ServiceState=Online,15.00.1395.004
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'namespaceName' = root\
cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:38:51 AM,E15-1,StopTransport,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:38:53 AM,E15-1,StopTransport,Completed,,0:00:02.0978972,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:38:53 AM,E15-1,StartTransport,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:38:55 AM,E15-1,StartTransport,Completed,,0:00:02.6876517,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:38:56 AM,E15-1,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.00.1395.004
VERBOSE: 7/25/2018 10:38:56 AM,E15-1,StopEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:38:56 AM,E15-1,StopEdgeSync,Completed,,0:00:00.281338,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:38:56 AM,E15-1,StartEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:38:58 AM,E15-1,StartEdgeSync,Completed,,0:00:01.7344099,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:38:58 AM,E15-1,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.00.1395.004
VERBOSE: 7/25/2018 10:38:58 AM,E15-1,EndTM,Completed,,0:00:09.6293394,,ServiceState=Online,15.00.1395.004
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
    [+] Get-TargetResource: Contains Key: ClusterState 90.65s
    [+] Get-TargetResource: Value Matches for Key: ClusterState 8ms
    [+] Get-TargetResource: Contains Key: Enabled 23ms
    [+] Get-TargetResource: Value Matches for Key: Enabled 35ms
    [+] Test-TargetResource 58ms
   Context Do additional Get-TargetResource verification after taking server out of maintenance mode
VERBOSE: Entering function 'Get-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found database 'Mailbox Database<PHONE_NUMBER>' with a replication type of 'Remote' and a status of 'Mounted'.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
    [+] ActiveComponentCount is greater than 0 4.01s
    [+] Component ServerWideOffline should be Active 49ms
    [+] Component HubTransport should be Active 73ms
    [+] Component FrontendTransport should be Active 23ms
    [+] Component Monitoring should be Active 113ms
    [+] Component RecoveryActionsEnabled should be Active 31ms
    [+] Component AutoDiscoverProxy should be Active 24ms
    [+] Component ActiveSyncProxy should be Active 39ms
    [+] Component EcpProxy should be Active 29ms
    [+] Component EwsProxy should be Active 36ms
    [+] Component ImapProxy should be Active 21ms
    [+] Component OabProxy should be Active 146ms
    [+] Component OwaProxy should be Active 34ms
    [+] Component PopProxy should be Active 62ms
    [+] Component PushNotificationsProxy should be Active 87ms
    [+] Component RpsProxy should be Active 72ms
    [+] Component RwsProxy should be Active 61ms
    [+] Component RpcProxy should be Active 61ms
    [+] Component UMCallRouter should be Active 185ms
    [+] Component XropProxy should be Active 589ms
    [+] Component HttpProxyAvailabilityGroup should be Active 19ms
    [+] Component MapiProxy should be Active 38ms
    [+] Component EdgeTransport should be Active 69ms
    [+] Component HighAvailability should be Active 54ms
    [+] Component SharedCache should be Active 29ms
    [+] Databases were failed back 221ms
VERBOSE: Sleeping 60 between tests.
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting DatabaseCopyAutoActivationPolicy to Blocked
VERBOSE: Setting UMCallRouter component to Draining for requester Maintenance
VERBOSE: Entering Transport Maintenance
VERBOSE: Starting non-fatal Transport maintenance tasks for 'E15-1' on E15-1
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: Getting HubTransport state of E15-1
VERBOSE: ServerComponentState of HubTransport is 'Active'
VERBOSE: 7/25/2018 10:40:22 AM,E15-1,BeginTM,Start,,,,Target=E15-1,15.00.1395.004
VERBOSE: E15-1 - Waiting for BootLoader to be ready...
VERBOSE: E15-1 EdgeTransport has been running for 00:01:29.0091022! Let's give BootLoader 00:05:00  to complete.
VERBOSE: Found matching provider: MSExchangeTransport
VERBOSE: The MSExchangeTransport provider writes events to the Application log.
VERBOSE: Constructed structured query:
<QueryList><Query Id="0" Path="application"><Select Path="application">*[System/Provider[@Name='msexchangetransport'] and (System/TimeCreated[@SystemTime>='2018-07-25T17:38:53.000Z']) and (System/Even
tID=17008)]</Select></Query></QueryList>.
VERBOSE: 7/25/2018 10:40:23 AM,e15-1,BootLoaderCountCheck,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:40:23 AM,e15-1,BootLoaderCountCheck,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:40:24 AM,e15-1,BootLoaderSubmitCheck,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:40:24 AM,e15-1,BootLoaderSubmitCheck,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: E15-1 - BootLoader ended with  items remain
VERBOSE: E15-1 - Start waiting for QueueDrain...
VERBOSE: 7/25/2018 10:40:24 AM,E15-1,QueueDrain,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:40:24 AM,E15-1,QueueDrain,Completed,,0:00:00.0156289,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for QueueDrain ended with 0 items remain.
VERBOSE: E15-1 - Retrieving the DAG for the target server
VERBOSE: E15-1 - Retrieving other hub transport servers in the DAG - DAG2
VERBOSE: E15-1 - Redirecting messages to RRAS-1.fiftyfifty.local
VERBOSE: E15-1 - Start waiting for Redirect...
VERBOSE: 7/25/2018 10:40:25 AM,E15-1,Redirect,Start,,,0,,15.00.1395.004
VERBOSE: 7/25/2018 10:40:25 AM,E15-1,Redirect,Completed,,0:00:00,0,,15.00.1395.004
VERBOSE: E15-1 - Wait for Redirect ended with 0 items remain.
VERBOSE: E15-1 - Forcing heart-beat on server RRAS-1
VERBOSE: E15-1 - Waiting for the heartbeats to complete processing
VERBOSE: E15-1 - Start waiting for ShadowDiscardDrain...
VERBOSE: 7/25/2018 10:40:26 AM,E15-1,ShadowDiscardDrain,Start,,,1,,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain Progress made. 1 items remain.
VERBOSE: E15-1 - ShadowDiscardDrain NoProgressTimeout occurred. Wait aborted!
VERBOSE: 7/25/2018 10:42:27 AM,E15-1,ShadowDiscardDrain,Completed,,0:02:01.149824,1,Reason=NoProgressTimeout,15.00.1395.004
VERBOSE: E15-1 - ShadowDiscardDrain ended with 1 items remain.
VERBOSE: Setting HubTransport component state to Inactive
VERBOSE: Setting HubTransport state to Inactive
VERBOSE: 7/25/2018 10:42:28 AM,E15-1,RestartTransport,Info,,,0,ComponentState=Inactive,15.00.1395.004
VERBOSE: 7/25/2018 10:42:28 AM,E15-1,BeginTM,Completed,,0:02:05.7311468,,Target=E15-1,15.00.1395.004
VERBOSE: Waiting up to 5 minutes for active UM calls to finish
VERBOSE: Running StartDagServerMaintenance.ps1
VERBOSE: The following objects are hosted by 'E15-1', before attempting to move them off: `n(Database='Mailbox Database<PHONE_NUMBER>', Reason='Copy is active') (Database='Mailbox Database<PHONE_NUMBER>', Reas
on='There were database redundancy check failures for database 'Mailbox Database<PHONE_NUMBER>' that may be lowering its redundancy and putting the database at risk of data loss. Redundancy Count: 1. Expect
ed Redundancy Count: 2. Detailed error(s):

        e15-1:
        Database 'Mailbox Database<PHONE_NUMBER>' does not have enough copies configured to meet the validation criteria.
        '))
VERBOSE: Setting ServerWideOffline component to Inactive for requester Maintenance
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'True'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Found queue 'e15-1\Submission' with a message count of '0'.
 [+] Server should be in maintenance mode 211.8s
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting ServerWideOffline component to Active for requester Maintenance
VERBOSE: Setting UMCallRouter component to Active for requester Maintenance
VERBOSE: Running StopDagServerMaintenance.ps1
VERBOSE: DatabaseCopyActivationDisabledAndMoveNow flag will be unset on the server E15-1
VERBOSE: Ending Transport Maintenance
VERBOSE: E15-1 - Retrieving version for the target server
VERBOSE: 7/25/2018 10:42:58 AM,E15-1,EndTM,Start,,,,ServiceState=Online,15.00.1395.004
VERBOSE: Perform operation 'Query CimInstances' with following parameters, ''queryExpression' = SELECT * FROM win32_service WHERE name = 'MSExchangeTransport','queryDialect' = WQL,'namespaceName' = root\
cimv2'.
VERBOSE: Operation 'Query CimInstances' complete.
VERBOSE: Setting HubTransport state to Active
VERBOSE: 7/25/2018 10:43:01 AM,E15-1,StopTransport,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:43:02 AM,E15-1,StopTransport,Completed,,0:00:01.2181923,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:43:02 AM,E15-1,StartTransport,Start,,,,,15.00.1395.004
WARNING: Waiting for service 'Microsoft Exchange Transport (MsExchangeTransport)' to start...
VERBOSE: 7/25/2018 10:43:05 AM,E15-1,StartTransport,Completed,,0:00:02.9518693,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:43:05 AM,E15-1,SubmissionQueueCheck,Skipped,,,0,EnableSubmissionQueue=Ready,15.00.1395.004
VERBOSE: 7/25/2018 10:43:05 AM,E15-1,StopEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:43:05 AM,E15-1,StopEdgeSync,Completed,,0:00:00.2812016,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:43:05 AM,E15-1,StartEdgeSync,Start,,,,,15.00.1395.004
VERBOSE: 7/25/2018 10:43:07 AM,E15-1,StartEdgeSync,Completed,,0:00:01.6963244,,MaxWaitMinutes=5,15.00.1395.004
VERBOSE: 7/25/2018 10:43:07 AM,E15-1,StartMessageTrace,Skipped,,,0,MSMessageTracingClient=NotFound,15.00.1395.004
VERBOSE: 7/25/2018 10:43:07 AM,E15-1,EndTM,Completed,,0:00:08.6151385,,ServiceState=Online,15.00.1395.004
VERBOSE: Setting AutoDiscoverProxy component to Active for requester Functional
VERBOSE: Setting ActiveSyncProxy component to Active for requester Functional
VERBOSE: Setting EcpProxy component to Active for requester Functional
VERBOSE: Setting EwsProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting OabProxy component to Active for requester Functional
VERBOSE: Setting OwaProxy component to Active for requester Functional
VERBOSE: Setting PopProxy component to Active for requester Functional
VERBOSE: Setting PushNotificationsProxy component to Active for requester Functional
VERBOSE: Setting RpsProxy component to Active for requester Functional
VERBOSE: Setting RwsProxy component to Active for requester Functional
VERBOSE: Setting RpcProxy component to Active for requester Functional
VERBOSE: Setting XropProxy component to Active for requester Functional
VERBOSE: Setting HttpProxyAvailabilityGroup component to Active for requester Functional
VERBOSE: Setting MapiProxy component to Active for requester Functional
VERBOSE: Setting EdgeTransport component to Active for requester Functional
VERBOSE: Setting HighAvailability component to Active for requester Functional
VERBOSE: Setting SharedCache component to Active for requester Functional
VERBOSE: Found 1 Healthy databases with Activation Preference 1 that should be moved to this server.
VERBOSE: Attempting to move database 'Mailbox Database<PHONE_NUMBER>' back to this server.
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Component ImapProxy is not set to Active
 [+] Test should fail 33.27s
VERBOSE: Entering function 'Set-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
VERBOSE: Setting ImapProxy component to Active for requester Functional
VERBOSE: Setting ImapProxy component to Active for requester HealthApi
VERBOSE: Found 0 Healthy databases with Activation Preference 1 for this server that are currently not hosted on this server
VERBOSE: Entering function 'Test-TargetResource'. Notable parameters: Enabled = 'False'
VERBOSE: Reusing existing Remote Powershell Session to Exchange
VERBOSE: Connecting to cluster on local computer E15-1.
 [+] Test should succeed 15.79s
Tests completed in 1103.01s
Passed: 96 Failed: 0 Skipped: 0 Pending: 0 Inconclusive: 0

This change is

Codecov Report

Merging #272 into dev will decrease coverage by <.01%.
The diff coverage is 0%.

@@           Coverage Diff            @@
##             dev    #272      +/-   ##
========================================
- Coverage   0.95%   0.95%   -0.01%
========================================
  Files         36      36
  Lines       3996    3997       +1
========================================
  Hits          38      38
- Misses      3958    3959       +1

Impacted Files
Coverage Δ

...ExchMaintenanceMode/MSFT_xExchMaintenanceMode.psm1
0.26% <0%> (-0.03%)
:arrow_down:

...SFT_xExchMaintenanceMode/TransportMaintenance.psm1
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 57e4b0d...b0b6895. Read the comment docs.

Thanks for the review, I'll get this updated. Regarding the DomainController parameters, I don't think those should be mandatory. The consumer has the option of specifying a DomainController when using the resource, but it's absolutely not required.

Update pushed. Note that for all the previously added SupportsShouldProcess sections, I just reverted to the original code, and then added a suppress statement for that rule. Hopefully that is acceptable.

I'm seeing that when manually running PSScriptAnalyzer (1.17.1) offline on my dev machine.

@mhendric ah, I'm using VS Code and it is not enabled there so I'm not seeing this. I personally think it would be better to exclude the rule when running Invoke-ScriptAnalyzer, as well as these others in the ignore section of PSSARuleSeverities.md, than suppressing the rule in the code. When I have time I will look into the option to enable the rules in VS Code so they are reported according to the guidelines.

@johlju , do you think I should remove these new suppress statements then, or should I just not worry about adding them in the future?

You are the maintainer of this resource module, so in the end you decide :) I just thought there are unnecessary code to add. You don't have to remove them.
Please look at PR https://github.com/PowerShell/DscResources/pull/424, it adds a settings file that can be used to Invoke-ScriptAnalyzer with. It also checks the custom rules in DscResource.Tests (if cloned into the local repo path).

Ok, I'm going to leave these suppression statements in, but will avoid unnecessary ones in the future. I'll make sure to run Invoke-ScriptAnalyzer with the proper ignore switches going forward.


VideoPlayer gets width and height from platformSettings

According to RuntimeConfiguration, the width and height of the viewport is defined on the Stage Configuration using the w and h parameters.
However, in the VideoPlayer plugin, it is trying to read width and height from the platformSettings. I believe this is not intended. I will provide a PR fixing this.
https://github.com/rdkcentral/Lightning-SDK/blob/82b8948ca0e7efe7afe5a94ba5700d21a9cc880c/src/VideoPlayer/index.js#L127-L132

Hi @ricardo-a-alves-alb, thanks for your report.
Starting v5.0.0 the VideoPlayer plugin is no longer part of the Lightning-SDK. It’s been moved to the Metrological-SDK.
I’m not able to move issues between organizations, so I would suggest to open this issue as a new ticket over here.


Make wire constraint optional

Fixes: #1785
Fixes: #1784

Testing now

@Monkatraz if u wanna test and see if its good then we can merge. its on my server now too.

I had some issues with Adv Dupe 2 in single player, but I have a feeling its because mine is outdated. I would test that though.
I would make the "Use Wire Constraint" opt-in, because right now it defaulted to on for me. I'd keep old behavior as much as possible.
Later on, I would probably find a good way of auto-deleting wire constraints if you don't want them later, but as it stands this fixes most of my issues with the whole wire constraints thing. I think it's probably good enough to merge with just the "Use Wire Constraint" option flipped to off by default (unless it's supposed to be, and I just got a fluke)

It is on by default. Most new users would like to have their components duplicated with their contraption. Feel free to turn it off.

With how sensitive your builds are to constraints, it's a wonder you haven't made an e2 to manage them.

I'll test with advdupe2 later, but it was working last time I tried.

Most users should learn how to area copy, plus E2s should automatically no collide themselves to the base. Wire Constraints seem best as a tool to get far away or weird things to dupe.
Second, this isn't about my builds. I already force disabled wire constraints on the server I help run. We had all this discussion about making wire constraints opt-in and everything, but right now their opt-out and its a checkbox no one will notice. Wire constraints should probably be a tool people should learn to use because it only has a few actual use-cases, and not a default on option.

Users advanced enough to use advdupe2 area copy should be advanced enough to know how to avoid the wire constraint or build things that aren't affected by it.

If you leave it on by default, servers will get all the issues described before whenever people wire up a contraption. If you leave it off by default, wire constraint is now a niche tool that will be occasionally useful and won't clutter up constraint counters or anything.
Leaving it on by default changes the behavior of getConstraints, screws up constraint mappers, and mess up constraint counters on server. It is best left to off because the old behavior is best kept.

The fact its enabled by default is in favor of normal users who would use the vanilla duplicator.

Most normal users don't use the vanilla duplicator, and second, E2s and the sort are usually attached to the contraption already and not parented or anything, so they duplicate anyways. The wire constraint isn't needed.

It is needed for gates that spawn parented.

Alright, sure, but once again, leaving it on by default will now eventually cause them to infest dupes by people who don't know the feature was added and don't want it and will cause problems as mentioned before.
This isn't about me.

Also, if you know how to properly parent, you're not gonna need the wire constraints anyways.

EDIT: also, does parenting even work with garry dupe?

No, that's what the whole point of this is.

EDIT: also, does parenting even work with garry dupe?

Not sure. Needs to be implemented in wire if it doesn't.

Then you wouldn't need to parent your gates. The gates would then be no collided to the base. You don't need wire constraints.

Refresh. I edited it

Whatever the use case for wire constraints is, it's niche. The niche case that this can be used in (if you're somehow not area copying) should be sought out by the user and not default on. Because default on, it just has disadvantages and tiny advantages.
All of the problems described beforehand in the original version of wire constraints will happen if it's left default on, just not as aggressively.

I disagree with making it enabled by default. I think it should at the very least be disabled by default, or outright removed entirely.

It is needed for gates that spawn parented. If your wire parts aren't parented then you're cluttering up constraints anyway.

this is only true if you wire one of the gate inputs directly to one of the props, via an entity input. If you don't then all the gates will be one contraption, and all the props will be a different contraption, even if you do have wire constraints enabled.

Then instead of this, make duplicators acquire parent+child props. How many cans of worms will that change open?

Could simply make adv dupe 1 and 2 also check wire connections when right clicking, that'll open no cans of worms.

And what about the case where you have a network of wires across the map?

what about it? checking for that in the duplicators would handle it the same way as them being constraints would've

Fine. Into the trash

@thegrb93 sorry, but if we consider wiremod by itself it's an excellent addition. Sure 1 or 2 old e2s might break but they can easily be fixed (especially if they were to use my new PR that'll also be merged soon). It would've been worth it if that were the case. I'm just not thinking only about wiremod. Unfortunately this change has too big of a negative impact on other addons that totally overshadow any positive advantages it brings.
So instead I'm just trying to come up with reasonable alternatives that achieve the same thing but without negative side effects.

Yeah I agree. Unfortunately, this hack will also have to be added to anything that attempts to get all connected entities (that want it), I will be adding it to starfall for sure.


Question: Limiting fs access

Hi @streamich
Great collection of fs libraries! Super useful and well made!
Quick Q: I want to use unionfs to combine an in-memory fs and the official (disk) fs, however, I only want to allow a particular folder to be accessible via the official fs. How would you recommend I do something like that with your tools?

@privatenumber this should be available soon


Terminal scroll bar does not appear (or work) sometimes

This happened after one of the recent xterm.js uplevels.
Reasonable reliable Mac repro steps:

Open terminal in vscode workspace
Run ./scripts/npm.sh install

Resizing the window will refresh the scroll bar and it will work fine after that.

.xterm-scroll-area is not getting its height set.

It's happening because charMeasure is returning 0 initially so a refresh is not being performed.

I believe the auto scroll not working issue may be caused by this to one.

PR out: https://github.com/sourcelair/xterm.js/pull/466


Feature request: Abort all tasks in Node API

I'm trying to use the Node API to keep some tasks running in the background, while other tasks are performed. Once the other tasks are finished, I'd like to abort all promises which did not finish.
It looks like there is the abortTasks function, but it's not exposed as a public API.
It would be nice if that could be changed. :)

Thank you for this issue!
Sounds reasonable.
I need to check the direction of standard cancelable promise proposal in order to think proper API.

I fear there is no standard for it…
Thanks for considering it!

Sadly, the standard of cancelable promises has been withdrawn :cry: .
I will consider my own spec.
https://github.com/tc39/proposals/commit/37e3c5a157e7b3a8211e2e0bb85c9f612b0f04fc

I don't think we need to use Promise cancellations for this one. Seems a little extreme and not backwards-compatible.
How about keeping a list of processes that are running, and providing a way to exit/kill them all?

There's always https://github.com/sindresorhus/p-cancelable

I don't think that the promise.cancel method is the right direction.
Browsers use AbortController to abort asynchronous operations. This has been standardized already. ECMAScript is following that, cancellation API is discussing (yes, resumed it!) in https://github.com/tc39/proposal-cancellation. It will be similar to AbortController but not depend on DOM API.


Enhance ibc-setup init commands

A few extra flags for ibc-setup init that might help in real world use-cases:

[ ] copy-from will take the registry.yaml an existing local initialized relayer. This is useful if you have customized it already in one instance and want a second with the same list of custom chains. eg. ibc-setup --home ~/.relayer2 --copy-from ~/.ibc-setup --src custom-chain-1 --dest other-custom-2
[ ] download-only which will just create an empty config dir and download the default registry file there. It will abort if there is already a registry.yaml file there. The purpose is when we want to customize this before running init.

copy-from will take the registry.yaml an existing local initialized relayer. This is useful if you have customized it already in one instance and want a second with the same list of custom chains. eg. ibc-setup --home ~/.relayer2 --copy-from ~/.ibc-setup --src custom-chain-1 --dest other-custom-2

I feel like this option can create more confusion than good, but I may be wrong. What happens when I run the second relayer, kill it, modify the registry and rerun the command? Should it overwrite the edited registry?
To confirm, it should copy the registry.yaml only, not app.yaml, right?

download-only is similar to once option in ibc-relayer start, they are both booleans. Should it be possible to set them via environment variables? If yes, what values should they? I suggest:
RELAYER_DOWNLOAD_ONLY=true

I feel like this option can create more confusion than good, but I may be wrong. What happens when I run the second relayer, kill it, modify the registry and rerun the command? Should it overwrite the edited registry?

To confirm, it should copy the registry.yaml only, not app.yaml, right?
--copy-from should require an uninitialized destination (like init does in general, right?). It will will copy registry.yaml from the --copy-from path. It will then create app.yaml the normal way. It just replaces "download from github" with "reuse local registry". I am sure you can find a better name. Maybe --registry-from?
For both of them the basic purpose is to allow me to add a few new chains to my registry and still use the init commands without having to mess with rm cp or looking in the internals of .ibc-setup. Using this for chains not in github is a major use case. But if you can find a new flow / command that handles that, I am open to it (and please rename all variables if you have a better name)

download-only is similar to once option in ibc-relayer start, they are both booleans. Should it be possible to set them via environment variables? If yes, what values should they?

RELAYER_DOWNLOAD_ONLY=true

:+1: sounds good
Also, if you think --download-registry or some other name is more clear, feel free to adapt. Whatever you end up doing, please add it to the spec of ibc-setup init as well

Accept true|1|on|yes for parsing boolean flags


Addint support for complex type

Could we add official support for complex type. I don't know if this requires a fully blown PR as the code is so small:
namespace std {
    template<typename R, typename std::enable_if<std::is_arithmetic<R>::value>::type* = nullptr>
    void to_json(nlohmann::json& j, const complex<R>& d)
    {
        j = {d.real(), d.imag()};
    }

    template<typename R, typename std::enable_if<std::is_arithmetic<R>::value>::type* = nullptr>
    void from_json(const nlohmann::json& j, complex<R>& d)
    {
        d.real(j.at(0).get<R>());
        d.imag(j.at(1).get<R>());
    }
}

I'm hesitant, because this would define the serialization format for a standard type where there is not canonic serialization. You propose serializing as array, but an object would also make sense, e.g.
{"complex": {"real": 1, "imag": 0}}

Though the user could override the defaults, I am not sure whether the library should propose a default.
Any opinions on this?

Good point. It seems msgpack also doesn’t define a spec for complex numbers. Weird. As engineers we use them almost just as often as real numbers so why do these specs not care about complex numbers??

I guess if you start doing that, then people will want quaternions and other exotic things and then it quickly becomes a math serialisation library.

The good thing is that you can realize the conversion with the few lines above, and I think this issue should pop up in any search for issues with the word "complex".

As a json string i would expect to see something like
{
"z": 1 + 2i
}

For example. But no other json library, including the built-in javascript JSON library, would understand that without adding custom parsers. We need to open an issue on the JSON spec if that exists.

The JSON specification is unlikely to ever change. The RFC has been updated every once in a while, but never were new types added.


Cross-platform documentation for testing

Per @Maks3w, changed the docs to have the primary path indicate creating and editing a phpunit.xml file (which will work on Windows, as well as Linux and Mac). I've also added a "note" showing how to simplify the invocation of online-tests using environment variables for those comfortable with the practice.

Ok for me. Can you merge?

@Maks3w Sure.


[directx-dxc] port added to provide latest DirectX 12 HLSL Shader Compiler

The Windows SDK includes a version of the DirectX12 Shader Compiler (DXC), but it's consistently out of date. The latest version can be obtained from the project's GitHub releases.
This port automates downloading the current release .ZIP file, providing both the command-line tool -and- the callable library to CMake clients.
This provides access to the DXCOMPILER.LIB library:
find_package(directx-dxc CONFIG REQUIRED)
target_link_libraries(target PRIVATE Microsoft::DirectXShaderCompiler)

or you can use the package just to get the command-line tool:
find_package(directx-dxc CONFIG REQUIRED)
# The DIRECTX_DXC_TOOL variable points to the latest DXC

The upstream source only provides an x64-native binary. This is fine for most games which are x64 native, and build-time development. arm64 support is planned for a future release, at which time this port can be updated to support arm64 as well.

@tex3d, @hekota please review this vcpkg port.

Note I plan to use this as a 'tool only port' for the next release of directxtk12 as well.

This port currently supports two triplets:
vcpkg install directx-dxc:x64-windows
vcpkg install directx-dxc:x64-windows-static-md

Thanks!


how to get username and password for the access ?

I am not able to use the system without username and password.
how do i get one ?

The first sentence in the README says: "This repository contains the documentation and some handy scripts for using the ReLDI web services library. For gaining access to the ReLDI web services please visit http://clarin.si/services/web/."


Drop support for 2022.1

As of May 23rd, 2022, it looks that from 2022.2 on, IntelliJs will run on JDK 17 🎉
Dropping support for 2022.1 might then include switching to Java 17 in code, including:

triple-quote (Scala/Groovy-style) strings
switch expressions (no more vavr Match)
records (no more lombok @Data)

and others, see https://dzone.com/articles/whats-new-between-java-11-and-java-17

Why not rewrite the project in Kotlin 😳

Coz b u d g e t 😅

Well Kotlin is designed to be very incrementally adoptable, and it already offers the three features mentioned in the OP (and many more). The project already has Kotlin set up, If you are going to write new code, why not write it in Kotlin 😃 .

Certain parts are already written in Kotlin indeed! Like certain dialogs under frontend/actions/

Any thoughts on using Kotlin Compose (and here) or the Kotlin UI DSL or for the UI?

I think it's an excellent idea to have more Kotlin in the codebase 🚀  Kotlin is better in many ways (mentioned and not mentioned here).
In particular, https://github.com/VirtusLab/git-machete-intellij-plugin/issues/791 - using Kotlin DSL for that is the only option IMHO 👍
@KotlinIsland if you want to help us with the adoption of Kotlin feel free to take some issues 🛠
We are open to contributions 🙂 you can start from that slide in auto-complete thing

One thing to check before migration to Java 17: https://github.com/VirtusLab/git-machete-intellij-plugin/issues/1584


Delete .github/workflows/benchmark.yml

Description
Please include a summary of the change and which is fixed.

Removed benchmark step to avoid any data leak

How has this been tested?
Please describe the tests that you ran to verify your changes.

[x] UnitTest

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (975fd20) 90.95% compared to head (7747ef7) 90.95%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #465   +/-   ##
=======================================
  Coverage   90.95%   90.95%
=======================================
  Files         128      128
  Lines        4292     4292
  Branches      679      679
=======================================
  Hits         3904     3904
  Misses        253      253
  Partials      135      135

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Throw refinements(?) not kept through function calls

function test(a) {
  if (a == null) {
    throw new Error('Is null')
  }
}

const b: ?any[] = null
if (b == null) {
  throw new Error('Is null')
}
console.log(b.map) //No error

const c: ?any[] = null
test(c)
console.log(c.map) //Property map cannot be accessed on possible null value

Not sure if refinement is the right word, is this expected behaviour because of some javascript detail I'm missing?

Yeah, refinements are not kept through function calls 😔
We may add this feature in the future, but it is unlikely. Let me know if you still have questions 👍