def prepareAsSource(self): self.getVolumeGroup().init_from_disk() for pv in LinuxVolumeManager.pvlist(self.getVolumeGroup(), self.getDocument()): pv.init_from_disk() self.getVolumeGroup().addPhysicalVolume(pv) for lv in LinuxVolumeManager.lvlist(self.getVolumeGroup(), self.getDocument()): lv.init_from_disk() self.getVolumeGroup().addLogicalVolume(lv) if not lv.isActivated() and not self.activated: self.activated=True self.vg.activate()
def prepareAsSource(self): self.getVolumeGroup().init_from_disk() for pv in LinuxVolumeManager.pvlist(self.getVolumeGroup(), self.getDocument()): pv.init_from_disk() self.getVolumeGroup().addPhysicalVolume(pv) for lv in LinuxVolumeManager.lvlist(self.getVolumeGroup(), self.getDocument()): lv.init_from_disk() self.getVolumeGroup().addLogicalVolume(lv) if not lv.isActivated() and not self.activated: self.activated = True self.vg.activate()
def _getLVM_physicalVolume(self, device): from comoonics.storage.ComLVM import LogicalVolume, LinuxVolumeManager, VolumeGroup try: (vgname, lvname)=LogicalVolume.splitLVPath(device) _vg=VolumeGroup(vgname) _pv=LinuxVolumeManager.pvlist(_vg) ComLog.getLogger(__logStrLevel__).debug("detected physical volume %s" %_pv) return _pv[0].getAttribute("name") except LogicalVolume.LVMInvalidLVPathException, e: ComLog.errorTraceLog() return
def _getLVM_physicalVolume(self, device): from comoonics.storage.ComLVM import LogicalVolume, LinuxVolumeManager, VolumeGroup try: (vgname, lvname) = LogicalVolume.splitLVPath(device) _vg = VolumeGroup(vgname) _pv = LinuxVolumeManager.pvlist(_vg) ComLog.getLogger(__logStrLevel__).debug( "detected physical volume %s" % _pv) return _pv[0].getAttribute("name") except LogicalVolume.LVMInvalidLVPathException, e: ComLog.errorTraceLog() return
def testVgList(self): try: vgs = LinuxVolumeManager.vglist() for _vg in vgs: print "Volume group: " print _vg for lv in _vg.getLogicalVolumes(): print "Logical volume: ", lv for pv in _vg.getPhysicalVolumes(): print "Physical volume: ", pv except RuntimeError, re: self.assert_("Caught unexpected exception during vglist %s." % re)
def testVgList(self): try: vgs=LinuxVolumeManager.vglist() for _vg in vgs: print "Volume group: " print _vg for lv in _vg.getLogicalVolumes(): print "Logical volume: ", lv for pv in _vg.getPhysicalVolumes(): print "Physical volume: ", pv except RuntimeError, re: self.assert_("Caught unexpected exception during vglist %s." %re)
def cleanupDest(self): if self.disk.hasPartitionTable(): self.disk.savePartitionTable(self.__tmp.name) self.journal(self.disk, "savePartitionTable", self.__tmp.name) else: self.journal(self.disk, "noPartitionTable") # if disk already contians LVM configuration remove it pvs=list() from comoonics.storage.ComLVM import PhysicalVolume, LinuxVolumeManager try: pv=PhysicalVolume(self.disk.getAttribute("name"), self.getDocument()) pv.init_from_disk() pvs.append(pv) except LinuxVolumeManager.LVMCommandException: try: for partition in self.disk.getAllPartitions(): pv=PhysicalVolume(self.disk.getDeviceName()+self.disk.getPartitionDelim()+partition.getAttribute("name"), self.getDocument()) pv.init_from_disk() pvs.append(pv) except LinuxVolumeManager.LVMCommandException: ComLog.debugTraceLog(self.logger) if not pvs or len(pvs)==0: self.log.debug("Could not find LVM physical volume on device %s. OK." %self.disk.getAttribute("name")) for pv in pvs: try: for lv in LinuxVolumeManager.lvlist(pv.parentvg): lv.remove() pv.parentvg.remove() pv.remove() except LinuxVolumeManager.LVMCommandException: ComLog.debugTraceLog(self.logger) self.log.info("Could not remove LVM configuration from device %s. Will continue nevertheless." %pv.getAttribute("name")) self.disk.createPartitions() self.disk.restore()