repo: Make repo/tmp expiry configurable via tmp-expiry-seconds

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
This commit is contained in:
Colin Walters 2016-03-21 17:54:45 -04:00 committed by Colin Walters (automation)
parent a56ba6081a
commit 7021c4f876
3 changed files with 15 additions and 3 deletions

View File

@ -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;

View File

@ -98,6 +98,7 @@ struct OstreeRepo {
OstreeRepoMode mode;
gboolean enable_uncompressed_cache;
gboolean generate_sizes;
guint64 tmp_expiry_seconds;
OstreeRepo *parent_repo;
};

View File

@ -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;