'Checks whether the extra specs are valid.
:param enabler_status: Instance of VNXEnablerStatus'

def validate(self, enabler_status):

    if ('storagetype:pool' in self.specs):
        LOG.warning("Extra    spec    key    'storagetype:pool'    is    obsoleted    since    driver    version    5.1.0.    This    key    will    be    ignored.")
    if ((self._provision == storops.VNXProvisionEnum.DEDUPED) and (self._tier is not None)):
        msg = _('Can    not    set    tiering    policy    for    a    deduplicated    volume.    Set    the    tiering    policy    on    the    pool    where    the    deduplicated    volume    locates.')
        raise exception.InvalidVolumeType(reason=msg)
    if ((self._provision == storops.VNXProvisionEnum.COMPRESSED) and (not enabler_status.compression_enabled)):
        msg = _('Compression    Enabler    is    not    installed.    Can    not    create    compressed    volume.')
        raise exception.InvalidVolumeType(reason=msg)
    if ((self._provision == storops.VNXProvisionEnum.DEDUPED) and (not enabler_status.dedup_enabled)):
        msg = _('Deduplication    Enabler    is    not    installed.    Can    not    create    deduplicated    volume.')
        raise exception.InvalidVolumeType(reason=msg)
    if ((self._provision in [storops.VNXProvisionEnum.THIN, storops.VNXProvisionEnum.COMPRESSED, storops.VNXProvisionEnum.DEDUPED]) and (not enabler_status.thin_enabled)):
        msg = _('ThinProvisioning    Enabler    is    not    installed.    Can    not    create    thin    volume.')
        raise exception.InvalidVolumeType(reason=msg)
    if ((self._tier is not None) and (not enabler_status.fast_enabled)):
        msg = _('FAST    VP    Enabler    is    not    installed.    Can    not    set    tiering    policy    for    the    volume.')
        raise exception.InvalidVolumeType(reason=msg)
    return True
