diff --git a/ZertoApiWrapper/Public/Remove-ZertoPeerSite.ps1 b/ZertoApiWrapper/Public/Remove-ZertoPeerSite.ps1 new file mode 100644 index 0000000..6eb8740 --- /dev/null +++ b/ZertoApiWrapper/Public/Remove-ZertoPeerSite.ps1 @@ -0,0 +1,79 @@ +<# .ExternalHelp ./en-us/ZertoApiWrapper-help.xml #> +function Remove-ZertoPeerSite { + [cmdletbinding( + SupportsShouldProcess = $true, + DefaultParameterSetName = "siteIdentifier" + )] + param ( + [Parameter( + HelpMessage = "Identifier of the site to be removed from the connected site", + ParameterSetName = "siteIdentifier", + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, + Mandatory = $true + )] + [Alias("siteId")] + [string[]]$siteIdentifier, + [Parameter( + HelpMessage = "Name of the peer site to be removed from the connected site", + ParameterSetName = "peerSiteName", + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, + Mandatory = $true + )] + [string[]]$peerSiteName, + [Parameter( + HelpMessage = "IP address of the peer site to be removed from the connected site", + ParameterSetName = "hostName", + ValueFromPipeline = $true, + ValueFromPipelineByPropertyName = $true, + Mandatory = $true + )] + [ValidateScript( {$_ -match [IPAddress]$_ })] + [string[]]$hostName, + [Parameter( + HelpMessage = "Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. If this switch is not used, the target replica disks will be deleted" + )] + [switch]$keepTargetDisks + ) + + begin { + $baseUri = "peersites" + $body = @{} + if ( $keepTargetDisks ) { + $body['IsKeepTargetDisks'] = $true + } else { + $body['IsKeepTargetDisks'] = $false + } + } + + process { + switch ( $PSCmdlet.ParameterSetName ) { + "peerSiteName" { + $siteIdentifier = @() + $siteIdentifier = foreach ($site in $peerSiteName) { + $(Get-ZertoPeerSite -peerName $site).siteIdentifier + } + } + + "hostName" { + $siteIdentifier = @() + $siteIdentifier = foreach ($name in $hostName) { + $(Get-ZertoPeerSite -hostName $name).siteIdentifier + } + } + } + + foreach ($id in $siteIdentifier) { + $uri = "{0}/{1}" -f $baseUri, $id + if ($PSCmdlet.ShouldProcess("Removing siteIdentifier $id")) { + Invoke-ZertoRestRequest -uri $uri -body $($body | ConvertTo-Json) -Method "DELETE" + } + } + + } + + end { + # Nothing to do + } +} \ No newline at end of file diff --git a/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml b/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml index d47de4f..0ee3eb7 100644 --- a/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml +++ b/ZertoApiWrapper/Public/en-us/ZertoApiWrapper-help.xml @@ -10021,6 +10021,279 @@ + + + Remove-ZertoPeerSite + Remove + ZertoPeerSite + + Unpair the current site from another site paired to it. + + + + Unpair the current site from another site paired to it. + + + + Remove-ZertoPeerSite + + hostName + + IP address of the peer site to be removed from the connected site + + String[] + + String[] + + + None + + + keepTargetDisks + + Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. If this switch is not used, the target replica disks will be deleted + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Remove-ZertoPeerSite + + keepTargetDisks + + Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. If this switch is not used, the target replica disks will be deleted + + + SwitchParameter + + + False + + + peerSiteName + + Name of the peer site to be removed from the connected site + + String[] + + String[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Remove-ZertoPeerSite + + keepTargetDisks + + Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. If this switch is not used, the target replica disks will be deleted + + + SwitchParameter + + + False + + + siteIdentifier + + Identifier of the site to be removed from the connected site + + String[] + + String[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + hostName + + IP address of the peer site to be removed from the connected site + + String[] + + String[] + + + None + + + keepTargetDisks + + Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. If this switch is not used, the target replica disks will be deleted + + SwitchParameter + + SwitchParameter + + + False + + + peerSiteName + + Name of the peer site to be removed from the connected site + + String[] + + String[] + + + None + + + siteIdentifier + + Identifier of the site to be removed from the connected site + + String[] + + String[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-ZertoPeerSite -siteIdentifier "MySiteIdentifier" + + Unpairs the current site for the site with siteIdentifier "MySiteIdentifier" + + + + -------------------------- Example 2 -------------------------- + PS C:\> Remove-ZertoPeerSite -peerSiteName "Recovery Site" + + Unpairs the current site for the site with site name "Recovery Site" + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-ZertoPeerSite -hostName "192.168.1.100" + + Unpairs the current site for the site with ip address "192.168.1.100" + + + + + + Online Version: + https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/Remove-ZertoPeerSite.md + + + Zerto REST API Peer Site End Point Documentation + http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/index.html#page/RestfulAPIs%2FStatusAPIs.5.044.html%23 + + + Remove-ZertoVpg diff --git a/docs/Remove-ZertoPeerSite.md b/docs/Remove-ZertoPeerSite.md new file mode 100644 index 0000000..142d574 --- /dev/null +++ b/docs/Remove-ZertoPeerSite.md @@ -0,0 +1,164 @@ +--- +external help file: ZertoApiWrapper-help.xml +Module Name: ZertoApiWrapper +online version: https://github.com/wcarroll/ZertoApiWrapper/blob/master/docs/Remove-ZertoPeerSite.md +schema: 2.0.0 +--- + +# Remove-ZertoPeerSite + +## SYNOPSIS + +Unpair the current site from another site paired to it. + +## SYNTAX + +### siteIdentifier (Default) +``` +Remove-ZertoPeerSite -siteIdentifier [-keepTargetDisks] [-WhatIf] [-Confirm] [] +``` + +### peerSiteName +``` +Remove-ZertoPeerSite -peerSiteName [-keepTargetDisks] [-WhatIf] [-Confirm] [] +``` + +### hostName +``` +Remove-ZertoPeerSite -hostName [-keepTargetDisks] [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Unpair the current site from another site paired to it. + +## EXAMPLES + +### Example 1 +```powershell +PS C:\> Remove-ZertoPeerSite -siteIdentifier "MySiteIdentifier" +``` + +Unpairs the current site for the site with siteIdentifier "MySiteIdentifier" + +### Example 2 +```powershell +PS C:\> Remove-ZertoPeerSite -peerSiteName "Recovery Site" +``` + +Unpairs the current site for the site with site name "Recovery Site" + +### Example 1 +```powershell +PS C:\> Remove-ZertoPeerSite -hostName "192.168.1.100" +``` + +Unpairs the current site for the site with ip address "192.168.1.100" + +## PARAMETERS + +### -hostName +IP address of the peer site to be removed from the connected site + +```yaml +Type: String[] +Parameter Sets: hostName +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -keepTargetDisks +Specify this switch to Keep the target replica disks for any VPGs replicating between the sites as the VPGs will be deleted by unpairing the sites. +If this switch is not used, the target replica disks will be deleted + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: False +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -peerSiteName +Name of the peer site to be removed from the connected site + +```yaml +Type: String[] +Parameter Sets: peerSiteName +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -siteIdentifier +Identifier of the site to be removed from the connected site + +```yaml +Type: String[] +Parameter Sets: siteIdentifier +Aliases: siteId + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByPropertyName, ByValue) +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. +For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +## NOTES + +## RELATED LINKS + +[Zerto REST API Peer Site End Point Documentation](http://s3.amazonaws.com/zertodownload_docs/Latest/Zerto%20Virtual%20Replication%20Zerto%20Virtual%20Manager%20%28ZVM%29%20-%20vSphere%20Online%20Help/index.html#page/RestfulAPIs%2FStatusAPIs.5.044.html%23) \ No newline at end of file