Scheduler¶
The cinder.scheduler.manager Module¶
Scheduler Service
-
class
SchedulerManager(scheduler_driver=None, service_name=None, *args, **kwargs) Bases:
cinder.manager.ManagerChooses a host to create volumes.
-
RPC_API_VERSION= '2.0'
-
create_consistencygroup(context, topic, group, request_spec_list=None, filter_properties_list=None)
-
create_volume(context, topic, volume_id, snapshot_id=None, image_id=None, request_spec=None, filter_properties=None, volume=None)
-
get_pools(context, filters=None) Get active pools from scheduler’s cache.
NOTE(dulek): There’s no self._wait_for_scheduler() because get_pools is an RPC call (is blocking for the c-api). Also this is admin-only API extension so it won’t hurt the user much to retry the request manually.
-
init_host_with_rpc()
-
manage_existing(context, topic, volume_id, request_spec, filter_properties=None) Ensure that the host exists and can accept the volume.
-
migrate_volume_to_host(context, topic, volume_id, host, force_host_copy, request_spec, filter_properties=None, volume=None) Ensure that the host exists and can accept the volume.
-
request_service_capabilities(context)
-
reset()
-
retype(context, topic, volume_id, request_spec, filter_properties=None, volume=None) Schedule the modification of a volume’s type.
Parameters: - context – the request context
- topic – the topic listened on
- volume_id – the ID of the volume to retype
- request_spec – parameters for this retype request
- filter_properties – parameters to filter by
- volume – the volume object to retype
-
target= <Target version=2.0>
-
update_service_capabilities(context, service_name=None, host=None, capabilities=None, **kwargs) Process a capability update from a service node.
-
The cinder.scheduler.driver Module¶
Scheduler base class that all Schedulers should inherit from
-
class
Scheduler Bases:
objectThe base class that all Scheduler classes should inherit from.
-
find_retype_host(context, request_spec, filter_properties=None, migration_policy='never') Find a host that can accept the volume with its new type.
-
get_pools(context, filters) Must override schedule method for scheduler to work.
-
host_passes_filters(context, volume_id, host, filter_properties) Check if the specified host passes the filters.
-
is_ready() Returns True if Scheduler is ready to accept requests.
This is to handle scheduler service startup when it has no volume hosts stats and will fail all the requests.
-
reset() Reset volume RPC API object to load new version pins.
-
schedule(context, topic, method, *_args, **_kwargs) Must override schedule method for scheduler to work.
-
schedule_create_consistencygroup(context, group, request_spec_list, filter_properties_list) Must override schedule method for scheduler to work.
-
schedule_create_volume(context, request_spec, filter_properties) Must override schedule method for scheduler to work.
-
update_service_capabilities(service_name, host, capabilities) Process a capability update from a service node.
-
-
group_update_db(context, group, host) Set the host and the scheduled_at field of a consistencygroup.
Returns: A Consistencygroup with the updated fields set properly.
-
volume_update_db(context, volume_id, host) Set the host and set the scheduled_at field of a volume.
Returns: A Volume with the updated fields set properly.
The cinder.scheduler.filter_scheduler Driver¶
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:
cinder.scheduler.driver.SchedulerScheduler that can be used for filtering and weighing.
-
find_retype_host(context, request_spec, filter_properties=None, migration_policy='never') Find a host that can accept the volume with its new type.
-
get_pools(context, filters)
-
host_passes_filters(context, host, request_spec, filter_properties) Check if the specified host passes the filters.
-
populate_filter_properties(request_spec, filter_properties) Stuff things into filter_properties.
Can be overridden in a subclass to add more data.
-
schedule(context, topic, method, *args, **kwargs) Schedule contract that returns best-suited host for this request.
-
schedule_create_consistencygroup(context, group, request_spec_list, filter_properties_list)
-
schedule_create_volume(context, request_spec, filter_properties)
-