Update MV via GraphQL
This commit is contained in:
@@ -34,6 +34,7 @@ param (
|
|||||||
# SA File must be an absolute path
|
# SA File must be an absolute path
|
||||||
$GlobalSAFile = "C:\Rubrik\scripts\sa.xml"
|
$GlobalSAFile = "C:\Rubrik\scripts\sa.xml"
|
||||||
$logFile = "C:\Rubrik\scripts\claimInstance.log"
|
$logFile = "C:\Rubrik\scripts\claimInstance.log"
|
||||||
|
$mvName = "JP-ZF-SQL"
|
||||||
$sqlInstance = "sqlfcsql\TESTINST"
|
$sqlInstance = "sqlfcsql\TESTINST"
|
||||||
$checkCluster = $true
|
$checkCluster = $true
|
||||||
|
|
||||||
@@ -79,12 +80,12 @@ Write-Log "Connected to Rubrik Security Cloud."
|
|||||||
|
|
||||||
$myHost = Get-RscHost -Name $env:COMPUTERNAME -OsType WINDOWS
|
$myHost = Get-RscHost -Name $env:COMPUTERNAME -OsType WINDOWS
|
||||||
|
|
||||||
$query = New-RscQuery -GqlQuery slaManagedVolumes
|
$query = New-RscQuery -GqlQuery slaManagedVolumes -AddField Nodes.HostDetail, Nodes.SmbShare, Nodes.ClientConfig, Nodes.ClientConfig.BackupScript
|
||||||
$query.var.filter = @(Get-RscType -Name Filter)
|
$query.var.filter = @(Get-RscType -Name Filter)
|
||||||
$query.var.filter[0].field = "NAME_EXACT_MATCH"
|
$query.var.filter[0].field = "NAME_EXACT_MATCH"
|
||||||
$query.var.filter[0].Texts = "JP-ZF-SQL"
|
$query.var.filter[0].Texts = $mvName
|
||||||
|
|
||||||
$query.Field.Nodes = @(Get-RscType -Name ManagedVolume -InitialProperties name, Id,tDetail.Id, hostDetail.Status, hostDetail.Name)
|
#$query.Field.Nodes = @(Get-RscType -Name ManagedVolume -InitialProperties name, Id, hostDetail.Id, hostDetail.Status, hostDetail.Name)
|
||||||
|
|
||||||
$mvDetail = $query.Invoke().nodes[0]
|
$mvDetail = $query.Invoke().nodes[0]
|
||||||
|
|
||||||
@@ -92,6 +93,34 @@ Write-Log "Found Managed Volume: $($mvDetail.Name) (ID: $($mvDetail.Id), Status:
|
|||||||
|
|
||||||
if ($myHost.Id -ne $mvDetail.hostDetail.Id) {
|
if ($myHost.Id -ne $mvDetail.hostDetail.Id) {
|
||||||
Write-Log "WARNING: Host ID ($($myHost.Id)) does not match Managed Volume HostDetail ID ($($mvDetail.hostDetail.Id))."
|
Write-Log "WARNING: Host ID ($($myHost.Id)) does not match Managed Volume HostDetail ID ($($mvDetail.hostDetail.Id))."
|
||||||
|
|
||||||
|
$query = New-RscMutation -GqlMutation updateManagedVolume
|
||||||
|
$query.Var.input = Get-RscType -Name UpdateManagedVolumeInput
|
||||||
|
$query.Var.input.update = Get-RscType -Name ManagedVolumeUpdateInput
|
||||||
|
$query.Var.input.update.config = Get-RscType -Name ManagedVolumePatchConfigInput
|
||||||
|
$query.Var.input.update.slaClientConfig = Get-RscType -Name ManagedVolumePatchSlaClientConfigInput
|
||||||
|
|
||||||
|
$query.Var.input.Id = $mvDetail.Id
|
||||||
|
$query.Var.input.update.Name = $mvName
|
||||||
|
$query.Var.input.update.config.SmbDomainName = $mvDetail.SmbShare.DomainName
|
||||||
|
$query.Var.input.update.config.SmbValidIps = $mvDetail.SmbShare.ValidIps
|
||||||
|
$query.Var.input.update.config.SmbValidUsers = $mvDetail.SmbShare.ValidUsers + $mvDetail.SmbShare.ActiveDirectoryGroups
|
||||||
|
$query.Var.input.update.slaClientConfig.clientHostId = $myHost.Id
|
||||||
|
$query.Var.input.update.slaClientConfig.channelHostMountPaths = $mvDetail.ClientConfig.ChannelHostMountPaths
|
||||||
|
$query.Var.input.update.slaClientConfig.backupScriptCommand = $mvDetail.ClientConfig.BackupScript.ScriptCommand
|
||||||
|
$query.Var.input.update.slaClientConfig.shouldDisablePostBackupScriptOnBackupFailure = $true
|
||||||
|
$query.Var.input.update.slaClientConfig.shouldDisablePostBackupScriptOnBackupSuccess = $true
|
||||||
|
$query.Var.input.update.slaClientConfig.shouldDisablePreBackupScript = $true
|
||||||
|
|
||||||
|
$query.gqlRequest().Variables
|
||||||
|
|
||||||
|
if (-not $dryrun) {
|
||||||
|
$result = $query.Invoke()
|
||||||
|
} else {
|
||||||
|
Write-Log "Dry run mode: Managed Volume update not invoked."
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Log "Host ID ($($myHost.Id)) matches Managed Volume HostDetail ID ($($mvDetail.hostDetail.Id)). No action needed."
|
||||||
}
|
}
|
||||||
|
|
||||||
Disconnect-Rsc
|
Disconnect-Rsc
|
||||||
Reference in New Issue
Block a user