]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
HP 3par driver filter and evaluator function
authorAnthony Lee <anthony.mic.lee@hp.com>
Tue, 24 Feb 2015 11:34:06 +0000 (03:34 -0800)
committerAnthony Lee <anthony.mic.lee@hp.com>
Fri, 6 Mar 2015 02:20:34 +0000 (18:20 -0800)
commit807cf27a77eac5658642f993b4a409f6ac00bf60
tree68ffc5fc189fd1a36c4694259f4e0e20f621f25b
parent35b1a03a4539d2e7c61d261ce800a241e603d65c
HP 3par driver filter and evaluator function

This patch implements the merged change in the scheduler
https://review.openstack.org/#/c/129987/ in HP 3par driver.

1. Added a way to get filter_function and goodness_function strings from
cinder.conf in the base class VolumeDriver,  for example

filter_function =
"capabilities.total_volumes < 600 && capabilities.capacity_utilization < 80"
goodness_function = "capabilities.capacity_utilization < 40 ? 80 : 60"

The strings can be got from the [DEFAULT] section or a driver instance group
section.

If the string can not be found in the cinder.conf, it will try to find a
default filter_fuction or a default goodness_function which can be specified
in the driver code. HP3par drivers don't provide default values. However if
other driver want to provide default values, it can be done by overwriting
get_default_filter_function and get_default_goodness_function.

2. Also added goodness_function and filter_function to the
_update_volume_stats in ISCSIDriver, FibreChannelDriver, FakeISCSIDriver
and LVMVolumeDriver.

3. Added 2 stats total_volumes and capacity_utilization so they can be
used as the part of the formula in filter_function or goodness_function
string.

4. Fixed free_capacity for limited cpg to include SDUsage's usedMiB as part of
the calcuation so it is consistent with unlimited cpg and capacity_utilization
looks better.

5. Added total_volumes capability to the LVM driver.

Implements: blueprint hp3par-driver-supplies-filtering-weighing-functions
Change-Id: I4ce77c9c1b1e14de82465bb94068b2ff10c19b91
cinder/tests/test_hp3par.py
cinder/tests/test_volume.py
cinder/volume/driver.py
cinder/volume/drivers/lvm.py
cinder/volume/drivers/san/hp/hp_3par_common.py
cinder/volume/drivers/san/hp/hp_3par_fc.py
cinder/volume/drivers/san/hp/hp_3par_iscsi.py