summaryrefslogtreecommitdiff
path: root/src/ostree/ot-admin-builtin-upgrade.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2013-09-16 09:13:58 -0400
committerColin Walters <walters@verbum.org>2013-09-16 18:32:13 -0400
commit8f1ea1b50aad70f671b8a2902f4b68771cce8682 (patch)
tree8934b8aa6e8a34ddb0ce3ac729e8dda694d41ace /src/ostree/ot-admin-builtin-upgrade.c
parentc07c84cb6f17d2c709897188c2f7e46164636c30 (diff)
downloadostree-8f1ea1b50aad70f671b8a2902f4b68771cce8682.tar.gz
sysroot: Clean up API
Now that we have a real GObject for the sysroot, we have a convenient place to keep track of 4 pieces of state: * The current deployment list * The current bootversion * The current subbootversion * The current booted deployment (if any) Avoid requiring callers to pass all of this around and load it piecemeal; instead the new thing is ostree_sysroot_load().
Diffstat (limited to 'src/ostree/ot-admin-builtin-upgrade.c')
-rw-r--r--src/ostree/ot-admin-builtin-upgrade.c38
1 files changed, 12 insertions, 26 deletions
diff --git a/src/ostree/ot-admin-builtin-upgrade.c b/src/ostree/ot-admin-builtin-upgrade.c
index 563b14be..045d1329 100644
--- a/src/ostree/ot-admin-builtin-upgrade.c
+++ b/src/ostree/ot-admin-builtin-upgrade.c
@@ -53,13 +53,8 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
gs_free char *new_revision = NULL;
gs_unref_object GFile *deployment_path = NULL;
gs_unref_object GFile *deployment_origin_path = NULL;
- gs_unref_object OstreeDeployment *booted_deployment = NULL;
gs_unref_object OstreeDeployment *merge_deployment = NULL;
- gs_unref_ptrarray GPtrArray *current_deployments = NULL;
- gs_unref_ptrarray GPtrArray *new_deployments = NULL;
gs_unref_object OstreeDeployment *new_deployment = NULL;
- int current_bootversion;
- int new_bootversion;
GKeyFile *origin;
context = g_option_context_new ("Construct new tree from current origin and deploy it, if it changed");
@@ -68,23 +63,15 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
if (!g_option_context_parse (context, &argc, &argv, error))
goto out;
- if (!ostree_sysroot_list_deployments (sysroot, &current_bootversion,
- &current_deployments,
- cancellable, error))
- {
- g_prefix_error (error, "While listing deployments: ");
- goto out;
- }
+ if (!ostree_sysroot_load (sysroot, cancellable, error))
+ goto out;
- if (!ostree_sysroot_require_deployment_or_osname (sysroot, current_deployments,
- opt_osname,
- &booted_deployment,
- cancellable, error))
+ if (!ot_admin_require_booted_deployment_or_osname (sysroot, opt_osname,
+ cancellable, error))
goto out;
if (!opt_osname)
- opt_osname = (char*)ostree_deployment_get_osname (booted_deployment);
- merge_deployment = ostree_sysroot_get_merge_deployment (current_deployments, opt_osname,
- booted_deployment);
+ opt_osname = (char*)ostree_deployment_get_osname (ostree_sysroot_get_booted_deployment (sysroot));
+ merge_deployment = ostree_sysroot_get_merge_deployment (sysroot, opt_osname);
deployment_path = ostree_sysroot_get_deployment_directory (sysroot, merge_deployment);
deployment_origin_path = ostree_sysroot_get_deployment_origin_path (deployment_path);
@@ -131,13 +118,12 @@ ot_admin_builtin_upgrade (int argc, char **argv, OstreeSysroot *sysroot, GCancel
else
{
gs_unref_object GFile *real_sysroot = g_file_new_for_path ("/");
- if (!ostree_sysroot_deploy (sysroot,
- current_bootversion, current_deployments,
- opt_osname, new_revision, origin,
- NULL, FALSE,
- booted_deployment, merge_deployment,
- &new_deployment, &new_bootversion, &new_deployments,
- cancellable, error))
+ if (!ostree_sysroot_deploy_one_tree (sysroot,
+ opt_osname, new_revision, origin,
+ NULL, FALSE,
+ merge_deployment,
+ &new_deployment,
+ cancellable, error))
goto out;
if (opt_reboot && g_file_equal (ostree_sysroot_get_path (sysroot), real_sysroot))