From ab3106202ace6c0e7f76bceb814e648f4e4189b6 Mon Sep 17 00:00:00 2001 From: Chris Elsworth Date: Fri, 14 Jul 2017 16:18:34 +0100 Subject: [PATCH 1/2] Also return migration_bytes_left --- src/server/status.c | 2 ++ src/server/status.h | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/server/status.c b/src/server/status.c index dc8d19f..530bd7b 100644 --- a/src/server/status.c +++ b/src/server/status.c @@ -31,6 +31,7 @@ struct status * status_create( struct server * serve ) status->migration_speed_limit = serve->mirror->max_bytes_per_second; status->migration_seconds_left = server_mirror_eta( serve ); + status->migration_bytes_left = server_mirror_bytes_remaining( serve ); } server_unlock_start_mirror( serve ); @@ -60,6 +61,7 @@ int status_write( struct status * status, int fd ) PRINT_UINT64( migration_speed ); PRINT_UINT64( migration_duration ); PRINT_UINT64( migration_seconds_left ); + PRINT_UINT64( migration_bytes_left ); if ( status->migration_speed_limit < UINT64_MAX ) { PRINT_UINT64( migration_speed_limit ); }; diff --git a/src/server/status.h b/src/server/status.h index a927922..068571b 100644 --- a/src/server/status.h +++ b/src/server/status.h @@ -64,6 +64,8 @@ * Our current best estimate of how many seconds are left before the migration * migration is finished. * + * migration_bytes_left: + * The number of bytes remaining to migrate. */ @@ -84,6 +86,7 @@ struct status { uint64_t migration_speed; uint64_t migration_speed_limit; uint64_t migration_seconds_left; + uint64_t migration_bytes_left; }; /** Create a status object for the given server. */ From 42d206cfb7256f48b8907fd5ce5a25f74f4a57e8 Mon Sep 17 00:00:00 2001 From: Chris Elsworth Date: Fri, 14 Jul 2017 16:26:25 +0100 Subject: [PATCH 2/2] Update test --- tests/unit/check_status.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/unit/check_status.c b/tests/unit/check_status.c index 81f79be..1daf556 100644 --- a/tests/unit/check_status.c +++ b/tests/unit/check_status.c @@ -308,6 +308,7 @@ START_TEST( test_renders_migration_statistics ) status.migration_speed = 40000000; status.migration_speed_limit = 40000001; status.migration_seconds_left = 1; + status.migration_bytes_left = 5000; status_write( &status, fds[1] ); fail_if_rendered( fds[0], "migration_duration" ); @@ -335,6 +336,9 @@ START_TEST( test_renders_migration_statistics ) status_write( &status, fds[1] ); fail_unless_rendered( fds[0], "migration_seconds_left=1" ); + status_write( &status, fds[1] ); + fail_unless_rendered( fds[0], "migration_bytes_left=5000" ); + status.migration_speed_limit = UINT64_MAX; status_write( &status, fds[1] );