def cluster_report(request, cluster_name): requester = report_auth(request) if requester and cluster_name in requester['clusters']: data = [] acc = get_object_or_404(ACCluster, name=cluster_name) domains, total_bytecount = tasks.get_cluster_content(acc) for item in domains: value = float(item['domain_bytes']) max_value = float(total_bytecount) percent = (value / max_value) * 100 data.append({ 'domain': item['domain'], 'number_of_files': item['number_of_files'], 'storage_used (B)': item['domain_bytes'], 'percent': '{0:0.2g}%'.format(int(round(percent))) }) return dicts_to_csv_response(data, header=['domain', 'number_of_files', 'storage_used (B)', 'percent']) return HttpResponseForbidden()
def cluster(request, cluster_name=None): if not request.user.is_staff: return HttpResponseForbidden() clusters = ACCluster.objects.all().values('name') if cluster_name: acc = get_object_or_404(ACCluster, name=cluster_name) domains = cache.get('%s-domains' % acc) total_bytecount = cache.get('%s-bytecount' % acc) if not domains or not total_bytecount: domains, total_bytecount = tasks.get_cluster_content(acc) return respond_to(request, {'text/html': 'apps/content/cluster.html'}, {'clusters': clusters, 'cluster_name': cluster_name, 'domains': domains, 'total_bytecount': total_bytecount}) return respond_to(request, {'text/html': 'apps/content/cluster.html'}, {'clusters': clusters})