def resolveDeviceName(self):
    """
    resolves the given devicenames and returns a list of commands to execute to get device operational.
    """
    journal_cmds=list()
    if len(self.getDeviceName().split("="))==2:
       (key, value)=self.getDeviceName().split("=")[:2]
       self.resolveDeviceNameByKeyValue(key, value)
    if LogicalVolume.isValidLVPath(self.getDeviceName()):
       lv=LogicalVolume(self.getDeviceName())
       lv.init_from_disk()
       self.initLVM()
       self.lvm_activated=False
       if self.getAttribute("options", "") != "skipactivate" and not self.is_lvm_activated():
          self.lvm_vg_activate()
          self.lvm_activated=True
          journal_cmds.append("lvm_vg_activate")
    elif self.getAttribute("options", "") != "skipdeactivate":
       devicenames=list()
       devicename=HostDisk.map2realDMName(self.getDeviceName())
       devicenames.append(devicename)
       self.initFromDisk()
       if self.isDMMultipath():
          partdelim=DEVICEMAPPER_PART_DELIM
       else:
          partdelim=""
       for partition in self.getAllPartitions():
          devicenames.append("%s%s%s" %(devicename, partdelim, partition.getAttribute("name")))
          for devicename in devicenames:
             if PhysicalVolume.isPV(devicename):
                journal_cmds.append("pv_deactivate")
    return journal_cmds
   def pv_deactivate(self, devicename=None):
      """
      Deactivates all vgs held by this disk (including partitions)
      @param devicename: if given only this device will be taken into account 
      """
      if not devicename:
         for devicename in self.getDeviceNames():
            self.pv_deactivate(devicename)

      if not PhysicalVolume.isPV(devicename):
         return
      pvs=LinuxVolumeManager.pvlist(pvname=devicename)
      for pv in pvs:
         if pv.parentvg:
            for lv in LinuxVolumeManager.lvlist(pv.parentvg):
               if lv.isActivated():
                  pv.parentvg.deactivate()
                  break