From fb93b9580703fd73d7a3a44bb103fd31565fed1f Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 15 Jul 2013 16:13:12 -0400 Subject: [PATCH] admin: Rename prune -> cleanup, avoid doing repo prune twice Calling it "cleanup" is better since it does more than repo pruning. We were also doing a prune twice; ot_admin_cleanup() already does one, so drop the bits to do it in cleanup.c. --- Makefile-ostree.am | 2 +- ...tin-prune.c => ot-admin-builtin-cleanup.c} | 36 ++----------------- src/ostree/ot-admin-builtins.h | 2 +- src/ostree/ot-builtin-admin.c | 2 +- tests/test-admin-deploy-2.sh | 6 ++++ 5 files changed, 11 insertions(+), 37 deletions(-) rename src/ostree/{ot-admin-builtin-prune.c => ot-admin-builtin-cleanup.c} (52%) diff --git a/Makefile-ostree.am b/Makefile-ostree.am index d5eaacde..4c3ade90 100644 --- a/Makefile-ostree.am +++ b/Makefile-ostree.am @@ -48,7 +48,7 @@ ostree_SOURCES += \ src/ostree/ot-admin-builtin-init-fs.c \ src/ostree/ot-admin-builtin-diff.c \ src/ostree/ot-admin-builtin-deploy.c \ - src/ostree/ot-admin-builtin-prune.c \ + src/ostree/ot-admin-builtin-cleanup.c \ src/ostree/ot-admin-builtin-os-init.c \ src/ostree/ot-admin-builtin-status.c \ src/ostree/ot-admin-builtin-upgrade.c \ diff --git a/src/ostree/ot-admin-builtin-prune.c b/src/ostree/ot-admin-builtin-cleanup.c similarity index 52% rename from src/ostree/ot-admin-builtin-prune.c rename to src/ostree/ot-admin-builtin-cleanup.c index fc062fc6..5dc8b8ea 100644 --- a/src/ostree/ot-admin-builtin-prune.c +++ b/src/ostree/ot-admin-builtin-cleanup.c @@ -28,59 +28,27 @@ #include -static gboolean opt_no_repo_prune; - static GOptionEntry options[] = { - { "no-repo-prune", 0, 0, G_OPTION_ARG_NONE, &opt_no_repo_prune, "Only prune deployment checkouts; don't prune repository", NULL }, { NULL } }; - gboolean -ot_admin_builtin_prune (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error) +ot_admin_builtin_cleanup (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error) { GOptionContext *context; gboolean ret = FALSE; - gs_unref_object GFile *repo_path = NULL; - gs_unref_object GFile *deploy_dir = NULL; - gs_unref_object GFile *current_deployment = NULL; - gs_unref_object GFile *previous_deployment = NULL; - gs_unref_object GFile *active_deployment = NULL; - gs_free char *active_osname = NULL; __attribute__((unused)) GCancellable *cancellable = NULL; - context = g_option_context_new ("OSNAME - Delete untagged deployments and repository objects"); + context = g_option_context_new ("Delete untagged deployments and repository objects"); g_option_context_add_main_entries (context, options, NULL); if (!g_option_context_parse (context, &argc, &argv, error)) goto out; - if (argc < 2) - { - ot_util_usage_error (context, "OSNAME must be specified", error); - goto out; - } - if (!ot_admin_cleanup (admin_opts->sysroot, cancellable, error)) goto out; - repo_path = g_file_resolve_relative_path (admin_opts->sysroot, "ostree/repo"); - - if (!opt_no_repo_prune) - { - gs_free char *repo_arg = NULL; - - repo_arg = g_strconcat ("--repo=", gs_file_get_path_cached (repo_path), NULL); - - if (!gs_subprocess_simple_run_sync (NULL, - GS_SUBPROCESS_STREAM_DISPOSITION_INHERIT, - cancellable, error, - "ostree", repo_arg, "prune", "--refs-only", - "--depth=0", NULL)) - goto out; - } - ret = TRUE; out: if (context) diff --git a/src/ostree/ot-admin-builtins.h b/src/ostree/ot-admin-builtins.h index 29392282..e6dc264d 100644 --- a/src/ostree/ot-admin-builtins.h +++ b/src/ostree/ot-admin-builtins.h @@ -34,7 +34,7 @@ gboolean ot_admin_builtin_os_init (int argc, char **argv, OtAdminBuiltinOpts *ad gboolean ot_admin_builtin_install (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); gboolean ot_admin_builtin_init_fs (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); gboolean ot_admin_builtin_deploy (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); -gboolean ot_admin_builtin_prune (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); +gboolean ot_admin_builtin_cleanup (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); gboolean ot_admin_builtin_status (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); gboolean ot_admin_builtin_diff (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); gboolean ot_admin_builtin_upgrade (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); diff --git a/src/ostree/ot-builtin-admin.c b/src/ostree/ot-builtin-admin.c index 813a66b3..b7b5ead4 100644 --- a/src/ostree/ot-builtin-admin.c +++ b/src/ostree/ot-builtin-admin.c @@ -41,7 +41,7 @@ static OstreeAdminCommand admin_subcommands[] = { { "init-fs", ot_admin_builtin_init_fs }, { "deploy", ot_admin_builtin_deploy }, { "upgrade", ot_admin_builtin_upgrade }, - { "prune", ot_admin_builtin_prune }, + { "cleanup", ot_admin_builtin_cleanup }, { "status", ot_admin_builtin_status }, { "config-diff", ot_admin_builtin_diff }, { NULL, NULL } diff --git a/tests/test-admin-deploy-2.sh b/tests/test-admin-deploy-2.sh index ab0bb9a1..d7ddf5f5 100755 --- a/tests/test-admin-deploy-2.sh +++ b/tests/test-admin-deploy-2.sh @@ -56,3 +56,9 @@ assert_has_dir sysroot/boot/ostree/testos-${bootcsum} assert_file_has_content sysroot/ostree/deploy/testos/deploy/${newrev}.0/etc/os-release 'NAME=TestOS' echo "ok deploy and GC /boot" + +ostree admin --sysroot=sysroot cleanup +assert_has_dir sysroot/boot/ostree/testos-${bootcsum} +assert_file_has_content sysroot/ostree/deploy/testos/deploy/${newrev}.0/etc/os-release 'NAME=TestOS' + +echo "ok manual cleanup"