'Get or create a default storage group.
:param serial_number: the array serial number
:param srp: the SRP name
:param slo: the SLO
:param workload: the workload
:param extra_specs: extra specifications
:param do_disable_compression: flag for compression
:param is_re: is replication enabled
:returns: storagegroup_name
:raises: VolumeBackendAPIException'

def get_or_create_default_storage_group(self, serial_number, srp, slo, workload, extra_specs, do_disable_compression=False, is_re=False):

    (storagegroup, storagegroup_name) = self.rest.get_vmax_default_storage_group(serial_number, srp, slo, workload, do_disable_compression, is_re)
    if (storagegroup is None):
        self.provision.create_storage_group(serial_number, storagegroup_name, srp, slo, workload, extra_specs, do_disable_compression)
    else:
        LOG.info('Using    existing    default    storage    group')
        masking_views = self.rest.get_masking_views_from_storage_group(serial_number, storagegroup_name)
        if masking_views:
            exception_message = (_('Default    storage    group    %(sg_name)s    is    part    of    masking    views    %(mvs)s.    Please    remove    it    from    all    masking    views') % {'sg_name': storagegroup_name, 'mvs': masking_views})
            LOG.error(exception_message)
            raise exception.VolumeBackendAPIException(data=exception_message)
    if ('qos' in extra_specs):
        self.rest.update_storagegroup_qos(serial_number, storagegroup_name, extra_specs)
    return storagegroup_name
