From c4cfa581a03cffdd9571cbdc5234361c611a8e44 Mon Sep 17 00:00:00 2001 From: Adam Rudell Date: Tue, 2 Apr 2024 08:28:15 -0500 Subject: [PATCH] Improve exception handling and logging (#248) # Description Summary of changes: - Improvements to exception handling and logging # Change type - [ ] Bug fix (non-breaking change) - [ ] Code style update (formatting, local variables) - [x] New Feature (non-breaking change that adds new functionality without impacting existing) - [ ] Breaking change (fix or feature that may cause functionality impact) - [ ] Other # Checklist: - [x] My code follows the style and contribution guidelines of this project. - [x] I have tested and validated my code changes. --- .../Export-RegistryKeyConfigDetails.ps1 | 1 + .../private/Get-CommonConfigState.ps1 | 1 + .../private/Get-TraceProviders.ps1 | 1 + .../private/Start-EtwTraceSession.ps1 | 1 + .../private/Start-NetshTrace.ps1 | 1 + .../private/Stop-EtwTraceSession.ps1 | 1 + .../private/Stop-NetshTrace.ps1 | 1 + .../public/Convert-SdnEtwTraceToTxt.ps1 | 1 + .../public/Enable-SdnVipTrace.ps1 | 1 + .../public/Get-SdnCertificate.ps1 | 1 + .../SdnDiag.Common/public/Get-SdnEventLog.ps1 | 1 + .../public/Invoke-SdnGetNetView.ps1 | 1 + .../public/New-SdnCertificate.ps1 | 1 + .../Repair-SdnDiagnosticsScheduledTask.ps1 | 1 + .../public/Set-SdnCertificateAcl.ps1 | 1 + .../public/Start-SdnEtwTraceCapture.ps1 | 1 + .../public/Start-SdnNetshTrace.ps1 | 1 + .../public/Stop-SdnEtwTraceCapture.ps1 | 1 + .../public/Stop-SdnNetshTrace.ps1 | 1 + .../private/Get-GatewayConfigState.ps1 | 1 + .../public/Disable-SdnRasGatewayTracing.ps1 | 1 + .../public/Enable-SdnRasGatewayTracing.ps1 | 1 + .../private/Test-EncapOverhead.ps1 | 1 + .../private/Test-HostRootStoreNonRootCert.ps1 | 1 + .../private/Test-MuxBgpConnectionState.ps1 | 1 + ...Test-NcHostAgentConnectionToApiService.ps1 | 1 + .../private/Test-NcUrlNameResolution.ps1 | 1 + .../Test-NetworkControllerCertCredential.ps1 | 1 + ...NetworkInterfaceAPIDuplicateMacAddress.ps1 | 1 + .../private/Test-ProviderNetwork.ps1 | 1 + .../Test-ResourceConfigurationState.ps1 | 1 + .../Test-ResourceProvisioningState.ps1 | 1 + .../private/Test-ScheduledTaskEnabled.ps1 | 1 + .../private/Test-ServerHostId.ps1 | 1 + .../Test-ServiceFabricApplicationHealth.ps1 | 1 + .../Test-ServiceFabricClusterHealth.ps1 | 1 + .../private/Test-ServiceFabricNodeStatus.ps1 | 1 + ...est-ServiceFabricPartitionDatabaseSize.ps1 | 1 + .../private/Test-ServiceState.ps1 | 1 + .../Test-SlbManagerConnectionToMux.ps1 | 1 + .../Test-VMNetAdapterDuplicateMacAddress.ps1 | 1 + .../private/Test-VfpDuplicatePort.ps1 | 1 + .../public/Debug-SdnFabricInfrastructure.ps1 | 1 + .../private/Get-SlbMuxConfigState.ps1 | 1 + .../public/Get-SdnMuxCertificate.ps1 | 1 + .../public/Get-SdnMuxDistributedRouterIP.ps1 | 1 + .../public/Get-SdnMuxState.ps1 | 1 + .../public/Get-SdnMuxStatefulVip.ps1 | 1 + .../public/Get-SdnMuxStatelessVip.ps1 | 1 + .../public/Get-SdnMuxStats.ps1 | 1 + .../public/Get-SdnMuxVip.ps1 | 1 + .../public/Get-SdnMuxVipConfig.ps1 | 1 + .../public/New-SdnMuxCertificate.ps1 | 1 + .../Start-SdnMuxCertificateRotation.ps1 | 1 + ...iceFabricManifestFromNetworkController.ps1 | 5 +- ...rviceFabricManifestToNetworkController.ps1 | 7 +- .../Get-NetworkControllerConfigState.ps1 | 1 + .../private/Get-PublicIpReference.ps1 | 1 + .../private/Get-SdnDiscovery.ps1 | 4 +- .../Get-SdnNetworkControllerInfoOffline.ps1 | 1 + .../Get-SdnNetworkControllerRestURL.ps1 | 1 + .../private/Get-SdnVirtualServer.ps1 | 1 + .../Invoke-SdnNetworkControllerStateDump.ps1 | 1 + .../Start-SdnExpiredCertificateRotation.ps1 | 48 +++++----- ...Update-NetworkControllerCertificateAcl.ps1 | 1 + ...NetworkControllerCertificateInManifest.ps1 | 4 +- .../Wait-NetworkControllerAppHealthy.ps1 | 1 + .../Wait-ServiceFabricClusterHealthy.ps1 | 3 +- .../public/Get-SdnGateway.ps1 | 1 + .../public/Get-SdnInfrastructureInfo.ps1 | 24 ++--- .../public/Get-SdnInternalLoadBalancer.ps1 | 1 + .../public/Get-SdnLoadBalancerMux.ps1 | 1 + .../public/Get-SdnNetworkController.ps1 | 1 + .../Get-SdnNetworkControllerClusterInfo.ps1 | 1 + .../public/Get-SdnNetworkControllerNode.ps1 | 1 + ...et-SdnNetworkControllerNodeCertificate.ps1 | 1 + ...et-SdnNetworkControllerRestCertificate.ps1 | 1 + .../public/Get-SdnNetworkControllerState.ps1 | 1 + ...etworkInterfaceOutboundPublicIPAddress.ps1 | 1 + .../Get-SdnPublicIPPoolUsageSummary.ps1 | 1 + .../public/Get-SdnResource.ps1 | 87 ++++++++++--------- .../public/Get-SdnServer.ps1 | 1 + .../Get-SdnServiceFabricApplicationHealth.ps1 | 1 + .../Get-SdnServiceFabricClusterConfig.ps1 | 1 + .../Get-SdnServiceFabricClusterHealth.ps1 | 1 + .../Get-SdnServiceFabricClusterManifest.ps1 | 1 + .../public/Get-SdnServiceFabricNode.ps1 | 1 + .../public/Get-SdnServiceFabricPartition.ps1 | 1 + .../public/Get-SdnServiceFabricReplica.ps1 | 1 + .../public/Get-SdnServiceFabricService.ps1 | 1 + .../public/Get-SdnSlbStateInformation.ps1 | 1 + .../public/Invoke-SdnResourceDump.ps1 | 1 + .../public/Move-SdnServiceFabricReplica.ps1 | 1 + .../New-SdnCertificateRotationConfig.ps1 | 3 +- ...ew-SdnNetworkControllerNodeCertificate.ps1 | 1 + ...ew-SdnNetworkControllerRestCertificate.ps1 | 1 + .../public/Set-SdnNetworkController.ps1 | 1 + .../Set-SdnServiceFabricClusterConfig.ps1 | 1 + .../public/Show-SdnVipState.ps1 | 1 + .../public/Start-SdnCertificateRotation.ps1 | 1 + .../Test-SdnCertificateRotationConfig.ps1 | 9 +- .../private/Get-OvsdbAddressMapping.ps1 | 86 +++++++++--------- .../private/Get-OvsdbDatabase.ps1 | 27 +++--- .../private/Get-OvsdbFirewallRuleTable.ps1 | 62 +++++++------ .../private/Get-OvsdbGlobalTable.ps1 | 40 ++++----- .../private/Get-OvsdbPhysicalPortTable.ps1 | 50 +++++------ .../private/Get-OvsdbRouterTable.ps1 | 73 ++++++++-------- .../private/Get-OvsdbUcastMacRemoteTable.ps1 | 43 +++++---- .../private/Get-ServerConfigState.ps1 | 1 + .../Get-SdnNetAdapterEncapOverheadConfig.ps1 | 1 + .../public/Get-SdnNetAdapterRdmaConfig.ps1 | 1 + .../public/Get-SdnOvsdbAddressMapping.ps1 | 1 + .../public/Get-SdnOvsdbFirewallRule.ps1 | 1 + .../public/Get-SdnOvsdbGlobalTable.ps1 | 1 + .../public/Get-SdnOvsdbPhysicalPort.ps1 | 1 + .../public/Get-SdnOvsdbRouterTable.ps1 | 1 + .../Get-SdnOvsdbUcastMacRemoteTable.ps1 | 1 + .../public/Get-SdnProviderAddress.ps1 | 1 + .../public/Get-SdnServerCertificate.ps1 | 1 + .../public/Get-SdnVMNetworkAdapter.ps1 | 1 + .../Get-SdnVMNetworkAdapterPortProfile.ps1 | 1 + .../public/Get-SdnVfpPortGroup.ps1 | 1 + .../public/Get-SdnVfpPortLayer.ps1 | 1 + .../public/Get-SdnVfpPortRule.ps1 | 1 + .../public/Get-SdnVfpPortState.ps1 | 1 + .../public/Get-SdnVfpVmSwitchPort.ps1 | 1 + .../public/New-SdnServerCertificate.ps1 | 1 + .../Set-SdnVMNetworkAdapterPortProfile.ps1 | 1 + .../public/Show-SdnVfpPortConfig.ps1 | 1 + .../Start-SdnServerCertificateRotation.ps1 | 1 + .../Test-SdnProviderAddressConnectivity.ps1 | 1 + .../private/Confirm-DiskSpace.ps1 | 49 +++++------ .../private/Copy-FileFromRemoteComputer.ps1 | 1 + .../private/Copy-FileToRemoteComputer.ps1 | 1 + .../Format-NetshTraceProviderAsString.ps1 | 1 + .../private/Get-FolderSize.ps1 | 1 + .../private/Get-FunctionFromFile.ps1 | 1 + .../private/Invoke-RestMethodWithRetry.ps1 | 9 +- .../private/Invoke-WebRequestWithRetry.ps1 | 9 +- .../private/Test-ComputerNameIsLocal.ps1 | 1 + .../SdnDiag.Utilities/private/Test-Ping.ps1 | 1 + .../private/Trace-Exception.ps1 | 2 +- .../private/Trace-Output.ps1 | 40 +++++---- .../SdnDiag.Utilities/private/Wait-PSJob.ps1 | 1 + .../public/Clear-SdnWorkingDirectory.ps1 | 1 + .../public/Install-SdnDiagnostics.ps1 | 1 + .../public/Invoke-SdnCommand.ps1 | 1 + 147 files changed, 455 insertions(+), 354 deletions(-) diff --git a/src/modules/SdnDiag.Common/private/Export-RegistryKeyConfigDetails.ps1 b/src/modules/SdnDiag.Common/private/Export-RegistryKeyConfigDetails.ps1 index f7c1d06d..b38ef057 100644 --- a/src/modules/SdnDiag.Common/private/Export-RegistryKeyConfigDetails.ps1 +++ b/src/modules/SdnDiag.Common/private/Export-RegistryKeyConfigDetails.ps1 @@ -46,5 +46,6 @@ function Export-RegistryKeyConfigDetails { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/private/Get-CommonConfigState.ps1 b/src/modules/SdnDiag.Common/private/Get-CommonConfigState.ps1 index 12dd236a..a9db45ee 100644 --- a/src/modules/SdnDiag.Common/private/Get-CommonConfigState.ps1 +++ b/src/modules/SdnDiag.Common/private/Get-CommonConfigState.ps1 @@ -76,6 +76,7 @@ function Get-CommonConfigState { } catch { $_ | Trace-Exception + $_ | Write-Error } $ProgressPreference = 'Continue' diff --git a/src/modules/SdnDiag.Common/private/Get-TraceProviders.ps1 b/src/modules/SdnDiag.Common/private/Get-TraceProviders.ps1 index 20550f0c..99744abc 100644 --- a/src/modules/SdnDiag.Common/private/Get-TraceProviders.ps1 +++ b/src/modules/SdnDiag.Common/private/Get-TraceProviders.ps1 @@ -75,5 +75,6 @@ function Get-TraceProviders { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/private/Start-EtwTraceSession.ps1 b/src/modules/SdnDiag.Common/private/Start-EtwTraceSession.ps1 index 2a0c5c76..c6982237 100644 --- a/src/modules/SdnDiag.Common/private/Start-EtwTraceSession.ps1 +++ b/src/modules/SdnDiag.Common/private/Start-EtwTraceSession.ps1 @@ -54,5 +54,6 @@ function Start-EtwTraceSession { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/private/Start-NetshTrace.ps1 b/src/modules/SdnDiag.Common/private/Start-NetshTrace.ps1 index 2ebfdf1c..cd35108b 100644 --- a/src/modules/SdnDiag.Common/private/Start-NetshTrace.ps1 +++ b/src/modules/SdnDiag.Common/private/Start-NetshTrace.ps1 @@ -109,5 +109,6 @@ function Start-NetshTrace { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/private/Stop-EtwTraceSession.ps1 b/src/modules/SdnDiag.Common/private/Stop-EtwTraceSession.ps1 index cb1d9080..08dc9fd0 100644 --- a/src/modules/SdnDiag.Common/private/Stop-EtwTraceSession.ps1 +++ b/src/modules/SdnDiag.Common/private/Stop-EtwTraceSession.ps1 @@ -27,5 +27,6 @@ function Stop-EtwTraceSession { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/private/Stop-NetshTrace.ps1 b/src/modules/SdnDiag.Common/private/Stop-NetshTrace.ps1 index 03e971c9..b829fbab 100644 --- a/src/modules/SdnDiag.Common/private/Stop-NetshTrace.ps1 +++ b/src/modules/SdnDiag.Common/private/Stop-NetshTrace.ps1 @@ -36,5 +36,6 @@ function Stop-NetshTrace { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Convert-SdnEtwTraceToTxt.ps1 b/src/modules/SdnDiag.Common/public/Convert-SdnEtwTraceToTxt.ps1 index 41c9d1c2..ece02eae 100644 --- a/src/modules/SdnDiag.Common/public/Convert-SdnEtwTraceToTxt.ps1 +++ b/src/modules/SdnDiag.Common/public/Convert-SdnEtwTraceToTxt.ps1 @@ -81,5 +81,6 @@ function Convert-SdnEtwTraceToTxt { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Enable-SdnVipTrace.ps1 b/src/modules/SdnDiag.Common/public/Enable-SdnVipTrace.ps1 index b164174f..1bcc8a66 100644 --- a/src/modules/SdnDiag.Common/public/Enable-SdnVipTrace.ps1 +++ b/src/modules/SdnDiag.Common/public/Enable-SdnVipTrace.ps1 @@ -165,5 +165,6 @@ function Enable-SdnVipTrace { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Get-SdnCertificate.ps1 b/src/modules/SdnDiag.Common/public/Get-SdnCertificate.ps1 index b2de88b1..e95e9c2c 100644 --- a/src/modules/SdnDiag.Common/public/Get-SdnCertificate.ps1 +++ b/src/modules/SdnDiag.Common/public/Get-SdnCertificate.ps1 @@ -62,5 +62,6 @@ function Get-SdnCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Get-SdnEventLog.ps1 b/src/modules/SdnDiag.Common/public/Get-SdnEventLog.ps1 index 20387c6c..6a098443 100644 --- a/src/modules/SdnDiag.Common/public/Get-SdnEventLog.ps1 +++ b/src/modules/SdnDiag.Common/public/Get-SdnEventLog.ps1 @@ -83,5 +83,6 @@ function Get-SdnEventLog { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Invoke-SdnGetNetView.ps1 b/src/modules/SdnDiag.Common/public/Invoke-SdnGetNetView.ps1 index ca83b274..11e6a321 100644 --- a/src/modules/SdnDiag.Common/public/Invoke-SdnGetNetView.ps1 +++ b/src/modules/SdnDiag.Common/public/Invoke-SdnGetNetView.ps1 @@ -74,5 +74,6 @@ function Invoke-SdnGetNetView { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/New-SdnCertificate.ps1 b/src/modules/SdnDiag.Common/public/New-SdnCertificate.ps1 index 9958dfbb..d2899879 100644 --- a/src/modules/SdnDiag.Common/public/New-SdnCertificate.ps1 +++ b/src/modules/SdnDiag.Common/public/New-SdnCertificate.ps1 @@ -50,5 +50,6 @@ function New-SdnCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Repair-SdnDiagnosticsScheduledTask.ps1 b/src/modules/SdnDiag.Common/public/Repair-SdnDiagnosticsScheduledTask.ps1 index 9072e549..1f7c6c8e 100644 --- a/src/modules/SdnDiag.Common/public/Repair-SdnDiagnosticsScheduledTask.ps1 +++ b/src/modules/SdnDiag.Common/public/Repair-SdnDiagnosticsScheduledTask.ps1 @@ -37,5 +37,6 @@ function Repair-SdnDiagnosticsScheduledTask { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Set-SdnCertificateAcl.ps1 b/src/modules/SdnDiag.Common/public/Set-SdnCertificateAcl.ps1 index df0589f5..2a1549a2 100644 --- a/src/modules/SdnDiag.Common/public/Set-SdnCertificateAcl.ps1 +++ b/src/modules/SdnDiag.Common/public/Set-SdnCertificateAcl.ps1 @@ -71,5 +71,6 @@ function Set-SdnCertificateAcl { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Start-SdnEtwTraceCapture.ps1 b/src/modules/SdnDiag.Common/public/Start-SdnEtwTraceCapture.ps1 index fe1b3339..d82ba3ea 100644 --- a/src/modules/SdnDiag.Common/public/Start-SdnEtwTraceCapture.ps1 +++ b/src/modules/SdnDiag.Common/public/Start-SdnEtwTraceCapture.ps1 @@ -42,5 +42,6 @@ function Start-SdnEtwTraceCapture { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Start-SdnNetshTrace.ps1 b/src/modules/SdnDiag.Common/public/Start-SdnNetshTrace.ps1 index bb3d1068..8bbeea41 100644 --- a/src/modules/SdnDiag.Common/public/Start-SdnNetshTrace.ps1 +++ b/src/modules/SdnDiag.Common/public/Start-SdnNetshTrace.ps1 @@ -130,5 +130,6 @@ function Start-SdnNetshTrace { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Stop-SdnEtwTraceCapture.ps1 b/src/modules/SdnDiag.Common/public/Stop-SdnEtwTraceCapture.ps1 index 7fa6ed73..24c71eb6 100644 --- a/src/modules/SdnDiag.Common/public/Stop-SdnEtwTraceCapture.ps1 +++ b/src/modules/SdnDiag.Common/public/Stop-SdnEtwTraceCapture.ps1 @@ -29,5 +29,6 @@ function Stop-SdnEtwTraceCapture { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Common/public/Stop-SdnNetshTrace.ps1 b/src/modules/SdnDiag.Common/public/Stop-SdnNetshTrace.ps1 index ce7e950e..d9d1485d 100644 --- a/src/modules/SdnDiag.Common/public/Stop-SdnNetshTrace.ps1 +++ b/src/modules/SdnDiag.Common/public/Stop-SdnNetshTrace.ps1 @@ -31,5 +31,6 @@ function Stop-SdnNetshTrace { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Gateway/private/Get-GatewayConfigState.ps1 b/src/modules/SdnDiag.Gateway/private/Get-GatewayConfigState.ps1 index be0e404d..2e38be21 100644 --- a/src/modules/SdnDiag.Gateway/private/Get-GatewayConfigState.ps1 +++ b/src/modules/SdnDiag.Gateway/private/Get-GatewayConfigState.ps1 @@ -74,6 +74,7 @@ function Get-GatewayConfigState { } catch { $_ | Trace-Exception + $_ | Write-Error } $ProgressPreference = 'Continue' diff --git a/src/modules/SdnDiag.Gateway/public/Disable-SdnRasGatewayTracing.ps1 b/src/modules/SdnDiag.Gateway/public/Disable-SdnRasGatewayTracing.ps1 index 8dadb772..0565e4ff 100644 --- a/src/modules/SdnDiag.Gateway/public/Disable-SdnRasGatewayTracing.ps1 +++ b/src/modules/SdnDiag.Gateway/public/Disable-SdnRasGatewayTracing.ps1 @@ -22,5 +22,6 @@ function Disable-SdnRasGatewayTracing { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Gateway/public/Enable-SdnRasGatewayTracing.ps1 b/src/modules/SdnDiag.Gateway/public/Enable-SdnRasGatewayTracing.ps1 index 4848a969..ef1fee4e 100644 --- a/src/modules/SdnDiag.Gateway/public/Enable-SdnRasGatewayTracing.ps1 +++ b/src/modules/SdnDiag.Gateway/public/Enable-SdnRasGatewayTracing.ps1 @@ -37,5 +37,6 @@ function Enable-SdnRasGatewayTracing { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-EncapOverhead.ps1 b/src/modules/SdnDiag.Health/private/Test-EncapOverhead.ps1 index 71342985..f05d80bc 100644 --- a/src/modules/SdnDiag.Health/private/Test-EncapOverhead.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-EncapOverhead.ps1 @@ -63,5 +63,6 @@ function Test-EncapOverhead { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-HostRootStoreNonRootCert.ps1 b/src/modules/SdnDiag.Health/private/Test-HostRootStoreNonRootCert.ps1 index 598b1f74..e50abf4c 100644 --- a/src/modules/SdnDiag.Health/private/Test-HostRootStoreNonRootCert.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-HostRootStoreNonRootCert.ps1 @@ -62,5 +62,6 @@ function Test-HostRootStoreNonRootCert { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-MuxBgpConnectionState.ps1 b/src/modules/SdnDiag.Health/private/Test-MuxBgpConnectionState.ps1 index 56eb768a..e1ec4fdc 100644 --- a/src/modules/SdnDiag.Health/private/Test-MuxBgpConnectionState.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-MuxBgpConnectionState.ps1 @@ -71,5 +71,6 @@ function Test-MuxBgpConnectionState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-NcHostAgentConnectionToApiService.ps1 b/src/modules/SdnDiag.Health/private/Test-NcHostAgentConnectionToApiService.ps1 index 02d83e98..25ad2814 100644 --- a/src/modules/SdnDiag.Health/private/Test-NcHostAgentConnectionToApiService.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-NcHostAgentConnectionToApiService.ps1 @@ -78,5 +78,6 @@ function Test-NcHostAgentConnectionToApiService { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-NcUrlNameResolution.ps1 b/src/modules/SdnDiag.Health/private/Test-NcUrlNameResolution.ps1 index 1fb5ed88..0f59bf50 100644 --- a/src/modules/SdnDiag.Health/private/Test-NcUrlNameResolution.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-NcUrlNameResolution.ps1 @@ -78,5 +78,6 @@ function Test-NcUrlNameResolution { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-NetworkControllerCertCredential.ps1 b/src/modules/SdnDiag.Health/private/Test-NetworkControllerCertCredential.ps1 index dc05fd60..2eabca73 100644 --- a/src/modules/SdnDiag.Health/private/Test-NetworkControllerCertCredential.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-NetworkControllerCertCredential.ps1 @@ -88,5 +88,6 @@ function Test-NetworkControllerCertCredential { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-NetworkInterfaceAPIDuplicateMacAddress.ps1 b/src/modules/SdnDiag.Health/private/Test-NetworkInterfaceAPIDuplicateMacAddress.ps1 index 8f3dcc00..869972a1 100644 --- a/src/modules/SdnDiag.Health/private/Test-NetworkInterfaceAPIDuplicateMacAddress.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-NetworkInterfaceAPIDuplicateMacAddress.ps1 @@ -53,5 +53,6 @@ function Test-NetworkInterfaceAPIDuplicateMacAddress { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ProviderNetwork.ps1 b/src/modules/SdnDiag.Health/private/Test-ProviderNetwork.ps1 index 1f39b1cd..563b8b53 100644 --- a/src/modules/SdnDiag.Health/private/Test-ProviderNetwork.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ProviderNetwork.ps1 @@ -74,5 +74,6 @@ function Test-ProviderNetwork { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ResourceConfigurationState.ps1 b/src/modules/SdnDiag.Health/private/Test-ResourceConfigurationState.ps1 index bb0b6a5f..157f1a95 100644 --- a/src/modules/SdnDiag.Health/private/Test-ResourceConfigurationState.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ResourceConfigurationState.ps1 @@ -117,5 +117,6 @@ function Test-ResourceConfigurationState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ResourceProvisioningState.ps1 b/src/modules/SdnDiag.Health/private/Test-ResourceProvisioningState.ps1 index fdf119a8..cc3258e4 100644 --- a/src/modules/SdnDiag.Health/private/Test-ResourceProvisioningState.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ResourceProvisioningState.ps1 @@ -65,5 +65,6 @@ function Test-ResourceProvisioningState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ScheduledTaskEnabled.ps1 b/src/modules/SdnDiag.Health/private/Test-ScheduledTaskEnabled.ps1 index 82e2bb6a..410c16e6 100644 --- a/src/modules/SdnDiag.Health/private/Test-ScheduledTaskEnabled.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ScheduledTaskEnabled.ps1 @@ -79,5 +79,6 @@ function Test-ScheduledTaskEnabled { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServerHostId.ps1 b/src/modules/SdnDiag.Health/private/Test-ServerHostId.ps1 index 1421b46a..c21c1fc3 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServerHostId.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServerHostId.ps1 @@ -56,5 +56,6 @@ function Test-ServerHostId { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServiceFabricApplicationHealth.ps1 b/src/modules/SdnDiag.Health/private/Test-ServiceFabricApplicationHealth.ps1 index af152618..982e1220 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServiceFabricApplicationHealth.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServiceFabricApplicationHealth.ps1 @@ -35,5 +35,6 @@ function Test-ServiceFabricApplicationHealth { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServiceFabricClusterHealth.ps1 b/src/modules/SdnDiag.Health/private/Test-ServiceFabricClusterHealth.ps1 index 1e151e36..e4114f3f 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServiceFabricClusterHealth.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServiceFabricClusterHealth.ps1 @@ -35,5 +35,6 @@ function Test-ServiceFabricClusterHealth { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServiceFabricNodeStatus.ps1 b/src/modules/SdnDiag.Health/private/Test-ServiceFabricNodeStatus.ps1 index 6bb1da2e..26b14d06 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServiceFabricNodeStatus.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServiceFabricNodeStatus.ps1 @@ -36,5 +36,6 @@ function Test-ServiceFabricNodeStatus { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServiceFabricPartitionDatabaseSize.ps1 b/src/modules/SdnDiag.Health/private/Test-ServiceFabricPartitionDatabaseSize.ps1 index f086faf9..9fca4b76 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServiceFabricPartitionDatabaseSize.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServiceFabricPartitionDatabaseSize.ps1 @@ -87,5 +87,6 @@ function Test-ServiceFabricPartitionDatabaseSize { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-ServiceState.ps1 b/src/modules/SdnDiag.Health/private/Test-ServiceState.ps1 index 02a6c4c6..f1bd7c32 100644 --- a/src/modules/SdnDiag.Health/private/Test-ServiceState.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-ServiceState.ps1 @@ -53,5 +53,6 @@ function Test-ServiceState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-SlbManagerConnectionToMux.ps1 b/src/modules/SdnDiag.Health/private/Test-SlbManagerConnectionToMux.ps1 index 165c28ee..0145c829 100644 --- a/src/modules/SdnDiag.Health/private/Test-SlbManagerConnectionToMux.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-SlbManagerConnectionToMux.ps1 @@ -78,5 +78,6 @@ function Test-SlbManagerConnectionToMux { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-VMNetAdapterDuplicateMacAddress.ps1 b/src/modules/SdnDiag.Health/private/Test-VMNetAdapterDuplicateMacAddress.ps1 index 3dd27115..e992c1db 100644 --- a/src/modules/SdnDiag.Health/private/Test-VMNetAdapterDuplicateMacAddress.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-VMNetAdapterDuplicateMacAddress.ps1 @@ -44,5 +44,6 @@ function Test-VMNetAdapterDuplicateMacAddress { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/private/Test-VfpDuplicatePort.ps1 b/src/modules/SdnDiag.Health/private/Test-VfpDuplicatePort.ps1 index 3fc22d58..9bc59053 100644 --- a/src/modules/SdnDiag.Health/private/Test-VfpDuplicatePort.ps1 +++ b/src/modules/SdnDiag.Health/private/Test-VfpDuplicatePort.ps1 @@ -45,5 +45,6 @@ function Test-VfpDuplicatePort { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Health/public/Debug-SdnFabricInfrastructure.ps1 b/src/modules/SdnDiag.Health/public/Debug-SdnFabricInfrastructure.ps1 index db319209..b7235bb9 100644 --- a/src/modules/SdnDiag.Health/public/Debug-SdnFabricInfrastructure.ps1 +++ b/src/modules/SdnDiag.Health/public/Debug-SdnFabricInfrastructure.ps1 @@ -226,5 +226,6 @@ function Debug-SdnFabricInfrastructure { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/private/Get-SlbMuxConfigState.ps1 b/src/modules/SdnDiag.LoadBalancerMux/private/Get-SlbMuxConfigState.ps1 index aab3cf1a..1abe3588 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/private/Get-SlbMuxConfigState.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/private/Get-SlbMuxConfigState.ps1 @@ -45,6 +45,7 @@ function Get-SlbMuxConfigState { } catch { $_ | Trace-Exception + $_ | Write-Error } $ProgressPreference = 'Continue' diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxCertificate.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxCertificate.ps1 index 6a29f97e..9fee1a88 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxCertificate.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxCertificate.ps1 @@ -15,5 +15,6 @@ function Get-SdnMuxCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxDistributedRouterIP.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxDistributedRouterIP.ps1 index 80665c03..607db4fa 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxDistributedRouterIP.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxDistributedRouterIP.ps1 @@ -32,5 +32,6 @@ function Get-SdnMuxDistributedRouterIP { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxState.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxState.ps1 index 35ea13af..5256d034 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxState.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxState.ps1 @@ -10,5 +10,6 @@ function Get-SdnMuxState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatefulVip.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatefulVip.ps1 index 0f908d39..6687ddd8 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatefulVip.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatefulVip.ps1 @@ -32,5 +32,6 @@ function Get-SdnMuxStatefulVip { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatelessVip.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatelessVip.ps1 index 2d3957c9..716c97a1 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatelessVip.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStatelessVip.ps1 @@ -32,5 +32,6 @@ function Get-SdnMuxStatelessVip { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStats.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStats.ps1 index 9e8a230d..f0777b0d 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStats.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxStats.ps1 @@ -27,5 +27,6 @@ function Get-SdnMuxStats { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVip.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVip.ps1 index e17a22f3..5418e9ac 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVip.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVip.ps1 @@ -32,5 +32,6 @@ function Get-SdnMuxVip { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVipConfig.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVipConfig.ps1 index 39f4fa7e..2ae8a9ea 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVipConfig.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Get-SdnMuxVipConfig.ps1 @@ -38,5 +38,6 @@ function Get-SdnMuxVipConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/New-SdnMuxCertificate.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/New-SdnMuxCertificate.ps1 index 1c8f7ada..1dd66009 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/New-SdnMuxCertificate.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/New-SdnMuxCertificate.ps1 @@ -71,5 +71,6 @@ function New-SdnMuxCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.LoadBalancerMux/public/Start-SdnMuxCertificateRotation.ps1 b/src/modules/SdnDiag.LoadBalancerMux/public/Start-SdnMuxCertificateRotation.ps1 index 76c4607c..39650b9e 100644 --- a/src/modules/SdnDiag.LoadBalancerMux/public/Start-SdnMuxCertificateRotation.ps1 +++ b/src/modules/SdnDiag.LoadBalancerMux/public/Start-SdnMuxCertificateRotation.ps1 @@ -201,5 +201,6 @@ function Start-SdnMuxCertificateRotation { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestFromNetworkController.ps1 b/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestFromNetworkController.ps1 index 2a0666e9..217f9673 100644 --- a/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestFromNetworkController.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestFromNetworkController.ps1 @@ -29,10 +29,10 @@ function Copy-ServiceFabricManifestFromNetworkController { try { if ($NcNodeList.Count -eq 0) { - Trace-Output "No NC Node found" -Level:Error + Trace-Output -Message "No NC Node found" -Level:Error return } - Trace-Output "Copying Manifest files from $($NcNodeList.IpAddressOrFQDN)" -Level:Verbose + Trace-Output -Message "Copying Manifest files from $($NcNodeList.IpAddressOrFQDN)" -Level:Verbose New-Item -Path $ManifestFolder -ItemType Directory -Force | Out-Null New-Item -Path $ManifestFolderNew -ItemType Directory -Force | Out-Null @@ -62,5 +62,6 @@ function Copy-ServiceFabricManifestFromNetworkController { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestToNetworkController.ps1 b/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestToNetworkController.ps1 index a03d4a44..92530b13 100644 --- a/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestToNetworkController.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Copy-ServiceFabricManifestToNetworkController.ps1 @@ -24,12 +24,12 @@ function Copy-ServiceFabricManifestToNetworkController { try { if ($NcNodeList.Count -eq 0) { - Trace-Output "No NC VMs found" -Level:Error + Trace-Output -Message "No NC VMs found" -Level:Error return } - Trace-Output "Copying Service Fabric Manifests to NC VMs: $($NcNodeList.IpAddressOrFQDN)" + Trace-Output -Message "Copying Service Fabric Manifests to NC VMs: $($NcNodeList.IpAddressOrFQDN)" - Trace-Output "Stopping Service Fabric Service" + Trace-Output -Message "Stopping Service Fabric Service" foreach ($nc in $NcNodeList.IpAddressOrFQDN) { Invoke-PSRemoteCommand -ComputerName $nc -Credential $Credential -ScriptBlock { Write-Host "[$(HostName)] Stopping Service Fabric Service" @@ -66,5 +66,6 @@ function Copy-ServiceFabricManifestToNetworkController { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Get-NetworkControllerConfigState.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-NetworkControllerConfigState.ps1 index 1291ee7d..ce40ce84 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-NetworkControllerConfigState.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-NetworkControllerConfigState.ps1 @@ -43,6 +43,7 @@ function Get-NetworkControllerConfigState { } catch { $_ | Trace-Exception + $_ | Write-Error } $ProgressPreference = 'Continue' diff --git a/src/modules/SdnDiag.NetworkController/private/Get-PublicIpReference.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-PublicIpReference.ps1 index 8e2bc42e..58d4f262 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-PublicIpReference.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-PublicIpReference.ps1 @@ -70,5 +70,6 @@ function Get-PublicIpReference { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Get-SdnDiscovery.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-SdnDiscovery.ps1 index ea47b741..0c2c3f08 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-SdnDiscovery.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-SdnDiscovery.ps1 @@ -20,11 +20,11 @@ function Get-SdnDiscovery { ) try { - [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ResourceName 'Discovery' - $result = Invoke-RestMethodWithRetry -Uri $uri -Method GET -UseBasicParsing -Credential $Credential -ErrorAction Stop + $result = Get-SdnResource -NcUri $NcUri -Resource 'Discovery' -Credential $Credential return $result } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerInfoOffline.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerInfoOffline.ps1 index 02271272..a2b5196d 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerInfoOffline.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerInfoOffline.ps1 @@ -62,5 +62,6 @@ function Get-SdnNetworkControllerInfoOffline { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerRestURL.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerRestURL.ps1 index 65e83e31..745a9096 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerRestURL.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-SdnNetworkControllerRestURL.ps1 @@ -34,5 +34,6 @@ function Get-SdnNetworkControllerRestURL { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Get-SdnVirtualServer.ps1 b/src/modules/SdnDiag.NetworkController/private/Get-SdnVirtualServer.ps1 index d7bbaa4d..49a1c195 100644 --- a/src/modules/SdnDiag.NetworkController/private/Get-SdnVirtualServer.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Get-SdnVirtualServer.ps1 @@ -45,5 +45,6 @@ function Get-SdnVirtualServer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Invoke-SdnNetworkControllerStateDump.ps1 b/src/modules/SdnDiag.NetworkController/private/Invoke-SdnNetworkControllerStateDump.ps1 index 32216370..c0cf6e89 100644 --- a/src/modules/SdnDiag.NetworkController/private/Invoke-SdnNetworkControllerStateDump.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Invoke-SdnNetworkControllerStateDump.ps1 @@ -58,5 +58,6 @@ function Invoke-SdnNetworkControllerStateDump { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Start-SdnExpiredCertificateRotation.ps1 b/src/modules/SdnDiag.NetworkController/private/Start-SdnExpiredCertificateRotation.ps1 index 9fef6a0f..f9d5d1a7 100644 --- a/src/modules/SdnDiag.NetworkController/private/Start-SdnExpiredCertificateRotation.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Start-SdnExpiredCertificateRotation.ps1 @@ -37,26 +37,26 @@ function Start-SdnExpiredCertificateRotation { $ManifestFolderNew = "$NcUpdateFolder\manifest_new" $NcInfraInfo = Get-SdnNetworkControllerInfoOffline -Credential $Credential - Trace-Output "Network Controller Infrastrucutre Info detected:" - Trace-Output "ClusterCredentialType: $($NcInfraInfo.ClusterCredentialType)" - Trace-Output "NcRestName: $($NcInfraInfo.NcRestName)" + Trace-Output -Message "Network Controller Infrastrucutre Info detected:" + Trace-Output -Message "ClusterCredentialType: $($NcInfraInfo.ClusterCredentialType)" + Trace-Output -Message "NcRestName: $($NcInfraInfo.NcRestName)" $NcNodeList = $NcInfraInfo.NodeList if ($null -eq $NcNodeList -or $NcNodeList.Count -eq 0) { - Trace-Output "Failed to get NC Node List from NetworkController: $(HostName)" -Level:Error + Trace-Output -Message "Failed to get NC Node List from NetworkController: $(HostName)" -Level:Error } - Trace-Output "NcNodeList: $($NcNodeList.IpAddressOrFQDN)" + Trace-Output -Message "NcNodeList: $($NcNodeList.IpAddressOrFQDN)" - Trace-Output "Validate CertRotateConfig" + Trace-Output -Message "Validate CertRotateConfig" if(!(Test-SdnCertificateRotationConfig -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential)){ - Trace-Output "Invalid CertRotateConfig, please correct the configuration and try again" -Level:Error + Trace-Output -Message "Invalid CertRotateConfig, please correct the configuration and try again" -Level:Error return } if ([String]::IsNullOrEmpty($NcInfraInfo.NcRestName)) { - Trace-Output "Failed to get NcRestName using current secret certificate thumbprint. This might indicate the certificate not found on $(HOSTNAME). We won't be able to recover." -Level:Error + Trace-Output -Message "Failed to get NcRestName using current secret certificate thumbprint. This might indicate the certificate not found on $(HOSTNAME). We won't be able to recover." -Level:Error throw New-Object System.NotSupportedException("Current NC Rest Cert not found, Certificate Rotation cannot be continue.") } @@ -82,55 +82,55 @@ function Start-SdnExpiredCertificateRotation { } } - Trace-Output "Step 1 Copy manifests and settings.xml from Network Controller" + Trace-Output -Message "Step 1 Copy manifests and settings.xml from Network Controller" Copy-ServiceFabricManifestFromNetworkController -NcNodeList $NcNodeList -ManifestFolder $ManifestFolder -ManifestFolderNew $ManifestFolderNew -Credential $Credential # Step 2 Update certificate thumbprint - Trace-Output "Step 2 Update certificate thumbprint and secret in manifest" + Trace-Output -Message "Step 2 Update certificate thumbprint and secret in manifest" Update-NetworkControllerCertificateInManifest -NcNodeList $NcNodeList -ManifestFolder $ManifestFolder -ManifestFolderNew $ManifestFolderNew -CertRotateConfig $CertRotateConfig -Credential $Credential # Step 3 Copy the new files back to the NC vms - Trace-Output "Step 3 Copy the new files back to the NC vms" + Trace-Output -Message "Step 3 Copy the new files back to the NC vms" Copy-ServiceFabricManifestToNetworkController -NcNodeList $NcNodeList -ManifestFolder $ManifestFolderNew -Credential $Credential # Step 5 Start FabricHostSvc and wait for SF system service to become healty - Trace-Output "Step 4 Start FabricHostSvc and wait for SF system service to become healty" - Trace-Output "Step 4.1 Update Network Controller Certificate ACL to allow 'Network Service' Access" + Trace-Output -Message "Step 4 Start FabricHostSvc and wait for SF system service to become healty" + Trace-Output -Message "Step 4.1 Update Network Controller Certificate ACL to allow 'Network Service' Access" Update-NetworkControllerCertificateAcl -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential - Trace-Output "Step 4.2 Start Service Fabric Host Service and wait" + Trace-Output -Message "Step 4.2 Start Service Fabric Host Service and wait" $clusterHealthy = Wait-ServiceFabricClusterHealthy -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential - Trace-Output "ClusterHealthy: $clusterHealthy" + Trace-Output -Message "ClusterHealthy: $clusterHealthy" if($clusterHealthy -ne $true){ throw New-Object System.NotSupportedException("Cluster unheathy after manifest update, we cannot continue with current situation") } # Step 6 Invoke SF Cluster Upgrade - Trace-Output "Step 5 Invoke SF Cluster Upgrade" + Trace-Output -Message "Step 5 Invoke SF Cluster Upgrade" Update-ServiceFabricCluster -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -ManifestFolderNew $ManifestFolderNew -Credential $Credential $clusterHealthy = Wait-ServiceFabricClusterHealthy -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential - Trace-Output "ClusterHealthy: $clusterHealthy" + Trace-Output -Message "ClusterHealthy: $clusterHealthy" if($clusterHealthy -ne $true){ throw New-Object System.NotSupportedException("Cluster unheathy after cluster update, we cannot continue with current situation") } # Step 7 Fix NC App - Trace-Output "Step 6 Fix NC App" - Trace-Output "Step 6.1 Updating Network Controller Global and Cluster Config" + Trace-Output -Message "Step 6 Fix NC App" + Trace-Output -Message "Step 6.1 Updating Network Controller Global and Cluster Config" if ($NcInfraInfo.ClusterCredentialType -eq "X509") { Update-NetworkControllerConfig -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential } # Step 7 Restart - Trace-Output "Step 7 Restarting Service Fabric Cluster after configuration change" + Trace-Output -Message "Step 7 Restarting Service Fabric Cluster after configuration change" $clusterHealthy = Wait-ServiceFabricClusterHealthy -NcNodeList $NcNodeList -CertRotateConfig $CertRotateConfig -Credential $Credential -Restart -<# Trace-Output "Step 7.2 Rotate Network Controller Certificate" +<# Trace-Output -Message "Step 7.2 Rotate Network Controller Certificate" #$null = Invoke-CertRotateCommand -Command 'Set-NetworkController' -Credential $Credential -Thumbprint $NcRestCertThumbprint # Step 8 Update REST CERT credential - Trace-Output "Step 8 Update REST CERT credential" + Trace-Output -Message "Step 8 Update REST CERT credential" # Step 8.1 Wait for NC App Healthy - Trace-Output "Step 8.1 Wiating for Network Controller App Ready" + Trace-Output -Message "Step 8.1 Wiating for Network Controller App Ready" #Wait-NetworkControllerAppHealthy -Interval 60 - Trace-Output "Step 8.2 Updating REST CERT Credential object calling REST API" #> + Trace-Output -Message "Step 8.2 Updating REST CERT Credential object calling REST API" #> #Update-NetworkControllerCredentialResource -NcUri "https://$($NcInfraInfo.NcRestName)" -NewRestCertThumbprint $NcRestCertThumbprint -Credential $NcRestCredential } diff --git a/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateAcl.ps1 b/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateAcl.ps1 index 7f4beb37..87f1d4ff 100644 --- a/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateAcl.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateAcl.ps1 @@ -43,5 +43,6 @@ function Update-NetworkControllerCertificateAcl { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateInManifest.ps1 b/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateInManifest.ps1 index cbfe2b0c..d06a52eb 100644 --- a/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateInManifest.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Update-NetworkControllerCertificateInManifest.ps1 @@ -42,7 +42,7 @@ function Update-NetworkControllerCertificateInManifest { $clusterManifestXml = [xml](Get-Content "$ManifestFolder\ClusterManifest.current.xml") if ($null -eq $clusterManifestXml) { - Trace-Output "ClusterManifest not found at $ManifestFolder\ClusterManifest.current.xml" -Level:Error + Trace-Output -Message "ClusterManifest not found at $ManifestFolder\ClusterManifest.current.xml" -Level:Error throw } @@ -60,7 +60,7 @@ function Update-NetworkControllerCertificateInManifest { # Update SecretsCertificate to new REST Cert - Trace-Output "Updating SecretsCertificate with new rest cert thumbprint $NcRestCertThumbprint" + Trace-Output -Message "Updating SecretsCertificate with new rest cert thumbprint $NcRestCertThumbprint" $clusterManifestXml.ClusterManifest.Certificates.SecretsCertificate.X509FindValue = "$NcRestCertThumbprint" $securitySection = $clusterManifestXml.ClusterManifest.FabricSettings.Section | Where-Object Name -eq "Security" diff --git a/src/modules/SdnDiag.NetworkController/private/Wait-NetworkControllerAppHealthy.ps1 b/src/modules/SdnDiag.NetworkController/private/Wait-NetworkControllerAppHealthy.ps1 index 49621da3..68fce87a 100644 --- a/src/modules/SdnDiag.NetworkController/private/Wait-NetworkControllerAppHealthy.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Wait-NetworkControllerAppHealthy.ps1 @@ -91,5 +91,6 @@ function Wait-NetworkControllerAppHealthy { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/private/Wait-ServiceFabricClusterHealthy.ps1 b/src/modules/SdnDiag.NetworkController/private/Wait-ServiceFabricClusterHealthy.ps1 index ac66be4a..44cb6dbe 100644 --- a/src/modules/SdnDiag.NetworkController/private/Wait-ServiceFabricClusterHealthy.ps1 +++ b/src/modules/SdnDiag.NetworkController/private/Wait-ServiceFabricClusterHealthy.ps1 @@ -50,7 +50,7 @@ function Wait-ServiceFabricClusterHealthy { } -ArgumentList $Restart } - Trace-Output "Sleeping 60s to wait for Serice Fabric Service to be ready" + Trace-Output -Message "Sleeping 60s to wait for Serice Fabric Service to be ready" Start-Sleep -Seconds 60 "Waiting for service fabric service healthy" | Trace-Output $NodeFQDN = (get-ciminstance win32_computersystem).DNSHostName + "." + (get-ciminstance win32_computersystem).Domain @@ -101,5 +101,6 @@ function Wait-ServiceFabricClusterHealthy { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnGateway.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnGateway.ps1 index 31748f51..af80eeff 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnGateway.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnGateway.ps1 @@ -95,5 +95,6 @@ function Get-SdnGateway { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnInfrastructureInfo.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnInfrastructureInfo.ps1 index 892de657..4ad1e08e 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnInfrastructureInfo.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnInfrastructureInfo.ps1 @@ -46,16 +46,16 @@ function Get-SdnInfrastructureInfo { [Switch]$Force ) - try { - if (-NOT ($PSBoundParameters.ContainsKey('NetworkController'))) { - $config = Get-SdnModuleConfiguration -Role 'NetworkController' - $confirmFeatures = Confirm-RequiredFeaturesInstalled -Name $config.windowsFeature - if (-NOT ($confirmFeatures)) { - "The current machine is not a NetworkController, run this on NetworkController or use -NetworkController parameter to specify one" | Trace-Output -Level:Warning - return # don't throw exception, since this is a controlled scenario and we do not need stack exception tracing - } + if (-NOT ($PSBoundParameters.ContainsKey('NetworkController'))) { + $config = Get-SdnModuleConfiguration -Role 'NetworkController' + $confirmFeatures = Confirm-RequiredFeaturesInstalled -Name $config.windowsFeature + if (-NOT ($confirmFeatures)) { + "The current machine is not a NetworkController, run this on NetworkController or use -NetworkController parameter to specify one" | Trace-Output -Level:Warning + return # don't throw exception, since this is a controlled scenario and we do not need stack exception tracing } + } + try { # if force is defined, purge the cache to force a refresh on the objects if ($PSBoundParameters.ContainsKey('Force')) { $Global:SdnDiagnostics.EnvironmentInfo.NcUrl = $null @@ -89,22 +89,22 @@ function Get-SdnInfrastructureInfo { # get the network controllers if ([System.String]::IsNullOrEmpty($global:SdnDiagnostics.EnvironmentInfo.NetworkController)) { - [System.Array]$global:SdnDiagnostics.EnvironmentInfo.NetworkController = Get-SdnNetworkControllerNode -NetworkController $NetworkController -ServerNameOnly -Credential $Credential + [System.Array]$global:SdnDiagnostics.EnvironmentInfo.NetworkController = Get-SdnNetworkControllerNode -NetworkController $NetworkController -ServerNameOnly -Credential $Credential -ErrorAction Continue } # get the load balancer muxes if ([System.String]::IsNullOrEmpty($global:SdnDiagnostics.EnvironmentInfo.LoadBalancerMux)) { - [System.Array]$global:SdnDiagnostics.EnvironmentInfo.LoadBalancerMux = Get-SdnLoadBalancerMux -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential + [System.Array]$global:SdnDiagnostics.EnvironmentInfo.LoadBalancerMux = Get-SdnLoadBalancerMux -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential -ErrorAction Continue } # get the gateways if ([System.String]::IsNullOrEmpty($Global:SdnDiagnostics.EnvironmentInfo.Gateway)) { - [System.Array]$Global:SdnDiagnostics.EnvironmentInfo.Gateway = Get-SdnGateway -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential + [System.Array]$Global:SdnDiagnostics.EnvironmentInfo.Gateway = Get-SdnGateway -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential -ErrorAction Continue } # get the hypervisor hosts if ([System.String]::IsNullOrEmpty($Global:SdnDiagnostics.EnvironmentInfo.Server)) { - [System.Array]$Global:SdnDiagnostics.EnvironmentInfo.Server = Get-SdnServer -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential + [System.Array]$Global:SdnDiagnostics.EnvironmentInfo.Server = Get-SdnServer -NcUri $Global:SdnDiagnostics.EnvironmentInfo.NcUrl -ManagementAddressOnly -Credential $NcRestCredential -ErrorAction Continue } # populate the global cache that contains the names of the nodes for the roles defined above diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnInternalLoadBalancer.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnInternalLoadBalancer.ps1 index 694a0165..7c0d30e5 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnInternalLoadBalancer.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnInternalLoadBalancer.ps1 @@ -128,5 +128,6 @@ function Get-SdnInternalLoadBalancer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnLoadBalancerMux.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnLoadBalancerMux.ps1 index 245a7f1d..3dc1ee25 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnLoadBalancerMux.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnLoadBalancerMux.ps1 @@ -95,5 +95,6 @@ function Get-SdnLoadBalancerMux { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkController.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkController.ps1 index a526b8f3..b4f91141 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkController.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkController.ps1 @@ -50,5 +50,6 @@ function Get-SdnNetworkController { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerClusterInfo.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerClusterInfo.ps1 index e2006693..f0c16af7 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerClusterInfo.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerClusterInfo.ps1 @@ -78,5 +78,6 @@ function Get-SdnNetworkControllerClusterInfo { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNode.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNode.ps1 index 28b6f85b..c28abf4c 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNode.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNode.ps1 @@ -87,5 +87,6 @@ function Get-SdnNetworkControllerNode { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNodeCertificate.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNodeCertificate.ps1 index e577afa6..8e39275d 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNodeCertificate.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerNodeCertificate.ps1 @@ -35,5 +35,6 @@ function Get-SdnNetworkControllerNodeCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerRestCertificate.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerRestCertificate.ps1 index 9b7f0eaf..6e8d2536 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerRestCertificate.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerRestCertificate.ps1 @@ -25,5 +25,6 @@ function Get-SdnNetworkControllerRestCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerState.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerState.ps1 index c0a7ee1f..d0e5c40c 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerState.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkControllerState.ps1 @@ -76,5 +76,6 @@ function Get-SdnNetworkControllerState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkInterfaceOutboundPublicIPAddress.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkInterfaceOutboundPublicIPAddress.ps1 index f304dcb8..00264d1f 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkInterfaceOutboundPublicIPAddress.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnNetworkInterfaceOutboundPublicIPAddress.ps1 @@ -56,5 +56,6 @@ function Get-SdnNetworkInterfaceOutboundPublicIPAddress { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnPublicIPPoolUsageSummary.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnPublicIPPoolUsageSummary.ps1 index 8ef7a2fb..bd29faae 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnPublicIPPoolUsageSummary.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnPublicIPPoolUsageSummary.ps1 @@ -85,5 +85,6 @@ function Get-SdnPublicIPPoolUsageSummary { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnResource.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnResource.ps1 index 8292d931..d49775cf 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnResource.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnResource.ps1 @@ -12,8 +12,8 @@ function Get-SdnResource { .PARAMETER InstanceID .PARAMETER ApiVersion The API version to use when invoking against the NC REST API endpoint. - .PARAMETER Credential - Specifies a user account that has permission to perform this action. The default is the current user. + .PARAMETER Credential + Specifies a user account that has permission to perform this action. The default is the current user. .EXAMPLE PS> Get-SdnResource -Resource PublicIPAddresses .EXAMPLE @@ -51,54 +51,59 @@ function Get-SdnResource { $Credential = [System.Management.Automation.PSCredential]::Empty ) - try { - switch ($PSCmdlet.ParameterSetName) { - 'InstanceId' { - [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceName 'internalResourceInstances' - [System.String]$uri = "{0}/{1}" -f $uri, $InstanceId.Trim() - } - 'ResourceRef' { - [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceRef $ResourceRef - } - 'Resource' { - [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceName $Resource + switch ($PSCmdlet.ParameterSetName) { + 'InstanceId' { + [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceName 'internalResourceInstances' + [System.String]$uri = "{0}/{1}" -f $uri, $InstanceId.Trim() + } + 'ResourceRef' { + [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceRef $ResourceRef + } + 'Resource' { + [System.String]$uri = Get-SdnApiEndpoint -NcUri $NcUri.AbsoluteUri -ApiVersion $ApiVersion -ResourceName $Resource - if ($ResourceID) { - [System.String]$uri = "{0}/{1}" -f $uri, $ResourceId.Trim() - } + if ($ResourceID) { + [System.String]$uri = "{0}/{1}" -f $uri, $ResourceId.Trim() } } + } - "{0} {1}" -f $method, $uri | Trace-Output -Level:Verbose + "{0} {1}" -f $method, $uri | Trace-Output -Level:Verbose - # gracefully handle System.Net.WebException responses such as 404 to throw warning - # anything else we want to throw terminating exception and capture for debugging purposes - try { - $result = Invoke-RestMethodWithRetry -Uri $uri -Method 'GET' -UseBasicParsing -Credential $Credential -ErrorAction Stop - } - catch [System.Net.WebException] { - "{0} ({1})" -f $_.Exception.Message, $_.Exception.Response.ResponseUri.AbsoluteUri | Write-Warning - return $null - } - catch { - throw $_ - } + # gracefully handle System.Net.WebException responses such as 404 to throw warning + # anything else we want to throw terminating exception and capture for debugging purposes + try { + $result = Invoke-RestMethodWithRetry -Uri $uri -Method 'GET' -UseBasicParsing -Credential $Credential -ErrorAction Stop + } + catch [System.Net.WebException] { + if ($_.Exception.Response.StatusCode -eq 'NotFound') { - # if multiple objects are returned, they will be nested under a property called value - # so we want to do some manual work here to ensure we have a consistent behavior on data returned back - if ($result.value) { - return $result.value + # if the resource is iDNSServer configuration, we want to return null instead of throwing a warning + # as this may be expected behavior if the iDNSServer is not configured + if ($_.Exception.Response.ResponseUri.AbsoluteUri -ilike '*/idnsserver/configuration') { + return $null + } + else { + "{0} ({1})" -f $_.Exception.Message, $_.Exception.Response.ResponseUri.AbsoluteUri | Write-Warning + return $null + } } - - # in some instances if the API returns empty object, we will see it saved as 'nextLink' which is a empty string property - # we need to return null instead otherwise the empty string will cause calling functions to treat the value as it contains data - elseif ($result.PSObject.Properties.Name -ieq "nextLink" -and $result.PSObject.Properties.Name.Count -eq 1) { - return $null + else { + throw $_ } + } - return $result + # if multiple objects are returned, they will be nested under a property called value + # so we want to do some manual work here to ensure we have a consistent behavior on data returned back + if ($result.value) { + return $result.value } - catch { - "{0}`nAbsoluteUri:{1}`n{2}" -f $_.Exception, $_.TargetObject.Address.AbsoluteUri, $_.ScriptStackTrace | Trace-Output -Level:Error + + # in some instances if the API returns empty object, we will see it saved as 'nextLink' which is a empty string property + # we need to return null instead otherwise the empty string will cause calling functions to treat the value as it contains data + elseif ($result.PSObject.Properties.Name -ieq "nextLink" -and $result.PSObject.Properties.Name.Count -eq 1) { + return $null } + + return $result } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServer.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServer.ps1 index 5ccb97e1..c355ebfe 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServer.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServer.ps1 @@ -90,5 +90,6 @@ function Get-SdnServer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricApplicationHealth.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricApplicationHealth.ps1 index 9bdb6f10..734915a5 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricApplicationHealth.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricApplicationHealth.ps1 @@ -36,5 +36,6 @@ function Get-SdnServiceFabricApplicationHealth { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterConfig.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterConfig.ps1 index 8e917237..21ca19cc 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterConfig.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterConfig.ps1 @@ -77,5 +77,6 @@ function Get-SdnServiceFabricClusterConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterHealth.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterHealth.ps1 index ef42cb50..0cfcf4d9 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterHealth.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterHealth.ps1 @@ -31,5 +31,6 @@ function Get-SdnServiceFabricClusterHealth { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterManifest.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterManifest.ps1 index fdbc5521..9092eec2 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterManifest.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricClusterManifest.ps1 @@ -99,5 +99,6 @@ function Get-SdnServiceFabricClusterManifest { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricNode.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricNode.ps1 index 84a522d7..d2eff49d 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricNode.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricNode.ps1 @@ -57,5 +57,6 @@ function Get-SdnServiceFabricNode { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricPartition.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricPartition.ps1 index 073e6d01..63144436 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricPartition.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricPartition.ps1 @@ -82,5 +82,6 @@ function Get-SdnServiceFabricPartition { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricReplica.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricReplica.ps1 index b61193d2..f555c80a 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricReplica.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricReplica.ps1 @@ -82,5 +82,6 @@ function Get-SdnServiceFabricReplica { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricService.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricService.ps1 index 16835d54..5d96caa5 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricService.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnServiceFabricService.ps1 @@ -85,5 +85,6 @@ function Get-SdnServiceFabricService { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Get-SdnSlbStateInformation.ps1 b/src/modules/SdnDiag.NetworkController/public/Get-SdnSlbStateInformation.ps1 index e1d4633f..6d4e681e 100644 --- a/src/modules/SdnDiag.NetworkController/public/Get-SdnSlbStateInformation.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Get-SdnSlbStateInformation.ps1 @@ -89,5 +89,6 @@ function Get-SdnSlbStateInformation { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Invoke-SdnResourceDump.ps1 b/src/modules/SdnDiag.NetworkController/public/Invoke-SdnResourceDump.ps1 index 5726a071..45c4d6c7 100644 --- a/src/modules/SdnDiag.NetworkController/public/Invoke-SdnResourceDump.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Invoke-SdnResourceDump.ps1 @@ -62,5 +62,6 @@ function Invoke-SdnResourceDump { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Move-SdnServiceFabricReplica.ps1 b/src/modules/SdnDiag.NetworkController/public/Move-SdnServiceFabricReplica.ps1 index d8d3e1a0..9bc7b339 100644 --- a/src/modules/SdnDiag.NetworkController/public/Move-SdnServiceFabricReplica.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Move-SdnServiceFabricReplica.ps1 @@ -103,5 +103,6 @@ function Move-SdnServiceFabricReplica { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/New-SdnCertificateRotationConfig.ps1 b/src/modules/SdnDiag.NetworkController/public/New-SdnCertificateRotationConfig.ps1 index 8acd3295..8c6d1efa 100644 --- a/src/modules/SdnDiag.NetworkController/public/New-SdnCertificateRotationConfig.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/New-SdnCertificateRotationConfig.ps1 @@ -57,7 +57,7 @@ function New-SdnCertificateRotationConfig { if($NcInfraInfo.ClusterCredentialType -eq "X509"){ foreach ($ncNode in $($NcInfraInfo.NodeList)) { - Trace-Output "Looking for Node Cert for Node: $($ncNode.NodeName), IpAddressOrFQDN: $($ncNode.IpAddressOrFQDN)" -Level:Verbose + Trace-Output -Message "Looking for Node Cert for Node: $($ncNode.NodeName), IpAddressOrFQDN: $($ncNode.IpAddressOrFQDN)" -Level:Verbose $ncNodeCert = Invoke-PSRemoteCommand -ComputerName $ncNode.IpAddressOrFQDN -ScriptBlock $getNewestCertScript -Credential $Credential $CertificateRotationConfig[$ncNode.NodeName.ToLower()] = $ncNodeCert } @@ -67,5 +67,6 @@ function New-SdnCertificateRotationConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerNodeCertificate.ps1 b/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerNodeCertificate.ps1 index a7aad254..aebebc10 100644 --- a/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerNodeCertificate.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerNodeCertificate.ps1 @@ -76,5 +76,6 @@ function New-SdnNetworkControllerNodeCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerRestCertificate.ps1 b/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerRestCertificate.ps1 index 0dd18708..974e894c 100644 --- a/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerRestCertificate.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/New-SdnNetworkControllerRestCertificate.ps1 @@ -87,5 +87,6 @@ function New-SdnNetworkControllerRestCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Set-SdnNetworkController.ps1 b/src/modules/SdnDiag.NetworkController/public/Set-SdnNetworkController.ps1 index 40e46a04..c48ecd68 100644 --- a/src/modules/SdnDiag.NetworkController/public/Set-SdnNetworkController.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Set-SdnNetworkController.ps1 @@ -154,6 +154,7 @@ function Set-SdnNetworkController { } catch { $_ | Trace-Exception + $_ | Write-Error } finally { if ($client) { diff --git a/src/modules/SdnDiag.NetworkController/public/Set-SdnServiceFabricClusterConfig.ps1 b/src/modules/SdnDiag.NetworkController/public/Set-SdnServiceFabricClusterConfig.ps1 index af2260a1..24bcd038 100644 --- a/src/modules/SdnDiag.NetworkController/public/Set-SdnServiceFabricClusterConfig.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Set-SdnServiceFabricClusterConfig.ps1 @@ -44,5 +44,6 @@ function Set-SdnServiceFabricClusterConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Show-SdnVipState.ps1 b/src/modules/SdnDiag.NetworkController/public/Show-SdnVipState.ps1 index bd8ee242..90aa8425 100644 --- a/src/modules/SdnDiag.NetworkController/public/Show-SdnVipState.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Show-SdnVipState.ps1 @@ -28,5 +28,6 @@ function Show-SdnVipState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Start-SdnCertificateRotation.ps1 b/src/modules/SdnDiag.NetworkController/public/Start-SdnCertificateRotation.ps1 index aa1d2135..91272bbb 100644 --- a/src/modules/SdnDiag.NetworkController/public/Start-SdnCertificateRotation.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Start-SdnCertificateRotation.ps1 @@ -399,5 +399,6 @@ function Start-SdnCertificateRotation { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.NetworkController/public/Test-SdnCertificateRotationConfig.ps1 b/src/modules/SdnDiag.NetworkController/public/Test-SdnCertificateRotationConfig.ps1 index f9ed48c9..04afebe6 100644 --- a/src/modules/SdnDiag.NetworkController/public/Test-SdnCertificateRotationConfig.ps1 +++ b/src/modules/SdnDiag.NetworkController/public/Test-SdnCertificateRotationConfig.ps1 @@ -26,7 +26,7 @@ function Test-SdnCertificateRotationConfig { try { if ([string]::IsNullOrEmpty($CertRotateConfig["NcRestCert"])) { - Trace-Output "NcRestCert not specified in CertRotateConfig" -Level:Error + Trace-Output -Message "NcRestCert not specified in CertRotateConfig" -Level:Error return $false } @@ -35,7 +35,7 @@ function Test-SdnCertificateRotationConfig { if ($CertRotateConfig["ClusterCredentialType"] -ieq "X509") { $nodeCert = $CertRotateConfig[$ncNode.NodeName.ToLower()] if ([string]::IsNullOrEmpty($nodeCert)) { - Trace-Output "The ClusterCredentialType is X509 but Node $($ncNode.NodeName) does not have certificate specified" -Level:Error + Trace-Output -Message "The ClusterCredentialType is X509 but Node $($ncNode.NodeName) does not have certificate specified" -Level:Error return $false } else { @@ -54,7 +54,7 @@ function Test-SdnCertificateRotationConfig { } -ArgumentList $nodeCert if (!$certValid) { - Trace-Output "Node $($ncNode.NodeName) does not have validate Node certificate with thumbprint $nodeCert installed" -Level:Error + Trace-Output -Message "Node $($ncNode.NodeName) does not have validate Node certificate with thumbprint $nodeCert installed" -Level:Error return $false } } @@ -75,7 +75,7 @@ function Test-SdnCertificateRotationConfig { } -ArgumentList $ncRestCert if (!$certValid) { - Trace-Output "Node $($ncNode.NodeName) does not have validate NcRest certificate with thumbprint $ncRestCert installed" -Level:Error + Trace-Output -Message "Node $($ncNode.NodeName) does not have validate NcRest certificate with thumbprint $ncRestCert installed" -Level:Error return $false } } @@ -83,5 +83,6 @@ function Test-SdnCertificateRotationConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbAddressMapping.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbAddressMapping.ps1 index e67a1269..2572271c 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbAddressMapping.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbAddressMapping.ps1 @@ -6,60 +6,58 @@ function Get-OvsdbAddressMapping { PS> Get-OvsdbAddressMapping #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep - $paMappingTable = $ovsdbResults | Where-Object { $_.caption -eq 'Physical_Locator table' } - $caMappingTable = $ovsdbResults | Where-Object { $_.caption -eq 'Ucast_Macs_Remote table' } - $logicalSwitchTable = $ovsdbResults | Where-Object { $_.caption -eq 'Logical_Switch table' } + $arrayList = [System.Collections.ArrayList]::new() - if ($null -eq $caMappingTable) { - return $null - } + $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep + $paMappingTable = $ovsdbResults | Where-Object { $_.caption -eq 'Physical_Locator table' } + $caMappingTable = $ovsdbResults | Where-Object { $_.caption -eq 'Ucast_Macs_Remote table' } + $logicalSwitchTable = $ovsdbResults | Where-Object { $_.caption -eq 'Logical_Switch table' } - # enumerate the json rules for each of the tables and create psobject for the mappings - # unfortunately these values do not return in key/value pair and need to manually map each property - foreach ($caMapping in $caMappingTable.Data) { + if ($null -eq $caMappingTable) { + return $null + } - # create the object - $addressMapping = [OvsdbAddressMapping]@{ - UUID = $caMapping[1][1] - CustomerAddress = $caMapping[2] - MacAddress = $caMapping[0] - MappingType = $caMapping[5] - } + # enumerate the json rules for each of the tables and create psobject for the mappings + # unfortunately these values do not return in key/value pair and need to manually map each property + foreach ($caMapping in $caMappingTable.Data) { - $locator = $caMapping[3][1] - $logicalSwitch = $caMapping[4][1] + # create the object + $addressMapping = [OvsdbAddressMapping]@{ + UUID = $caMapping[1][1] + CustomerAddress = $caMapping[2] + MacAddress = $caMapping[0] + MappingType = $caMapping[5] + } - # Get PA from locator table - foreach ($paMapping in $paMappingTable.Data) { - $curLocator = $paMapping[0][1] - if ($curLocator -eq $locator) { - $addressMapping.ProviderAddress = $paMapping[3] - $addressMapping.EncapType = $paMapping[4] - break - } - } + $locator = $caMapping[3][1] + $logicalSwitch = $caMapping[4][1] - # Get Rdid and VSID from logical switch table - foreach ($switch in $logicalSwitchTable.Data) { - $curSwitch = $switch[0][1] - if ($curSwitch -eq $logicalSwitch) { - $addressMapping.RoutingDomainId = $switch[1] - $addressMapping.VSwitchID = $switch[3] - break - } + # Get PA from locator table + foreach ($paMapping in $paMappingTable.Data) { + $curLocator = $paMapping[0][1] + if ($curLocator -eq $locator) { + $addressMapping.ProviderAddress = $paMapping[3] + $addressMapping.EncapType = $paMapping[4] + break } + } - # add the object to the array - [void]$arrayList.Add($addressMapping) + # Get Rdid and VSID from logical switch table + foreach ($switch in $logicalSwitchTable.Data) { + $curSwitch = $switch[0][1] + if ($curSwitch -eq $logicalSwitch) { + $addressMapping.RoutingDomainId = $switch[1] + $addressMapping.VSwitchID = $switch[3] + break + } } - return $arrayList - } - catch { - $_ | Trace-Exception + # add the object to the array + [void]$arrayList.Add($addressMapping) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbDatabase.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbDatabase.ps1 index f3b6ee03..e021d690 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbDatabase.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbDatabase.ps1 @@ -5,24 +5,19 @@ function Get-OvsdbDatabase { [OvsdbTable]$Table ) - try { - $localPort = Get-NetTCPConnection -LocalPort:6641 -ErrorAction:SilentlyContinue - if ($null -eq $localPort){ - throw New-Object System.NullReferenceException("No endpoint listening on port 6641. Ensure NCHostAgent service is running.") - } + $localPort = Get-NetTCPConnection -LocalPort:6641 -ErrorAction:SilentlyContinue + if ($null -eq $localPort){ + throw New-Object System.NullReferenceException("No endpoint listening on port 6641. Ensure NCHostAgent service is running.") + } - $cmdline = "ovsdb-client.exe dump tcp:127.0.0.1:6641 -f json {0}" -f $Table - $databaseResults = Invoke-Expression $cmdline | ConvertFrom-Json + $cmdline = "ovsdb-client.exe dump tcp:127.0.0.1:6641 -f json {0}" -f $Table + $databaseResults = Invoke-Expression $cmdline | ConvertFrom-Json - if($null -eq $databaseResults){ - $msg = "Unable to retrieve OVSDB results`n`t{0}" -f $_ - throw New-Object System.NullReferenceException($msg) - } - else { - return $databaseResults - } + if($null -eq $databaseResults){ + $msg = "Unable to retrieve OVSDB results`n`t{0}" -f $_ + throw New-Object System.NullReferenceException($msg) } - catch { - $_ | Trace-Exception + else { + return $databaseResults } } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbFirewallRuleTable.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbFirewallRuleTable.ps1 index 295835ea..e133797b 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbFirewallRuleTable.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbFirewallRuleTable.ps1 @@ -6,42 +6,40 @@ function Get-OvsdbFirewallRuleTable { PS> Get-OvsdbFirewallRuleTable #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_firewall - $firewallTable = $ovsdbResults | Where-Object { $_.caption -eq 'FW_Rules table' } + $arrayList = [System.Collections.ArrayList]::new() - if ($null -eq $firewallTable) { - return $null - } - # enumerate the json rules and create object for each firewall rule returned - # there is no nice way to generate this and requires manually mapping as only the values are return - foreach ($obj in $firewallTable.data) { - $result = [OvsdbFirewallRule]@{ - UUID = $obj[0][1] - Action = $obj[1] - Direction = $obj[2] - DestinationAddress = $obj[3] - DestinationPort = $obj[4] - Logging = $obj[5] - Priority = $obj[6] - Protocols = $obj[7] - RuleId = $obj[8] - State = $obj[9] - Type = $obj[10] - SourceAddress = $obj[11] - SourcePort = $obj[12] - VirtualNicId = $obj[13] - } + $ovsdbResults = Get-OvsdbDatabase -Table ms_firewall + $firewallTable = $ovsdbResults | Where-Object { $_.caption -eq 'FW_Rules table' } - # add the psobject to array list - [void]$arrayList.Add($result) + if ($null -eq $firewallTable) { + return $null + } + # enumerate the json rules and create object for each firewall rule returned + # there is no nice way to generate this and requires manually mapping as only the values are return + foreach ($obj in $firewallTable.data) { + $result = [OvsdbFirewallRule]@{ + UUID = $obj[0][1] + Action = $obj[1] + Direction = $obj[2] + DestinationAddress = $obj[3] + DestinationPort = $obj[4] + Logging = $obj[5] + Priority = $obj[6] + Protocols = $obj[7] + RuleId = $obj[8] + State = $obj[9] + Type = $obj[10] + SourceAddress = $obj[11] + SourcePort = $obj[12] + VirtualNicId = $obj[13] } - return $arrayList - } - catch { - $_ | Trace-Exception + # add the psobject to array list + [void]$arrayList.Add($result) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbGlobalTable.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbGlobalTable.ps1 index 15fab319..70d6819c 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbGlobalTable.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbGlobalTable.ps1 @@ -6,32 +6,30 @@ function Get-OvsdbGlobalTable { PS> Get-OvsdbGlobalTable #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep - $globalTable = $ovsdbResults | Where-Object { $_.caption -eq 'Global table' } + $arrayList = [System.Collections.ArrayList]::new() - if ($null -eq $globalTable) { - return $null - } + $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep + $globalTable = $ovsdbResults | Where-Object { $_.caption -eq 'Global table' } - # enumerate the json results and add to psobject - foreach ($obj in $globalTable.data) { - $result = [OvsdbGlobalTable]@{ - uuid = $obj[0][1] - CurrentConfig = $obj[1] - NextConfig = $obj[4] - Switches = $obj[6][1] - } + if ($null -eq $globalTable) { + return $null + } - # add the psobject to array - [void]$arrayList.Add($result) + # enumerate the json results and add to psobject + foreach ($obj in $globalTable.data) { + $result = [OvsdbGlobalTable]@{ + uuid = $obj[0][1] + CurrentConfig = $obj[1] + NextConfig = $obj[4] + Switches = $obj[6][1] } - return $arrayList - } - catch { - $_ | Trace-Exception + # add the psobject to array + [void]$arrayList.Add($result) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbPhysicalPortTable.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbPhysicalPortTable.ps1 index 0d19a429..040f0532 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbPhysicalPortTable.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbPhysicalPortTable.ps1 @@ -6,37 +6,35 @@ function Get-OvsdbPhysicalPortTable { PS> Get-OvsdbPhysicalPortTable #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep - $portTable = $ovsdbResults | Where-Object { $_.caption -eq 'Physical_Port table' } + $arrayList = [System.Collections.ArrayList]::new() - if ($null -eq $portTable) { - return $null + $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep + $portTable = $ovsdbResults | Where-Object { $_.caption -eq 'Physical_Port table' } + + if ($null -eq $portTable) { + return $null + } + + # enumerate the json objects and create psobject for each port + foreach ($obj in $portTable.data) { + $physicalPort = [OvsdbPhysicalPort]@{ + UUID = $obj[0][1] + Description = $obj[1] + Name = $obj[2].Trim('{', '}') # remove the curly braces from the name } - # enumerate the json objects and create psobject for each port - foreach ($obj in $portTable.data) { - $physicalPort = [OvsdbPhysicalPort]@{ - UUID = $obj[0][1] - Description = $obj[1] - Name = $obj[2].Trim('{', '}') # remove the curly braces from the name - } - - # there are numerous key/value pairs within this object with some having different properties - # enumerate through the properties and add property and value for each - foreach ($property in $obj[4][1]) { - $physicalPort | Add-Member -MemberType NoteProperty -Name $property[0] -Value $property[1] - } - - # add the psobject to array - [void]$arrayList.Add($physicalPort) + # there are numerous key/value pairs within this object with some having different properties + # enumerate through the properties and add property and value for each + foreach ($property in $obj[4][1]) { + $physicalPort | Add-Member -MemberType NoteProperty -Name $property[0] -Value $property[1] } - return $arrayList - } - catch { - $_ | Trace-Exception + # add the psobject to array + [void]$arrayList.Add($physicalPort) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbRouterTable.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbRouterTable.ps1 index 0f94fd7e..96ac178d 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbRouterTable.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbRouterTable.ps1 @@ -6,55 +6,52 @@ function Get-OvsdbRouterTable { PS> Get-OvsdbRouterTable #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep - $routerTable = $ovsdbResults | Where-Object { $_.caption -eq 'Logical_Router table' } + $arrayList = [System.Collections.ArrayList]::new() + $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep + $routerTable = $ovsdbResults | Where-Object { $_.caption -eq 'Logical_Router table' } - if ($null -eq $routerTable) { - return $null - } + if ($null -eq $routerTable) { + return $null + } - # enumerate the json results and add to psobject - foreach ($obj in $routerTable.data) { - $staticroute = @() - if($obj[5][1].count -gt 0){ - foreach($route in $obj[5][1]){ - if(![string]::IsNullOrEmpty(($staticroute))){ - $staticroute += ', ' - } - $staticRoute += "$($route[0])=$($route[1])" + # enumerate the json results and add to psobject + foreach ($obj in $routerTable.data) { + $staticroute = @() + if($obj[5][1].count -gt 0){ + foreach($route in $obj[5][1]){ + if(![string]::IsNullOrEmpty(($staticroute))){ + $staticroute += ', ' } + $staticRoute += "$($route[0])=$($route[1])" } + } - $switchbinding = @() - if($obj[6][1].count -gt 0){ - foreach($switch in $obj[6][1]){ - if(![string]::IsNullOrEmpty(($switchbinding))){ - $switchbinding += ', ' - } - - $switchbinding += "$($switch[0])=$($switch[1][1])" + $switchbinding = @() + if($obj[6][1].count -gt 0){ + foreach($switch in $obj[6][1]){ + if(![string]::IsNullOrEmpty(($switchbinding))){ + $switchbinding += ', ' } - } - $result = [OvsdbRouter]@{ - uuid = $obj[0][1] - Description = $obj[1] - EnableLogicalRouter = $obj[2] - VirtualNetworkId = $obj[3] - StaticRoutes = $staticroute - SwitchBinding = $switchbinding + $switchbinding += "$($switch[0])=$($switch[1][1])" } + } - # add the psobject to array - [void]$arrayList.Add($result) + $result = [OvsdbRouter]@{ + uuid = $obj[0][1] + Description = $obj[1] + EnableLogicalRouter = $obj[2] + VirtualNetworkId = $obj[3] + StaticRoutes = $staticroute + SwitchBinding = $switchbinding } - return $arrayList - } - catch { - $_ | Trace-Exception + # add the psobject to array + [void]$arrayList.Add($result) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-OvsdbUcastMacRemoteTable.ps1 b/src/modules/SdnDiag.Server/private/Get-OvsdbUcastMacRemoteTable.ps1 index 67c8bd83..6a5c5c0d 100644 --- a/src/modules/SdnDiag.Server/private/Get-OvsdbUcastMacRemoteTable.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-OvsdbUcastMacRemoteTable.ps1 @@ -6,33 +6,30 @@ function Get-OvsdbUcastMacRemoteTable { PS> Get-OvsdbUcastMacRemoteTable #> - try { - $arrayList = [System.Collections.ArrayList]::new() + [CmdletBinding()] + param() - $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep - $ucastMacsRemoteTable = $ovsdbResults | Where-Object { $_.caption -eq 'Ucast_Macs_Remote table' } + $arrayList = [System.Collections.ArrayList]::new() + $ovsdbResults = Get-OvsdbDatabase -Table ms_vtep + $ucastMacsRemoteTable = $ovsdbResults | Where-Object { $_.caption -eq 'Ucast_Macs_Remote table' } - if ($null -eq $ucastMacsRemoteTable) { - return $null - } - - # enumerate the json objects and create psobject for each port - foreach ($obj in $ucastMacsRemoteTable.data) { - $result = [OvsdbUcastMacRemote]@{ - UUID = $obj[1][1] - MacAddress = $obj[0] - CustomerAddress = $obj[2] - Locator = $obj[3][1] - LogicalSwitch = $obj[4][1] - MappingType = $obj[5] - } + if ($null -eq $ucastMacsRemoteTable) { + return $null + } - [void]$arrayList.Add($result) + # enumerate the json objects and create psobject for each port + foreach ($obj in $ucastMacsRemoteTable.data) { + $result = [OvsdbUcastMacRemote]@{ + UUID = $obj[1][1] + MacAddress = $obj[0] + CustomerAddress = $obj[2] + Locator = $obj[3][1] + LogicalSwitch = $obj[4][1] + MappingType = $obj[5] } - return $arrayList - } - catch { - $_ | Trace-Exception + [void]$arrayList.Add($result) } + + return $arrayList } diff --git a/src/modules/SdnDiag.Server/private/Get-ServerConfigState.ps1 b/src/modules/SdnDiag.Server/private/Get-ServerConfigState.ps1 index fa22ed05..3270dcef 100644 --- a/src/modules/SdnDiag.Server/private/Get-ServerConfigState.ps1 +++ b/src/modules/SdnDiag.Server/private/Get-ServerConfigState.ps1 @@ -102,6 +102,7 @@ function Get-ServerConfigState { } catch { $_ | Trace-Exception + $_ | Write-Error } $ProgressPreference = 'Continue' diff --git a/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterEncapOverheadConfig.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterEncapOverheadConfig.ps1 index 31807ab2..a1641e1f 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterEncapOverheadConfig.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterEncapOverheadConfig.ps1 @@ -68,5 +68,6 @@ function Get-SdnNetAdapterEncapOverheadConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterRdmaConfig.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterRdmaConfig.ps1 index fe42da5c..eae896be 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterRdmaConfig.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnNetAdapterRdmaConfig.ps1 @@ -137,5 +137,6 @@ function Get-SdnNetAdapterRdmaConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbAddressMapping.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbAddressMapping.ps1 index 14a81884..ff450938 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbAddressMapping.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbAddressMapping.ps1 @@ -57,5 +57,6 @@ function Get-SdnOvsdbAddressMapping { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbFirewallRule.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbFirewallRule.ps1 index b2328e5a..d8357e22 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbFirewallRule.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbFirewallRule.ps1 @@ -58,5 +58,6 @@ function Get-SdnOvsdbFirewallRule { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbGlobalTable.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbGlobalTable.ps1 index 499127b8..867afb9d 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbGlobalTable.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbGlobalTable.ps1 @@ -33,5 +33,6 @@ function Get-SdnOvsdbGlobalTable { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbPhysicalPort.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbPhysicalPort.ps1 index e1cf7667..ddcbab25 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbPhysicalPort.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbPhysicalPort.ps1 @@ -74,5 +74,6 @@ function Get-SdnOvsdbPhysicalPort { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbRouterTable.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbRouterTable.ps1 index dc1d440c..1b6ad2a2 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbRouterTable.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbRouterTable.ps1 @@ -33,5 +33,6 @@ function Get-SdnOvsdbRouterTable { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbUcastMacRemoteTable.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbUcastMacRemoteTable.ps1 index 692b6649..634117c2 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnOvsdbUcastMacRemoteTable.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnOvsdbUcastMacRemoteTable.ps1 @@ -33,5 +33,6 @@ function Get-SdnOvsdbUcastMacRemoteTable { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnProviderAddress.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnProviderAddress.ps1 index 2e9c9a2b..e4b37a3b 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnProviderAddress.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnProviderAddress.ps1 @@ -55,5 +55,6 @@ function Get-SdnProviderAddress { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnServerCertificate.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnServerCertificate.ps1 index fe445893..66e8f89d 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnServerCertificate.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnServerCertificate.ps1 @@ -15,5 +15,6 @@ function Get-SdnServerCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapter.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapter.ps1 index ab2ab805..4d873b3e 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapter.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapter.ps1 @@ -60,5 +60,6 @@ function Get-SdnVMNetworkAdapter { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapterPortProfile.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapterPortProfile.ps1 index cc4a729e..c8c7212d 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapterPortProfile.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVMNetworkAdapterPortProfile.ps1 @@ -74,5 +74,6 @@ function Get-SdnVMNetworkAdapterPortProfile { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortGroup.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortGroup.ps1 index 22416afa..1af8f2c9 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortGroup.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortGroup.ps1 @@ -100,5 +100,6 @@ function Get-SdnVfpPortGroup { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortLayer.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortLayer.ps1 index e739598c..fe72a272 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortLayer.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortLayer.ps1 @@ -57,5 +57,6 @@ function Get-SdnVfpPortLayer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortRule.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortRule.ps1 index 76952358..65817321 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortRule.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortRule.ps1 @@ -68,5 +68,6 @@ function Get-SdnVfpPortRule { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortState.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortState.ps1 index 961fb16f..3cb00c7b 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVfpPortState.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVfpPortState.ps1 @@ -47,5 +47,6 @@ function Get-SdnVfpPortState { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Get-SdnVfpVmSwitchPort.ps1 b/src/modules/SdnDiag.Server/public/Get-SdnVfpVmSwitchPort.ps1 index 20f2919c..b0505843 100644 --- a/src/modules/SdnDiag.Server/public/Get-SdnVfpVmSwitchPort.ps1 +++ b/src/modules/SdnDiag.Server/public/Get-SdnVfpVmSwitchPort.ps1 @@ -77,5 +77,6 @@ function Get-SdnVfpVmSwitchPort { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/New-SdnServerCertificate.ps1 b/src/modules/SdnDiag.Server/public/New-SdnServerCertificate.ps1 index 134284f7..37ecff51 100644 --- a/src/modules/SdnDiag.Server/public/New-SdnServerCertificate.ps1 +++ b/src/modules/SdnDiag.Server/public/New-SdnServerCertificate.ps1 @@ -71,5 +71,6 @@ function New-SdnServerCertificate { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Set-SdnVMNetworkAdapterPortProfile.ps1 b/src/modules/SdnDiag.Server/public/Set-SdnVMNetworkAdapterPortProfile.ps1 index 8e12b6bb..c220c3f1 100644 --- a/src/modules/SdnDiag.Server/public/Set-SdnVMNetworkAdapterPortProfile.ps1 +++ b/src/modules/SdnDiag.Server/public/Set-SdnVMNetworkAdapterPortProfile.ps1 @@ -149,5 +149,6 @@ function Set-SdnVMNetworkAdapterPortProfile { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Show-SdnVfpPortConfig.ps1 b/src/modules/SdnDiag.Server/public/Show-SdnVfpPortConfig.ps1 index 756424e7..894b4967 100644 --- a/src/modules/SdnDiag.Server/public/Show-SdnVfpPortConfig.ps1 +++ b/src/modules/SdnDiag.Server/public/Show-SdnVfpPortConfig.ps1 @@ -59,5 +59,6 @@ function Show-SdnVfpPortConfig { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Start-SdnServerCertificateRotation.ps1 b/src/modules/SdnDiag.Server/public/Start-SdnServerCertificateRotation.ps1 index 1f6ec6c3..38329dd4 100644 --- a/src/modules/SdnDiag.Server/public/Start-SdnServerCertificateRotation.ps1 +++ b/src/modules/SdnDiag.Server/public/Start-SdnServerCertificateRotation.ps1 @@ -200,5 +200,6 @@ function Start-SdnServerCertificateRotation { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Server/public/Test-SdnProviderAddressConnectivity.ps1 b/src/modules/SdnDiag.Server/public/Test-SdnProviderAddressConnectivity.ps1 index de1699b5..c9f81265 100644 --- a/src/modules/SdnDiag.Server/public/Test-SdnProviderAddressConnectivity.ps1 +++ b/src/modules/SdnDiag.Server/public/Test-SdnProviderAddressConnectivity.ps1 @@ -59,5 +59,6 @@ function Test-SdnProviderAddressConnectivity { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Confirm-DiskSpace.ps1 b/src/modules/SdnDiag.Utilities/private/Confirm-DiskSpace.ps1 index 4062a965..38c613eb 100644 --- a/src/modules/SdnDiag.Utilities/private/Confirm-DiskSpace.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Confirm-DiskSpace.ps1 @@ -12,38 +12,33 @@ function Confirm-DiskSpace { $MinimumMB ) - try { - $drive = Get-PSDrive $DriveLetter -ErrorAction Stop - if ($null -eq $drive) { - throw New-Object System.NullReferenceException("Unable to retrieve PSDrive information") - } - - $freeSpace = Format-ByteSize -Bytes $drive.Free - switch ($PSCmdlet.ParameterSetName) { - 'GB' { - "Required: {0} GB | Available: {1} GB" -f ([float]$MinimumGB).ToString(), $freeSpace.GB | Trace-Output -Level:Verbose - if ([float]$freeSpace.GB -gt [float]$MinimumGB) { - return $true - } + $drive = Get-PSDrive $DriveLetter -ErrorAction Stop + if ($null -eq $drive) { + throw New-Object System.NullReferenceException("Unable to retrieve PSDrive information") + } - # if we do not have enough disk space, we want to provide what was required vs what was available - "Required: {0} GB | Available: {1} GB" -f ([float]$MinimumGB).ToString(), $freeSpace.GB | Trace-Output -Level:Error - return $false + $freeSpace = Format-ByteSize -Bytes $drive.Free + switch ($PSCmdlet.ParameterSetName) { + 'GB' { + "Required: {0} GB | Available: {1} GB" -f ([float]$MinimumGB).ToString(), $freeSpace.GB | Trace-Output -Level:Verbose + if ([float]$freeSpace.GB -gt [float]$MinimumGB) { + return $true } - 'MB' { - "Required: {0} MB | Available: {1} MB" -f ([float]$MinimumMB).ToString(), $freeSpace.MB | Trace-Output -Level:Verbose - if ([float]$freeSpace.MB -gt [float]$MinimumMB) { - return $true - } + # if we do not have enough disk space, we want to provide what was required vs what was available + "Required: {0} GB | Available: {1} GB" -f ([float]$MinimumGB).ToString(), $freeSpace.GB | Trace-Output -Level:Error + return $false + } - # if we do not have enough disk space, we want to provide what was required vs what was available - "Required: {0} MB | Available: {1} MB" -f ([float]$MinimumMB).ToString(), $freeSpace.MB | Trace-Output -Level:Error - return $false + 'MB' { + "Required: {0} MB | Available: {1} MB" -f ([float]$MinimumMB).ToString(), $freeSpace.MB | Trace-Output -Level:Verbose + if ([float]$freeSpace.MB -gt [float]$MinimumMB) { + return $true } + + # if we do not have enough disk space, we want to provide what was required vs what was available + "Required: {0} MB | Available: {1} MB" -f ([float]$MinimumMB).ToString(), $freeSpace.MB | Trace-Output -Level:Error + return $false } } - catch { - $_ | Trace-Exception - } } diff --git a/src/modules/SdnDiag.Utilities/private/Copy-FileFromRemoteComputer.ps1 b/src/modules/SdnDiag.Utilities/private/Copy-FileFromRemoteComputer.ps1 index ec13c0b8..54c2b2f4 100644 --- a/src/modules/SdnDiag.Utilities/private/Copy-FileFromRemoteComputer.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Copy-FileFromRemoteComputer.ps1 @@ -77,5 +77,6 @@ function Copy-FileFromRemoteComputer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Copy-FileToRemoteComputer.ps1 b/src/modules/SdnDiag.Utilities/private/Copy-FileToRemoteComputer.ps1 index 3a1f7301..7fdb5e4a 100644 --- a/src/modules/SdnDiag.Utilities/private/Copy-FileToRemoteComputer.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Copy-FileToRemoteComputer.ps1 @@ -77,5 +77,6 @@ function Copy-FileToRemoteComputer { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Format-NetshTraceProviderAsString.ps1 b/src/modules/SdnDiag.Utilities/private/Format-NetshTraceProviderAsString.ps1 index 32469369..22b0dd68 100644 --- a/src/modules/SdnDiag.Utilities/private/Format-NetshTraceProviderAsString.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Format-NetshTraceProviderAsString.ps1 @@ -43,5 +43,6 @@ function Format-NetshTraceProviderAsString { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Get-FolderSize.ps1 b/src/modules/SdnDiag.Utilities/private/Get-FolderSize.ps1 index 40da1632..1852d657 100644 --- a/src/modules/SdnDiag.Utilities/private/Get-FolderSize.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Get-FolderSize.ps1 @@ -63,5 +63,6 @@ function Get-FolderSize { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Get-FunctionFromFile.ps1 b/src/modules/SdnDiag.Utilities/private/Get-FunctionFromFile.ps1 index b23a4081..31663bfd 100644 --- a/src/modules/SdnDiag.Utilities/private/Get-FunctionFromFile.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Get-FunctionFromFile.ps1 @@ -30,5 +30,6 @@ function Get-FunctionFromFile { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Invoke-RestMethodWithRetry.ps1 b/src/modules/SdnDiag.Utilities/private/Invoke-RestMethodWithRetry.ps1 index 63f139ec..d828601a 100644 --- a/src/modules/SdnDiag.Utilities/private/Invoke-RestMethodWithRetry.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Invoke-RestMethodWithRetry.ps1 @@ -80,19 +80,12 @@ function Invoke-RestMethodWithRetry { break } catch { - if ($_.Exception.Response.StatusCode -eq "NotFound") { - "{0} ({1})" -f $_.Exception.Message, $_.Exception.Response.ResponseUri.AbsoluteUri | Trace-Output -Level:Warning - return $null - } - else { - $_ | Trace-Output -Level:Error - } - if (($counter -le $MaxRetry) -and $Retry) { "Retrying operation in {0} seconds. Retry count: {1}." - $RetryIntervalInSeconds, $counter | Trace-Output Start-Sleep -Seconds $RetryIntervalInSeconds } else { + $_ | Trace-Exception throw $_ } } diff --git a/src/modules/SdnDiag.Utilities/private/Invoke-WebRequestWithRetry.ps1 b/src/modules/SdnDiag.Utilities/private/Invoke-WebRequestWithRetry.ps1 index f34dbf42..75c17cec 100644 --- a/src/modules/SdnDiag.Utilities/private/Invoke-WebRequestWithRetry.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Invoke-WebRequestWithRetry.ps1 @@ -80,19 +80,12 @@ function Invoke-WebRequestWithRetry { break } catch { - if ($_.Exception.Response.StatusCode -eq "NotFound") { - "{0} ({1})" -f $_.Exception.Message, $_.Exception.Response.ResponseUri.AbsoluteUri | Trace-Output -Level:Warning - return $null - } - else { - $_ | Trace-Output -Level:Error - } - if (($counter -le $MaxRetry) -and $Retry) { "Retrying operation in {0} seconds. Retry count: {1}." - $RetryIntervalInSeconds, $counter | Trace-Output Start-Sleep -Seconds $RetryIntervalInSeconds } else { + $_ | Trace-Exception throw $_ } } diff --git a/src/modules/SdnDiag.Utilities/private/Test-ComputerNameIsLocal.ps1 b/src/modules/SdnDiag.Utilities/private/Test-ComputerNameIsLocal.ps1 index 1e35cd7e..20ab7cf8 100644 --- a/src/modules/SdnDiag.Utilities/private/Test-ComputerNameIsLocal.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Test-ComputerNameIsLocal.ps1 @@ -33,5 +33,6 @@ function Test-ComputerNameIsLocal { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Test-Ping.ps1 b/src/modules/SdnDiag.Utilities/private/Test-Ping.ps1 index cf12634b..62b2cd7d 100644 --- a/src/modules/SdnDiag.Utilities/private/Test-Ping.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Test-Ping.ps1 @@ -67,5 +67,6 @@ function Test-Ping { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/private/Trace-Exception.ps1 b/src/modules/SdnDiag.Utilities/private/Trace-Exception.ps1 index 52ea081b..d5e373b1 100644 --- a/src/modules/SdnDiag.Utilities/private/Trace-Exception.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Trace-Exception.ps1 @@ -22,5 +22,5 @@ function Trace-Exception { $Exception ) - Trace-Output -Level:Error -Message $Exception.Exception.Message -Exception $Exception + Trace-Output -Exception $Exception -FunctionName (Get-PSCallStack)[1].Command -Level 'Exception' } diff --git a/src/modules/SdnDiag.Utilities/private/Trace-Output.ps1 b/src/modules/SdnDiag.Utilities/private/Trace-Output.ps1 index 5b2c0692..10ea9473 100644 --- a/src/modules/SdnDiag.Utilities/private/Trace-Output.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Trace-Output.ps1 @@ -2,21 +2,22 @@ function Trace-Output { [CmdletBinding()] param ( - [Parameter(Mandatory = $true, ValueFromPipeline = $true)] + [Parameter(Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'Message')] [System.String]$Message, - [Parameter(Mandatory = $false)] - [TraceLevel]$Level, + [Parameter(Mandatory = $false, ParameterSetName = 'Message')] + [Parameter(Mandatory = $false, ParameterSetName = 'Exception')] + [TraceLevel]$Level = 'Information', - [parameter(Mandatory = $false)] + [Parameter(Mandatory = $false, ParameterSetName = 'Message')] + [Parameter(Mandatory = $false, ParameterSetName = 'Exception')] + [System.String]$FunctionName = (Get-PSCallStack)[0].Command, + + [parameter(Mandatory = $true, ParameterSetName = 'Exception')] $Exception ) begin { - if (!$PSBoundParameters.ContainsKey('Level')) { - $Level = [TraceLevel]::Information - } - $traceFile = (Get-TraceOutputFile) if ([string]::IsNullOrEmpty($traceFile)) { New-WorkingDirectory @@ -29,9 +30,18 @@ function Trace-Output { $traceEvent = [PSCustomObject]@{ Computer = $env:COMPUTERNAME.ToUpper().ToString() TimestampUtc = [DateTime]::UtcNow.ToString('yyyy-MM-dd HH-mm-ss') - FunctionName = (Get-PSCallStack)[1].Command + FunctionName = $FunctionName Level = $Level.ToString() - Message = $Message + Message = $null + } + + switch ($PSCmdlet.ParameterSetName) { + 'Message' { + $traceEvent.Message = $Message + } + 'Exception' { + $traceEvent.Message = "{0}`n{1}" -f $Exception.Exception, $Exception.ScriptStackTrace + } } $formattedMessage = "[{0}] {1}" -f $traceEvent.Computer, $traceEvent.Message @@ -43,14 +53,8 @@ function Trace-Output { } 'Exception' { - if ($Exception) { - Write-Error -Exception $Exception.Exception -Message $Message - $traceEvent.FunctionName = (Get-PSCallStack)[2].Command - $traceEvent.Message = "{0}`n`t{1}" -f $Exception.Exception.Message, $Exception.Exception.ScriptStackTrace - } - else { - Write-Error -Message $Message - } + # do nothing here, as the exception should be written to the console by the caller using Write-Error + # as this will preserve the proper call stack tracing } 'Success' { diff --git a/src/modules/SdnDiag.Utilities/private/Wait-PSJob.ps1 b/src/modules/SdnDiag.Utilities/private/Wait-PSJob.ps1 index c8ac0573..cf9c1e4d 100644 --- a/src/modules/SdnDiag.Utilities/private/Wait-PSJob.ps1 +++ b/src/modules/SdnDiag.Utilities/private/Wait-PSJob.ps1 @@ -84,5 +84,6 @@ function Wait-PSJob { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/public/Clear-SdnWorkingDirectory.ps1 b/src/modules/SdnDiag.Utilities/public/Clear-SdnWorkingDirectory.ps1 index 3c14d530..b2c0c5b0 100644 --- a/src/modules/SdnDiag.Utilities/public/Clear-SdnWorkingDirectory.ps1 +++ b/src/modules/SdnDiag.Utilities/public/Clear-SdnWorkingDirectory.ps1 @@ -97,5 +97,6 @@ function Clear-SdnWorkingDirectory { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/public/Install-SdnDiagnostics.ps1 b/src/modules/SdnDiag.Utilities/public/Install-SdnDiagnostics.ps1 index 827d8b8d..14023d01 100644 --- a/src/modules/SdnDiag.Utilities/public/Install-SdnDiagnostics.ps1 +++ b/src/modules/SdnDiag.Utilities/public/Install-SdnDiagnostics.ps1 @@ -136,5 +136,6 @@ function Install-SdnDiagnostics { } catch { $_ | Trace-Exception + $_ | Write-Error } } diff --git a/src/modules/SdnDiag.Utilities/public/Invoke-SdnCommand.ps1 b/src/modules/SdnDiag.Utilities/public/Invoke-SdnCommand.ps1 index 4d12c965..d138b640 100644 --- a/src/modules/SdnDiag.Utilities/public/Invoke-SdnCommand.ps1 +++ b/src/modules/SdnDiag.Utilities/public/Invoke-SdnCommand.ps1 @@ -28,5 +28,6 @@ function Invoke-SdnCommand { } catch { $_ | Trace-Exception + $_ | Write-Error } }