# neutron_lib.db.model_query module

NOTE: This module is a temporary shim until networking projects move to

  versioned objects at which point this module shouldn’t be needed.

neutron_lib.db.model_query.apply_filters(query, model, filters, context=None)

  Apply filters to a query.

  Parameters:

    - query – The query to apply filters to.

    - model – The model for the query.

    - filters – The filters to apply.

    - context – The context to use for the DB session.

  Returns:

    The query with filters applied to it.

neutron_lib.db.model_query.get_by_id(context, model, object_id, lazy_fields=None)

  Query the said model with the given context for a specific object.

  Parameters:

    - context – The context to use in the query.

    - model – The model to query.

    - object_id – The ID of the object to query for.

    - lazy_fields – list of fields for lazy loading

  Returns:

    The object with the give object_id for the said model.

neutron_lib.db.model_query.get_collection(context, model, dict_func, filters=None, fields=None, sorts=None, limit=None, marker_obj=None, page_reverse=False, lazy_fields=None)

  Get a collection for a said model.

  Parameters:

    - context – The context to use for the DB session.

    - model – The model for the collection.

    - dict_func – The function used to build the collection dict.

    - filters – The filters to apply.

    - fields – The fields to collect.

    - sorts – The sort keys to use.

    - limit – The limit for the query if applicable.

    - marker_obj – The marker object if applicable.

    - page_reverse – If reverse paging should be used.

    - lazy_fields – list of fields for lazy loading

  Returns:

    A list of dicts where each dict is an object in the collection.

neutron_lib.db.model_query.get_collection_count(context, model, filters=None, query_field=None)

  Get the count for a specific collection.

  Parameters:

    - context – The context to use for the DB session.

    - model – The model for the query.

    - filters – The filters to apply.

    - query_field – Column, in string format, from the “model”; the query will return only this parameter instead of the full model columns.

  Returns:

    The number of objects for said model with filters applied.

neutron_lib.db.model_query.get_collection_query(context, model, filters=None, sorts=None, limit=None, marker_obj=None, page_reverse=False, field=None, lazy_fields=None)

  Get a collection query.

  Parameters:

    - context – The context to use for the DB session.

    - model – The model to use.

    - filters – The filters to apply in the query.

    - sorts – The sort keys to use.

    - limit – The limit associated with the query.

    - marker_obj – The marker object if applicable.

    - page_reverse – If reverse paging should be used.

    - field – Column, in string format, from the “model”; the query will return only this parameter instead of the full model columns.

    - lazy_fields – list of fields for lazy loading

  Returns:

    A paginated query for the said model.

neutron_lib.db.model_query.get_hooks(model)

  Retrieve the model query hooks for a model.

  Parameters:

    model – The DB Model to look up for query hooks.

  Returns:

    list of hooks

neutron_lib.db.model_query.get_rbac_actions(model)

  Retrieve and combine all RBAC actions requested in a model

  Parameters:

    model – The DB Model to look up for query hooks.

  Returns:

    A set of RBAC actions defined in the model or the default RBAC actions (‘access_as_shared’, ‘access_as_readonly’)

neutron_lib.db.model_query.get_values(context, model, field, filters=None)

neutron_lib.db.model_query.query_with_hooks(context, model, field=None, lazy_fields=None)

  Query with hooks using the said context and model.

  Parameters:

    - context – The context to use for the DB session.

    - model – The model to query.

    - field – The column.

    - lazy_fields – list of fields for lazy loading

  Returns:

    The query with hooks applied to it.

neutron_lib.db.model_query.register_hook(model, name, query_hook, filter_hook, result_filters=None, rbac_actions=None)

  Register a hook to be invoked when a query is executed.

  Adds the hook components to the _model_query_hooks dict. Models are the keys of this dict, whereas the value is another dict mapping hook names to callables performing the hook or in the case of `rbac_actions`, a set of RBAC actions to filter the model.

  Parameters:

    - model – The DB Model that the hook applies to.

    - name – A name for the hook.

    - query_hook – The method to be called to augment the query.

    - filter_hook – A method to be called to augment the query filter.

    - result_filters – A Method to be called to filter the query result.

    - rbac_actions – An iterable of RBAC actions or a single one (string).

  Returns:

    None.

this page last updated: 2026-03-03 11:51:03

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug