lib/deploy: Support locking deployment finalization
Teach `ostree-finalize-staged.service` to check for a file in `/run` to determine if it should do the finalization. This will be used in RPM-OSTree, where we want to be able to separate out "preparing updates" from "making update the default" for more fine-grained control. See: https://github.com/projectatomic/rpm-ostree/issues/1748 Closes: #1841 Approved by: cgwalters
This commit is contained in:
parent
405d9ef9e0
commit
586cc2deee
|
|
@ -2886,6 +2886,17 @@ _ostree_sysroot_finalize_staged (OstreeSysroot *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check if finalization is locked. */
|
||||||
|
if (!glnx_fstatat_allow_noent (AT_FDCWD, _OSTREE_SYSROOT_RUNSTATE_STAGED_LOCKED,
|
||||||
|
NULL, 0, error))
|
||||||
|
return FALSE;
|
||||||
|
if (errno == 0)
|
||||||
|
{
|
||||||
|
ot_journal_print (LOG_INFO, "Not finalizing; found "
|
||||||
|
_OSTREE_SYSROOT_RUNSTATE_STAGED_LOCKED);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Notice we send this *after* the trivial `return TRUE` above; this msg implies we've
|
/* Notice we send this *after* the trivial `return TRUE` above; this msg implies we've
|
||||||
* committed to finalizing the deployment. */
|
* committed to finalizing the deployment. */
|
||||||
ot_journal_send ("MESSAGE_ID=" SD_ID128_FORMAT_STR,
|
ot_journal_send ("MESSAGE_ID=" SD_ID128_FORMAT_STR,
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ struct OstreeSysroot {
|
||||||
#define OSTREE_SYSROOT_LOCKFILE "ostree/lock"
|
#define OSTREE_SYSROOT_LOCKFILE "ostree/lock"
|
||||||
/* We keep some transient state in /run */
|
/* We keep some transient state in /run */
|
||||||
#define _OSTREE_SYSROOT_RUNSTATE_STAGED "/run/ostree/staged-deployment"
|
#define _OSTREE_SYSROOT_RUNSTATE_STAGED "/run/ostree/staged-deployment"
|
||||||
|
#define _OSTREE_SYSROOT_RUNSTATE_STAGED_LOCKED "/run/ostree/staged-deployment-locked"
|
||||||
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_DIR "/run/ostree/deployment-state/"
|
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_DIR "/run/ostree/deployment-state/"
|
||||||
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_FLAG_DEVELOPMENT "unlocked-development"
|
#define _OSTREE_SYSROOT_DEPLOYMENT_RUNSTATE_FLAG_DEVELOPMENT "unlocked-development"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue