@@ -35,6 +35,7 @@ use crate::{
35
35
MasNewEmailThreepid , MasNewUnsupportedThreepid , MasNewUpstreamOauthLink , MasNewUser ,
36
36
MasNewUserPassword , MasWriteBuffer , MasWriter ,
37
37
} ,
38
+ progress_stream:: ProgressStreamExt ,
38
39
synapse_reader:: {
39
40
self , ExtractLocalpartError , FullUserId , SynapseAccessToken , SynapseDevice ,
40
41
SynapseExternalId , SynapseRefreshableTokenPair , SynapseThreepid , SynapseUser ,
@@ -241,20 +242,17 @@ async fn migrate_users(
241
242
) -> Result < UsersMigrated , Error > {
242
243
let start = Instant :: now ( ) ;
243
244
244
- let span = Span :: current ( ) ;
245
- span. pb_set_length ( user_count_hint as u64 ) ;
246
-
247
245
let mut user_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_users) ;
248
246
let mut password_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_passwords) ;
249
- let mut users_stream = pin ! ( synapse. read_users( ) ) ;
247
+ let mut users_stream = pin ! ( synapse
248
+ . read_users( )
249
+ . with_progress_bar( user_count_hint as u64 , 10_000 ) ) ;
250
250
// Oversize the capacity, because the count is only an estimate and
251
251
// we would like to avoid a reallocation
252
252
let mut user_localparts_to_uuid = HashMap :: with_capacity ( user_count_hint * 9 / 8 ) ;
253
253
let mut synapse_admins = HashSet :: new ( ) ;
254
254
255
255
while let Some ( user_res) = users_stream. next ( ) . await {
256
- span. pb_inc ( 1 ) ;
257
-
258
256
let user = user_res. into_synapse ( "reading user" ) ?;
259
257
let ( mas_user, mas_password_opt) = transform_user ( & user, server_name, rng) ?;
260
258
@@ -308,16 +306,13 @@ async fn migrate_threepids(
308
306
) -> Result < ( ) , Error > {
309
307
let start = Instant :: now ( ) ;
310
308
311
- let span = Span :: current ( ) ;
312
- span. pb_set_length ( count_hint) ;
313
-
314
309
let mut email_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_email_threepids) ;
315
310
let mut unsupported_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_unsupported_threepids) ;
316
- let mut users_stream = pin ! ( synapse. read_threepids( ) ) ;
311
+ let mut users_stream = pin ! ( synapse
312
+ . read_threepids( )
313
+ . with_progress_bar( count_hint, 10_000 ) ) ;
317
314
318
315
while let Some ( threepid_res) = users_stream. next ( ) . await {
319
- span. pb_inc ( 1 ) ;
320
-
321
316
let SynapseThreepid {
322
317
user_id : synapse_user_id,
323
318
medium,
@@ -410,15 +405,12 @@ async fn migrate_external_ids(
410
405
) -> Result < ( ) , Error > {
411
406
let start = Instant :: now ( ) ;
412
407
413
- let span = Span :: current ( ) ;
414
- span. pb_set_length ( count_hint) ;
415
-
416
408
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_upstream_oauth_links) ;
417
- let mut extids_stream = pin ! ( synapse. read_user_external_ids( ) ) ;
409
+ let mut extids_stream = pin ! ( synapse
410
+ . read_user_external_ids( )
411
+ . with_progress_bar( count_hint, 10_000 ) ) ;
418
412
419
413
while let Some ( extid_res) = extids_stream. next ( ) . await {
420
- span. pb_inc ( 1 ) ;
421
-
422
414
let SynapseExternalId {
423
415
user_id : synapse_user_id,
424
416
auth_provider,
@@ -502,15 +494,10 @@ async fn migrate_devices(
502
494
) -> Result < ( ) , Error > {
503
495
let start = Instant :: now ( ) ;
504
496
505
- let span = Span :: current ( ) ;
506
- span. pb_set_length ( count_hint) ;
507
-
508
- let mut devices_stream = pin ! ( synapse. read_devices( ) ) ;
497
+ let mut devices_stream = pin ! ( synapse. read_devices( ) . with_progress_bar( count_hint, 10_000 ) ) ;
509
498
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
510
499
511
500
while let Some ( device_res) = devices_stream. next ( ) . await {
512
- span. pb_inc ( 1 ) ;
513
-
514
501
let SynapseDevice {
515
502
user_id : synapse_user_id,
516
503
device_id,
@@ -609,17 +596,14 @@ async fn migrate_unrefreshable_access_tokens(
609
596
) -> Result < ( ) , Error > {
610
597
let start = Instant :: now ( ) ;
611
598
612
- let span = Span :: current ( ) ;
613
- span. pb_set_length ( count_hint) ;
614
-
615
- let mut token_stream = pin ! ( synapse. read_unrefreshable_access_tokens( ) ) ;
599
+ let mut token_stream = pin ! ( synapse
600
+ . read_unrefreshable_access_tokens( )
601
+ . with_progress_bar( count_hint, 10_000 ) ) ;
616
602
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
617
603
let mut deviceless_session_write_buffer =
618
604
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
619
605
620
606
while let Some ( token_res) = token_stream. next ( ) . await {
621
- span. pb_inc ( 1 ) ;
622
-
623
607
let SynapseAccessToken {
624
608
user_id : synapse_user_id,
625
609
device_id,
@@ -733,18 +717,15 @@ async fn migrate_refreshable_token_pairs(
733
717
) -> Result < ( ) , Error > {
734
718
let start = Instant :: now ( ) ;
735
719
736
- let span = Span :: current ( ) ;
737
- span. pb_set_length ( count_hint) ;
738
-
739
- let mut token_stream = pin ! ( synapse. read_refreshable_token_pairs( ) ) ;
720
+ let mut token_stream = pin ! ( synapse
721
+ . read_refreshable_token_pairs( )
722
+ . with_progress_bar( count_hint, 10_000 ) ) ;
740
723
let mut access_token_write_buffer =
741
724
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
742
725
let mut refresh_token_write_buffer =
743
726
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_refresh_tokens) ;
744
727
745
728
while let Some ( token_res) = token_stream. next ( ) . await {
746
- span. pb_inc ( 1 ) ;
747
-
748
729
let SynapseRefreshableTokenPair {
749
730
user_id : synapse_user_id,
750
731
device_id,
0 commit comments