diff --git a/claimInstance.ps1 b/claimInstance.ps1 index 7211371..31444a9 100644 --- a/claimInstance.ps1 +++ b/claimInstance.ps1 @@ -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 \ No newline at end of file