Skip to content

Commit

Permalink
[COST-4257] Fix unused percentage first days of the month. (#4720)
Browse files Browse the repository at this point in the history
  • Loading branch information
myersCody authored Oct 6, 2023
1 parent 3187d39 commit 443c9a6
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 8 deletions.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,17 @@ def calculate_unused(row, finalized_mapping={}):
request = row.get("request") if row.get("request") else Decimal(0)
effective_usage = max(usage, request)
unused_capacity = max(capacity - effective_usage, 0)
capacity_unused_percent = (unused_capacity / max(capacity, Decimal(1))) * 100
if capacity <= 0:
# Check to see if we are about to divide by zero or a negative.
capacity = max(capacity, Decimal(1))
capacity_unused_percent = (unused_capacity / capacity) * 100
row["capacity_unused"] = unused_capacity
row["capacity_unused_percent"] = capacity_unused_percent
unused_request = max(request - usage, 0)
row["request_unused"] = unused_request
if request <= 0:
request = 1
row["request_unused_percent"] = (unused_request / max(capacity, Decimal(1))) * 100
row["request_unused_percent"] = (unused_request / capacity) * 100


@dataclass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from django.db.models.query import QuerySet

from api.report.ocp.dataclasses.cluster_capacity import calculate_unused
from api.report.ocp.capacity.cluster_capacity import calculate_unused


@dataclass
Expand Down
6 changes: 3 additions & 3 deletions koku/api/report/ocp/query_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
from django_tenants.utils import tenant_context

from api.models import Provider
from api.report.ocp.dataclasses.cluster_capacity import calculate_unused
from api.report.ocp.dataclasses.cluster_capacity import ClusterCapacity
from api.report.ocp.dataclasses.node_capacity import NodeCapacity
from api.report.ocp.capacity.cluster_capacity import calculate_unused
from api.report.ocp.capacity.cluster_capacity import ClusterCapacity
from api.report.ocp.capacity.node_capacity import NodeCapacity
from api.report.ocp.provider_map import OCPProviderMap
from api.report.queries import is_grouped_by_node
from api.report.queries import is_grouped_by_project
Expand Down
4 changes: 2 additions & 2 deletions koku/api/report/test/ocp/test_dataclasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

from api.iam.test.iam_test_case import IamTestCase
from api.provider.models import Provider
from api.report.ocp.dataclasses.cluster_capacity import ClusterCapacity
from api.report.ocp.dataclasses.node_capacity import NodeCapacity
from api.report.ocp.capacity.cluster_capacity import ClusterCapacity
from api.report.ocp.capacity.node_capacity import NodeCapacity
from api.report.ocp.provider_map import OCPProviderMap
from api.report.ocp.query_handler import OCPReportQueryHandler
from api.report.ocp.view import OCPCostView
Expand Down

0 comments on commit 443c9a6

Please sign in to comment.