bin/remote-summary: Add options to show metadata

This commit is contained in:
Dan Nicholson 2023-01-29 22:45:29 -07:00
parent b49f93aa95
commit 70ec92e1cd
4 changed files with 69 additions and 31 deletions

View File

@ -1345,11 +1345,13 @@ _ostree_remote_show_url() {
_ostree_remote_summary() {
local boolean_options="
$main_boolean_options
--list-metadata-keys
--raw
"
local options_with_args="
--cache-dir
--print-metadata-key
--repo
"

View File

@ -25,8 +25,10 @@
#include "ot-dump.h"
#include "ot-remote-builtins.h"
static gboolean opt_list_metadata_keys;
static gboolean opt_raw;
static char *opt_print_metadata_key;
static char* opt_cache_dir;
/* ATTENTION:
@ -35,6 +37,8 @@ static char* opt_cache_dir;
*/
static GOptionEntry option_entries[] = {
{ "list-metadata-keys", 0, 0, G_OPTION_ARG_NONE, &opt_list_metadata_keys, "List the available metadata keys", NULL },
{ "print-metadata-key", 0, 0, G_OPTION_ARG_STRING, &opt_print_metadata_key, "Print string value of metadata key", "KEY" },
{ "cache-dir", 0, 0, G_OPTION_ARG_FILENAME, &opt_cache_dir, "Use custom cache dir", NULL },
{ "raw", 0, 0, G_OPTION_ARG_NONE, &opt_raw, "Show raw variant data", NULL },
{ NULL }
@ -90,6 +94,17 @@ ot_remote_builtin_summary (int argc, char **argv, OstreeCommandInvocation *invoc
goto out;
}
if (opt_list_metadata_keys)
{
ot_dump_summary_metadata_keys (summary_bytes);
}
else if (opt_print_metadata_key)
{
if (!ot_dump_summary_metadata_key (summary_bytes, opt_print_metadata_key, error))
goto out;
}
else
{
ot_dump_summary_bytes (summary_bytes, flags);
#ifndef OSTREE_DISABLE_GPGME
@ -126,6 +141,7 @@ ot_remote_builtin_summary (int argc, char **argv, OstreeCommandInvocation *invoc
ostree_print_gpg_verify_result (result);
}
#endif /* OSTREE_DISABLE_GPGME */
}
ret = TRUE;
out:

View File

@ -157,6 +157,16 @@ assert_file_has_content summary.txt "Good signature from \"Ostree Tester <test@t
grep static-deltas summary.txt > static-deltas.txt
assert_file_has_content static-deltas.txt \
$(${OSTREE} --repo=repo rev-parse origin:main)
${OSTREE} --repo=repo remote summary origin --list-metadata-keys > metadata
assert_file_has_content metadata "^ostree.static-deltas$"
assert_file_has_content metadata "^ostree.summary.indexed-deltas$"
assert_file_has_content metadata "^ostree.summary.last-modified$"
assert_file_has_content metadata "^ostree.summary.mode$"
assert_file_has_content metadata "^ostree.summary.tombstone-commits$"
${OSTREE} --repo=repo remote summary origin --print-metadata-key=ostree.summary.indexed-deltas > metadata
assert_file_has_content metadata "^true$"
${OSTREE} --repo=repo remote summary origin --print-metadata-key=ostree.summary.mode > metadata
assert_file_has_content metadata "^'archive-z2'$"
## Tests for handling of cached summaries while racing with remote summary updates

View File

@ -194,6 +194,16 @@ assert_file_has_content summary.txt "* yet-another"
grep static-deltas summary.txt > static-deltas.txt
assert_file_has_content static-deltas.txt \
$(${OSTREE} --repo=repo rev-parse origin:main)
${OSTREE} --repo=repo remote summary origin --list-metadata-keys > metadata
assert_file_has_content metadata "^ostree.static-deltas$"
assert_file_has_content metadata "^ostree.summary.indexed-deltas$"
assert_file_has_content metadata "^ostree.summary.last-modified$"
assert_file_has_content metadata "^ostree.summary.mode$"
assert_file_has_content metadata "^ostree.summary.tombstone-commits$"
${OSTREE} --repo=repo remote summary origin --print-metadata-key=ostree.summary.indexed-deltas > metadata
assert_file_has_content metadata "^true$"
${OSTREE} --repo=repo remote summary origin --print-metadata-key=ostree.summary.mode > metadata
assert_file_has_content metadata "^'archive-z2'$"
## Tests for handling of cached summaries while racing with remote summary updates