Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixes #20198: virt.get_graphics and virt.get_nics calls in module virt #21469

Merged
merged 2 commits into from
Mar 10, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions salt/modules/virt.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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


Expand Down
8 changes: 4 additions & 4 deletions tests/integration/modules/virt.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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')
Expand Down
37 changes: 37 additions & 0 deletions tests/unit/modules/virt_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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='''<domain type='kvm' id='7'>
<name>test-vm</name>
<devices>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
</devices>
</domain>
''')
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='''<domain type='kvm' id='7'>
<name>test-vm</name>
<devices>
<interface type='bridge'>
<mac address='ac:de:48:b6:8b:59'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
</devices>
</domain>
''')
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
Expand Down