The cinder.scheduler.host_manager Module

Manage hosts in the current zone.

class HostManager

Bases: object

Base HostManager class.

get_all_host_states(context)

Returns a dict of all the hosts the HostManager knows about.

Each of the consumable resources in HostState are populated with capabilities scheduler received from RPC.

For example:
{‘192.168.1.100’: HostState(), ...}
get_filtered_hosts(hosts, filter_properties, filter_class_names=None)

Filter hosts and return only ones passing all filters.

get_pools(context)

Returns a dict of all pools on all hosts HostManager knows about.

get_weighed_hosts(hosts, weight_properties, weigher_class_names=None)

Weigh the hosts.

has_all_capabilities()
host_state_cls

alias of HostState

update_service_capabilities(service_name, host, capabilities)

Update the per-service capabilities based on this notification.

class HostState(host, capabilities=None, service=None)

Bases: object

Mutable and immutable information tracked for a volume backend.

consume_from_volume(volume)

Incrementally update host state from an volume.

update_backend(capability)
update_capabilities(capabilities=None, service=None)
update_from_volume_capability(capability, service=None)

Update information about a host from its volume_node info.

‘capability’ is the status info reported by volume backend, a typical capability looks like this:

capability = {

‘volume_backend_name’: ‘Local iSCSI’, # ‘vendor_name’: ‘OpenStack’, # backend level ‘driver_version’: ‘1.0’, # mandatory/fixed ‘storage_protocol’: ‘iSCSI’, #- stats&capabilities

‘active_volumes’: 10, # ‘IOPS_provisioned’: 30000, # optional custom ‘fancy_capability_1’: ‘eat’, # stats & capabilities ‘fancy_capability_2’: ‘drink’, #/

‘pools’: [
{‘pool_name’: ‘1st pool’, # ‘total_capacity_gb’: 500, # mandatory stats for

‘free_capacity_gb’: 230, # pools ‘allocated_capacity_gb’: 270, # | ‘QoS_support’: ‘False’, # | ‘reserved_percentage’: 0, #/

‘dying_disks’: 100, # ‘super_hero_1’: ‘spider-man’, # optional custom ‘super_hero_2’: ‘flash’, # stats & capabilities ‘super_hero_3’: ‘neoncat’ #/ },

{‘pool_name’: ‘2nd pool’,

‘total_capacity_gb’: 1024, ‘free_capacity_gb’: 1024, ‘allocated_capacity_gb’: 0, ‘QoS_support’: ‘False’, ‘reserved_percentage’: 0,

‘dying_disks’: 200, ‘super_hero_1’: ‘superman’, ‘super_hero_2’: ‘ ‘, ‘super_hero_2’: ‘Hulk’, }

]

}

update_pools(capability, service)

Update storage pools information from backend reported info.

class PoolState(host, capabilities, pool_name)

Bases: cinder.scheduler.host_manager.HostState

update_from_volume_capability(capability, service=None)

Update information about a pool from its volume_node info.

update_pools(capability)
class ReadOnlyDict(source=None)

Bases: UserDict.IterableUserDict

A read-only dict.

clear()
pop(key, *args)
popitem()
update(source=None)

Previous topic

The cinder.scheduler.flows.create_volume Module

Next topic

The cinder.scheduler.manager Module

Project Source

This Page