@@ -40,6 +40,15 @@ def __init__(self, node):
4040
4141 self ._parseNodeXML (node )
4242
43+ def pretty_name (self ):
44+ """
45+ Use device information to attempt to print a human readable device
46+ name.
47+
48+ @returns Device description string
49+ @rtype C{str}
50+ """
51+ raise NotImplementedError
4352
4453 def _parseNodeXML (self , node ):
4554 child = node .children
@@ -101,6 +110,15 @@ def parseXML(self, node):
101110 self ._parseHelper (child , firmware_map )
102111 child = child .next
103112
113+ def pretty_name (self ):
114+ desc = _ ("System" )
115+ if self .hw_vendor :
116+ desc += ": %s" % self .hw_vendor
117+ if self .hw_version :
118+ desc += " %s" % self .hw_version
119+
120+ return desc
121+
104122class NetDevice (NodeDevice ):
105123 def __init__ (self , node ):
106124 NodeDevice .__init__ (self , node )
@@ -122,6 +140,13 @@ def parseXML(self, node):
122140 self ._parseValueHelper (child , value_map )
123141 child = child .next
124142
143+ def pretty_name (self ):
144+ desc = self .name
145+ if self .interface :
146+ desc = _ ("Interface %s" ) % self .interface
147+
148+ return desc
149+
125150class PCIDevice (NodeDevice ):
126151 def __init__ (self , node ):
127152 NodeDevice .__init__ (self , node )
@@ -158,6 +183,13 @@ def parseXML(self, node):
158183
159184 child = child .next
160185
186+ def pretty_name (self ):
187+ devstr = "%.2X:%.2X:%X" % (int (self .bus ),
188+ int (self .slot ),
189+ int (self .function ))
190+ desc = "%s %s" % (devstr , str (self .product_name ))
191+ return desc
192+
161193class USBDevice (NodeDevice ):
162194 def __init__ (self , node ):
163195 NodeDevice .__init__ (self , node )
@@ -189,6 +221,12 @@ def parseXML(self, node):
189221
190222 child = child .next
191223
224+ def pretty_name (self ):
225+ devstr = "%.3d:%.3d" % (int (self .bus ), int (self .device ))
226+ desc = "%s %s %s" % (devstr , str (self .vendor_name ),
227+ str (self .product_name ))
228+ return desc
229+
192230class StorageDevice (NodeDevice ):
193231 def __init__ (self , node ):
194232 NodeDevice .__init__ (self , node )
@@ -239,6 +277,19 @@ def parseXML(self, node):
239277
240278 child = child .next
241279
280+ def pretty_name (self ):
281+ desc = ""
282+ if self .drive_type :
283+ desc = self .drive_type
284+
285+ if self .block :
286+ desc = ": " .join ((desc , self .block ))
287+ elif self .model :
288+ desc = ": " .join ((desc , self .model ))
289+ else :
290+ desc = ": " .join ((desc , self .name ))
291+ return desc
292+
242293class USBBus (NodeDevice ):
243294 def __init__ (self , node ):
244295 NodeDevice .__init__ (self , node )
@@ -257,6 +308,9 @@ def parseXML(self, node):
257308 "protocol" : "protocol" }
258309 self ._parseHelper (node , val_map )
259310
311+ def pretty_name (self ):
312+ return self .name
313+
260314class SCSIDevice (NodeDevice ):
261315 def __init__ (self , node ):
262316 NodeDevice .__init__ (self , node )
@@ -277,6 +331,9 @@ def parseXML(self, node):
277331 "type" : "type" }
278332 self ._parseHelper (node , val_map )
279333
334+ def pretty_name (self ):
335+ return self .name
336+
280337class SCSIBus (NodeDevice ):
281338 def __init__ (self , node ):
282339 NodeDevice .__init__ (self , node )
@@ -289,6 +346,8 @@ def parseXML(self, node):
289346 val_map = { "host" : "host" }
290347 self ._parseHelper (node , val_map )
291348
349+ def pretty_name (self ):
350+ return self .name
292351
293352def is_nodedev_capable (conn ):
294353 """
0 commit comments