Blob Blame History Raw
From dab7e16c17017722e2e572cf0326f191e9d69a1f Mon Sep 17 00:00:00 2001
From: Giuseppe Scrivano <gscrivan@redhat.com>
Date: Fri, 14 Nov 2014 10:56:19 +0100
Subject: [PATCH] details: do not show MAC address if not set

Fixes this exception:
Traceback (most recent call last):
  File "virt-manager/virtManager/create.py", line 1780, in finish
    self.customize(guest)
  File "virt-manager/virtManager/create.py", line 1812, in customize
    self.config_window = vmmDetails(virtinst_guest, self.topwin)
  File "virt-manager/virtManager/details.py", line 560, in __init__
    self.populate_hw_list()
  File "virt-manager/virtManager/details.py", line 3165, in populate_hw_list
    self.repopulate_hw_list()
  File "virt-manager/virtManager/details.py", line 3220, in repopulate_hw_list
    update_hwlist(HW_LIST_TYPE_NIC, dev)
  File "virt-manager/virtManager/details.py", line 3195, in update_hwlist
    label = _label_for_device(dev)
  File "virt-manager/virtManager/details.py", line 188, in _label_for_device
    return "NIC %s" % dev.macaddr[-9:]
TypeError: 'NoneType' object has no attribute '__getitem__'

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1164123

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
(cherry picked from commit 741f2923d7767b31372114f245d4cb0ceef7ab83)
---
 virtManager/details.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/virtManager/details.py b/virtManager/details.py
index d54be48..bf397ff 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -342,7 +342,10 @@ def _label_for_device(dev):
         return "%s %s" % (ret, dev.disk_bus_index)
 
     if devtype == "interface":
-        return "NIC %s" % dev.macaddr[-9:]
+        if dev.macaddr:
+            return "NIC %s" % dev.macaddr[-9:]
+        else:
+            return "NIC"
 
     if devtype == "input":
         if dev.type == "tablet":
@@ -2832,7 +2835,11 @@ class vmmDetails(vmmGObjectUI):
         vmmAddHardware.populate_network_model_combo(
             self.vm, self.widget("network-model"))
         uiutil.set_combo_entry(self.widget("network-model"), net.model)
-        self.widget("network-mac-address").set_text(net.macaddr)
+
+        uiutil.set_grid_row_visible(self.widget("network-mac-address"),
+                                    bool(net.macaddr))
+        if net.macaddr:
+            self.widget("network-mac-address").set_text(net.macaddr)
 
         self.netlist.set_dev(net)
 
-- 
1.9.3