Pure Storage FlashArray's have a construct called a Volume Group
within which volumes can be created.
The volume group can have storage QoS levels assigned to it that
limits the combined bandwidth and/or IOPs of all volumes within
the volume group.
Adding volume group support requires the use of vendor-specific
volume type extra-specs which will allow a specific volume type
to be limited to a volume group on a specified backend array. The
volume group does not require QoS settings, but these can be
applied using the vendor-specific volume type extra-specs.
This patch provides the ability to create, manage and delete
volume groups and to manage volumes in the volume group.
Additonally, this patch will allow existing volumes in a volume
group to be managed using the ``cinder manage`` command, including
VVOLss that are in volume groups in non-replicated FlashArray pods.
Retyping of volumes in and out of a volume group based volume type
is also supported.
Volume group based volumes can also be replicated as any other
volume on a FlashArray and replication failover of these replicated
volume group based volumes is also supported.
Additional vendor-specific volume type extra specs are detailed in
the updated driver documentation and in the release notes.
Implements: blueprint pure-add-volume-groups
Change-Id: I65c7241febec740d727f330b3bc0ef1b80abdd78