Merge "Add baremetal strategy validation"

This commit is contained in:
Zuul
2018-01-24 14:59:14 +00:00
committed by Gerrit Code Review
3 changed files with 27 additions and 23 deletions

View File

@@ -89,7 +89,7 @@ class StrategyEndpoint(object):
def _get_cdm(self, strategy):
models = []
for model in ['compute_model', 'storage_model']:
for model in ['compute_model', 'storage_model', 'baremetal_model']:
try:
getattr(strategy, model)
except Exception:

View File

@@ -147,8 +147,8 @@ class StorageCapacityBalance(base.WorkloadStabilizationBaseStrategy):
status_volumes = list(
filter(lambda v: v.status in valid_status, nosnap_volumes))
valid_volumes = [v for v in status_volumes
if getattr(v, 'migration_status') == 'success'
or getattr(v, 'migration_status') is None]
if getattr(v, 'migration_status') == 'success' or
getattr(v, 'migration_status') is None]
LOG.info("valid volumes: %s", valid_volumes)
return valid_volumes
@@ -232,8 +232,8 @@ class StorageCapacityBalance(base.WorkloadStabilizationBaseStrategy):
for src_key in src_extra_specs.keys():
dst_pool_type = [pt for pt in dst_pool_type
if pt.extra_specs.get(src_key)
== src_extra_specs.get(src_key)]
if pt.extra_specs.get(src_key) ==
src_extra_specs.get(src_key)]
if dst_pool_type:
if volume.volume_type:
if dst_pool_type[0].name != volume.volume_type:
@@ -311,8 +311,8 @@ class StorageCapacityBalance(base.WorkloadStabilizationBaseStrategy):
break
if seek_flag:
noboot_volumes = list(
filter(lambda v: v.bootable.lower() == 'false'
and v.status == 'in-use', volumes_in_pool))
filter(lambda v: v.bootable.lower() == 'false' and
v.status == 'in-use', volumes_in_pool))
noboot_volumes.sort(key=lambda v: float(v.size))
LOG.info("noboot volumes: %s ", str(noboot_volumes))
for vol in noboot_volumes:
@@ -333,8 +333,10 @@ class StorageCapacityBalance(base.WorkloadStabilizationBaseStrategy):
break
if seek_flag:
boot_volumes = list(filter(lambda v: v.bootable.lower() == 'true'
and v.status == 'in-use', volumes_in_pool))
boot_volumes = list(
filter(lambda v: v.bootable.lower() == 'true' and
v.status == 'in-use', volumes_in_pool)
)
boot_volumes.sort(key=lambda v: float(v.size))
LOG.info("boot volumes: %s ", str(boot_volumes))
for vol in boot_volumes:

View File

@@ -1,5 +1,5 @@
# -*- encoding: utf-8 -*-
# Copyright (c) 2017 Servionica
# Copyright (c) 2018 Servionica
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -55,10 +55,12 @@ class TestStrategyEndpoint(base.BaseTestCase):
strategy = mock.MagicMock()
strategy.compute_model = mock.MagicMock()
del strategy.storage_model
strategy.baremetal_model = mock.MagicMock()
se = strategy_base.StrategyEndpoint(mock.MagicMock())
result = se._get_cdm(strategy)
expected_result = {'type': 'CDM',
'state': [{"compute_model": "available"},
{"storage_model": "not available"}],
{"storage_model": "not available"},
{"baremetal_model": "available"}],
'mandatory': True, 'comment': ''}
self.assertEqual(expected_result, result)