Merge "Fix exception.ComputeNodeNotFound"

This commit is contained in:
Jenkins
2017-08-08 08:03:28 +00:00
committed by Gerrit Code Review
2 changed files with 30 additions and 1 deletions

View File

@@ -129,7 +129,9 @@ class SavingEnergy(base.SavingEnergyBaseStrategy):
hypervisor_node = hypervisor_node.to_dict() hypervisor_node = hypervisor_node.to_dict()
compute_service = hypervisor_node.get('service', None) compute_service = hypervisor_node.get('service', None)
host_uuid = compute_service.get('host') host_uuid = compute_service.get('host')
if not self.compute_model.get_node_by_uuid(host_uuid): try:
self.compute_model.get_node_by_uuid(host_uuid)
except wexc.ComputeNodeNotFound:
continue continue
if not (hypervisor_node.get('state') == 'up'): if not (hypervisor_node.get('state') == 'up'):

View File

@@ -164,6 +164,33 @@ class TestSavingEnergy(base.TestCase):
self.assertEqual(len(self.strategy.free_poweron_node_pool), 0) self.assertEqual(len(self.strategy.free_poweron_node_pool), 0)
self.assertEqual(len(self.strategy.free_poweroff_node_pool), 2) self.assertEqual(len(self.strategy.free_poweroff_node_pool), 2)
def test_get_hosts_pool_with_node_out_model(self):
mock_node1 = mock.Mock()
mock_node2 = mock.Mock()
mock_node1.to_dict.return_value = {
'extra': {'compute_node_id': 1},
'power_state': 'power off'}
mock_node2.to_dict.return_value = {
'extra': {'compute_node_id': 2},
'power_state': 'power off'}
self.m_ironic.node.get.side_effect = [mock_node1, mock_node2]
mock_hyper1 = mock.Mock()
mock_hyper2 = mock.Mock()
mock_hyper1.to_dict.return_value = {
'running_vms': 0, 'service': {'host': 'Node_0'}, 'state': 'up'}
mock_hyper2.to_dict.return_value = {
'running_vms': 0, 'service': {'host': 'Node_10'}, 'state': 'up'}
self.m_nova.hypervisors.get.side_effect = [mock_hyper1, mock_hyper2]
model = self.fake_cluster.generate_scenario_1()
self.m_model.return_value = model
self.strategy.get_hosts_pool()
self.assertEqual(len(self.strategy.with_vms_node_pool), 0)
self.assertEqual(len(self.strategy.free_poweron_node_pool), 0)
self.assertEqual(len(self.strategy.free_poweroff_node_pool), 1)
def test_save_energy_poweron(self): def test_save_energy_poweron(self):
self.strategy.free_poweroff_node_pool = [ self.strategy.free_poweroff_node_pool = [
'922d4762-0bc5-4b30-9cb9-48ab644dd861', '922d4762-0bc5-4b30-9cb9-48ab644dd861',