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.
This commit is contained in:
Colin Walters 2013-07-15 16:13:12 -04:00
parent d5f1ce4e17
commit fb93b95807
5 changed files with 11 additions and 37 deletions

View File

@ -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 \

View File

@ -28,59 +28,27 @@
#include <glib/gi18n.h>
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)

View File

@ -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);

View File

@ -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 }

View File

@ -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"