cinder.scheduler.filter_scheduler module

The FilterScheduler is for creating volumes.

You can customize this scheduler by specifying your own volume Filters and Weighing Functions.

class FilterScheduler(*args, **kwargs)

Bases: Scheduler

Scheduler that can be used for filtering and weighing.

backend_passes_filters(context: RequestContext, backend: str, request_spec: dict, filter_properties: dict)

Check if the specified backend passes the filters.

find_retype_backend(context: RequestContext, request_spec: dict, filter_properties: dict | None = None, migration_policy: str = 'never') BackendState

Find a backend that can accept the volume with its new type.

get_backup_host(volume: Volume, availability_zone: str | None, driver=None)

Must override schedule method for scheduler to work.

get_pools(context: RequestContext, filters: dict)

Must override schedule method for scheduler to work.

populate_filter_properties(request_spec: dict, filter_properties: dict) None

Stuff things into filter_properties.

Can be overridden in a subclass to add more data.

schedule_create_group(context: RequestContext, group, group_spec, request_spec_list, group_filter_properties, filter_properties_list) None

Must override schedule method for scheduler to work.

schedule_create_volume(context: RequestContext, request_spec: dict, filter_properties: dict) None

Must override schedule method for scheduler to work.