diff --git a/nova_powervm/tests/virt/powervm/test_vm.py b/nova_powervm/tests/virt/powervm/test_vm.py index c09804f9..6f7ba6d1 100644 --- a/nova_powervm/tests/virt/powervm/test_vm.py +++ b/nova_powervm/tests/virt/powervm/test_vm.py @@ -300,8 +300,8 @@ class TestVM(test.TestCase): self.assertEqual(inst_info.cpu_time_ns, 0) # Check that we raise an exception if the instance is gone. - exc = pvm_exc.Error('Not found', response=FakeAdapterResponse(404)) - self.apt.read.side_effect = exc + self.apt.read.side_effect = pvm_exc.HttpError( + mock.MagicMock(status=404)) self.assertRaises(exception.InstanceNotFound, inst_info.__getattribute__, 'state') @@ -615,13 +615,16 @@ class TestVM(test.TestCase): resp = mock.MagicMock() resp.status = 404 - self.apt.read.side_effect = pvm_exc.Error('message', response=resp) + self.apt.read.side_effect = pvm_exc.HttpError(resp) self.assertRaises(exception.InstanceNotFound, vm.get_vm_qp, self.apt, 'lpar_uuid', log_errors=False) - resp.status = 500 + self.apt.read.side_effect = pvm_exc.Error("message", response=None) + self.assertRaises(pvm_exc.Error, vm.get_vm_qp, self.apt, + 'lpar_uuid', log_errors=False) - self.apt.read.side_effect = pvm_exc.Error('message', response=resp) + resp.status = 500 + self.apt.read.side_effect = pvm_exc.Error("message", response=resp) self.assertRaises(pvm_exc.Error, vm.get_vm_qp, self.apt, 'lpar_uuid', log_errors=False) diff --git a/nova_powervm/virt/powervm/vm.py b/nova_powervm/virt/powervm/vm.py index 7eacd794..b1330a2e 100644 --- a/nova_powervm/virt/powervm/vm.py +++ b/nova_powervm/virt/powervm/vm.py @@ -529,11 +529,12 @@ def get_vm_qp(adapter, lpar_uuid, qprop=None, log_errors=True): pass kwds['helpers'] = helpers resp = adapter.read(pvm_lpar.LPAR.schema_type, **kwds) - except pvm_exc.Error as e: - if e.response.status == 404: + except pvm_exc.HttpError as e: + # 404 error indicates the LPAR has been deleted (or moved to a + # different host) + if e.response and e.response.status == 404: raise exception.InstanceNotFound(instance_id=lpar_uuid) else: - LOG.exception(e) raise return jsonutils.loads(resp.body)