Refactor Get-ZertoVpgSetting
Update for Pipeline input and switch processing.
This commit is contained in:
@@ -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!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user