'Updates LUNs in generic volume group.
:param group: storage configuration service instance
:param add_volumes: the volumes uuids you want to add to the vol grp
:param remove_volumes: the volumes uuids you want to remove from
the CG
:returns: model_update
:raises: VolumeBackendAPIException, NotImplementedError'

def update_group(self, group, add_volumes, remove_volumes):

    LOG.info('Update    generic    volume    Group:    %(group)s.    This    adds    and/or    removes    volumes    from    a    generic    volume    group.', {'group': group.id})
    if (not volume_utils.is_group_a_cg_snapshot_type(group)):
        raise NotImplementedError()
    (array, __) = self.utils.get_volume_group_utils(group, self.interval, self.retries)
    model_update = {'status': fields.GroupStatus.AVAILABLE}
    add_vols = ([vol for vol in add_volumes] if add_volumes else [])
    add_device_ids = self._get_volume_device_ids(add_vols, array)
    remove_vols = ([vol for vol in remove_volumes] if remove_volumes else [])
    remove_device_ids = self._get_volume_device_ids(remove_vols, array)
    vol_grp_name = None
    try:
        volume_group = self._find_volume_group(array, group)
        if volume_group:
            if ('name' in volume_group):
                vol_grp_name = volume_group['name']
        if (vol_grp_name is None):
            raise exception.GroupNotFound(group_id=group.id)
        interval_retries_dict = self.utils.get_intervals_retries_dict(self.interval, self.retries)
        if add_device_ids:
            self.masking.add_volumes_to_storage_group(array, add_device_ids, vol_grp_name, interval_retries_dict)
        if remove_device_ids:
            self.masking.remove_volumes_from_storage_group(array, remove_device_ids, vol_grp_name, interval_retries_dict)
    except exception.GroupNotFound:
        raise
    except Exception as ex:
        exception_message = (_('Failed    to    update    volume    group:    %(volGrpName)s.    Exception:    %(ex)s.') % {'volGrpName': group.id, 'ex': ex})
        LOG.exception(exception_message)
        raise exception.VolumeBackendAPIException(data=exception_message)
    return (model_update, None, None)
