Initial Commit to Dedicated Repo
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
function Connect-ZertoServer {
|
||||
[cmdletbinding(
|
||||
SupportsShouldProcess = $false
|
||||
)]
|
||||
param(
|
||||
[Parameter(
|
||||
Mandatory = $true,
|
||||
HelpMessage = "IP address or FQDN of your Zerto Management Server"
|
||||
)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$zertoServer,
|
||||
[string]$zertoPort = "9669",
|
||||
[Parameter(
|
||||
Mandatory = $true,
|
||||
HelpMessage = "Valid credentials to connect to the Zerto Management Server"
|
||||
)]
|
||||
[System.Management.Automation.PSCredential]
|
||||
$credential
|
||||
)
|
||||
$zertoConnectionInformation = @{"zertoServer" = $zertoServer; "zertoPort" = $zertoPort; "LastAction" = $(get-date).Ticks}
|
||||
Set-Item Env:zertoConnectionInformation -Value ($zertoConnectionInformation | convertto-json -Compress)
|
||||
$body = '{"AuthenticationMethod": "1"}'
|
||||
$uri = "session/add"
|
||||
$results = Invoke-ZertoRestRequest -uri $uri -credential $credential -returnHeaders -body $body -method POST
|
||||
$zertoAuthorizationHeaders = @{"x-zerto-session" = $results.Headers['x-zerto-session'][0].ToString(); "Accept" = "application/json"}
|
||||
Set-Item Env:zertoAuthorizationHeaders -Value ($zertoAuthorizationHeaders | convertto-json -Compress)
|
||||
return $zertoAuthorizationHeaders
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
function Disconnect-ZertoServer {
|
||||
[cmdletbinding()]
|
||||
$uri = "session"
|
||||
Invoke-ZertoRestRequest -uri $uri -method DELETE
|
||||
Remove-Item Env:zertoAuthorizationHeaders
|
||||
Remove-Item Env:zertoConnectionInformation
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
function Get-ZertoAlert {
|
||||
[cmdletbinding( defaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "alertId", Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true )]
|
||||
[string[]]$alertId,
|
||||
[Parameter( ParameterSetName = "entities", Mandatory = $true )]
|
||||
[switch]$entities,
|
||||
[Parameter( ParameterSetName = "helpIdentifiers", Mandatory = $true )]
|
||||
[switch]$helpIdentifiers,
|
||||
[Parameter( ParameterSetName = "levels", Mandatory = $true )]
|
||||
[switch]$levels,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$startDate,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$endDate,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$siteIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$zorgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$level,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$helpIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$entity,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[switch]$isDismissed
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "alerts"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$uri = "{0}" -f $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"alertId" {
|
||||
foreach ( $id in $alertId ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $alertId
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
default {
|
||||
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
function Get-ZertoDatastore {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "datastoreIdentifier" )]
|
||||
[string[]]$datastoreIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "datastores"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
if ( $PSCmdlet.ParameterSetName -eq "main" ) {
|
||||
$uri = "{0}" -f $baseUri
|
||||
$result = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($result) | Out-Null
|
||||
} else {
|
||||
foreach ( $id in $datastoreIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$result = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($result) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
function Get-ZertoEvent {
|
||||
[cmdletbinding( defaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$startDate,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$endDate,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpg,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$eventType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$siteName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$siteIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$zorgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$entityType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$userName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$category,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$eventCategory,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$alertIdentifier,
|
||||
[Parameter( ParameterSetName = "eventId", Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true )]
|
||||
[string[]]$eventId,
|
||||
[Parameter( ParameterSetName = "categories", Mandatory = $true )]
|
||||
[switch]$categories,
|
||||
[Parameter( ParameterSetName = "entities", Mandatory = $true )]
|
||||
[switch]$entities,
|
||||
[Parameter( ParameterSetName = "types", Mandatory = $true )]
|
||||
[switch]$types
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "events"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$uri = "{0}" -f $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"eventId" {
|
||||
foreach ( $id in $eventId ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
default {
|
||||
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
function Get-ZertoLicense {
|
||||
[cmdletbinding()]
|
||||
$uri = "license"
|
||||
Invoke-ZertoRestRequest -uri $uri
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
function Get-ZertoLocalSite {
|
||||
[cmdletbinding()]
|
||||
param(
|
||||
[switch]$pairingstatuses
|
||||
)
|
||||
$uri = "localsite"
|
||||
if ($pairingstatuses) {
|
||||
$uri = "/{0}/pairingstatuses" -f $uri
|
||||
}
|
||||
Invoke-ZertoRestRequest -uri $uri
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
function Get-ZertoPeerSite {
|
||||
[cmdletbinding( defaultParameterSetName = "main" )]
|
||||
param (
|
||||
[Parameter ( ParameterSetName = "pairingStatuses", Mandatory = $true )]
|
||||
[switch]$pairingStatuses,
|
||||
[Parameter ( ParameterSetName = "siteIdentifier",
|
||||
Mandatory = $true,
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true )]
|
||||
[string[]]$siteIdentifier,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$peerName,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$paringStatus,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$location,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$hostName,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$port
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "peersites"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$uri = "{0}" -f $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"siteIdentifier" {
|
||||
foreach ( $id in $siteIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
default {
|
||||
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
function Get-ZertoProtectedVm {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param (
|
||||
[Parameter( ParameterSetName = "vmIdentifier", Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true )]
|
||||
[string[]]$vmIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vmName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$status,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$substatus,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$organizationName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$priority,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedSiteType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoverySiteType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedSiteIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoverySiteIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "vms"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"vmIdentifier" {
|
||||
foreach ( $id in $vmIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = New-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
function Get-ZertoRecoveryReport {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$startTime,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$endTime,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$pageNumber,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$pageSize,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoveryType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$state
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "reports/recovery"
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = New-ZertoRestRequest -uri $uri
|
||||
}
|
||||
|
||||
default {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $results
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
function Get-ZertoResourcesReport {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$startTime,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$endTime,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$pageNumber,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$pageSize,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$zorgName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vmName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedSiteName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedClusterName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedHostName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedOrgVdc,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedVdcOrg,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoverySiteName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoveryClusterName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoveryHostName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoveryOrgVdc,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoveryVdcOrg
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "reports/resources"
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = New-ZertoRestRequest -uri $uri
|
||||
}
|
||||
|
||||
default {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $results
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
function Get-ZertoServiceProfile {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param (
|
||||
[Parameter( ParameterSetName = "siteIdentifier" )]
|
||||
[string]$siteIdentifier,
|
||||
[Parameter( ParameterSetName = "serviceProfileId" )]
|
||||
[string[]]$serviceProfileId
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "serviceprofiles"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"siteIdentifier" {
|
||||
$uri = "{0}?site={1}" -f $baseUri, $siteIdentifier
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"serviceProfileId" {
|
||||
foreach ( $id in $serviceProfileId ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
function Get-ZertoTask {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param (
|
||||
[Parameter( ParameterSetName = "taskIdentifier" )]
|
||||
[string[]]$taskIdentifier,
|
||||
[Parameter( ParameterSetName = "types" )]
|
||||
[switch]$types,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$startedBeforeDate,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$startedAfterDate,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$completedAfterDate,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$completedBeforeDate,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$type,
|
||||
[Parameter ( ParameterSetName = "filter" )]
|
||||
[string]$status
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "tasks"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = New-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"taskIdentifier" {
|
||||
foreach ( $id in $taskIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
function Get-ZertoUnprotectedVm {
|
||||
[cmdletbinding()]
|
||||
$uri = "virtualizationsites/{0}/vms" -f $(Get-ZertoLocalSite).siteidentifier
|
||||
Invoke-ZertoRestRequest -uri $uri
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
function Get-ZertoVirtualizationSite {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "siteIdentifier", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "datastoreClusters", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "datastores", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "hostClusters", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "hosts", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "networks", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "resourcePools", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "vms", Mandatory = $true )]
|
||||
[string[]]$siteIdentifiers,
|
||||
[Parameter( ParameterSetName = "devices", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "folders", Mandatory = $true )]
|
||||
[string]$siteIdentifier,
|
||||
[Parameter( ParameterSetName = "datastoreClusters", Mandatory = $true )]
|
||||
[switch]$datastoreClusters,
|
||||
[Parameter( ParameterSetName = "datastores", Mandatory = $true )]
|
||||
[switch]$datastores,
|
||||
[Parameter( ParameterSetName = "devices", Mandatory = $true )]
|
||||
[switch]$devices,
|
||||
[Parameter( ParameterSetName = "devices", Mandatory = $false )]
|
||||
[Parameter( ParameterSetName = "hosts", Mandatory = $false )]
|
||||
[string]$hostIdentifier,
|
||||
[Parameter( ParameterSetName = "folders", Mandatory = $true )]
|
||||
[switch]$folders,
|
||||
[Parameter( ParameterSetName = "hostClusters", Mandatory = $true )]
|
||||
[switch]$hostClusters,
|
||||
[Parameter( ParameterSetName = "hosts", Mandatory = $true )]
|
||||
[switch]$hosts,
|
||||
[Parameter( ParameterSetName = "networks", Mandatory = $true )]
|
||||
[switch]$networks,
|
||||
[Parameter( ParameterSetName = "resourcePools", Mandatory = $true )]
|
||||
[switch]$resourcePools,
|
||||
[Parameter( ParameterSetName = "vms", Mandatory = $true )]
|
||||
[switch]$vms
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "virtualizationsites"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"devices" {
|
||||
foreach ( $id in $siteIdentifier ) {
|
||||
if ( $PSBoundParameters.Contains( "hostIdentifier" ) ) {
|
||||
$uri = "{0}/{1}/devices?hostIdentifier={2}" -f $baseUri, $siteIdentifier, $hostIdentifier
|
||||
} else {
|
||||
$uri = "{0}/{1}/devices" -f $baseUri, $siteIdentifier
|
||||
}
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
"hosts" {
|
||||
if ( $PSBoundParameters.Contains( "hostIdentifier" ) ) {
|
||||
$uri = "{0}/{1}/hosts/{2}" -f $baseUri, $siteIdentifier, $hostIdentifier
|
||||
} else {
|
||||
$uri = "{0}/{1}/hosts" -f $baseUri, $siteIdentifier
|
||||
}
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
|
||||
"siteIdentifier" {
|
||||
foreach ( $id in $siteIdentifiers ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
foreach ( $id in $siteIdentifiers ) {
|
||||
$uri = "{0}/{1}/{2}" -f $baseUri, $siteIdentifier, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
function Get-ZertoVolume {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$volumeType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$vpgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$datastoreIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedVmIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$owningVmIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "volumes"
|
||||
}
|
||||
|
||||
process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
}
|
||||
|
||||
default {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $results
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
function Get-ZertoVpg {
|
||||
[cmdletbinding( DefaultParameterSetName = "main" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "protectionGroupIdentifier", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "checkpoints", Mandatory = $true )]
|
||||
[Parameter( ParameterSetName = "stats", Mandatory = $true )]
|
||||
[string[]]$protectionGroupIdentifier,
|
||||
[Parameter( ParameterSetName = "checkpoints", Mandatory = $true )]
|
||||
[switch]$checkpoints,
|
||||
[Parameter ( ParameterSetName = "checkpoints")]
|
||||
[string]$startDate,
|
||||
[Parameter ( ParameterSetName = "checkpoints")]
|
||||
[string]$endDate,
|
||||
[Parameter( ParameterSetName = "stats", Mandatory = $true )]
|
||||
[switch]$checkpointsStats,
|
||||
[Parameter( ParameterSetName = "entityTypes", Mandatory = $true )]
|
||||
[switch]$entityTypes,
|
||||
[Parameter( ParameterSetName = "failoverCommitPolicies", Mandatory = $true )]
|
||||
[switch]$failoverCommitPolicies,
|
||||
[Parameter( ParameterSetName = "failoverShutdownPolicies", Mandatory = $true )]
|
||||
[switch]$failoverShutdownPolicies,
|
||||
[Parameter( ParameterSetName = "priorities", Mandatory = $true )]
|
||||
[switch]$priorities,
|
||||
[Parameter( ParameterSetName = "retentionPolicies", Mandatory = $true )]
|
||||
[switch]$retentionPolicies,
|
||||
[Parameter( ParameterSetName = "statuses", Mandatory = $true )]
|
||||
[switch]$statuses,
|
||||
[Parameter( ParameterSetName = "subStatuses", Mandatory = $true )]
|
||||
[switch]$subStatuses,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$name,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$status,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$subStatus,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedSiteType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoverySiteType,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$protectedSiteIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$recoverySiteIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$organizationName,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$zorgIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$priority,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$serviceProfileIdentifier,
|
||||
[Parameter( ParameterSetName = "filter" )]
|
||||
[string]$backupEnabled
|
||||
)
|
||||
begin {
|
||||
$baseUri = "vpgs"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
Process {
|
||||
switch ( $PSCmdlet.ParameterSetName ) {
|
||||
"main" {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results) | Out-Null
|
||||
}
|
||||
|
||||
"protectionGroupIdentifier" {
|
||||
foreach ( $vpgId in $protectionGroupIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $vpgId
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
"checkpoints" {
|
||||
$filter = $false
|
||||
if ( $PSBoundParameters.Contains("startDate") -or $PSBoundParameters.Contains("endDate") ) {
|
||||
$filter = $true
|
||||
$filterTable = @{}
|
||||
foreach ( $key in $PSBoundParameters.Keys ) {
|
||||
if ( $key -eq "startDate" -or $key -eq "endDate") {
|
||||
$filterTable[$key] = $PSBoundParameters[$key]
|
||||
}
|
||||
}
|
||||
$filter = New-ZertoApiFilter -filterTable $filterTable
|
||||
}
|
||||
foreach ( $id in $protectionGroupIdentifier ) {
|
||||
if ( $filter ) {
|
||||
$uri = "{0}/{1}/checkpoints{2}" -f $baseUri, $id, $filter
|
||||
} else {
|
||||
$uri = "{0}/{1}/checkpoints" -f $baseUri, $id
|
||||
}
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
"stats" {
|
||||
foreach ( $id in $protectionGroupIdentifier ) {
|
||||
$uri = "{0}/{1}/checkpoints/stats" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
|
||||
"filter" {
|
||||
$filter = New-ZertoApiFilter -filterTable $PSBoundParameters
|
||||
$uri = "{0}{1}" -f $baseUri, $filter
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
|
||||
default {
|
||||
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
End {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
function Get-ZertoVpgSetting {
|
||||
[cmdletbinding(
|
||||
DefaultParameterSetName = "default",
|
||||
SupportsShouldProcess = $false
|
||||
)]
|
||||
param(
|
||||
[Parameter(
|
||||
ParameterSetName = "vpgSettingsIdentifier",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "backup",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "dayOfWeek",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "retentionPeriod",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "schedulerPeriod",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "basic",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromPipelineByPropertyName = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "bootGroup",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "journal",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "networks",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "priority",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "recovery",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "scripting",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "vms",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "vmIdentifier",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "nics",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "nicIdentifier",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "volumes",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "volumeIdentifier",
|
||||
ValueFromPipeline = $true,
|
||||
ValueFromRemainingArguments = $true,
|
||||
Mandatory = $true
|
||||
)]
|
||||
[string]$vpgSettingsIdentifier,
|
||||
[Parameter(
|
||||
ParameterSetName = "backup",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$backup,
|
||||
[Parameter(
|
||||
ParameterSetName = "dayOfWeek",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$dayOfWeek,
|
||||
[Parameter(
|
||||
ParameterSetName = "retentionPeriod",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$retentionPeriod,
|
||||
[Parameter(
|
||||
ParameterSetName = "schedulerPeriod",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$schedulerPeriod,
|
||||
[Parameter(
|
||||
ParameterSetName = "basic",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$basic,
|
||||
[Parameter(
|
||||
ParameterSetName = "bootGroup",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$bootgroup,
|
||||
[Parameter(
|
||||
ParameterSetName = "journal",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$journal,
|
||||
[Parameter(
|
||||
ParameterSetName = "networks",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$networks,
|
||||
[Parameter(
|
||||
ParameterSetName = "priority",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$priority,
|
||||
[Parameter(
|
||||
ParameterSetName = "recovery",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$rcovery,
|
||||
[Parameter(
|
||||
ParameterSetName = "scripting",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$scripting,
|
||||
[Parameter(
|
||||
ParameterSetName = "vms",
|
||||
Mandatory = $true )]
|
||||
[switch]$vms,
|
||||
[Parameter(
|
||||
ParameterSetName = "vmIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "nics",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "volumes",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "nicIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[Parameter(
|
||||
ParameterSetName = "volumeIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[string]$vmIdentifier,
|
||||
[Parameter(
|
||||
ParameterSetName = "nics",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$nics,
|
||||
[Parameter(
|
||||
ParameterSetName = "nicIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[string]$nicIdentifier,
|
||||
[Parameter(
|
||||
ParameterSetName = "volumes",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$volumes,
|
||||
[Parameter(
|
||||
ParameterSetName = "volumeIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[string]$volumeIdentifier<#,
|
||||
[Parameter(
|
||||
ParameterSetName = "vpgSettingsIdentifier",
|
||||
Mandatory = $true
|
||||
)]
|
||||
[switch]$allSettings #>
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "vpgSettings"
|
||||
}
|
||||
|
||||
process {
|
||||
if ( $PSCmdlet.ParameterSetName -eq "default" ) {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
} elseif ($PSCmdlet.ParameterSetName -eq "vpgSettingsIdentifier") {
|
||||
$uri = "{0}/{1}" -f $baseUri, $vpgSettingsIdentifier
|
||||
$results = 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()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "nics" -or $PSCmdlet.ParameterSetName -eq "volumes" ) {
|
||||
$uri = "{0}/{1}/vms/{2}/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "vmIdentifier" ) {
|
||||
$uri = "{0}/{1}/vms/{2}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "nicIdentifier" ) {
|
||||
$uri = "{0}/{1}/vms/{2}/nics/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $nicIdentifier
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "volumeIdentifier" ) {
|
||||
$uri = "{0}/{1}/vms/{2}/volumes/{3}" -f $baseUri, $vpgSettingsIdentifier, $vmIdentifier, $volumeIdentifier
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
} else {
|
||||
$uri = "{0}/{1}/{2}" -f $baseUri, $vpgSettingsIdentifier, $PSCmdlet.ParameterSetName.ToLower()
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $results
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
function Get-ZertoVra {
|
||||
[cmdletbinding(
|
||||
DefaultParameterSetName = "Default"
|
||||
)]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "ipConfig" )]
|
||||
[switch]$ipconfigurationtypes,
|
||||
[Parameter( ParameterSetName = "Statuses" )]
|
||||
[switch]$statuses,
|
||||
[Parameter( ParameterSetName = "vraIdentifier" )]
|
||||
[string[]]$vraIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "vras"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
if ( $ipconfigurationtypes ) {
|
||||
$uri = "{0}/ipconfigurationtypes" -f $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject = $results
|
||||
} elseif ( $statuses ) {
|
||||
$uri = "{0}/statuses" -f $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject = $results
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "vraIdentifierifier" ) {
|
||||
foreach ( $vraId in $vraIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $vraId
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
} else {
|
||||
$uri = $baseUri
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject = $results
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
function Get-ZertoZorg {
|
||||
[cmdletbinding( DefaultParameterSetName = "default" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "zorgIdentifier" )]
|
||||
[string[]]$zorgIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "zorgs"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
if ( $PSCmdlet.ParameterSetName -eq "default" ) {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results)
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "zorgIdentifier" ) {
|
||||
foreach ( $id in $zorgIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
function Get-ZertoZsspSession {
|
||||
[cmdletbinding( DefaultParameterSetName = "default" )]
|
||||
param(
|
||||
[Parameter( ParameterSetName = "zsspSessionIdentifier" )]
|
||||
[string[]]$zsspSessionIdentifier
|
||||
)
|
||||
|
||||
begin {
|
||||
$baseUri = "zsspSessionIdentifier"
|
||||
$returnObject = [System.Collections.ArrayList]@()
|
||||
}
|
||||
|
||||
process {
|
||||
if ( $PSCmdlet.ParameterSetName -eq "default" ) {
|
||||
$results = Invoke-ZertoRestRequest -uri $baseUri
|
||||
$returnObject.Add($results)
|
||||
} elseif ( $PSCmdlet.ParameterSetName -eq "zsspSessionIdentifier" ) {
|
||||
foreach ( $id in $zsspSessionIdentifier ) {
|
||||
$uri = "{0}/{1}" -f $baseUri, $id
|
||||
$results = Invoke-ZertoRestRequest -uri $uri
|
||||
$returnObject.Add($results)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end {
|
||||
return $returnObject
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
function Invoke-ZertoRestRequest {
|
||||
[cmdletbinding()]
|
||||
param(
|
||||
[string]$method = "GET",
|
||||
[string]$uri,
|
||||
[string]$apiVersion = "v1",
|
||||
[string]$body,
|
||||
[string]$contentType = "application/json",
|
||||
[System.Management.Automation.PSCredential]
|
||||
$credential,
|
||||
[switch]$returnHeaders
|
||||
)
|
||||
$callerErrorActionPreference = $ErrorActionPreference
|
||||
if ( Test-Path Env:zertoConnectionInformation ) {
|
||||
$zertoConnectionInformation = $(Get-Item -Path Env:zertoConnectionInformation).value | ConvertFrom-Json
|
||||
} else {
|
||||
Write-Error -Message "Zerto Connection does not Exist. Please run Connect-ZertoServer first to establish a connection"
|
||||
break
|
||||
}
|
||||
if ( Test-Path Env:zertoAuthorizationHeaders ) {
|
||||
$json = $(Get-Item Env:zertoAuthorizationHeaders).value | ConvertFrom-Json
|
||||
$headers = @{}
|
||||
$json.psobject.properties | ForEach-Object { $headers[$_.Name] = $_.Value }
|
||||
} else {
|
||||
$headers = $null
|
||||
}
|
||||
if ( (Test-Path Env:zertoAuthorizationHeaders) -and $([datetime]$zertoConnectionInformation.lastAction).addMinutes(30) -lt $(get-date) ) {
|
||||
Write-Error -Message "Authorization Token has Expired or Does not exist in Env variables. Please re-authorize to the Zerto Virtual Manager"
|
||||
break
|
||||
} else {
|
||||
$submittedURI = "https://{0}:{1}/{2}/{3}" -f $zertoConnectionInformation.zertoServer, $zertoConnectionInformation.zertoPort, $apiVersion, $uri
|
||||
try {
|
||||
$lastAction = (get-date).Ticks
|
||||
$apiRequestResults = Invoke-RestMethod -Uri $submittedURI -Headers $headers -Method $method -Body $body -ContentType $contentType -Credential $credential -SkipCertificateCheck -ResponseHeadersVariable responseHeaders -TimeoutSec 100
|
||||
$zertoConnectionInformation.lastAction = $lastAction
|
||||
Set-Item -Path Env:zertoConnectionInformation -Value $($zertoConnectionInformation | ConvertTo-Json -Compress)
|
||||
} catch {
|
||||
Write-Error -ErrorRecord $_ -ErrorAction $callerErrorActionPreference
|
||||
}
|
||||
if (-not $returnHeaders) {
|
||||
return $apiRequestResults
|
||||
} else {
|
||||
$apiRequestAndHeaderResults = New-Object -TypeName psobject
|
||||
$apiRequestAndHeaderResults | Add-Member -MemberType NoteProperty -Name "apiRequestResults" -Value $apiRequestResults
|
||||
$apiRequestAndHeaderResults | Add-Member -MemberType NoteProperty -Name "Headers" -Value $responseHeaders
|
||||
return $apiRequestAndHeaderResults
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
function New-ZertoApiFilter {
|
||||
[cmdletbinding()]
|
||||
param(
|
||||
[Parameter( Mandatory = $true )]
|
||||
[hashtable]$filterTable
|
||||
)
|
||||
[string]$returnString = "?"
|
||||
|
||||
foreach ( $key in $filterTable.Keys ) {
|
||||
if ($returnString.Length -gt 1) {
|
||||
$returnString = "{0}&{1}={2}" -f $returnString, $key, $filterTable[$key]
|
||||
} else {
|
||||
$returnString = "{0}{1}={2}" -f $returnString, $key, $filterTable[$key]
|
||||
}
|
||||
}
|
||||
|
||||
return $returnString
|
||||
}
|
||||
Reference in New Issue
Block a user