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