diff --git a/lib/SLUB/LZA/TA/Command/report.pm b/lib/SLUB/LZA/TA/Command/report.pm index 8e76f2e548be3da69f56b86e5781737c2af750ae..4e77eac2f2f9094b2f57152b4ece572168f82aa2 100644 --- a/lib/SLUB/LZA/TA/Command/report.pm +++ b/lib/SLUB/LZA/TA/Command/report.pm @@ -144,16 +144,58 @@ sub _execute { # next lines extend query with reporting $aips_query->{aggs} = { # add total aip size - total_aip_size => + total_aip_size => { sum => { field => "size" } }, # add total file count - total_file_count => + total_file_count => { sum => { field => "file_count" } + }, + # add total payload size + total_payload_size => + { + sum => { + "script" => { + lang => "painless", + source => <<"PAINLESS" +if (! doc['transferMetadata.bim:bag-info_dict.bim:Payload-Oxum.keyword'].empty) { + return Math.floor( + Double.parseDouble( + doc['transferMetadata.bim:bag-info_dict.bim:Payload-Oxum.keyword'].value + ) + ) +} else { + return 0 +} +PAINLESS + } + } + }, + # add totol payload count + total_payload_filecount => + { + sum => { + "script" => { + lang => "painless", + source => <<"PAINLESS" +if (! doc['transferMetadata.bim:bag-info_dict.bim:Payload-Oxum.keyword'].empty) { + def s = doc['transferMetadata.bim:bag-info_dict.bim:Payload-Oxum.keyword'].value; + def pos = s.lastIndexOf('.'); + return ( + Double.parseDouble( + s.substring(pos+1) + ) + ); +} else { + return 0 +} +PAINLESS + } + } } }; $aips_query->{size}= 0; # only use aggregations @@ -241,8 +283,11 @@ sub execute { } my $res = _execute($self, \%newhash, $args); $results{flavour}->{count}->{$aip_state}->{$ldp_funder} = $res->{hits}->{total}; - $results{flavour}->{size}->{$aip_state}->{$ldp_funder} = $res->{aggregations}->{total_aip_size}->{value}; + $results{flavour}->{size}->{$aip_state}->{$ldp_funder} = $res->{aggregations}->{total_aip_size}->{value}*1024*1024; $results{flavour}->{files}->{$aip_state}->{$ldp_funder} = $res->{aggregations}->{total_file_count}->{value}; + $results{flavour}->{payload_size}->{$aip_state}->{$ldp_funder} = $res->{aggregations}->{total_payload_size}->{value}; + $results{flavour}->{payload_files}->{$aip_state}->{$ldp_funder} = $res->{aggregations}->{total_payload_filecount}->{value}; + } undef %newhash; @@ -253,8 +298,10 @@ sub execute { $newhash{only_ldp_project} = $ldp_project; my $res = _execute($self, \%newhash, $args); $results{ldp_project}->{$ldp_project}->{flavour}->{count}->{$aip_state} = $res->{hits}->{total}; - $results{ldp_project}->{$ldp_project}->{flavour}->{size}->{$aip_state} = $res->{aggregations}->{total_aip_size}->{value}; + $results{ldp_project}->{$ldp_project}->{flavour}->{size}->{$aip_state} = $res->{aggregations}->{total_aip_size}->{value}*1024*1024; $results{ldp_project}->{$ldp_project}->{flavour}->{files}->{$aip_state} = $res->{aggregations}->{total_file_count}->{value}; + $results{ldp_project}->{$ldp_project}->{flavour}->{payload_size}->{$aip_state} = $res->{aggregations}->{total_payload_size}->{value}; + $results{ldp_project}->{$ldp_project}->{flavour}->{payload_files}->{$aip_state} = $res->{aggregations}->{total_payload_filecount}->{value}; } }