Implement Filter functionality in Function

This commit is contained in:
Wes Carroll
2019-02-20 16:18:08 -05:00
parent 51c806a971
commit 390404249c
+49 -17
View File
@@ -1,14 +1,32 @@
function Get-ZertoVra {
[cmdletbinding(
DefaultParameterSetName = "Default"
DefaultParameterSetName = "main"
)]
param(
[Parameter( ParameterSetName = "ipConfig" )]
[Parameter( ParameterSetName = "ipConfigurationTypes" )]
[switch]$ipconfigurationtypes,
[Parameter( ParameterSetName = "Statuses" )]
[Parameter( ParameterSetName = "statuses" )]
[switch]$statuses,
[Parameter( ParameterSetName = "vraIdentifier" )]
[string[]]$vraIdentifier
[string[]]$vraIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$vraName,
[Parameter( ParameterSetName = "filter" )]
[string]$status,
[Parameter( ParameterSetName = "filter" )]
[string]$vraVersion,
[Parameter( ParameterSetName = "filter" )]
[string]$hostVersion,
[Parameter( ParameterSetName = "filter" )]
[string]$ipAddress,
[Parameter( ParameterSetName = "filter" )]
[string]$vraGroup,
[Parameter( ParameterSetName = "filter" )]
[string]$datastoreName,
[Parameter( ParameterSetName = "filter" )]
[string]$datastoreClusterName,
[Parameter( ParameterSetName = "filter" )]
[string]$networkName
)
begin {
@@ -17,20 +35,34 @@ function Get-ZertoVra {
}
process {
if ( $ipconfigurationtypes ) {
$uri = "{0}/ipconfigurationtypes" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
} elseif ( $statuses ) {
$uri = "{0}/statuses" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
} elseif ( $PSCmdlet.ParameterSetName -eq "vraIdentifierifier" ) {
$returnObject = foreach ( $vraId in $vraIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $vraId
Invoke-ZertoRestRequest -uri $uri
switch ( $PSCmdlet.ParameterSetName ) {
"filter" {
$filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
$uri = "{0}{1}" -f $baseUri, $filter
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"ipConfigurationTypes" {
$uri = "{0}/ipconfigurationtypes" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"statuses" {
$uri = "{0}/statuses" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"vraIdentifierifier" {
$returnObject = foreach ( $vraId in $vraIdentifier ) {
$uri = "{0}/{1}" -f $baseUri, $vraId
Invoke-ZertoRestRequest -uri $uri
}
}
default {
$uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
} else {
$uri = $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
}