def _populate_storage_daily_table(self): """Populate the daily table.""" included_fields = [ 'namespace', 'pod', 'persistentvolumeclaim', 'persistentvolume', 'storageclass', 'persistentvolume_labels', 'persistentvolumeclaim_labels' ] annotations = { 'node': Value(random.choice(self.line_items).get('node'), output_field=CharField()), 'usage_start': F('report__interval_start'), 'usage_end': F('report__interval_start'), 'persistentvolumeclaim_capacity_bytes': Max('persistentvolumeclaim_capacity_bytes'), 'persistentvolumeclaim_capacity_byte_seconds': Sum('persistentvolumeclaim_capacity_byte_seconds'), 'volume_request_storage_byte_seconds': Sum('volume_request_storage_byte_seconds'), 'persistentvolumeclaim_usage_byte_seconds': Sum('persistentvolumeclaim_usage_byte_seconds'), 'cluster_id': F('report_period__cluster_id'), 'cluster_alias': Value(self.cluster_alias, output_field=CharField()), } entries = OCPStorageLineItem.objects\ .values(*included_fields)\ .annotate(**annotations) for entry in entries: entry['total_seconds'] = 3600 daily = OCPStorageLineItemDaily(**entry) daily.save()
def _populate_storage_daily_table(self): """Populate the daily table.""" included_fields = [ "namespace", "pod", "report_period_id", "persistentvolumeclaim", "persistentvolume", "storageclass", "persistentvolume_labels", "persistentvolumeclaim_labels", ] annotations = { "node": Value(random.choice(self.line_items).get("node"), output_field=CharField()), "usage_start": F("report__interval_start"), "usage_end": F("report__interval_start"), "persistentvolumeclaim_capacity_bytes": Max("persistentvolumeclaim_capacity_bytes"), "persistentvolumeclaim_capacity_byte_seconds": Sum("persistentvolumeclaim_capacity_byte_seconds"), "volume_request_storage_byte_seconds": Sum("volume_request_storage_byte_seconds"), "persistentvolumeclaim_usage_byte_seconds": Sum("persistentvolumeclaim_usage_byte_seconds"), "cluster_id": F("report_period__cluster_id"), "cluster_alias": Value(self.cluster_alias, output_field=CharField()), } entries = OCPStorageLineItem.objects.values(*included_fields).annotate( **annotations) for entry in entries: entry["total_seconds"] = 3600 daily = OCPStorageLineItemDaily(**entry) daily.save()