468 return |
468 return |
469 |
469 |
470 # configured |
470 # configured |
471 keep = interval.keep |
471 keep = interval.keep |
472 |
472 |
473 # clean? |
473 # items to clean? |
474 items = os.listdir(dir_path) |
474 items = os.listdir(dir_path) |
475 items.sort() |
475 |
|
476 # sort newest -> oldest |
|
477 items.sort(reverse=True) |
476 |
478 |
477 log.info("%s: Have %d / %d items", interval, len(items), keep) |
479 log.info("%s: Have %d / %d items", interval, len(items), keep) |
478 log.debug("%s: items: %s", interval, ' '.join(items)) |
480 log.debug("%s: items: %s", interval, ' '.join(items)) |
479 |
481 |
480 if len(items) > keep : |
482 if len(items) > keep : |
481 # clean out |
483 # select oldest ones |
482 clean = items[keep:] |
484 clean = items[keep:] |
483 |
485 |
484 log.info("%s: Cleaning out %d items", interval, len(clean)) |
486 log.info("%s: Cleaning out %d items", interval, len(clean)) |
485 log.debug("%s: cleaning out: %s", interval, ' '.join(clean)) |
487 log.debug("%s: cleaning out: %s", interval, ' '.join(clean)) |
486 |
488 |
487 for item in clean : |
489 for item in clean : |
488 path = os.path.join(dir_path, item) |
490 path = os.path.join(dir_path, item) |
489 |
491 |
490 log.info("%s: Clean: %s", interval, path) |
492 log.info("%s: Clean: %s", interval, path) |
491 |
493 |
492 os.unlink(path) |
494 if not options.dry_run : |
493 |
495 log.debug("rmtree: %s", path) |
|
496 os.unlink(path) |
|
497 else : |
|
498 log.debug("dryrun: %s", path) |
494 |
499 |
495 def clean_snapshots (self, options) : |
500 def clean_snapshots (self, options) : |
496 """ |
501 """ |
497 Clean out all snapshots for this target not linked to from within our root. |
502 Clean out all snapshots for this target not linked to from within our root. |
498 |
503 |