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,
|
GPtrArray *new_deployments,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
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;
|
gboolean ret = FALSE;
|
||||||
guint i;
|
guint i;
|
||||||
|
|
@ -1937,7 +1949,8 @@ ostree_sysroot_write_deployments (OstreeSysroot *self,
|
||||||
|
|
||||||
/* And finally, cleanup of any leftover data.
|
/* 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: ");
|
g_prefix_error (error, "Performing final cleanup: ");
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
||||||
|
|
@ -121,4 +121,10 @@ gboolean _ostree_sysroot_piecemeal_cleanup (OstreeSysroot *sysroot,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
|
gboolean _ostree_sysroot_write_deployments_internal (OstreeSysroot *self,
|
||||||
|
GPtrArray *new_deployments,
|
||||||
|
OstreeSysrootCleanupFlags cleanup_flags,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
|
||||||
|
|
@ -1591,15 +1591,11 @@ ostree_sysroot_simple_write_deployment (OstreeSysroot *sysroot,
|
||||||
added_new = TRUE;
|
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;
|
goto out;
|
||||||
|
|
||||||
if (postclean)
|
|
||||||
{
|
|
||||||
if (!ostree_sysroot_cleanup (sysroot, cancellable, error))
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue