本文整理汇总了Python中rdw_helpers.rdwTime函数的典型用法代码示例。如果您正苦于以下问题:Python rdwTime函数的具体用法?Python rdwTime怎么用?Python rdwTime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rdwTime函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: entry
def entry(self, date="", repo=""):
# Validate date
try:
entryTime = rdw_helpers.rdwTime()
entryTime.initFromString(date)
except ValueError:
return self.writeErrorPage("Invalid date parameter.")
if not repo:
userRepos = self.userDB.getUserRepoPaths(self.getUsername())
# Set the start and end time to be the start and end of the day, respectively, to get all entries for that day
startTime = rdw_helpers.rdwTime()
startTime.timeInSeconds = entryTime.timeInSeconds
startTime.tzOffset = entryTime.tzOffset
endTime = rdw_helpers.rdwTime()
endTime.timeInSeconds = entryTime.timeInSeconds
endTime.tzOffset = entryTime.tzOffset
startTime.setTime(0, 0, 0)
endTime.setTime(23, 59, 59)
userMessages = self._getUserMessages(userRepos, True, False, startTime, endTime)
else:
# Validate repo parameter
if not repo: return self.writeErrorPage("Backup location not specified.")
if not repo in self.userDB.getUserRepoPaths(self.getUsername()):
return self.writeErrorPage("Access is denied.")
try:
rdw_helpers.ensurePathValid(repo)
except rdw_helpers.accessDeniedError, error:
return self.writeErrorPage(str(error))
userMessages = self._getUserMessages([repo], False, True, entryTime, entryTime)
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:33,代码来源:page_status.py
示例2: testGetBackupHistory
def testGetBackupHistory(self):
entries = getBackupHistory(self.destDir)
assert len(entries) == 3
for entry in entries:
assert entry.errors == ""
assert entries[0].size == 15
assert entries[1].size == 56
assert entries[2].size == 23
lastEntry = getLastBackupHistoryEntry(self.destDir)
assert lastEntry.size == 23
# Test that timezone differences are ignored
historyAsOf = lastEntry.date.getUrlString()
if "+" in historyAsOf:
historyAsOf = historyAsOf.replace("+", "-")
else:
historyAsOf = historyAsOf[:19] + "+" + historyAsOf[20:]
lastBackupTime = rdw_helpers.rdwTime()
lastBackupTime.initFromString(historyAsOf)
entries = getBackupHistorySinceDate(self.destDir, lastBackupTime)
assert len(entries) == 1
# Test that no backups are returned one second after the last backup
historyAsOf = historyAsOf[:18] + "1" + historyAsOf[19:]
postBackupTime = rdw_helpers.rdwTime()
postBackupTime.initFromString(historyAsOf)
assert lastBackupTime.getLocalSeconds() + 1 == postBackupTime.getLocalSeconds()
entries = getBackupHistorySinceDate(self.destDir, postBackupTime)
assert len(entries) == 0
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:31,代码来源:librdiff.py
示例3: testGetBackupHistory
def testGetBackupHistory(self):
tests = self.getBackupTests()
for testDir in tests:
# Get a list of backup entries for the root folder
origBackupDir = joinPaths(self.masterDirPath, testDir)
backupStates = self.getBackupStates(origBackupDir)
backupStates.sort(lambda x, y: cmp(x, y))
rdiffDestDir = joinPaths(self.destRoot, testDir)
entries = getBackupHistory(rdiffDestDir)
assert len(entries) == len(backupStates)
backupNum = 0
for backup in backupStates:
origBackupStateDir = joinPaths(origBackupDir, backup)
totalBackupSize = 0
for file in os.listdir(origBackupStateDir):
totalBackupSize = totalBackupSize + os.lstat(joinPaths(origBackupStateDir, file))[6]
#TODO: fix this to handle subdirs
#assert totalBackupSize == entries[backupNum].size, "Calculated: "+str(totalBackupSize)+" Reported: "+str(entries[backupNum].size)+" State: "+str(backupNum)
backupNum = backupNum + 1
# Test that the last backup entry works correctly
lastEntry = getLastBackupHistoryEntry(rdiffDestDir)
lastBackupTime = rdw_helpers.rdwTime()
lastBackupTime.initFromString(backupStates[-1])
assert lastEntry.date == lastBackupTime
# Test that timezone differences are ignored
historyAsOf = lastEntry.date.getUrlString()
# if "+" in historyAsOf:
# historyAsOf = historyAsOf.replace("+", "-")
# else:
# historyAsOf = historyAsOf[:19] + "+" + historyAsOf[20:]
lastBackupTime = rdw_helpers.rdwTime()
lastBackupTime.initFromString(historyAsOf)
entries = getBackupHistorySinceDate(rdiffDestDir, lastBackupTime)
assert len(entries) == 1
# Test that no backups are returned one second after the last backup
historyAsOf = historyAsOf[:18] + "1" + historyAsOf[19:]
postBackupTime = rdw_helpers.rdwTime()
postBackupTime.initFromString(historyAsOf)
assert lastBackupTime.getLocalSeconds() + 1 == postBackupTime.getLocalSeconds()
entries = getBackupHistorySinceDate(rdiffDestDir, postBackupTime)
assert len(entries) == 0
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:49,代码来源:librdiff.py
示例4: _getUserMessagesForDay
def _getUserMessagesForDay(self, date):
userRepos = self.getUserDB().getUserRepoPaths(self.getUsername())
# Set the start and end time to be the start and end of the day, respectively, to get all entries for that day
startTime = rdw_helpers.rdwTime()
startTime.timeInSeconds = date.timeInSeconds
startTime.tzOffset = date.tzOffset
startTime.setTime(0, 0, 0)
endTime = rdw_helpers.rdwTime()
endTime.timeInSeconds = date.timeInSeconds
endTime.tzOffset = date.tzOffset
endTime.setTime(23, 59, 59)
return self._getUserMessages(userRepos, True, False, startTime, endTime)
开发者ID:lxsol,项目名称:rdiffweb,代码行数:15,代码来源:page_status.py
示例5: testGetDirEntries
def testGetDirEntries(self):
tests = self.getBackupTests()
for testDir in tests:
# Get a list of backup entries for the root folder
rdiffDestDir = joinPaths(self.destRoot, testDir)
entries = getDirEntries(rdiffDestDir, "/")
# Go back through all backup states and make sure that the backup entries match the files that exist
origStateDir = joinPaths(self.masterDirPath, testDir)
backupStates = self.getBackupStates(origStateDir)
backupStates.sort(lambda x, y: cmp(x, y))
for backupState in backupStates:
backupTime = rdw_helpers.rdwTime()
backupTime.initFromString(backupState)
# Go through each file, and make sure we have a backup entry for this file and date
origStateDir = joinPaths(self.masterDirPath, testDir, backupState)
files = self.getBackupStates(origStateDir)
for file in files:
origFilePath = joinPaths(origStateDir, file)
entry = getMatchingDirEntry(entries, file)
assertionErrorMessage = "backupTime "+backupTime.getDisplayString()+" not found in backup entries for backup test \""+testDir+"\" for file \""+file+"\". Returned changeDates:"
for changeDate in entry.changeDates:
assertionErrorMessage = assertionErrorMessage + "\n"+changeDate.getDisplayString()
assertionErrorMessage = assertionErrorMessage + "\nIncrements dir: "+str(os.listdir(joinPaths(rdiffDestDir, "rdiff-backup-data", "increments")))
for entryDate in entry.changeDates:
if backupTime.getSeconds() == entryDate.getSeconds():
if self.fileChangedBetweenBackups(testDir, entry.name, backupState, backupStates):
assert False, assertionErrorMessage
break
else:
if not self.fileChangedBetweenBackups(testDir, entry.name, backupState, backupStates):
assert False or False, assertionErrorMessage
assert os.path.isdir(origFilePath) == entry.isDir
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:35,代码来源:librdiff.py
示例6: _getOldRepoInfo
def _getOldRepoInfo(self, repoName, repoPath,
notifySettings, isAdminMonitoring):
if isAdminMonitoring:
maxAge = notifySettings['adminMaxAge']
else:
maxAge = notifySettings['anyRepoMaxAge']
if not maxAge:
maxAge = notifySettings['repos'][repoName]
if maxAge == 0:
return None
try:
lastBackup = librdiff.getLastBackupHistoryEntry(repoPath, False)
except librdiff.FileError:
return {
"repo" : repoName,
"lastBackupDate" : "never",
"maxAge" : maxAge
}
except Exception:
rdw_logging.log_exception()
rdw_logging.log('(Previous exception occurred for repo %s.)' % repoPath)
else:
if lastBackup:
oldestGoodBackupTime = rdw_helpers.rdwTime()
oldestGoodBackupTime.initFromMidnightUTC(-maxAge)
if lastBackup.date < oldestGoodBackupTime:
return {
"repo" : repoName,
"lastBackupDate" : lastBackup.date.getDisplayString(),
"maxAge" : maxAge
}
return None
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:34,代码来源:email_notification.py
示例7: _get_recent_user_messages
def _get_recent_user_messages(self, failuresOnly):
user_repos = self.app.userdb.get_repos(self.app.currentuser.username)
asOfDate = rdw_helpers.rdwTime()
asOfDate.initFromMidnightUTC(-5)
return self._getUserMessages(user_repos, not failuresOnly, True,
asOfDate, None)
开发者ID:fliphess,项目名称:rdiffweb,代码行数:7,代码来源:page_status.py
示例8: entry
def entry(self, path_b=b"", date=""):
assert isinstance(path_b, str)
assert isinstance(date, unicode)
# Validate date
try:
entry_time = rdw_helpers.rdwTime()
entry_time.initFromInt(int(date))
except ValueError:
logger.exception("invalid date")
return self._compile_error_template(_("Invalid date."))
if not path_b:
userMessages = self._get_user_messages_for_day(entry_time)
else:
# Validate repo parameter
try:
repo_obj = self.validate_user_path(path_b)[0]
except librdiff.FileError as e:
logger.exception("invalid user path")
return self._compile_error_template(unicode(e))
userMessages = self._getUserMessages(
[repo_obj.path], False, True, entry_time, entry_time)
return self._compileStatusPageTemplate(False, userMessages, False)
开发者ID:fliphess,项目名称:rdiffweb,代码行数:25,代码来源:page_status.py
示例9: sendEmails
def sendEmails(self):
for user in self.userDB.getUserList():
userRepos = self.userDB.getUserRepoPaths(user)
oldRepos = []
for repo in userRepos:
maxDaysOld = self.userDB.getRepoMaxAge(user, repo)
if maxDaysOld != 0:
# get the last backup date
try:
lastBackup = librdiff.getLastBackupHistoryEntry(rdw_helpers.joinPaths(self.userDB.getUserRoot(user), repo), False)
except librdiff.FileError:
pass # Skip repos that have never been successfully backed up
else:
if lastBackup:
oldestGoodBackupTime = rdw_helpers.rdwTime()
oldestGoodBackupTime.initFromMidnightUTC(-maxDaysOld)
if lastBackup.date < oldestGoodBackupTime:
oldRepos.append({"repo" : repo, "lastBackupDate" : lastBackup.date.getDisplayString(), "maxAge" : maxDaysOld })
if oldRepos:
userEmailAddress = self.userDB.getUserEmail(user)
emailText = rdw_helpers.compileTemplate("email_notification.txt", repos=oldRepos, sender=self._getEmailSender(), user=user)
session = smtplib.SMTP(self._getEmailHost())
session.login(self._getEmailUsername(), self._getEmailPassword())
smtpresult = session.sendmail(self._getEmailSender(), userEmailAddress.split(";"), emailText)
session.quit()
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:27,代码来源:email_notification.py
示例10: index
def index(self, path_b=b"", date="", usetar=""):
assert isinstance(path_b, str)
assert isinstance(date, unicode)
assert isinstance(usetar, unicode)
logger.debug("restoring [%s][%s]" % (decode_s(path_b, "replace"), date))
# The path_b wont have leading and trailing "/".
(path_b, file_b) = os.path.split(path_b)
if not path_b:
path_b = file_b
file_b = b""
# Check user access to repo / path.
try:
(repo_obj, path_obj) = self.validate_user_path(path_b)
except librdiff.FileError as e:
logger.exception("invalid user path")
return self._compile_error_template(unicode(e))
# Get the restore date
try:
restore_date = rdw_helpers.rdwTime()
restore_date.initFromInt(int(date))
except:
logger.warn("invalid date %s" % date)
return self._compile_error_template(_("Invalid date."))
try:
# Get if backup in progress
if repo_obj.in_progress:
return self._compile_error_template(
_(
"""A backup is currently in progress to this repository. Restores are disabled until this backup is complete."""
)
)
# Restore the file
file_path_b = path_obj.restore(file_b, restore_date, usetar != "T")
except librdiff.FileError as e:
logger.exception("fail to restore")
return self._compile_error_template(unicode(e))
except ValueError:
logger.exception("fail to restore")
return self._compile_error_template(_("Fail to restore."))
# The restored file path need to be deleted when the user is finish
# downloading. The auto-delete tool, will do it if we give him a file
# to delete.
cherrypy.request._autodelete_dir = file_path_b
# The file name return by rdiff-backup is in bytes. We do not process
# it. Cherrypy seams to handle it any weird encoding from this point.
logger.info("restored file [%s]" % decode_s(file_path_b, "replace"))
filename = os.path.basename(file_path_b)
# Escape quotes in filename
filename = filename.replace(b'"', b'\\"')
return serve_file(file_path_b, None, disposition=b"attachment", name=filename)
开发者ID:fliphess,项目名称:rdiffweb,代码行数:59,代码来源:page_restore.py
示例11: _get_user_messages_for_day
def _get_user_messages_for_day(self, date):
userRepos = self.app.userdb.get_repos(self.app.currentuser.username)
# Set the start and end time to be the start and end of the day,
# respectively, to get all entries for that day
startTime = rdw_helpers.rdwTime()
startTime.timeInSeconds = date.timeInSeconds
startTime.tzOffset = date.tzOffset
startTime.setTime(0, 0, 0)
endTime = rdw_helpers.rdwTime()
endTime.timeInSeconds = date.timeInSeconds
endTime.tzOffset = date.tzOffset
endTime.setTime(23, 59, 59)
return self._getUserMessages(userRepos, True, False,
startTime, endTime)
开发者ID:fliphess,项目名称:rdiffweb,代码行数:17,代码来源:page_status.py
示例12: getDate
def getDate(self):
timeString = self.getDateString()
returnTime = rdw_helpers.rdwTime()
try:
returnTime.initFromString(timeString)
return returnTime
except ValueError:
return None
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:8,代码来源:librdiff.py
示例13: _getFirstBackupAfterDate
def _getFirstBackupAfterDate(self, date):
""" Iterates the mirror_metadata files in the rdiff data dir """
backupFiles = filter(lambda x: x.startswith("mirror_metadata"), self.dataDirEntries)
backupFiles.sort()
for backup in backupFiles:
backupTimeString = rsplit(backup, ".", 3)[1]
backupTime = rdw_helpers.rdwTime()
backupTime.initFromString(backupTimeString)
if not date or backupTime > date:
return backupTime
return backupFiles[-1]
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:11,代码来源:librdiff.py
示例14: _parseDate
def _parseDate(self, filename):
"""Return a date object from a filename."""
# Parse the date of the file
filename = self._removeSuffix(filename)
filename = rsplit(filename, ".", 1)[1]
time = rdw_helpers.rdwTime()
try:
time.initFromString(filename)
return time
except ValueError:
return None
开发者ID:chencho,项目名称:rdiffweb,代码行数:11,代码来源:librdiff.py
示例15: date
def date(self):
# Remove suffix from filename
filename = self._remove_suffix(self.name)
# Remove prefix from filename
date_string = filename.rsplit(b".", 1)[-1]
return_time = rdw_helpers.rdwTime()
try:
return_time.initFromString(date_string)
return return_time
except ValueError:
return None
开发者ID:bahamut45,项目名称:rdiffweb,代码行数:11,代码来源:librdiff.py
示例16: _getFirstBackupAfterDate
def _getFirstBackupAfterDate(self, date):
""" Iterates the mirror_metadata files in the rdiff data dir """
if not self.backupTimes:
return rdw_helpers.rdwTime()
if not date:
return self.backupTimes[0]
index = bisect.bisect_right(self.backupTimes, date)
if index >= len(self.backupTimes):
return self.backupTimes[-1]
return self.backupTimes[index]
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:11,代码来源:librdiff.py
示例17: extract_date
def extract_date(filename):
"""
Extract date from rdiff-backup filenames.
"""
# Remove suffix from filename
filename = IncrementEntry._remove_suffix(filename)
# Remove prefix from filename
date_string = filename.rsplit(b".", 1)[-1]
return_time = rdw_helpers.rdwTime()
try:
return_time.initFromString(date_string)
return return_time
except ValueError:
return None
开发者ID:fliphess,项目名称:rdiffweb,代码行数:14,代码来源:librdiff.py
示例18: _getUserMessages
def _getUserMessages(self):
userRoot = self.userDB.getUserRoot(self.getUsername())
userRepos = self.userDB.getUserRepoPaths(self.getUsername())
asOfDate = rdw_helpers.rdwTime()
asOfDate.initFromMidnightUTC(-5)
# build list of all backups
allBackups = []
repoErrors = []
for repo in userRepos:
try:
backups = librdiff.getBackupHistorySinceDate(rdw_helpers.joinPaths(userRoot, repo), asOfDate)
allBackups += [{"repo": repo, "date": backup.date, "displayDate": backup.date.getDisplayString(),
"size": rdw_helpers.formatFileSizeStr(backup.size), "errors": backup.errors} for backup in backups]
except librdiff.FileError, error:
repoErrors.append({"repo": repo, "error": error.getErrorString()})
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:17,代码来源:page_status.py
示例19: emailNotifications
def emailNotifications():
emailHost = getEmailHost()
emailSender = getEmailSender()
emailUsername = getEmailUsername()
emailPassword = getEmailPassword()
dbBackend = db.userDB().getUserDBModule()
for user in dbBackend.getUserList():
userRepos = dbBackend.getUserRepoPaths(user)
oldRepos = []
for repo in userRepos:
maxDaysOld = dbBackend.getRepoMaxAge(user, repo)
if maxDaysOld != 0:
# get the last backup date
try:
lastBackup = librdiff.getLastBackupHistoryEntry(rdw_helpers.joinPaths(dbBackend.getUserRoot(user), repo), False)
except librdiff.FileError:
pass # Skip repos that have never been successfully backed up
else:
if lastBackup:
oldestGoodBackupTime = rdw_helpers.rdwTime()
oldestGoodBackupTime.initFromMidnightUTC(-maxDaysOld)
if lastBackup.date < oldestGoodBackupTime:
oldRepos.append({"repo" : repo, "lastBackupDate" : lastBackup.date.getDisplayString(), "maxAge" : maxDaysOld })
if oldRepos:
userEmailAddress = dbBackend.getUserEmail(user)
emailText = rdw_helpers.compileTemplate("email_notification.txt", repos=oldRepos, sender=emailSender, user=user)
session = smtplib.SMTP(emailHost)
session.login(emailUsername, emailPassword)
smtpresult = session.sendmail(emailSender, userEmailAddress.split(";"), emailText)
if smtpresult:
error = ""
for recipient in smtpresult.keys():
error = """Could not delivery mail to: %s
Server said: %s
%s
%s""" % (recipient, smtpresult[recipient][0], smtpresult[recipient][1], error)
raise smtplib.SMTPException, error
session.quit()
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:43,代码来源:email_notification.py
示例20: entry
def entry(self, date="", repo=""):
# Validate date
try:
entryTime = rdw_helpers.rdwTime()
entryTime.initFromString(date)
except ValueError:
return self.writeErrorPage("Invalid date parameter.")
if not repo:
userMessages = self._getUserMessagesForDay(entryTime)
else:
# Validate repo parameter
if not repo in self.userDB.getUserRepoPaths(self.getUsername()):
return self.writeErrorPage("Access is denied.")
try:
self.validateUserPath(repo)
except rdw_helpers.accessDeniedError, error:
return self.writeErrorPage(str(error))
userMessages = self._getUserMessages([repo], False, True, entryTime, entryTime)
开发者ID:BackupTheBerlios,项目名称:rdiffweb-svn,代码行数:20,代码来源:page_status.py
注:本文中的rdw_helpers.rdwTime函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论