Skip to content

Commit 0f431bf

Browse files
use the 'path' field in the State data instead of guessing
1 parent b67541b commit 0f431bf

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

mongodb_consistent_backup/Rotate.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def __init__(self, config, state_root, state_bkp):
1717
self.max_backups = self.config.rotate.max_backups
1818
self.max_days = self.config.rotate.max_days
1919

20-
self.latest = state_bkp.get("name")
20+
self.latest = state_bkp.state
2121
self.previous = None
2222
self.backups = self.backups_by_unixts()
2323

@@ -41,13 +41,12 @@ def backups_by_unixts(self):
4141
def remove(self, ts):
4242
if ts in self.backups:
4343
backup = self.backups[ts]
44-
path = os.path.join(self.base_dir, backup["name"])
45-
if os.path.isdir(path):
46-
logging.debug("Removing backup path: %s" % path)
47-
rmtree(path)
44+
if os.path.isdir(backup["path"]):
45+
logging.debug("Removing backup path: %s" % backup["path"])
46+
rmtree(backup["path"])
4847
else:
49-
raise OperationError("Backup path %s does not exist!" % path)
50-
if self.previous == backup["name"]:
48+
raise OperationError("Backup path %s does not exist!" % backup["path"])
49+
if self.previous == backup:
5150
self.previous = None
5251
del self.backups[ts]
5352

@@ -61,7 +60,7 @@ def rotate(self):
6160
for ts in sorted(self.backups.iterkeys(), reverse=True):
6261
backup = self.backups[ts]
6362
if not self.previous:
64-
self.previous = backup["name"]
63+
self.previous = backup
6564
if self.max_backups == 0 or kept_backups < self.max_backups:
6665
if self.max_secs > 0 and (now - ts) > self.max_secs:
6766
logging.info("Backup %s exceeds max age %.2f days, removing backup" % (backup["name"], self.max_days))
@@ -77,16 +76,14 @@ def symlink(self):
7776
try:
7877
if os.path.islink(self.latest_symlink):
7978
os.remove(self.latest_symlink)
80-
latest = os.path.join(self.base_dir, self.latest)
81-
logging.info("Updating %s latest symlink to current backup path: %s" % (self.backup_name, latest))
82-
os.symlink(latest, self.latest_symlink)
79+
logging.info("Updating %s latest symlink to current backup path: %s" % (self.backup_name, self.latest["path"]))
80+
os.symlink(self.latest["path"], self.latest_symlink)
8381

8482
if os.path.islink(self.previous_symlink):
8583
os.remove(self.previous_symlink)
8684
if self.previous:
87-
previous = os.path.join(self.base_dir, self.previous)
88-
logging.info("Updating %s previous symlink to: %s" % (self.backup_name, previous))
89-
os.symlink(previous, self.previous_symlink)
85+
logging.info("Updating %s previous symlink to: %s" % (self.backup_name, self.previous["path"]))
86+
os.symlink(self.previous["path"], self.previous_symlink)
9087
except Exception, e:
9188
logging.error("Error creating backup symlinks: %s" % e)
9289
raise OperationError(e)

0 commit comments

Comments
 (0)