Scheduler
Scheduler Service
-
class SchedulerManager(scheduler_driver=None, service_name=None, *args, **kwargs)
Bases: cinder.manager.Manager
Chooses a host to create volumes.
-
RPC_API_VERSION = '3.0'
-
create_consistencygroup(context, topic, group, request_spec_list=None, filter_properties_list=None)
-
create_group(context, topic, group, group_spec=None, group_filter_properties=None, 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, volume=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.3>
-
update_service_capabilities(context, service_name=None, host=None, capabilities=None, **kwargs)
Process a capability update from a service node.
Scheduler base class that all Schedulers should inherit from
-
class Scheduler
Bases: object
The 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, host, request_spec, 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_group(context, group, group_spec, request_spec_list, group_filter_properties, 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.
-
generic_group_update_db(context, group, host)
Set the host and the scheduled_at field of a group.
Returns: | A Group with the updated fields set properly. |
-
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 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.Scheduler
Scheduler 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_group(context, group, group_spec, request_spec_list, group_filter_properties, filter_properties_list)
-
schedule_create_volume(context, request_spec, filter_properties)
Tests
The cinder.tests.unit.scheduler Module