mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-27 18:04:17 +03:00
sysroot: Avoid double cleanup, and ensure no cleanup if specified
Since forever, we've been doing two cleanups. In
8ece4d6d51
I thought we were doing just one and wanted to go to zero (if specified),
but I actually just dropped one cleanup.
In https://github.com/projectatomic/rpm-ostree/pull/452
@jlebon pointed out the duplication. Fix this by creating a new internal
deploy wrapper that takes cleanup flags.
(Since we already had the "piecemeal cleanup" API internally, let's
frame it in terms of that, rather than passing down a boolean).
Closes: #500
Approved by: jlebon
This commit is contained in:
parent
82b756783b
commit
30aaffa995
@ -1712,6 +1712,18 @@ ostree_sysroot_write_deployments (OstreeSysroot *self,
|
||||
GPtrArray *new_deployments,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
return _ostree_sysroot_write_deployments_internal (self, new_deployments,
|
||||
OSTREE_SYSROOT_CLEANUP_ALL,
|
||||
cancellable, error);
|
||||
}
|
||||
|
||||
gboolean
|
||||
_ostree_sysroot_write_deployments_internal (OstreeSysroot *self,
|
||||
GPtrArray *new_deployments,
|
||||
OstreeSysrootCleanupFlags cleanup_flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
guint i;
|
||||
@ -1937,7 +1949,8 @@ ostree_sysroot_write_deployments (OstreeSysroot *self,
|
||||
|
||||
/* And finally, cleanup of any leftover data.
|
||||
*/
|
||||
if (!ostree_sysroot_cleanup (self, cancellable, error))
|
||||
if (!_ostree_sysroot_piecemeal_cleanup (self, cleanup_flags,
|
||||
cancellable, error))
|
||||
{
|
||||
g_prefix_error (error, "Performing final cleanup: ");
|
||||
goto out;
|
||||
|
@ -121,4 +121,10 @@ gboolean _ostree_sysroot_piecemeal_cleanup (OstreeSysroot *sysroot,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
gboolean _ostree_sysroot_write_deployments_internal (OstreeSysroot *self,
|
||||
GPtrArray *new_deployments,
|
||||
OstreeSysrootCleanupFlags cleanup_flags,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
G_END_DECLS
|
||||
|
@ -1591,15 +1591,11 @@ ostree_sysroot_simple_write_deployment (OstreeSysroot *sysroot,
|
||||
added_new = TRUE;
|
||||
}
|
||||
|
||||
if (!ostree_sysroot_write_deployments (sysroot, new_deployments, cancellable, error))
|
||||
if (!_ostree_sysroot_write_deployments_internal (sysroot, new_deployments,
|
||||
postclean ? OSTREE_SYSROOT_CLEANUP_ALL : 0,
|
||||
cancellable, error))
|
||||
goto out;
|
||||
|
||||
if (postclean)
|
||||
{
|
||||
if (!ostree_sysroot_cleanup (sysroot, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = TRUE;
|
||||
out:
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user