Skip to content

Commit

Permalink
repo: Make repo/tmp expiry configurable via tmp-expiry-seconds
Browse files Browse the repository at this point in the history
We were arbitrarily only deleting content after exactly one day.  Some
use cases may want something else; make it configurable.

Closes: #170
Approved by: jlebon
  • Loading branch information
cgwalters authored and cgwalters-bot committed May 2, 2016
1 parent a56ba60 commit 7021c4f
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/libostree/ostree-repo-commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1349,11 +1349,12 @@ cleanup_tmpdir (OstreeRepo *self,
if (stbuf.st_mtime > curtime_secs)
continue;

/* Now, we arbitrarily delete files/directories older than a
* day, since that's what we were doing before we had locking.
/* Now, we're pruning content based on the expiry, which
* defaults to a day. That's what we were doing before we
* had locking...but in future we can be smarter here.
*/
delta = curtime_secs - stbuf.st_mtime;
if (delta > 60*60*24)
if (delta > self->tmp_expiry_seconds)
{
if (!glnx_shutil_rm_rf_at (dfd_iter.fd, dent->d_name, cancellable, error))
goto out;
Expand Down
1 change: 1 addition & 0 deletions src/libostree/ostree-repo-private.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ struct OstreeRepo {
OstreeRepoMode mode;
gboolean enable_uncompressed_cache;
gboolean generate_sizes;
guint64 tmp_expiry_seconds;

OstreeRepo *parent_repo;
};
Expand Down
10 changes: 10 additions & 0 deletions src/libostree/ostree-repo.c
Original file line number Diff line number Diff line change
Expand Up @@ -2561,6 +2561,16 @@ ostree_repo_open (OstreeRepo *self,
ostree_repo_set_disable_fsync (self, TRUE);
}

{ g_autofree char *tmp_expiry_seconds = NULL;

/* 86400 secs = one day */
if (!ot_keyfile_get_value_with_default (self->config, "core", "tmp-expiry-secs", "86400",
&tmp_expiry_seconds, error))
goto out;

self->tmp_expiry_seconds = g_ascii_strtoull (tmp_expiry_seconds, NULL, 10);
}

if (!append_remotes_d (self, cancellable, error))
goto out;

Expand Down

0 comments on commit 7021c4f

Please sign in to comment.