Add debug and retries around vlan_get_name()

We've noticed this fail in testing, so let's see what's going on.

Change-Id: I08785ef2161edc57c84890945c6e3f1670880f51
diff --git a/drivers/Mellanox.py b/drivers/Mellanox.py
index dbdd104..ea74bf0 100644
--- a/drivers/Mellanox.py
+++ b/drivers/Mellanox.py
@@ -142,8 +142,19 @@
             self._cli("vlan %d name %s" % (tag, name))
             self._end_configure()
 
-            # Validate it happened
-            read_name = self.vlan_get_name(tag)
+            # This switch *might* have problems if we drive it too quickly? At
+            # least one instance of set_name()/get_name() not working. This
+            # might help?
+            self._delay()
+
+            # And retry around here
+            retries = 5
+            read_name = None
+            while (retries > 0 and read_name is None):
+                # Validate it happened
+                read_name = self.vlan_get_name(tag)
+                retries -= 1
+
             if read_name != name:
                 raise IOError("Failed to set name for VLAN %d (name found is \"%s\", not \"%s\")"
                               % (tag, read_name, name))
@@ -206,6 +217,8 @@
                 match = regex.match(line)
                 if match:
                     name = re.sub(r'Eth.*$',"",match.group(1)).strip()
+            if name is None:
+                logging.debug("vlan_get_name: did not find a name")
             return name
 
         except PExpectError: