@@ -16,6 +16,9 @@ const PARTIAL_SINGLE_BUCKET_REPLICATION_DEFAULTS = {
16
16
last_cycle_writes_size : 0 ,
17
17
last_cycle_error_writes_num : 0 ,
18
18
last_cycle_error_writes_size : 0 ,
19
+ bucket_last_cycle_total_objects_num : 0 ,
20
+ bucket_last_cycle_replicated_objects_num : 0 ,
21
+ bucket_last_cycle_error_objects_num : 0 ,
19
22
} ;
20
23
21
24
//TODO: this function is not being used anymore, commenting out and keeping it as reference
@@ -39,7 +42,7 @@ const PARTIAL_SINGLE_BUCKET_REPLICATION_DEFAULTS = {
39
42
// return false;
40
43
// }
41
44
42
- function get_rule_status ( rule , src_cont_token , keys_diff_map , copy_res ) {
45
+ function get_rule_and_bucket_status ( rule , src_cont_token , keys_diff_map , copy_res ) {
43
46
const { num_keys_to_copy, num_bytes_to_copy } = Object . entries ( keys_diff_map ) . reduce (
44
47
( acc , [ key , value ] ) => {
45
48
acc . num_keys_to_copy += value . length ;
@@ -51,22 +54,31 @@ function get_rule_status(rule, src_cont_token, keys_diff_map, copy_res) {
51
54
const num_keys_moved = copy_res . num_of_objects ;
52
55
const num_bytes_moved = copy_res . size_of_objects ;
53
56
54
- const status = {
57
+ const rule_status = {
55
58
last_cycle_rule_id : rule ,
56
59
last_cycle_writes_num : num_keys_moved ,
57
60
last_cycle_writes_size : num_bytes_moved ,
58
61
last_cycle_error_writes_num : num_keys_to_copy - num_keys_moved ,
59
62
last_cycle_error_writes_size : num_bytes_to_copy - num_bytes_moved ,
60
63
} ;
61
- if ( src_cont_token ) status . last_cycle_src_cont_token = src_cont_token ;
62
- dbg . log1 ( 'get_rule_status: ' , status ) ;
63
- return status ;
64
+ if ( src_cont_token ) rule_status . last_cycle_src_cont_token = src_cont_token ;
65
+ dbg . log1 ( 'get_rule_and_bucket_status:: rule_status: ' , rule_status ) ;
66
+
67
+ const bucket_status = {
68
+ bucket_last_cycle_total_objects_num : num_keys_to_copy ,
69
+ bucket_last_cycle_replicated_objects_num : num_keys_moved ,
70
+ bucket_last_cycle_error_objects_num : num_keys_to_copy - num_keys_moved ,
71
+ } ;
72
+ dbg . log1 ( 'get_rule_and_bucket_status:: bucket_status: ' , bucket_status ) ;
73
+
74
+ return { rule_status, bucket_status} ;
64
75
}
65
76
66
- function update_replication_prom_report ( bucket_name , replication_policy_id , replication_status ) {
77
+ function update_replication_prom_report ( bucket_name , replication_policy_id , rule_status , bucket_status ) {
67
78
const core_report = prom_reporting . get_core_report ( ) ;
68
79
const last_cycle_status = _ . defaults ( {
69
- ...replication_status ,
80
+ ...rule_status ,
81
+ ...bucket_status ,
70
82
bucket_name : bucket_name . unwrap ( ) ,
71
83
replication_id : replication_policy_id
72
84
} , PARTIAL_SINGLE_BUCKET_REPLICATION_DEFAULTS ) ;
@@ -185,7 +197,7 @@ async function delete_objects(scanner_semaphore, client, bucket_name, keys) {
185
197
}
186
198
187
199
// EXPORTS
188
- exports . get_rule_status = get_rule_status ;
200
+ exports . get_rule_and_bucket_status = get_rule_and_bucket_status ;
189
201
exports . update_replication_prom_report = update_replication_prom_report ;
190
202
exports . get_object_md = get_object_md ;
191
203
exports . find_src_and_dst_buckets = find_src_and_dst_buckets ;
0 commit comments