diff --git a/Modules/NSXT/NSXT.psd1 b/Modules/NSXT/NSXT.psd1 index c3371b3..d9e25bc 100644 --- a/Modules/NSXT/NSXT.psd1 +++ b/Modules/NSXT/NSXT.psd1 @@ -7,7 +7,7 @@ Copyright = '(c) 2017. All rights reserved.' Description = 'Powershell Module for NSX-T REST API Functions' PowerShellVersion = '5.0' - FunctionsToExport = 'Get-NSXTComputeManager','Get-NSXTFabricNode','Get-NSXTFirewallRule','Get-NSXTIPPool','Get-NSXTLogicalSwitch','Get-NSXTManager','Get-NSXTTransportZone','Get-NSXTController' + FunctionsToExport = 'Get-NSXTComputeManager','Get-NSXTFabricNode','Get-NSXTFirewallRule','Get-NSXTIPPool','Get-NSXTLogicalSwitch','Get-NSXTManager','Get-NSXTTransportZone','Get-NSXTController','Get-NSXTTransportNodes' PrivateData = @{ PSData = @{ Tags = @('NSX-T','REST') diff --git a/Modules/NSXT/NSXT.psm1 b/Modules/NSXT/NSXT.psm1 index f8dcb49..a6afe2d 100644 --- a/Modules/NSXT/NSXT.psm1 +++ b/Modules/NSXT/NSXT.psm1 @@ -256,5 +256,41 @@ Function Get-NSXTManager { $results+=$tmp } } + $results +} + +Function Get-NSXTTransportNodes { + Param ( + [parameter(Mandatory=$false,ValueFromPipeline=$true)][string]$Id + ) + + $transport_nodesService = Get-NsxtService -Name "com.vmware.nsx.transport_nodes" + $transport_nodesstateService = Get-NsxtService -Name "com.vmware.nsx.transport_nodes.state" + + if($Id) { + $transport_nodes = $transport_nodesService.get($Id) + } else { + $transport_nodes = $transport_nodesService.list().results + } + + $results = @() + foreach ($transport_node in $transport_nodes) { + + $transport_nodesstate = $transport_nodesstateService.get("$($transport_node.Id)") + + $tmp = [pscustomobject] @{ + Id = $transport_node.Id; + Name = $transport_node.display_name; + Tags = $transport_node.tags; + MaintenanceMode = $transport_node.maintenance_mode; + HostSwitchesName = $transport_node.host_switches.host_switch_name; + Default_gateway = $transport_nodesstate.host_switch_states.endpointsdefault_gateway; + Device_name = $transport_nodesstate.host_switch_states.endpoints.device_name; + Ip = $transport_nodesstate.host_switch_states.endpoints.ip; + Subnet_mask =$transport_nodesstate.host_switch_states.endpoints.subnet_mask + } + $results+=$tmp + } + $results } \ No newline at end of file