@@ -40,6 +40,7 @@ use crate::{
40
40
MasNewEmailThreepid , MasNewUnsupportedThreepid , MasNewUpstreamOauthLink , MasNewUser ,
41
41
MasNewUserPassword , MasWriteBuffer , MasWriter ,
42
42
} ,
43
+ progress_stream:: ProgressStreamExt ,
43
44
synapse_reader:: {
44
45
self , ExtractLocalpartError , FullUserId , SynapseAccessToken , SynapseDevice ,
45
46
SynapseExternalId , SynapseRefreshableTokenPair , SynapseThreepid , SynapseUser ,
@@ -246,20 +247,17 @@ async fn migrate_users(
246
247
) -> Result < UsersMigrated , Error > {
247
248
let start = Instant :: now ( ) ;
248
249
249
- let span = Span :: current ( ) ;
250
- span. pb_set_length ( user_count_hint as u64 ) ;
251
-
252
250
let mut user_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_users) ;
253
251
let mut password_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_passwords) ;
254
- let mut users_stream = pin ! ( synapse. read_users( ) ) ;
252
+ let mut users_stream = pin ! ( synapse
253
+ . read_users( )
254
+ . with_progress_bar( user_count_hint as u64 , 10_000 ) ) ;
255
255
// Oversize the capacity, because the count is only an estimate and
256
256
// we would like to avoid a reallocation
257
257
let mut user_localparts_to_uuid = HashMap :: with_capacity ( user_count_hint * 9 / 8 ) ;
258
258
let mut synapse_admins = HashSet :: new ( ) ;
259
259
260
260
while let Some ( user_res) = users_stream. next ( ) . await {
261
- span. pb_inc ( 1 ) ;
262
-
263
261
let user = user_res. into_synapse ( "reading user" ) ?;
264
262
let ( mas_user, mas_password_opt) = transform_user ( & user, server_name, rng) ?;
265
263
@@ -313,16 +311,13 @@ async fn migrate_threepids(
313
311
) -> Result < ( ) , Error > {
314
312
let start = Instant :: now ( ) ;
315
313
316
- let span = Span :: current ( ) ;
317
- span. pb_set_length ( count_hint) ;
318
-
319
314
let mut email_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_email_threepids) ;
320
315
let mut unsupported_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_unsupported_threepids) ;
321
- let mut users_stream = pin ! ( synapse. read_threepids( ) ) ;
316
+ let mut users_stream = pin ! ( synapse
317
+ . read_threepids( )
318
+ . with_progress_bar( count_hint, 10_000 ) ) ;
322
319
323
320
while let Some ( threepid_res) = users_stream. next ( ) . await {
324
- span. pb_inc ( 1 ) ;
325
-
326
321
let SynapseThreepid {
327
322
user_id : synapse_user_id,
328
323
medium,
@@ -415,15 +410,12 @@ async fn migrate_external_ids(
415
410
) -> Result < ( ) , Error > {
416
411
let start = Instant :: now ( ) ;
417
412
418
- let span = Span :: current ( ) ;
419
- span. pb_set_length ( count_hint) ;
420
-
421
413
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_upstream_oauth_links) ;
422
- let mut extids_stream = pin ! ( synapse. read_user_external_ids( ) ) ;
414
+ let mut extids_stream = pin ! ( synapse
415
+ . read_user_external_ids( )
416
+ . with_progress_bar( count_hint, 10_000 ) ) ;
423
417
424
418
while let Some ( extid_res) = extids_stream. next ( ) . await {
425
- span. pb_inc ( 1 ) ;
426
-
427
419
let SynapseExternalId {
428
420
user_id : synapse_user_id,
429
421
auth_provider,
@@ -507,15 +499,10 @@ async fn migrate_devices(
507
499
) -> Result < ( ) , Error > {
508
500
let start = Instant :: now ( ) ;
509
501
510
- let span = Span :: current ( ) ;
511
- span. pb_set_length ( count_hint) ;
512
-
513
- let mut devices_stream = pin ! ( synapse. read_devices( ) ) ;
502
+ let mut devices_stream = pin ! ( synapse. read_devices( ) . with_progress_bar( count_hint, 10_000 ) ) ;
514
503
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
515
504
516
505
while let Some ( device_res) = devices_stream. next ( ) . await {
517
- span. pb_inc ( 1 ) ;
518
-
519
506
let SynapseDevice {
520
507
user_id : synapse_user_id,
521
508
device_id,
@@ -614,17 +601,14 @@ async fn migrate_unrefreshable_access_tokens(
614
601
) -> Result < ( ) , Error > {
615
602
let start = Instant :: now ( ) ;
616
603
617
- let span = Span :: current ( ) ;
618
- span. pb_set_length ( count_hint) ;
619
-
620
- let mut token_stream = pin ! ( synapse. read_unrefreshable_access_tokens( ) ) ;
604
+ let mut token_stream = pin ! ( synapse
605
+ . read_unrefreshable_access_tokens( )
606
+ . with_progress_bar( count_hint, 10_000 ) ) ;
621
607
let mut write_buffer = MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
622
608
let mut deviceless_session_write_buffer =
623
609
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_sessions) ;
624
610
625
611
while let Some ( token_res) = token_stream. next ( ) . await {
626
- span. pb_inc ( 1 ) ;
627
-
628
612
let SynapseAccessToken {
629
613
user_id : synapse_user_id,
630
614
device_id,
@@ -738,18 +722,15 @@ async fn migrate_refreshable_token_pairs(
738
722
) -> Result < ( ) , Error > {
739
723
let start = Instant :: now ( ) ;
740
724
741
- let span = Span :: current ( ) ;
742
- span. pb_set_length ( count_hint) ;
743
-
744
- let mut token_stream = pin ! ( synapse. read_refreshable_token_pairs( ) ) ;
725
+ let mut token_stream = pin ! ( synapse
726
+ . read_refreshable_token_pairs( )
727
+ . with_progress_bar( count_hint, 10_000 ) ) ;
745
728
let mut access_token_write_buffer =
746
729
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_access_tokens) ;
747
730
let mut refresh_token_write_buffer =
748
731
MasWriteBuffer :: new ( mas, MasWriter :: write_compat_refresh_tokens) ;
749
732
750
733
while let Some ( token_res) = token_stream. next ( ) . await {
751
- span. pb_inc ( 1 ) ;
752
-
753
734
let SynapseRefreshableTokenPair {
754
735
user_id : synapse_user_id,
755
736
device_id,
0 commit comments