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 = '1.5'
-
create_volume(context, topic, volume_id, snapshot_id=None, image_id=None, request_spec=None, filter_properties=None)
-
init_host()
-
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)
Ensure that the host exists and can accept the volume.
-
request_service_capabilities(context)
-
retype(context, topic, volume_id, request_spec, filter_properties=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
|
-
target = <Target version=1.5>
-
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={}, migration_policy='never')
Find a host that can accept the volume with its new type.
-
host_passes_filters(context, volume_id, host, filter_properties)
Check if the specified host passes the filters.
-
schedule(context, topic, method, *_args, **_kwargs)
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.
-
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={}, migration_policy='never')
Find a host that can accept the volume with its new type.
-
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)
The schedule() contract requires we return the one
best-suited host for this request.
-
schedule_create_volume(context, request_spec, filter_properties)
Tests
The scheduler_unittest Module