I am happy to announce a HUGE release of the PowerShell SDK, version 1.13. With this new release the version naming adopts the REST API version that is supported as part of the SDK. This should help remove confusion for the latest version of the REST API that is supported with new releases of the SDK.
Installation process is the same from the PowerShell Gallery (PSGallery).
PS C:\> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted PS C:\> Install-Module -Name PureStoragePowerShellSDK -RequiredVersion 1.13.0.3
Note: Use Set-PSRepository to enable the PSGallery as Trusted to avoid the Untrusted message.
New -Filter Parameter for FlashArray Remote Filtering
A new parameter, -Filter, has been added for any cmdlet that supports returning multiple objects. The cool thing about using the -Filter parameter is that is provides FlashArray filtering vs client-side filtering (Eg. Where-Object). This can be very beneficial when working with large amounts of volumes, snapshots or hosts so a large dataset is not returned to the client. It would be great to get feedback on this new parameter, add a comment here or ping me via twitter (@8arkz).
PS C:\> $MyFlashArray = New-PfaArray -EndPoint 10.21.201.57 -UserName pureuser -IgnoreCertificateError cmdlet New-PfaArray at command pipeline position 1 Supply values for the following parameters: (Type !? for Help.) Password: ******** PS C:\> Get-PfaVolumes -Array $MyFlashArray -Filter "Name='*Server*'" | Format-Table -AutoSize
To get help using this new -Filter parameter use the following:
PS C:\> Get-Help -Name about_Purity_Filtering TOPIC about_Purity_Filtering SHORT DESCRIPTION Describes how PureStoragePowerShellSDK cmdlets support filtering to narrow down results. LONG DESCRIPTION The PureStoragePowerShellSDK supports filtering for various methods that might return multiple objects. The filter query parameter narrows down the results of a request to only the response objects that satisfy the filter criteria. Cmdlets that support filtering expose the -Filter parameter that takes a string representing the filter criteria.
New ActiveCluster Cmdlets
A lot of the work in SDK 1.13 corresponds to the latest release of Purity 5.x. In the new version Purity we introduced ActiveCluster for synchronous replication.
- Add-PfaArrayToPod
- Copy-PfaPod
- Get-PfaAllPodFootprint
- Get-PfaAllPodMediator
- Get-PfaAllPodSpaceHistory
- Get-PfaAllPodSpaces
- Get-PfaNamedPodFootprint
- Get-PfaNamedPodMediator
- Get-PfaNamedPodSpace
- Get-PfaNamedPodSpaceHistory
- Get-PfaNamedPods
- Get-PfaPendingDeletePods
- Get-PfaPendingPodFootprint
- Get-PfaPendingPodMediator
- Get-PfaPendingPodSpace
- Get-PfaPod
- Get-PfaPods
- New-PfaPod
- Remove-PfaArrayFromPod
- Remove-PfaPod
- Rename-PfaPod
- Restore-PfaPod
- Get-PfaRemoteHost
- Get-PfaRemoteHostGroup
- Get-PfaRemoteHostGroupVolumeConnections
- Get-PfaRemoteHostGroups
- Get-PfaRemoteHosts
- Get-PfaRemoteVolumeHostConnections
- Get-PfaRemoteVolumeHostGroupConnections
- Get-PfaVolumeConnection
Example of adding and removing a volume from a Pod:
PS C:\> Add-PfaVolumeToContainer -Array $MyFlashArray -Container 'TEST-POD' -Name 'TEST-PODVOLUME' source : serial : 45084F3508BF461400012564 created : 5/16/2018 11:28:28 AM name : TEST-POD::TEST-PODVOLUME size : 1099511627776 PS C:\> Remove-PfaVolumeFromContainer -Array $MyFlashArray -Name 'TEST-POD::TEST-PODVOLUME' source : serial : 45084F3508BF461400012564 created : 5/16/2018 11:28:28 AM name : TEST-PODVOLUME size : 1099511627776
New Named Certificate Management Cmdlets
- Get-PfaNamedCertificate
- Get-PfaNamedCertificateAttribute
- Get-PfaNamedCertificateAttributes
- Import-PfaNamedCertificate
- Remove-PfaNamedCertificate
- New-PfaNamedCertificateImport
- New-PfaNamedSelfSignedCertificate
New Mirrored IO Statistics Cmdlets
Retrieves performance statistics for I/Os that have been mirrored as part of ActiveCluster.
- Get-PfaAllHostGroupIOMetricsMirrored
- Get-PfaAllHostIOMetricsMirrored
- Get-PfaAllPodIOMetricsMirrored
- Get-PfaAllVolumeIOMetricsMirrored
- Get-PfaArrayIOMetricsMirrored
- Get-PfaHostGroupIOMetricsMirrored
- Get-PfaHostIOMetricsMirrored
- Get-PfaPodIOMetricsMirrored
- Get-PfaVolumeIOMetricsMirrored
New Cmdlets to Support Key Management
- Get-PfaKmip
- Get-PfaKmips
- New-PfaKmip
- Remove-PfaKmip
- Test-PfaKmip
- Update-PfaKmip
New Purity Run Cmdlet
- Get-PfaPureAppsAttributes
Example of retrieving Purity Run app status. Today we support Windows Files Services (WFS) that uses Microsoft Windows Server 2016 Standard edition to run file services with Failover Clustering.
New Volume Group and VVol Cmdlets
- Get-PfaAllVolumeGroupIOMetrics
- Get-PfaAllVolumeGroupIOMetricsByTimeRange
- Get-PfaAllVolumeGroupsIOMetricsAverage
- Get-PfaAllVolumeGroupsIOMetricsTotal
- Get-PfaVolumeGroupIOMetrics
- Get-PfaVolumeGroupIOMetricsAverage
- Get-PfaVolumeGroupIOMetricsByTimeRange
- Get-PfaVolumeGroupSpaceMetrics
- Get-PfaVolumeGroupSpaceMetrics
- Get-PfaNamedVolumeGroupsIOMetricsByTimeRange
- Get-PfaNamedVolumeGroups
- Get-PfaPendingDeleteVolumeGroups
- Get-PfaProtocolEndpointVolumes
- Get-PfaProtocolEndpointVolume
- Get-PfaVolumeGroups
- Get-PfaVolumeGroup
- New-PfaHostGroupProtocolEndpointVolumeConnection
- New-PfaHostProtocolEndpointVolumeConnection
- New-PfaProtocolEndpointVolume
- New-PfaVolumeGroup
- Remove-PfaVolumeGroup
- Restore-PfaVolumeGroup
Additional New Cmdlets
- Get-PfaArrayTCPConnection
- Set-PfaSnmpManagerNotification
Phew! Lots of additions and more examples will be coming on my blog.
Thanks,
Barkz
Great work. Is there anyway to specify a Preferred Array for a host yet? We need to specify this on each side of a pod for each host connecting to a volume stretched between two arrays. Cheers.
Hi Richard —
This is a known issue with the REST API. We will be added to a future REST API release. As a workaround for today you can use all of the other cmdlets for managing ActiveCluster but you’ll need to use New-PfaCliCommand to run purehost create|setattr –preferred-array. I plan on writing a blog with an example to show how to implement.
Thanks,
Barkz
Hello,
is there a way to export the volume size from an array to a csv file? Do you have an example?
Hi Alex —
There are a few ways to do this.
(1) Go to the Volumes and click the ellipses in the Volume widget. You will see a Download CSV option.
(2) Get-PfaVolumes -Array $FlashArray | Export-Csv -Path c:\temp\volumes.csv -NoTypeInformation. This will give you results that look like:
source serial created name size
45084F3508BF461400011931 12/22/16 0:38 ch2-barkz-07-data1 2.68435E+11
45084F3508BF461400011932 12/22/16 0:38 ch2-barkz-08-data1 2.68435E+11
45084F3508BF461400011CA7 8/31/17 18:23 wfs-witness 1073741824
45084F3508BF461400011CA8 8/31/17 18:23 wfs-data 1.75922E+13
45084F3508BF461400011CA9 8/31/17 18:23 @WFS_boot-ct0 2.14748E+11
@WFS_boot-ct0 45084F3508BF461400011CAB 8/31/17 18:25 @WFS_boot-ct1 2.14748E+11
45084F3508BF461400011CF9 9/12/17 16:27 ch2-barkz-02-data1 2.19902E+12
45084F3508BF461400011CFA 9/12/17 16:28 ch2-barkz-03-data1 2.68435E+11
ch2-barkz-04-data1 45084F3508BF461400011CFC 12/18/17 23:41 ch2-barkz-04-data1 1.09951E+12
45084F3508BF461400011CFD 9/12/17 19:40 ch2-barkz-05-data1 2.68435E+11
45084F3508BF461400011D10 9/13/17 17:14 ch2-barkz-01-data1 2.19902E+12
45084F3508BF46140001216E 3/6/18 3:18 ch7-barkz-03-infra 1.09951E+12
45084F3508BF46140001391B 7/9/18 23:27 ch2-barkz-01-vm-datastore1 8.79609E+12
45084F3508BF46140001493D 10/2/18 4:09 ch7-barkz-03-data1 1.09951E+12
45084F3508BF46140001493E 10/2/18 4:09 ch7-barkz-08-data1 1.09951E+12
45084F3508BF461400014956 10/24/18 15:43 odx_test 1.09951E+12
45084F3508BF461400014D3F 10/30/18 22:04 ch2-barkz-03-data2 2.19902E+12
45084F3508BF461400014D40 10/30/18 23:26 ch2-barkz-02-data2 2.19902E+12
ch2-barkz-02-data3 45084F3508BF461400014D41 3/29/19 15:36 ch2-barkz-02-data3 1.09951E+12