@@ -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 , 100 ) ) ;
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,11 @@ 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. read_threepids( ) . with_progress_bar ( count_hint , 100 ) ) ;
317
312
318
313
while let Some ( threepid_res) = users_stream. next ( ) . await {
319
- span. pb_inc ( 1 ) ;
320
-
321
314
let SynapseThreepid {
322
315
user_id : synapse_user_id,
323
316
medium,
@@ -410,15 +403,12 @@ async fn migrate_external_ids(
410
403
) -> Result < ( ) , Error > {
411
404
let start = Instant :: now ( ) ;
412
405
413
- let span = Span :: current ( ) ;
414
- span. pb_set_length ( count_hint) ;
415
-
416
406
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_upstream_oauth_links) ;
417
- let mut extids_stream = pin ! ( synapse. read_user_external_ids( ) ) ;
407
+ let mut extids_stream = pin ! ( synapse
408
+ . read_user_external_ids( )
409
+ . with_progress_bar( count_hint, 100 ) ) ;
418
410
419
411
while let Some ( extid_res) = extids_stream. next ( ) . await {
420
- span. pb_inc ( 1 ) ;
421
-
422
412
let SynapseExternalId {
423
413
user_id : synapse_user_id,
424
414
auth_provider,
@@ -502,15 +492,10 @@ async fn migrate_devices(
502
492
) -> Result < ( ) , Error > {
503
493
let start = Instant :: now ( ) ;
504
494
505
- let span = Span :: current ( ) ;
506
- span. pb_set_length ( count_hint) ;
507
-
508
- let mut devices_stream = pin ! ( synapse. read_devices( ) ) ;
495
+ let mut devices_stream = pin ! ( synapse. read_devices( ) . with_progress_bar( count_hint, 100 ) ) ;
509
496
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
510
497
511
498
while let Some ( device_res) = devices_stream. next ( ) . await {
512
- span. pb_inc ( 1 ) ;
513
-
514
499
let SynapseDevice {
515
500
user_id : synapse_user_id,
516
501
device_id,
@@ -592,17 +577,14 @@ async fn migrate_unrefreshable_access_tokens(
592
577
) -> Result < ( ) , Error > {
593
578
let start = Instant :: now ( ) ;
594
579
595
- let span = Span :: current ( ) ;
596
- span. pb_set_length ( count_hint) ;
597
-
598
- let mut token_stream = pin ! ( synapse. read_unrefreshable_access_tokens( ) ) ;
580
+ let mut token_stream = pin ! ( synapse
581
+ . read_unrefreshable_access_tokens( )
582
+ . with_progress_bar( count_hint, 100 ) ) ;
599
583
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
600
584
let mut deviceless_session_write_buffer =
601
585
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
602
586
603
587
while let Some ( token_res) = token_stream. next ( ) . await {
604
- span. pb_inc ( 1 ) ;
605
-
606
588
let SynapseAccessToken {
607
589
user_id : synapse_user_id,
608
590
device_id,
@@ -716,18 +698,15 @@ async fn migrate_refreshable_token_pairs(
716
698
) -> Result < ( ) , Error > {
717
699
let start = Instant :: now ( ) ;
718
700
719
- let span = Span :: current ( ) ;
720
- span. pb_set_length ( count_hint) ;
721
-
722
- let mut token_stream = pin ! ( synapse. read_refreshable_token_pairs( ) ) ;
701
+ let mut token_stream = pin ! ( synapse
702
+ . read_refreshable_token_pairs( )
703
+ . with_progress_bar( count_hint, 100 ) ) ;
723
704
let mut access_token_write_buffer =
724
705
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
725
706
let mut refresh_token_write_buffer =
726
707
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_refresh_tokens) ;
727
708
728
709
while let Some ( token_res) = token_stream. next ( ) . await {
729
- span. pb_inc ( 1 ) ;
730
-
731
710
let SynapseRefreshableTokenPair {
732
711
user_id : synapse_user_id,
733
712
device_id,
0 commit comments