diff --git a/salt/modules/virt.py b/salt/modules/virt.py index 2cd1edc38c06..2ca10ae4e094 100644 --- a/salt/modules/virt.py +++ b/salt/modules/virt.py @@ -799,8 +799,8 @@ def get_nics(vm_): # driver, source, and match can all have optional attributes if re.match('(driver|source|address)', v_node.tagName): temp = {} - for key in v_node.attributes: - temp[key] = v_node.getAttribute(key) + for key, value in v_node.attributes.items(): + temp[key] = value nic[str(v_node.tagName)] = temp # virtualport needs to be handled separately, to pick up the # type attribute of the virtualport itself @@ -857,8 +857,8 @@ def get_graphics(vm_): for node in doc.getElementsByTagName('domain'): g_nodes = node.getElementsByTagName('graphics') for g_node in g_nodes: - for key in g_node.attributes: - out[key] = g_node.getAttribute(key) + for key, value in g_node.attributes.items(): + out[key] = value return out diff --git a/tests/integration/modules/virt.py b/tests/integration/modules/virt.py index 9c1c80b4aeaf..2076d5909f74 100644 --- a/tests/integration/modules/virt.py +++ b/tests/integration/modules/virt.py @@ -26,8 +26,8 @@ def test_default_kvm_profile(self): ''' profiles = self.run_function('virt.get_profiles', ['kvm']) nicp = profiles['nic']['default'] - self.assertTrue(nicp['eth0'].get('model', '') == 'virtio') - self.assertTrue(nicp['eth0'].get('bridge', '') == 'br0') + self.assertTrue(nicp[0].get('model', '') == 'virtio') + self.assertTrue(nicp[0].get('source', '') == 'br0') diskp = profiles['disk']['default'] self.assertTrue(diskp[0]['system'].get('model', '') == 'virtio') self.assertTrue(diskp[0]['system'].get('format', '') == 'qcow2') @@ -39,8 +39,8 @@ def test_default_esxi_profile(self): ''' profiles = self.run_function('virt.get_profiles', ['esxi']) nicp = profiles['nic']['default'] - self.assertTrue(nicp['eth0'].get('model', '') == 'e1000') - self.assertTrue(nicp['eth0'].get('bridge', '') == 'DEFAULT') + self.assertTrue(nicp[0].get('model', '') == 'e1000') + self.assertTrue(nicp[0].get('source', '') == 'DEFAULT') diskp = profiles['disk']['default'] self.assertTrue(diskp[0]['system'].get('model', '') == 'scsi') self.assertTrue(diskp[0]['system'].get('format', '') == 'vmdk') diff --git a/tests/unit/modules/virt_test.py b/tests/unit/modules/virt_test.py index c14d59377451..2e9f086f9318 100644 --- a/tests/unit/modules/virt_test.py +++ b/tests/unit/modules/virt_test.py @@ -502,6 +502,43 @@ def test_mixed_dict_and_list_as_profile_objects(self): re.match('^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$', interface_attrs['mac'], re.I)) + @skipIf(sys.version_info < (2, 7), 'ElementTree version 1.3 required' + ' which comes with Python 2.7') + def test_get_graphics(self): + virt.get_xml = MagicMock(return_value=''' + test-vm + + + + + + + ''') + graphics = virt.get_graphics('test-vm') + self.assertEqual('vnc', graphics['type']) + self.assertEqual('5900', graphics['port']) + self.assertEqual('0.0.0.0', graphics['listen']) + + @skipIf(sys.version_info < (2, 7), 'ElementTree version 1.3 required' + ' which comes with Python 2.7') + def test_get_nics(self): + virt.get_xml = MagicMock(return_value=''' + test-vm + + + + + +
+ + + + ''') + nics = virt.get_nics('test-vm') + nic = nics[nics.keys()[0]] + self.assertEqual('bridge', nic['type']) + self.assertEqual('ac:de:48:b6:8b:59', nic['mac']) + if __name__ == '__main__': from integration import run_tests