'Create a new volume in the given storage group.
:param array: the array serial number
:param volume_name: the volume name (String)
:param storagegroup_name: the storage group name
:param volume_size: volume size (String)
:param extra_specs: the extra specifications
:returns: dict -- volume_dict - the volume dict'

def create_volume_from_sg(self, array, volume_name, storagegroup_name, volume_size, extra_specs):

    @coordination.synchronized('emc-sg-{storage_group}')
    def do_create_volume_from_sg(storage_group):
        start_time = time.time()
        volume_dict = self.rest.create_volume_from_sg(array, volume_name, storage_group, volume_size, extra_specs)
        LOG.debug('Create    volume    from    storage    group    took:    %(delta)s    H:MM:SS.', {'delta': self.utils.get_time_delta(start_time, time.time())})
        return volume_dict
    return do_create_volume_from_sg(storagegroup_name)
