def store(self,hostname,storename): self.UpdateFromModel() hostDetails = diskFacade() hostDetails.disk = self.cfgModel.vmbyName[hostname].CfgDiskType.get() hostDetails.path = self.cfgModel.vmbyName[hostname].CfgDiskImage.get() hostDetails.target = self.cfgModel.vmbyName[hostname].CfgMountPoint.get() hostDetails.partitionNo = self.cfgModel.vmbyName[hostname].CfgDiskImagePartition.get() self.Storage.imageStore(hostDetails,storename)
def mount(self,hostname): if not hostname in self.cfgModel.vmbyName.keys(): self.log.warning("No configuration for '%s'" % (hostname)) return hostDetails = diskFacade() hostDetails.disk = self.cfgModel.vmbyName[hostname].CfgDiskType.get() hostDetails.path = self.cfgModel.vmbyName[hostname].CfgDiskImage.get() hostDetails.target = self.cfgModel.vmbyName[hostname].CfgMountPoint.get() hostDetails.partitionNo = self.cfgModel.vmbyName[hostname].CfgDiskImagePartition.get() hostDetails.mount()
def restore(self,hostname,storename,imageformat): if not hostname in self.cfgModel.vmbyName.keys(): self.log.warning("No configuration for '%s'" % (hostname)) return self.UpdateFromModel() hostDetails = diskFacade() self.Storage.storeFormat = imageformat hostDetails.disk = self.cfgModel.vmbyName[hostname].CfgDiskType.get() hostDetails.path = self.cfgModel.vmbyName[hostname].CfgDiskImage.get() hostDetails.target = self.cfgModel.vmbyName[hostname].CfgMountPoint.get() hostDetails.partitionNo = self.cfgModel.vmbyName[hostname].CfgDiskImagePartition.get() self.Storage.imageRestore(hostDetails,storename)
def extract(self,hostname,storename,directory,storeformat): if not hostname in self.cfgModel.vmbyName.keys(): self.log.warning("No configuration for '%s'" % (hostname)) return self.UpdateFromModel() foundHost = self.findByHostName(hostname) #print (hostname,storename,storeformat,self.cfgModel.vmbyName[hostname].CfgPathInserts.get()) hostDetails = diskFacade() hostDetails.disk = self.cfgModel.vmbyName[hostname].CfgDiskType.get() hostDetails.path = self.cfgModel.vmbyName[hostname].CfgDiskImage.get() hostDetails.target = self.cfgModel.vmbyName[hostname].CfgMountPoint.get() hostDetails.partitionNo = self.cfgModel.vmbyName[hostname].CfgDiskImagePartition.get() self.Storage.storeFormat = storeformat self.Storage.storePath = self.cfgModel.vmbyName[hostname].CfgPathInserts.get() self.Storage.insertStore(hostDetails,storename,directory)
def UpdateFromModel(self): self.Storage.storePath = self.cfgModel.defaultPathImages.get() itemsByName = self.cfgModel.vmbyName.keys() for item in itemsByName: if not item in self.diskFacardDict.keys(): self.diskFacardDict[item] = diskFacade()
if hasattr(self, '_uploaderImp'): return self._uploaderImp.insertStore(diskFacade,storeName,directory) else: return None def imageList(self): if hasattr(self, '_uploaderImp'): return self._uploaderImp.imageList() if __name__ == "__main__" : import time import sys from vmDisk import diskFacade logging.basicConfig(level=logging.DEBUG) df = diskFacade() df.disk = 'kpartx' df.path = '/var/lib/libvirt/images/lenny.img' df.target = "/tmp/foo" df.partitionNo = 1 df.readMtab() sf = vmStoreFacade() sf.storeFormat = 'cpio.bz2' sf.storePath = '/server/store' sf.imageStore(df,'fred.cpio.bz2') df.readMtab()