<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: OCUM 6.3 custom events functionality? in Active IQ Unified Manager Discussions</title>
    <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115638#M20556</link>
    <description>&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately i don't think OCUM enables you to achieve the result your customer wants however if they are using WFA...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assuming your customer wants to ensure that all data volumes on all vservers on all clusters in their environment are always thin provisioned then here is a WFA workflow that can be scheduled on a daily basis to query the WFA database and ensure any thick provisioned volumes have the volume option of "space-guarentee" set from "volume" to "none".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the powershell code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;param(&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$True, HelpMessage="The name of the volume option to set")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$VolumeOptionName,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$True, HelpMessage="The value of the volume option to set")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$VolumeOptionValue,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$False, HelpMessage="The maximum number of ZAPI re-try attempts")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Int]$ZapiRetryCount&lt;BR /&gt;)&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a query to select all thick provisined volumes on all clusters and vservers.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$query = "SELECT cluster.primary_address AS 'primary_address', cluster.name AS 'cluster_name', vserver.name AS 'vserver_name', volume.name AS 'volume_name' FROM cm_storage.cluster, cm_storage.vserver, cm_storage.volume WHERE vserver.cluster_id = cluster.id AND volume.vserver_id = vserver.id AND volume.space_guarantee = 'volume' AND volume.junction_path &amp;lt;&amp;gt; '/';"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Invoke the MySQL query to select the clusters.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;$results = Invoke-MySqlQuery -Query $query&lt;BR /&gt;Get-WFALogger -Info -Message "Invoked SQL Query`: $query"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Process each cluster.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[Int]$errorCount = 0&lt;BR /&gt;ForEach($result In $results){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Do{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$clusterPrimaryAddress = $result.primary_address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$clusterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.cluster_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$vserverName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.vserver_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$volumeName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.volume_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If(($clusterPrimaryAddress -ne "") -And ($clusterName -ne "") -And ($vserverName -ne "") -And ($volumeName -ne "")){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Processing volume ""$volumeName"" on vserver ""$VserverName"" on cluster ""$ClusterName"" primary address ""$clusterPrimaryAddress"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Connect to the cluster.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "connecting to cluster name ""$clusterName"" primary address ""$clusterPrimaryAddress"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Connect-WfaCluster $clusterPrimaryAddress&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Create the command to set the volume option.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command = "Set-NcVolOption -Name $VolumeName -Key $VolumeOptionName -Value $VolumeOptionValue -VserverContext $VserverName "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If($ZapiRetryCount){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command += " -ZapiRetryCount $ZapiRetryCount "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command += " -ErrorAction Stop"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Set the volume option.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Invoke-Expression -Command $command -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Executed Command`: $command"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Set volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" for volume ""$VolumeName"" on vserver ""$VserverName"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Error -Message $("Failed setting volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" for volume ""$VolumeName"" on vserver ""$VserverName""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$errorCount = $errorCount + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }Until($True)&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Ensure an error is raised if there were any failures.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;If($errorCount -ne 0){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Throw "Failed setting volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" on all volumes"&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;/PRE&gt;&lt;P&gt;It leverages the WFA "Invoke-MySQL" query function to select all thick provisioned data volumes on all clusters on all vservers. EG:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'Select all thick provisioned volumes on all clusters and vservers&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SELECT&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cluster.primary_address &lt;STRONG&gt;AS&lt;/STRONG&gt; 'primary_address',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cluster.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'cluster_name',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vserver.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'vserver_name',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'volume_name'&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FROM&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.cluster,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.vserver,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.volume&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;WHERE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vserver.cluster_id = cluster.id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.vserver_id = vserver.id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.space_guarantee = 'volume'&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.junction_path &amp;lt;&amp;gt; '/';&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the example output (note it is connecting to multiple clusters and vservers to set all thick provisioned volumes to thin provisioned volumes)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.netapp.com/t5/image/serverpage/image-id/4760iCF015826B2BE1816/image-size/original?v=mpbl-1&amp;amp;px=-1" alt="set_global_volume_option" title="set_global_volume_option" border="0" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could also use this WFA workflow to set any other volume option globally in your environment...just set the input parameter values. EG&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.netapp.com/t5/image/serverpage/image-id/4761i847575C66FD22884/image-size/original?v=mpbl-1&amp;amp;px=-1" alt="input_parameters.jpg" title="input_parameters.jpg" border="0" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;hope that helps&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/matt&lt;/P&gt;</description>
    <pubDate>Thu, 11 Feb 2016 11:08:00 GMT</pubDate>
    <dc:creator>mbeattie</dc:creator>
    <dc:date>2016-02-11T11:08:00Z</dc:date>
    <item>
      <title>OCUM 6.3 custom events functionality?</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115608#M20551</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It does not appear that OCUM 6.3 has the ability to create custom events. &amp;nbsp;Am I missing the functionality or will that be coming&amp;nbsp;soon? &amp;nbsp;As an example. &amp;nbsp;I have a customer that would like to ensure that all volumes/LUNs&amp;nbsp;are thin provisioned and I am trying to use OCUM to identify any volumes/LUNs that are thick provisioned and then would like to execute a script or WFA workflow that would correct the misconfiguration. &amp;nbsp; Is this a pipe dream?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is a column in OCUM tracking whether a volume or LUN are thin provisioned, but no way to set up an alert currently that I can find. &amp;nbsp;Will OCUM report down to the LUN level at some point for things like thin provisioning?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Michael Pedigo&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 22:05:57 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115608#M20551</guid>
      <dc:creator>Mike_Pedigo</dc:creator>
      <dc:date>2025-06-04T22:05:57Z</dc:date>
    </item>
    <item>
      <title>Re: OCUM 6.3 custom events functionality?</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115638#M20556</link>
      <description>&lt;P&gt;Hi Michael,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately i don't think OCUM enables you to achieve the result your customer wants however if they are using WFA...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assuming your customer wants to ensure that all data volumes on all vservers on all clusters in their environment are always thin provisioned then here is a WFA workflow that can be scheduled on a daily basis to query the WFA database and ensure any thick provisioned volumes have the volume option of "space-guarentee" set from "volume" to "none".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the powershell code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;param(&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$True, HelpMessage="The name of the volume option to set")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$VolumeOptionName,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$True, HelpMessage="The value of the volume option to set")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [String]$VolumeOptionValue,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory=$False, HelpMessage="The maximum number of ZAPI re-try attempts")]&lt;BR /&gt;&amp;nbsp;&amp;nbsp; [Int]$ZapiRetryCount&lt;BR /&gt;)&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Create a query to select all thick provisined volumes on all clusters and vservers.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[String]$query = "SELECT cluster.primary_address AS 'primary_address', cluster.name AS 'cluster_name', vserver.name AS 'vserver_name', volume.name AS 'volume_name' FROM cm_storage.cluster, cm_storage.vserver, cm_storage.volume WHERE vserver.cluster_id = cluster.id AND volume.vserver_id = vserver.id AND volume.space_guarantee = 'volume' AND volume.junction_path &amp;lt;&amp;gt; '/';"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Invoke the MySQL query to select the clusters.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;$results = Invoke-MySqlQuery -Query $query&lt;BR /&gt;Get-WFALogger -Info -Message "Invoked SQL Query`: $query"&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Process each cluster.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;[Int]$errorCount = 0&lt;BR /&gt;ForEach($result In $results){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Do{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$clusterPrimaryAddress = $result.primary_address&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$clusterName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.cluster_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$vserverName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.vserver_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$volumeName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = $result.volume_name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If(($clusterPrimaryAddress -ne "") -And ($clusterName -ne "") -And ($vserverName -ne "") -And ($volumeName -ne "")){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Processing volume ""$volumeName"" on vserver ""$VserverName"" on cluster ""$ClusterName"" primary address ""$clusterPrimaryAddress"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Connect to the cluster.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "connecting to cluster name ""$clusterName"" primary address ""$clusterPrimaryAddress"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Connect-WfaCluster $clusterPrimaryAddress&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Create the command to set the volume option.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command = "Set-NcVolOption -Name $VolumeName -Key $VolumeOptionName -Value $VolumeOptionValue -VserverContext $VserverName "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If($ZapiRetryCount){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command += " -ZapiRetryCount $ZapiRetryCount "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [String]$command += " -ErrorAction Stop"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Set the volume option.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'---------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Invoke-Expression -Command $command -ErrorAction Stop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Executed Command`: $command"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Info -Message "Set volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" for volume ""$VolumeName"" on vserver ""$VserverName"""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }Catch{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-WFALogger -Error -Message $("Failed setting volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" for volume ""$VolumeName"" on vserver ""$VserverName""")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Int]$errorCount = $errorCount + 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }Until($True)&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;#'Ensure an error is raised if there were any failures.&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;BR /&gt;If($errorCount -ne 0){&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Throw "Failed setting volume option ""$VolumeOptionName"" to ""$VolumeOptionValue"" on all volumes"&lt;BR /&gt;}&lt;BR /&gt;#'------------------------------------------------------------------------------&lt;/PRE&gt;&lt;P&gt;It leverages the WFA "Invoke-MySQL" query function to select all thick provisioned data volumes on all clusters on all vservers. EG:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'Select all thick provisioned volumes on all clusters and vservers&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SELECT&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cluster.primary_address &lt;STRONG&gt;AS&lt;/STRONG&gt; 'primary_address',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cluster.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'cluster_name',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vserver.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'vserver_name',&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.name &lt;STRONG&gt;AS&lt;/STRONG&gt; 'volume_name'&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FROM&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.cluster,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.vserver,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; cm_storage.volume&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;WHERE&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; vserver.cluster_id = cluster.id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.vserver_id = vserver.id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.space_guarantee = 'volume'&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;AND&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; volume.junction_path &amp;lt;&amp;gt; '/';&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#'---------------------------------------&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the example output (note it is connecting to multiple clusters and vservers to set all thick provisioned volumes to thin provisioned volumes)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.netapp.com/t5/image/serverpage/image-id/4760iCF015826B2BE1816/image-size/original?v=mpbl-1&amp;amp;px=-1" alt="set_global_volume_option" title="set_global_volume_option" border="0" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could also use this WFA workflow to set any other volume option globally in your environment...just set the input parameter values. EG&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.netapp.com/t5/image/serverpage/image-id/4761i847575C66FD22884/image-size/original?v=mpbl-1&amp;amp;px=-1" alt="input_parameters.jpg" title="input_parameters.jpg" border="0" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;hope that helps&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/matt&lt;/P&gt;</description>
      <pubDate>Thu, 11 Feb 2016 11:08:00 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115638#M20556</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2016-02-11T11:08:00Z</dc:date>
    </item>
    <item>
      <title>Re: OCUM 6.3 custom events functionality?</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115660#M20567</link>
      <description>&lt;P&gt;Thank you for taking the time to do this!&amp;nbsp; Much appreciated and hope it might help others also.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Feb 2016 17:57:42 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/OCUM-6-3-custom-events-functionality/m-p/115660#M20567</guid>
      <dc:creator>Mike_Pedigo</dc:creator>
      <dc:date>2016-02-11T17:57:42Z</dc:date>
    </item>
  </channel>
</rss>

