2017-03-27 21:12:05 +03:00
/*
* Copyright ( C ) 2017 Red Hat , Inc .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA
*/
# pragma once
# include <ostree.h>
# include "rpmostreed-types.h"
/* Used by the upgrader to hold a strong ref temporarily to a base commit */
# define RPMOSTREE_TMP_BASE_REF "rpmostree / base / tmp"
/* Where we check out a new rootfs */
# define RPMOSTREE_TMP_ROOTFS_DIR "extensions / rpmostree / commit"
gboolean
rpmostree_syscore_cleanup ( OstreeSysroot * sysroot ,
OstreeRepo * repo ,
GCancellable * cancellable ,
GError * * error ) ;
2017-03-22 17:17:47 +03:00
OstreeDeployment * rpmostree_syscore_get_origin_merge_deployment ( OstreeSysroot * self , const char * osname ) ;
gboolean rpmostree_syscore_bump_mtime ( OstreeSysroot * self , GError * * error ) ;
Introduce `ex livefs`
There are a few different use cases here. First, for layering new packages,
there's no good reason for us to force a reboot. Second, we want some support
for cherry-picking security updates and allowing admins to restart services. Finally,
at some point we should offer support for entirely replacing the running tree
if that's what the user wants.
Until now we've been very conservative, but there's a spectrum here. In
particular, this patch changes things so we push a rollback before we start
doing anything live. I think in practice, many use cases would be totally fine
with doing most changes live, and falling back to the rollback if something went
wrong.
This initial code drop *only* supports live layering of new packages. However,
a lot of the base infrastructure is laid for future work.
For now, this will be classified as an experimental feature, hence `ex livefs`.
Part of: https://github.com/projectatomic/rpm-ostree/issues/639
Closes: #652
Approved by: jlebon
2017-03-01 01:16:48 +03:00
# define RPMOSTREE_LIVE_INPROGRESS_XATTR "user.rpmostree-live-inprogress"
# define RPMOSTREE_LIVE_REPLACED_XATTR "user.rpmostree-live-replaced"
gboolean rpmostree_syscore_deployment_get_live ( OstreeSysroot * sysroot ,
OstreeDeployment * deployment ,
int deployment_dfd ,
char * * out_inprogress_checksum ,
char * * o ut_livereplaced_checksum ,
GError * * error ) ;
gboolean rpmostree_syscore_deployment_is_live ( OstreeSysroot * sysroot ,
OstreeDeployment * deployment ,
int deployment_dfd ,
gboolean * out_is_live ,
GError * * error ) ;
2017-03-22 17:17:47 +03:00
GPtrArray * rpmostree_syscore_add_deployment ( OstreeSysroot * sysroot ,
OstreeDeployment * new_deployment ,
OstreeDeployment * merge_deployment ,
Introduce `ex livefs`
There are a few different use cases here. First, for layering new packages,
there's no good reason for us to force a reboot. Second, we want some support
for cherry-picking security updates and allowing admins to restart services. Finally,
at some point we should offer support for entirely replacing the running tree
if that's what the user wants.
Until now we've been very conservative, but there's a spectrum here. In
particular, this patch changes things so we push a rollback before we start
doing anything live. I think in practice, many use cases would be totally fine
with doing most changes live, and falling back to the rollback if something went
wrong.
This initial code drop *only* supports live layering of new packages. However,
a lot of the base infrastructure is laid for future work.
For now, this will be classified as an experimental feature, hence `ex livefs`.
Part of: https://github.com/projectatomic/rpm-ostree/issues/639
Closes: #652
Approved by: jlebon
2017-03-01 01:16:48 +03:00
gboolean pushing_rollback ,
GError * * error ) ;
2017-03-22 17:17:47 +03:00
2017-05-08 04:18:13 +03:00
void rpmostree_syscore_query_deployments ( OstreeSysroot * sysroot ,
const char * osname ,
OstreeDeployment * * out_pending ,
OstreeDeployment * * out_rollback ) ;
2017-03-27 23:58:04 +03:00
GPtrArray * rpmostree_syscore_filter_deployments ( OstreeSysroot * sysroot ,
const char * osname ,
gboolean remove_pending ,
gboolean remove_rollback ) ;
2017-03-22 17:17:47 +03:00
gboolean rpmostree_syscore_write_deployments ( OstreeSysroot * sysroot ,
OstreeRepo * repo ,
GPtrArray * new_deployments ,
GCancellable * cancellable ,
GError * * error ) ;