'Creates a EMC(VMAX) volume from a storage group.
:param volume: volume object
:returns:  model_update - dict'

def create_volume(self, volume):

    model_update = {}
    volume_id = volume.id
    extra_specs = self._initial_setup(volume)
    volume_name = self.utils.get_volume_element_name(volume_id)
    volume_size = volume.size
    volume_dict = self._create_volume(volume_name, volume_size, extra_specs)
    if (volume.group_id is not None):
        group_name = self._find_volume_group_name_from_id(extra_specs[utils.ARRAY], volume.group_id)
        if (group_name is not None):
            self.masking.add_volume_to_storage_group(extra_specs[utils.ARRAY], volume_dict['device_id'], group_name, volume_name, extra_specs)
    if self.utils.is_replication_enabled(extra_specs):
        rep_update = self._replicate_volume(volume, volume_name, volume_dict, extra_specs)
        model_update.update(rep_update)
    LOG.info('Leaving    create_volume:    %(name)s.    Volume    dict:    %(dict)s.', {'name': volume_name, 'dict': volume_dict})
    model_update.update({'provider_location': six.text_type(volume_dict)})
    return model_update
