added debug prints for scheduler
This commit is contained in:
@@ -272,7 +272,7 @@ class VsaScheduler(simple.SimpleScheduler):
|
|||||||
self._consume_resource(qos_cap, vol['size'], -1)
|
self._consume_resource(qos_cap, vol['size'], -1)
|
||||||
|
|
||||||
def schedule_create_volumes(self, context, request_spec,
|
def schedule_create_volumes(self, context, request_spec,
|
||||||
availability_zone, *_args, **_kwargs):
|
availability_zone=None, *_args, **_kwargs):
|
||||||
"""Picks hosts for hosting multiple volumes."""
|
"""Picks hosts for hosting multiple volumes."""
|
||||||
|
|
||||||
num_volumes = request_spec.get('num_volumes')
|
num_volumes = request_spec.get('num_volumes')
|
||||||
@@ -285,6 +285,8 @@ class VsaScheduler(simple.SimpleScheduler):
|
|||||||
host = self._check_host_enforcement(context, availability_zone)
|
host = self._check_host_enforcement(context, availability_zone)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
self._print_capabilities_info()
|
||||||
|
|
||||||
self._assign_hosts_to_volumes(context, volume_params, host)
|
self._assign_hosts_to_volumes(context, volume_params, host)
|
||||||
|
|
||||||
for vol in volume_params:
|
for vol in volume_params:
|
||||||
@@ -324,6 +326,8 @@ class VsaScheduler(simple.SimpleScheduler):
|
|||||||
return super(VsaScheduler, self).schedule_create_volume(context,
|
return super(VsaScheduler, self).schedule_create_volume(context,
|
||||||
volume_id, *_args, **_kwargs)
|
volume_id, *_args, **_kwargs)
|
||||||
|
|
||||||
|
self._print_capabilities_info()
|
||||||
|
|
||||||
drive_type = {
|
drive_type = {
|
||||||
'name': volume_type['extra_specs'].get('drive_name'),
|
'name': volume_type['extra_specs'].get('drive_name'),
|
||||||
'type': volume_type['extra_specs'].get('drive_type'),
|
'type': volume_type['extra_specs'].get('drive_type'),
|
||||||
@@ -398,6 +402,26 @@ class VsaScheduler(simple.SimpleScheduler):
|
|||||||
self._consume_partition(qos_values, GB_TO_BYTES(size), direction)
|
self._consume_partition(qos_values, GB_TO_BYTES(size), direction)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def _print_capabilities_info(self):
|
||||||
|
host_list = self._get_service_states().iteritems()
|
||||||
|
for host, host_dict in host_list:
|
||||||
|
for service_name, service_dict in host_dict.iteritems():
|
||||||
|
if service_name != "volume":
|
||||||
|
continue
|
||||||
|
|
||||||
|
LOG.info(_("Host %s:"), host)
|
||||||
|
|
||||||
|
gos_info = service_dict.get('drive_qos_info', {})
|
||||||
|
for qosgrp, qos_values in gos_info.iteritems():
|
||||||
|
total = qos_values['TotalDrives']
|
||||||
|
used = qos_values['FullDrive']['NumOccupiedDrives']
|
||||||
|
free = qos_values['FullDrive']['NumFreeDrives']
|
||||||
|
avail = BYTES_TO_GB(qos_values['AvailableCapacity'])
|
||||||
|
|
||||||
|
LOG.info(_("\tDrive %(qosgrp)-25s: total %(total)2s, "\
|
||||||
|
"used %(used)2s, free %(free)2s. Available "\
|
||||||
|
"capacity %(avail)-5s"), locals())
|
||||||
|
|
||||||
|
|
||||||
class VsaSchedulerLeastUsedHost(VsaScheduler):
|
class VsaSchedulerLeastUsedHost(VsaScheduler):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user