Refactor Get-ZertoVpgSetting

Update for Pipeline input and switch processing.
This commit is contained in:
Wes Carroll
2019-04-28 13:16:27 -04:00
parent 27706f402c
commit 8065598534
+105 -27
View File
@@ -9,6 +9,7 @@ function Get-ZertoVpgSetting {
ParameterSetName = "vpgSettingsIdentifier", ParameterSetName = "vpgSettingsIdentifier",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
@@ -16,6 +17,7 @@ function Get-ZertoVpgSetting {
ParameterSetName = "backup", ParameterSetName = "backup",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
@@ -23,6 +25,7 @@ function Get-ZertoVpgSetting {
ParameterSetName = "dayOfWeek", ParameterSetName = "dayOfWeek",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
@@ -30,6 +33,7 @@ function Get-ZertoVpgSetting {
ParameterSetName = "retentionPeriod", ParameterSetName = "retentionPeriod",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
@@ -37,6 +41,7 @@ function Get-ZertoVpgSetting {
ParameterSetName = "schedulerPeriod", ParameterSetName = "schedulerPeriod",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
@@ -44,12 +49,14 @@ function Get-ZertoVpgSetting {
ParameterSetName = "basic", ParameterSetName = "basic",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true, ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
[Parameter( [Parameter(
ParameterSetName = "bootGroup", ParameterSetName = "bootGroup",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -57,6 +64,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "journal", ParameterSetName = "journal",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -64,6 +72,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "networks", ParameterSetName = "networks",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -71,6 +80,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "priority", ParameterSetName = "priority",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -78,6 +88,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "recovery", ParameterSetName = "recovery",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -85,6 +96,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "scripting", ParameterSetName = "scripting",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -92,6 +104,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "vms", ParameterSetName = "vms",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -99,6 +112,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "vmIdentifier", ParameterSetName = "vmIdentifier",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -106,6 +120,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "nics", ParameterSetName = "nics",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -113,6 +128,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "nicIdentifier", ParameterSetName = "nicIdentifier",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -120,6 +136,7 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "volumes", ParameterSetName = "volumes",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
@@ -127,13 +144,14 @@ function Get-ZertoVpgSetting {
[Parameter( [Parameter(
ParameterSetName = "volumeIdentifier", ParameterSetName = "volumeIdentifier",
ValueFromPipeline = $true, ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true,
ValueFromRemainingArguments = $true, ValueFromRemainingArguments = $true,
Mandatory = $true, Mandatory = $true,
HelpMessage = "The identifier of the VPG settings object for which information is retrieved." HelpMessage = "The identifier of the VPG settings object for which information is retrieved."
)] )]
[ValidateNotNullOrEmpty()] [ValidateNotNullOrEmpty()]
[Alias("vpgSettingsId", "settingsId")] [Alias("vpgSettingsId", "settingsId")]
[string]$vpgSettingsIdentifier, [string[]]$vpgSettingsIdentifier,
[Parameter( [Parameter(
ParameterSetName = "backup", ParameterSetName = "backup",
Mandatory = $true, Mandatory = $true,
@@ -266,38 +284,98 @@ function Get-ZertoVpgSetting {
begin { begin {
$baseUri = "vpgSettings" $baseUri = "vpgSettings"
$returnObject = @()
} }
#TODO - Update to Switch Logic
process { process {
if ( $PSCmdlet.ParameterSetName -eq "main" ) { switch ( $PSCmdlet.ParameterSetName ) {
$returnObject = Invoke-ZertoRestRequest -uri $baseUri "main" {
} elseif ($PSCmdlet.ParameterSetName -eq "vpgSettingsIdentifier") { Invoke-ZertoRestRequest -uri $baseUri
$uri = "{0}/{1}" -f $baseUri, $vpgSettingsIdentifier break
$returnObject = Invoke-ZertoRestRequest -uri $uri }
} elseif ( $PSCmdlet.ParameterSetName -eq "dayOfWeek" -or $PSCmdlet.ParameterSetName -eq "retentionPeriod" -or $PSCmdlet.ParameterSetName -eq "schedulerPeriod" ) {
$uri = "{0}/{1}/backup/{2}" -f $baseUri, $vpgSettingsIdentifier, $PSCmdlet.ParameterSetName.ToLower() "vpgSettingsIdentifier" {
$returnObject = Invoke-ZertoRestRequest -uri $uri foreach ($id in $vpgSettingsIdentifier) {
} elseif ( $PSCmdlet.ParameterSetName -eq "nics" -or $PSCmdlet.ParameterSetName -eq "volumes" ) { $uri = "{0}/{1}" -f $baseUri, $id
$uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower() Invoke-ZertoRestRequest -uri $uri
$returnObject = Invoke-ZertoRestRequest -uri $uri }
} elseif ( $PSCmdlet.ParameterSetName -eq "vmIdentifier" ) { break
$uri = "{0}/{1}/vms/{2}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier }
$returnObject = Invoke-ZertoRestRequest -uri $uri
} elseif ( $PSCmdlet.ParameterSetName -eq "nicIdentifier" ) { "dayOfWeek" {
$uri = "{0}/{1}/vms/{2}/nics/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $nicIdentifier foreach ($id in $vpgSettingsIdentifier) {
$returnObject = Invoke-ZertoRestRequest -uri $uri $uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower()
} elseif ( $PSCmdlet.ParameterSetName -eq "volumeIdentifier" ) { Invoke-ZertoRestRequest -uri $uri
$uri = "{0}/{1}/vms/{2}/volumes/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $volumeIdentifier }
$returnObject = Invoke-ZertoRestRequest -uri $uri break
} else { }
$uri = "{0}/{1}/{2}" -f $baseUri, $vpgSettingsIdentifier, $PSCmdlet.ParameterSetName.ToLower()
$returnObject = Invoke-ZertoRestRequest -uri $uri "retentionPeriod" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower()
Invoke-ZertoRestRequest -uri $uri
}
break
}
"schedulerPeriod" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/backup/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower()
Invoke-ZertoRestRequest -uri $uri
}
break
}
"nics" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $id, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower()
Invoke-ZertoRestRequest -uri $uri
}
break
}
"volumes" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $id, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower()
Invoke-ZertoRestRequest -uri $uri
}
break
}
"vmIdentifier" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/vms/{2}" -f $baseUri, $id, $vmIdentifier
Invoke-ZertoRestRequest -uri $uri
}
break
}
"nicIdentifier" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/vms/{2}/nics/{3}" -f $baseUri, $id, $vmIdentifier, $nicIdentifier
Invoke-ZertoRestRequest -uri $uri
}
break
}
"volumeIdentifier" {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/vms/{2}/volumes/{3}" -f $baseUri, $id, $vmIdentifier, $volumeIdentifier
Invoke-ZertoRestRequest -uri $uri
}
break
}
default {
foreach ($id in $vpgSettingsIdentifier) {
$uri = "{0}/{1}/{2}" -f $baseUri, $id, $PSCmdlet.ParameterSetName.ToLower()
Invoke-ZertoRestRequest -uri $uri
}
break
}
} }
} }
end { end {
return $returnObject #Nothing to do!
} }
} }