mirror of
https://github.com/ostreedev/ostree.git
synced 2024-10-26 08:55:19 +03:00
Display bytes/second during pull
Add start time to the AsyncProgress object, use it in the common progress.
This commit is contained in:
parent
249da7aef2
commit
43bba232a0
@ -140,6 +140,7 @@ on_request_started (SoupSession *session,
|
||||
gpointer user_data)
|
||||
{
|
||||
OstreeFetcher *self = user_data;
|
||||
|
||||
g_hash_table_insert (self->sending_messages, msg, g_object_ref (msg));
|
||||
}
|
||||
|
||||
|
@ -65,6 +65,8 @@ typedef struct {
|
||||
guint n_fetched_metadata;
|
||||
guint n_fetched_content;
|
||||
|
||||
guint64 start_time;
|
||||
|
||||
gboolean have_previous_bytes;
|
||||
guint64 previous_bytes_sec;
|
||||
guint64 previous_total_downloaded;
|
||||
@ -143,6 +145,7 @@ update_progress (gpointer user_data)
|
||||
guint fetched = pull_data->n_fetched_metadata + pull_data->n_fetched_content;
|
||||
guint requested = pull_data->n_requested_metadata + pull_data->n_requested_content;
|
||||
guint n_scanned_metadata = pull_data->n_scanned_metadata;
|
||||
guint64 start_time = pull_data->start_time;
|
||||
|
||||
g_assert (pull_data->progress);
|
||||
|
||||
@ -152,6 +155,7 @@ update_progress (gpointer user_data)
|
||||
ostree_async_progress_set_uint (pull_data->progress, "requested", requested);
|
||||
ostree_async_progress_set_uint (pull_data->progress, "scanned-metadata", n_scanned_metadata);
|
||||
ostree_async_progress_set_uint64 (pull_data->progress, "bytes-transferred", bytes_transferred);
|
||||
ostree_async_progress_set_uint64 (pull_data->progress, "start-time", start_time);
|
||||
|
||||
if (pull_data->fetching_sync_uri)
|
||||
{
|
||||
@ -1039,7 +1043,6 @@ ostree_repo_pull (OstreeRepo *self,
|
||||
GKeyFile *remote_config = NULL;
|
||||
char **configured_branches = NULL;
|
||||
guint64 bytes_transferred;
|
||||
guint64 start_time;
|
||||
guint64 end_time;
|
||||
|
||||
pull_data->async_error = error;
|
||||
@ -1057,7 +1060,7 @@ ostree_repo_pull (OstreeRepo *self,
|
||||
pull_data->requested_metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
(GDestroyNotify)g_free, NULL);
|
||||
|
||||
start_time = g_get_monotonic_time ();
|
||||
pull_data->start_time = g_get_monotonic_time ();
|
||||
|
||||
pull_data->remote_name = g_strdup (remote_name);
|
||||
config = ostree_repo_get_config (self);
|
||||
@ -1310,7 +1313,7 @@ ostree_repo_pull (OstreeRepo *self,
|
||||
pull_data->n_fetched_metadata, pull_data->n_fetched_content,
|
||||
(guint64)(bytes_transferred / shift),
|
||||
shift == 1 ? "B" : "KiB",
|
||||
(guint) ((end_time - start_time) / G_USEC_PER_SEC));
|
||||
(guint) ((end_time - pull_data->start_time) / G_USEC_PER_SEC));
|
||||
ostree_async_progress_set_status (pull_data->progress, msg);
|
||||
}
|
||||
|
||||
|
@ -52,12 +52,22 @@ ot_common_pull_progress (OstreeAsyncProgress *progress,
|
||||
guint64 bytes_transferred = ostree_async_progress_get_uint64 (progress, "bytes-transferred");
|
||||
guint fetched = ostree_async_progress_get_uint (progress, "fetched");
|
||||
guint requested = ostree_async_progress_get_uint (progress, "requested");
|
||||
guint64 bytes_sec = (g_get_monotonic_time () - ostree_async_progress_get_uint64 (progress, "start-time")) / G_USEC_PER_SEC;
|
||||
gs_free char *formatted_bytes_transferred =
|
||||
g_format_size_full (bytes_transferred, 0);
|
||||
gs_free char *formatted_bytes_sec = NULL;
|
||||
|
||||
g_string_append_printf (buf, "Receiving objects: %u%% (%u/%u) %s",
|
||||
if (!bytes_sec) // Ignore first second
|
||||
formatted_bytes_sec = g_strdup ("-");
|
||||
else
|
||||
{
|
||||
bytes_sec = bytes_transferred / bytes_sec;
|
||||
formatted_bytes_sec = g_format_size (bytes_sec);
|
||||
}
|
||||
|
||||
g_string_append_printf (buf, "Receiving objects: %u%% (%u/%u) %s/s %s",
|
||||
(guint)((((double)fetched) / requested) * 100),
|
||||
fetched, requested, formatted_bytes_transferred);
|
||||
fetched, requested, formatted_bytes_sec, formatted_bytes_transferred);
|
||||
}
|
||||
else if (outstanding_writes)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user