Update MV via GraphQL

This commit is contained in:
2025-09-09 18:13:45 +01:00
parent fd2484295d
commit 73fdffaa57

View File

@@ -34,6 +34,7 @@ param (
# SA File must be an absolute path
$GlobalSAFile = "C:\Rubrik\scripts\sa.xml"
$logFile = "C:\Rubrik\scripts\claimInstance.log"
$mvName = "JP-ZF-SQL"
$sqlInstance = "sqlfcsql\TESTINST"
$checkCluster = $true
@@ -79,12 +80,12 @@ Write-Log "Connected to Rubrik Security Cloud."
$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[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]
@@ -92,6 +93,34 @@ Write-Log "Found Managed Volume: $($mvDetail.Name) (ID: $($mvDetail.Id), Status:
if ($myHost.Id -ne $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