Merge "Using get() method to prevent KeyError"

This commit is contained in:
Jenkins 2016-11-26 10:19:42 +00:00 committed by Gerrit Code Review
commit 0cb26c4ee1
2 changed files with 14 additions and 11 deletions

View File

@ -2439,7 +2439,7 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
base_folder = self._vmops._get_base_folder()
self.assertEqual('my_prefix_base', base_folder)
def _test_reboot_vm(self, reboot_type="SOFT"):
def _test_reboot_vm(self, reboot_type="SOFT", tool_status=True):
expected_methods = ['get_object_properties_dict']
if reboot_type == "SOFT":
@ -2447,16 +2447,16 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
else:
expected_methods.append('ResetVM_Task')
query = {}
query['runtime.powerState'] = "poweredOn"
query['summary.guest.toolsStatus'] = "toolsOk"
query['summary.guest.toolsRunningStatus'] = "guestToolsRunning"
def fake_call_method(module, method, *args, **kwargs):
expected_method = expected_methods.pop(0)
self.assertEqual(expected_method, method)
if expected_method == 'get_object_properties_dict':
return query
if expected_method == 'get_object_properties_dict' and tool_status:
return {
"runtime.powerState": "poweredOn",
"summary.guest.toolsStatus": "toolsOk",
"summary.guest.toolsRunningStatus": "guestToolsRunning"}
elif expected_method == 'get_object_properties_dict':
return {"runtime.powerState": "poweredOn"}
elif expected_method == 'ResetVM_Task':
return 'fake-task'
@ -2477,6 +2477,9 @@ class VMwareVMOpsTestCase(test.NoDBTestCase):
def test_reboot_vm_soft(self):
self._test_reboot_vm()
def test_reboot_vm_hard_toolstatus(self):
self._test_reboot_vm(reboot_type="HARD", tool_status=False)
def test_reboot_vm_hard(self):
self._test_reboot_vm(reboot_type="HARD")

View File

@ -1028,9 +1028,9 @@ class VMwareVMOps(object):
"get_object_properties_dict",
vm_ref,
lst_properties)
pwr_state = props['runtime.powerState']
tools_status = props['summary.guest.toolsStatus']
tools_running_status = props['summary.guest.toolsRunningStatus']
pwr_state = props.get('runtime.powerState')
tools_status = props.get('summary.guest.toolsStatus')
tools_running_status = props.get('summary.guest.toolsRunningStatus')
# Raise an exception if the VM is not powered On.
if pwr_state not in ["poweredOn"]: