+++ /dev/null
-
-from pcsbackupmanager import *
-from pcspcbackupmanager import PcsPcBackupManager
-from pcsbackupinfo import PcsBackupInfo
-import pcsbackuputils as utils
-
-
-class PcsDeviceBackupManager(PcsBackupManager):
-
-
- def __init__(self, deviceInfo):
- PcsBackupManager.__init__(self)
- self._backupList = []
- self._deviceInfo = deviceInfo
- self.restoreInProgress = False
- self.copyInProgress = False
-
- def loadBackups(self):
-
- # FIXME, error handling is wrong!! return list of PcsBackupInfo
- try:
- mountPoint = os.path.join(DEVICES_POINT, "%s/Root" % self._deviceInfo.ip)
- utils.mountDevice(USER_HOST, self._deviceInfo.ip, mountPoint)
-
- self._backupList = utils.getDeviceBackupList(mountPoint)
- return True
-
- except Exception, x:
- print str(x)
- finally:
- utils.unmountDevice(mountPoint)
-
- return False
-
- def getBackupList(self):
- self.loadBackups()
- for backup in self._backupList:
- backup.setAtDevice(True)
- return self._backupList
-
- def copyBackupFromDevice(self, backupName, destinationPath):
- try:
- self.loadBackups()
- device_backups = self.getBackupList()
-
- mountPoint = os.path.join(DEVICES_POINT, "%s/Root" % self._deviceInfo.ip)
- utils.mountDevice(USER_HOST, self._deviceInfo.ip, mountPoint)
-
- # Search complete_path
- completePath = ''
- for backup in device_backups:
- if backupName == backup.getName():
- completePath = backup.getPath()
- break
- if completePath == '':
- raise Exception("Backup not found.")
-
- pcBackupManager = PcsPcBackupManager()
- pcBackupManager.loadBackups()
- correctName = pcBackupManager._verify_backup_name(backupName)
- destination = os.path.join(destinationPath, correctName)
-
- self.setCopyInProgress(True)
- if self.copy(completePath, destination) == 0:
- return 0
- self.setCopyInProgress(False)
-
- backup_size = utils.getSize(destination)
- backup = PcsBackupInfo(correctName, destinationPath, backup_size,
- 'Copied from device')
- backup.setAtDevice(False)
- pcBackupManager._backupList.append(backup)
- pcBackupManager.saveBackups()
-
- finally:
- utils.unmountDevice(mountPoint)
-
-
- def startBackupRestore(self, backupInfo, categories):
- device_ip = self._deviceInfo.ip
- return self.restoreBackup(backupInfo, device_ip, categories)
-
-
- def setCopyInProgress(self, status):
- self.copyInProgress = status
-
-
- def setRestoreInProgress(self, status):
- self.restoreInProgress = status
-
-
- def getBackupInfo(self, backupName):
- self.loadBackups()
- for backupInfo in self._backupList:
- if backupInfo.getName() == backupName:
- backupInfo.setAtDevice(True)
- return backupInfo
-
- return None
-
-
-
\ No newline at end of file